Forum Discussion

forderud80's avatar
forderud80
Copper Contributor
Oct 17, 2021
Solved

How to query for installed packaged COM extension points?

 
I work on a plugin-based application that is currently scanning the Windows registry for compatible COM servers that expose certain "Implemented Categories" entries. This works well for "regular" COM servers installed through MSI installers. However, I'm now facing a problem with COM servers installed through MSIX installers that expose COM extension points through the "Packaged COM" catalog as described in https://blogs.windows.com/windowsdeveloper/2017/04/13/com-server-ole-document-support-desktop-bridge/ . These COM servers can still be instantiated through CoCreateInstance, but RegOpenKey/RegEnumKey searches aren't able to detect their presence.

 

I've already investigated using PackageManager.FindPackagesForUser to detect installed packages and parsing the associated manifest files for <com:ComServer> tags. However, it seem like a rather clunky approach to me. Having some sort of Windows API for querying the "Packaged COM" catalog for installed COM servers would make everything much simpler.

 

Resources