因此,我正在尝试手动执行AxImp的操作(我正在动态执行)。
我的产品是第三方产品中广泛认可的“附加产品”。他们有一个OCX,我通过COM参考将其添加到表单中...但是,如果客户端具有(或安装)其产品的更新版本,则我的产品将无法再加载OCX。
因此,我试图动态加载其OCX。除了我需要其中一个OCX中的接口之一的GUID外,我已经完成了所有工作。我知道类型名称是什么,并且OCX> is
注意,Assembly.LoadFrom()不起作用,因为OCX不是.NET,而是COM。
最佳答案
由于您的评论让我们知道该GUID在OCX中找到但未在HKEY_CLASSES_ROOT
下注册,因此我们必须从类型库中读取它:
调用LoadTypeLib
或LoadTypeLibEx
,将路径传递到.OCX文件
然后使用返回对象的FindName
方法。
然后GetTypeAttr
,后跟PtrToStructure
,以使用GUID获得TYPEATTR
结构。