I am developing a C# .NET application that uses an externally developed (I believe in VB6) ActiveX controller, which I import from a OCX-file using Aximp.exe. Each time I get a new version of the OCX I have to re-run Aximp.exe or else there is a InvalidCastException
With message:
This operation failed because the QueryInterface call on the COM component for the interface with IID '{X13535F4-2X96-4F87-80E6-X342AD8X3E7F}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE))
When comparing the TypeLib output from Oleview.exe for different version of the OCX the only thing that changes are the IID:s and version number. The CLSID stays the same.
Is it normal that the IID:s changes but CLSID:s stay the same between versions?
Would this IID:s indicate that the OCX is not being built with "Binary compatibility" enabled (if it really is made with VB6)?
Is there anything I should be doing to maintain compatibility with new versions of the OCX without re-running Axim.exe rebuilding the application?
User contributions licensed under CC BY-SA 3.0