There are two ways a program could get information about a COM server:
- Manifest and RegFree activation contexts
If an activation context is active this information has to be preferred. There is a bug in the CLSIDFromString Windows API method which always looks into the registry if the given string is a malformed GUID (e.g. a ProgID), hence the string has to be checked before the method is called if it is a GUID. I attached a patch which takes this workaround into account.