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