佚名通过本文主要向大家介绍了指正,指正是什么意思,批评指正,请指正,批评指正的意思等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 对连接点事件的一点小结,如有不对,请指正
描述:
描述:
总结:
写连接点程序时:
1、建立组件程序(用ATL)
2、添加ATL SIMPLE OBJECT,支持连接点事件
3、因为支持连接点事件,这样将会自动生成一个 _XXXEVENT源接口。我们在其中增加想要触发的方法。
4、实现方法(其实组件里只是做方法的申明,客户调用时才实现这些方法)。实现时选中组件,按右键,在弹出菜单中选中implement connection....
5、完成组件的其他接口函数。
组件程序如何写,这比较简单了。然后关键是如何在客户端实现事件监听与接收:
ATL:
创建一个类:由IDispEventIml派生过来。
用SINK_ENTRY_INFO实现事件的映射
如:
BEGIN_SINK_MAP(CEventSink)
SINK_ENTRY_INFO(1,DIID__INew01Events,DISPID_MSG,Msg,&MsgInfo)
END_SINK_MAP()
我在组件中定义了一个Msf函数,所以在这里对其进行消息隐射。然后实现Msg方法。
在客户程序里注册连接点
首先得到组件接口
利用AtlAdvise将一个监听对象传给组件,这样当事件发生的时候事件就会响应。
如果用MFC的话,只要那个类从CCmdTarget里派生就可以了,同样要申明映射洪,同时利用AfxConnectionAdvice将监听对象传给组件接口。