COM(三)Events

  • COM client通过接口使用COM server,而COM server通过events(类似回调)通知COM client
  • 条件:
    • client:
      • event sink:COM对象,提供事件关联接口给server
    • server:
      • IConnectionPointContainer
      • IConnectionPoint

  • 实现(通过连接点):
    1. 获取server的IConnectionPointContainer 接口
    2. 获取连接点:IConnectionPointContainer::FindConnectionPoint 
    3. 建立连接:IConnectionPoint::Advise
    4. 取消连接:IConnectionPoint::Unadvise
  • 说明:
    • ISinkEvent需要从IDispatch继承?IDispatch只是ISinkEvent的一种实现方法
    • 事件接口方法必须为ISinkEvent::Invoke?若用IDispatch实现ISinkEvent则事件接口方法为ISinkEvent::Invoke
  • 参考:
posted @ 2011-09-28 16:16  iThinking  阅读(364)  评论(0编辑  收藏  举报