【发布时间】:2017-10-17 22:00:03
【问题描述】:
我正在制作控件的包装器,即 ocx 对象的接口。必须创建一个 ATL 项目,然后添加/加载 ocx 文件。它具有公开的属性、方法和事件。我能够控制/使用它的属性和方法,但是我被困在事件上,尤其是在它触发后处理它。
在谷歌上搜索过它,我发现的大多数指南都是从头开始制作的,或者来自 ATL 事件本身。我想要实现的是利用 ocx 中暴露的事件。有人知道吗?
非常感谢。
【问题讨论】:
我正在制作控件的包装器,即 ocx 对象的接口。必须创建一个 ATL 项目,然后添加/加载 ocx 文件。它具有公开的属性、方法和事件。我能够控制/使用它的属性和方法,但是我被困在事件上,尤其是在它触发后处理它。
在谷歌上搜索过它,我发现的大多数指南都是从头开始制作的,或者来自 ATL 事件本身。我想要实现的是利用 ocx 中暴露的事件。有人知道吗?
非常感谢。
【问题讨论】:
在 ATL 中,处理 COM 事件的标准选项是使用 IConnectionPointContainer 和 Event Handling and ATL 中解释的朋友:
有关如何触发事件和实现连接点的信息,请阅读ATL Connection Points。
或者,特别是对于 ActiveX 控件事件,您的第二个选项是 IDispEventImpl 第一个链接的类引用:
IDispEventImpl and IDispEventSimpleImpl classesIDispEventImpl在其他资源上也有详细解释,例如:
【讨论】: