|
-
May 19th, 2026, 03:17 AM
#1
Thread Starter
Frenzied Member
Where exactly are CLSID entries supposed to go in the registry for VB6 to find them?
I'm trying to manually register the a class in an experimental ActiveX DLL I made using assembly language. The DLL has no DllRegisterServer function (as I have no idea how one would go about coding a DLL that can register itself) so I will need to manually add the registry entries. I already made a TypeLib for the classes and interfaces in the DLL and registered that by loading the TLB file with VB6, so it knows all the correct GUIDs. But the New keyword in VB6 isn't working for making an instance of the class, because VB6 isn't able to find the DLL. This is because it needs to be able to find the DLL file itself (something the TypeLib doesn't tell it), as this would be in the registry CLSID entry. A key for a specific class's GUID appears alongside many others, all within a key called CLSID. The structure of each such class GUID entry looks something like this:
Code:
Key {GUID}
Value (Default) = CLASS_NAME
Key InProcServer32
Value (Default) = PATH_TO_DLL
Value ThreadingModel = Apartement
But the problem is where is the GUID key for a 32bit ActiveX DLL supposed to go? It must be in one of the several keys called CLSID. However, there's potentially up to 3 possible places on 32bit Windows, and up to 4 places on 64bit Windows, that a 32bit ActiveX DLL could be registered. These are as follows.
32bit class entries on 32bit Windows (and 64bit class entries on 64bit Windows)
HKEY_CLASSES_ROOT\CLSID
HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
32bit class entries on 64bit Windows
HKEY_CLASSES_ROOT\WOW6432Node\CLSID
HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\CLSID
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\CLSID
Now the problem with these, is I don't know which of these are true keys, and which are effectively shortcuts to keys. I've heard that all the keys in HKEY_CLASSES_ROOT are just shortcuts (not true keys). But what about some of the others? The most glaring example are these two very similar looking keys:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\CLSID
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\CLSID
Which of those is the true key, and which is the shortcut? Or are they both true keys?
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|