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
  • 参考:
原文地址:https://www.cnblogs.com/dahai/p/2194543.html