MS' docs simply say:
Given a ProgID, CLSIDFromProgID looks up its associated CLSID in the registry.
But where exactly does it look? I have a weird issue where a wrong CLSID is being returned and I want to follow where this function is looking to help narrow down where the problem is.
The lookup goes through the application's manifest and its dependant assembly manifests. This is done to support registration-free COM.
If there's no application manifest or if none of the dependant assembly manifests declare your class in a comClass
or clrClass
XML element, the lookup defaults to the registry, which will check HKEY_CLASSES_ROOT\<ProgID>
1 with a string value named CLSID
.
1.HKEY_CLASSES_ROOT
is a mix of HKEY_CURRENT_USER\Software\Classes
and HKEY_LOCAL_MACHINE\Software\Classes
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With