M
Mark J. McGinty
Is there any way in VB to override the default self-registration code (or
the data it uses) to make it so a component registers itself in
HKEY_CURRENT_USER (HKCU) instead of HKEY_LOCAL_MACHINE (HKLM)?
If not, is there a way to expose a DLLInstall function to external callers
(that would use LoadLibrary/GetProcAddress)?
The goal here, of course, is a component that can be registered by non-admin
users. I found the
remote server option in project settings, and wrote code to make it's .VBR
file output compatible with regedit 5 (and fix the proxystub flaw) but I'm
not certain I want to depend on regedit on user's systems.
Also, the .VBR output does not include the AddIn designer class, so I had to
use the TypeLib Info component... wondering why not just do that for all
classes. It's really a pretty simple set of keys and values, esp since I
have no need to support multiple versions of the interface. I've succeeded
at performing the registration myself externally, and I suppose that is what
I will have to do...
I guess I'm just a little amazed that MS designed all this to explicitly
*require* that the intended user's security context be escalated to power
user or admin (depending on policy) in order to get an AddIn to properly
install. Even more, I'm not sure I get why COM registrations don't simply
go to HKCU by default in the first place, it would make more sense to me --
components that go in System32 should be registered system-wide, but the
rest of them? Why, to what advantage, that isn't also a disadvantage at the
same time?
TIA.
-Mark
the data it uses) to make it so a component registers itself in
HKEY_CURRENT_USER (HKCU) instead of HKEY_LOCAL_MACHINE (HKLM)?
If not, is there a way to expose a DLLInstall function to external callers
(that would use LoadLibrary/GetProcAddress)?
The goal here, of course, is a component that can be registered by non-admin
users. I found the
remote server option in project settings, and wrote code to make it's .VBR
file output compatible with regedit 5 (and fix the proxystub flaw) but I'm
not certain I want to depend on regedit on user's systems.
Also, the .VBR output does not include the AddIn designer class, so I had to
use the TypeLib Info component... wondering why not just do that for all
classes. It's really a pretty simple set of keys and values, esp since I
have no need to support multiple versions of the interface. I've succeeded
at performing the registration myself externally, and I suppose that is what
I will have to do...
I guess I'm just a little amazed that MS designed all this to explicitly
*require* that the intended user's security context be escalated to power
user or admin (depending on policy) in order to get an AddIn to properly
install. Even more, I'm not sure I get why COM registrations don't simply
go to HKCU by default in the first place, it would make more sense to me --
components that go in System32 should be registered system-wide, but the
rest of them? Why, to what advantage, that isn't also a disadvantage at the
same time?
TIA.
-Mark