VC ATL 如何触发事件
2025/5/3 9:35:37
1、在idl文件里加入事件接口
比如:
[
uuid(3CF27B93-8811-40AA-930C-8366B1197122),
helpstring("ObjEvent")
]
dispinterface IObjEvent
{
properties:
methods:
[id(1)] void Event1();
[id(2)] void Event2();
};
2、编译后,选择菜单Project->Add to project->Component and controls
选择Develop Studio Component双击
选择ATL Proxy Generator
选择你工程的.tlb文件,选刚才加入的借口生成Connection Point-> "Insert"
取合适的文件名,该工具将为您生成Connection Point声明文件,如果熟练的话可自己修改该文件。
3、在你的对象cpp里做如下修改
将如下语句加入你的对象继承里去
public CProxyIObjEvent<CYourObj>,
public IConnectionPointContainerImpl<CYourObj>
假设CYouObj是你的对象类。
加入以下语句
BEGIN_CONNECTION_POINT_MAP(CYourObj)
CONNECTION_POINT_ENTRY(DIID_IObjEvent)
END_CONNECTION_POINT_MAP()
4、将生成的头文件包含进来。
这样就可以触发事件了例如:Fire_Event1()