Register Free (Regfree) COM

We use the COM object automation model to make our application available to our customers.

They mainly use python to access our application interface.

Since we want to be able to install (not yet run, another problem) different versions of the application, we change our COM components to regfree.

But this conflicts with access from scripting languages ​​through IDispatch automation, as they need registry entries.

Our approach is to create an application that manages the active version of our real application. It allows the user to decide which version he wants to have, and he takes care of the entries in the registry.

What are the alternatives to our approach?

+3
source share
3 answers

COM has a protocol for this. If the version is Interfaces (and change the GUIDS for each version), you can install multiple versions. Microsoft does this with WORD, etc.

You can create a Word.Document.5 class specific to version 5 of the library, or just word.Document, which will instantiate the highest presence on the machine. I'm not sure if this functionality is built into COM or should be impigmented, but it’s worth looking into it.

+3
source

Regfree COM objects can be accessed through the Microsoft.Windows.ActCtx object .

IDispatch, - . , ATL, IDispatchImpl. , IRegFreeDispatchImpl, API , rel= "nofollow noreferrer" > , , DLL / .

+3

, . , COM-. , regsvr32 .

+1

Source: https://habr.com/ru/post/1704328/