我想向 COM 公开一个 .NET 类。这很容易:
- 我创建了一个接口,在其中定义了应该是 ComVisible 的类的成员
- 我自己定义了这些成员的 DispId
- 我定义接口应该是
ComVisible
Guid
我为那个接口分配了一个- 我创建了一个实现该接口的类
没什么大不了的。这一切都有效。但是,现在我的问题是:我在那个类中有一些事件,我也想向 COM 公开。
这也没什么大不了的,但是,当我查看一些示例(由 MS 的 ComInterop 工具生成的 fi 代码)时,我看到事件是在单独的接口中声明的。那就是:应该是的类ComVisible
,实现了2个接口:
- 一个定义常规方法和属性的接口
ComVisible
- 另一个定义应该是事件的接口
ComVisible
。
现在,我的问题是:为什么会这样?这是什么原因?
为什么ComVisible
事件在另一个接口中定义,为什么它们只是没有在包含应该是的方法和属性的接口中定义ComVisible
?
这背后的原因是什么?