总结:  
写连接点程序时:  
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将监听对象传给组件接口。