因此,我正在尝试手动执行AxImp的操作(我正在动态执行)。

我的产品是第三方产品中广泛认可的“附加产品”。他们有一个OCX,我通过COM参考将其添加到表单中...但是,如果客户端具有(或安装)其产品的更新版本,则我的产品将无法再加载OCX。

因此,我试图动态加载其OCX。除了我需要其中一个OCX中的接口之一的GUID外,我已经完成了所有工作。我知道类型名称是什么,并且OCX> is
注意,Assembly.LoadFrom()不起作用,因为OCX不是.NET,而是COM。

最佳答案

由于您的评论让我们知道该GUID在OCX中找到但未在HKEY_CLASSES_ROOT下注册,因此我们必须从类型库中读取它:


调用LoadTypeLibLoadTypeLibEx,将路径传递到.OCX文件
然后使用返回对象的FindName方法。
然后GetTypeAttr,后跟PtrToStructure,以使用GUID获得TYPEATTR结构。

10-07 15:35