<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>VBForums - COM and ActiveX</title>
		<link>https://www.vbforums.com/</link>
		<description>Use this forum to ask about COM and OOP, ActiveX client/server, OLE, and anything else that fits under this category.</description>
		<language>en</language>
		<lastBuildDate>Thu, 04 Jun 2026 03:43:08 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>https://www.vbforums.com/images/misc/rss.png</url>
			<title>VBForums - COM and ActiveX</title>
			<link>https://www.vbforums.com/</link>
		</image>
		<item>
			<title>Where exactly are CLSID entries supposed to go in the registry for VB6 to find them?</title>
			<link>https://www.vbforums.com/showthread.php?912027-Where-exactly-are-CLSID-entries-supposed-to-go-in-the-registry-for-VB6-to-find-them&amp;goto=newpost</link>
			<pubDate>Tue, 19 May 2026 08:17:45 GMT</pubDate>
			<description><![CDATA[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.

---Quote---
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
---End Quote---
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?]]></description>
			<content:encoded><![CDATA[<div>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:<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">Key {GUID}<br />
&nbsp; &nbsp; Value (Default) = CLASS_NAME<br />
&nbsp; &nbsp; Key InProcServer32<br />
&nbsp; &nbsp; &nbsp; &nbsp; Value (Default) = PATH_TO_DLL<br />
&nbsp; &nbsp; &nbsp; &nbsp; Value ThreadingModel = Apartement</code><hr />
</div>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.<br />
<div class="bbcode_container">
	<div class="bbcode_description">Quote:</div>
	<div class="bbcode_quote printable">
		<hr />
		
			32bit class entries on 32bit Windows (and 64bit class entries on 64bit Windows)<br />
HKEY_CLASSES_ROOT\CLSID<br />
HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID<br />
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID<br />
<br />
32bit class entries on 64bit Windows<br />
HKEY_CLASSES_ROOT\WOW6432Node\CLSID<br />
HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID<br />
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\CLSID<br />
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\CLSID
			
		<hr />
	</div>
</div>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:<br />
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\CLSID<br />
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\CLSID<br />
<br />
Which of those is the true key, and which is the shortcut? Or are they both true keys?</div>

]]></content:encoded>
			<category domain="https://www.vbforums.com/forumdisplay.php?19-COM-and-ActiveX">COM and ActiveX</category>
			<dc:creator>Ben321</dc:creator>
			<guid isPermaLink="true">https://www.vbforums.com/showthread.php?912027-Where-exactly-are-CLSID-entries-supposed-to-go-in-the-registry-for-VB6-to-find-them</guid>
		</item>
	</channel>
</rss>
