接收COM事件

无:

  • ATL
  • MFC
  • 注意:

  • Plain C ++
  • 进程外COM对象/服务器
  • 预定义的TLB文件
  • 题:

  • 如何实现传出接口,以便COM对象可以通知事件的接收器?
  • 如何妥善处理事件,一旦收到?
  • 下面是我想要实现的事件函数 - 从TLB文件:

    inline HRESULT IS8SimulationEvents::S8SimulationEndRun ( ) {
        HRESULT _result = 0;
        _com_dispatch_method(this, 0x2, DISPATCH_METHOD, VT_ERROR, (void*)&_result, NULL);
        return _result;
    }
    

    问候


    在COM Server类中实现源接口。 如果你不使用ATL,你应该实现IConnectionPointcontainer。

    在客户端类中调用COM服务器,如下所述。 1.调用FindConnectionPointContainer 2.调用FindConnectionPoint 3.调用关于从第2步返回的接口指针的提示,我们应该提供接收器对象的IUnknown指针。 建议返回一个cookie,我们可以在调用unadvise时使用它。

    要处理这些事件,您可以使用IDispatch的Invoke方法来解决客户端中的调用,其中的另一种方法是使用两种方法来调用特定的Sink方法。 这两个方法都使用它在建议时获取的IUnknown指针。

    链接地址: http://www.djcxy.com/p/81301.html

    上一篇: Receiving COM events

    下一篇: COM event notification