COM DLL Registration
-
Hi all, Greetings and Salutations!! I have a problem registering COM DLL's. I use ATL to create COM components but the rgs files which ATL creates and the registration process of ATL seems to only register the DLL with HKEY_LOCAL_MACHINE. If I want to register the DLL using a Windows Guest user, it does not seem to register it. Now, I looked at skype and skype seems to install on both guest accounts and admin accounts. Ofcourse, Skype does use COM DLLs but it seems that the trick is to register the DLL within HKEY_CURRENT_USER. This seems to work for skype so why shouldn't it work for me? Ofcourse, the installation would only be available to the guest user but I am ok with that. My question is, can I just make changes to the rgs file and register the DLL with HKEY_CURRENT_USER or do I have to write routines of my own which makes entries in the registry? In short, is there any way other than writing your own code which can be used to register my COM DLL with HKEY_CURRENT_USER?? Thank You for your time.
--- :beer: Hakuna-Matata :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: "I think my response was 'What idiot dreamed this up?'" -- Mary Ann Davidson, Oracle's chief security officer, in typical blunt manner, remembering her reaction to the company's scheme to brand its databases as "unbreakable."
-
Hi all, Greetings and Salutations!! I have a problem registering COM DLL's. I use ATL to create COM components but the rgs files which ATL creates and the registration process of ATL seems to only register the DLL with HKEY_LOCAL_MACHINE. If I want to register the DLL using a Windows Guest user, it does not seem to register it. Now, I looked at skype and skype seems to install on both guest accounts and admin accounts. Ofcourse, Skype does use COM DLLs but it seems that the trick is to register the DLL within HKEY_CURRENT_USER. This seems to work for skype so why shouldn't it work for me? Ofcourse, the installation would only be available to the guest user but I am ok with that. My question is, can I just make changes to the rgs file and register the DLL with HKEY_CURRENT_USER or do I have to write routines of my own which makes entries in the registry? In short, is there any way other than writing your own code which can be used to register my COM DLL with HKEY_CURRENT_USER?? Thank You for your time.
--- :beer: Hakuna-Matata :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: "I think my response was 'What idiot dreamed this up?'" -- Mary Ann Davidson, Oracle's chief security officer, in typical blunt manner, remembering her reaction to the company's scheme to brand its databases as "unbreakable."
I now seem to be able to update the rgs values into the HKCU key but now how do I register the Typelib of the COM DLL in HKCU???
--- :beer: Hakuna-Matata :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: "I think my response was 'What idiot dreamed this up?'" -- Mary Ann Davidson, Oracle's chief security officer, in typical blunt manner, remembering her reaction to the company's scheme to brand its databases as "unbreakable."
-
Hi all, Greetings and Salutations!! I have a problem registering COM DLL's. I use ATL to create COM components but the rgs files which ATL creates and the registration process of ATL seems to only register the DLL with HKEY_LOCAL_MACHINE. If I want to register the DLL using a Windows Guest user, it does not seem to register it. Now, I looked at skype and skype seems to install on both guest accounts and admin accounts. Ofcourse, Skype does use COM DLLs but it seems that the trick is to register the DLL within HKEY_CURRENT_USER. This seems to work for skype so why shouldn't it work for me? Ofcourse, the installation would only be available to the guest user but I am ok with that. My question is, can I just make changes to the rgs file and register the DLL with HKEY_CURRENT_USER or do I have to write routines of my own which makes entries in the registry? In short, is there any way other than writing your own code which can be used to register my COM DLL with HKEY_CURRENT_USER?? Thank You for your time.
--- :beer: Hakuna-Matata :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: "I think my response was 'What idiot dreamed this up?'" -- Mary Ann Davidson, Oracle's chief security officer, in typical blunt manner, remembering her reaction to the company's scheme to brand its databases as "unbreakable."
HakunaMatada wrote:
My question is, can I just make changes to the rgs file and register the DLL with HKEY_CURRENT_USER
Why not change the HKCR in your .rgs to HKCU, build and register and have a look at the result with regedit? I'm assuming COM will look there for an entry.
-
I now seem to be able to update the rgs values into the HKCU key but now how do I register the Typelib of the COM DLL in HKCU???
--- :beer: Hakuna-Matata :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: "I think my response was 'What idiot dreamed this up?'" -- Mary Ann Davidson, Oracle's chief security officer, in typical blunt manner, remembering her reaction to the company's scheme to brand its databases as "unbreakable."
do you have a
'TypeLib' = s '{386515B1-2B6F-11D4-9048-004005719FF5}'
(with your GUID)line in your .rgs file? -
HakunaMatada wrote:
My question is, can I just make changes to the rgs file and register the DLL with HKEY_CURRENT_USER
Why not change the HKCR in your .rgs to HKCU, build and register and have a look at the result with regedit? I'm assuming COM will look there for an entry.
Yes! Yes! I got it! Eureka! :-) I made changes to the .rgs file so that the coclasses are registered with HKCU.
HKCU
{
Software
{
Classes
{
.....
}
}
}Then I rewrote the
CComModule.RegisterServer()
function to register the type library using
RegisterTypeLibForUser
. That did the trick. Thanks for your help!
--- :beer: Hakuna-Matata :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: "I think my response was 'What idiot dreamed this up?'" -- Mary Ann Davidson, Oracle's chief security officer, in typical blunt manner, remembering her reaction to the company's scheme to brand its databases as "unbreakable."