VC++:如何捕获从 ATL 项目中的 ActiveX (.ocx) 触发的事件
Posted
技术标签:
【中文标题】VC++:如何捕获从 ATL 项目中的 ActiveX (.ocx) 触发的事件【英文标题】:VC++: How to capture the Events fired from an ActiveX (.ocx) inside ATL project 【发布时间】:2017-10-17 22:00:03 【问题描述】:我正在制作控件的包装器,即 ocx 对象的接口。必须创建一个 ATL 项目,然后添加/加载 ocx 文件。它具有公开的属性、方法和事件。我能够控制/使用它的属性和方法,但是我被困在事件上,尤其是在它触发后处理它。
在谷歌上搜索过它,我发现的大多数指南都是从头开始制作的,或者来自 ATL 事件本身。我想要实现的是利用 ocx 中暴露的事件。有人知道吗?
非常感谢。
【问题讨论】:
【参考方案1】:在 ATL 中,处理 COM 事件的标准选项是使用 IConnectionPointContainer
和 Event Handling and ATL 中解释的朋友:
有关如何触发事件和实现连接点的信息,请阅读ATL Connection Points。
或者,特别是对于 ActiveX 控件事件,您的第二个选项是 IDispEventImpl
第一个链接的类引用:
IDispEventImpl
and IDispEventSimpleImpl
classes
IDispEventImpl
在其他资源上也有详细解释,例如:
【讨论】:
以上是关于VC++:如何捕获从 ATL 项目中的 ActiveX (.ocx) 触发的事件的主要内容,如果未能解决你的问题,请参考以下文章
VC++ ATL编写的Windows系统服务程序如何运行设置断点调试