用C#创建一个COM组件,一定要指定事件的接口吗?
像下面这样的:
[Guid("D11FEA37-AC57-4d39-9522-E49C4F9826BB"),
InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface MyCom_Events
{
}
是否一定要存在? 没有event接口可不可以?
------解决方案--------------------是的,必须使用接口,因为原生的编程语言没有委托或者方法签名的概念,是靠接口匹配的。
------解决方案--------------------InterfaceType表求向COM公开的方式,这里选择为以调度的方式向COM公开。 如果不指定事件接口将会有默认值InterfaceIsDual,具体可以参考ComInterfaceType 枚举定义
关于实现可以参考:
http://www.cnblogs.com/Real_Dream/articles/1577938.html和
http://www.cnblogs.com/panlijiao/archive/2012/10/14/2773882.html