正常的CLSID保持不变但新版OCX的IID更改?

时间:2017-09-21 11:13:54

标签: .net com vb6 com-interop ocx

我正在开发一个C#.NET应用程序,它使用外部开发的(我相信VB6)ActiveX控制器,我使用Aximp.exe从OCX文件导入。每次我获得新版本的OCX时,我都必须重新运行Aximp.exe,否则会有InvalidCastException有消息:

  

此操作失败,因为QueryInterface调用COM   与IID接口的组件   '{X13535F4-2X96-4F87-80E6-X342AD8X3E7F}'因以下原因失败   错误:不支持此类接口(HRESULT异常:0x80004002   (E_NOINTERFACE))

当比较Oleview.exe的TypeLib输出对于不同版本的OCX时,唯一改变的是IID:s和版本号。 CLSID保持不变。

IID:s更改但CLSID:s在版本之间保持不变是正常的吗?

这个IID是否表示OCX没有启用“二进制兼容性”(如果真的是用VB6制作)?

在没有重新运行Axim.exe重建应用程序的情况下,我是否应该做些什么来保持与新版OCX的兼容性?

0 个答案:

没有答案
相关问题