0

我有一个预定义的TLB 文件,其中包含 IS8SimulationEvents 包装器方法实现,例如:

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

使用 Oleview,我可以看到附加到 COM 对象的IConnectionPointContainer接口。

问题:

  • 如何在接收器对象上实现传出接口,以便客户端接收来自 COM对象的事件通知

没有:

  • ATL
  • MFC
4

1 回答 1

2

本文解释了如何在纯 C 中实现连接点源/汇http://www.codeproject.com/KB/COM/com_in_c5.aspx

如果您想了解底层的 COM,那么 Jeff Glatt 的整个系列文章“COM in plain C”可能是非常值得推荐的。

PD:Lambdasoft Comet 是一个实现 COM 包装器的框架,它不使用 ATL/MFC,它已经过时了,但如果你想要一些简单的东西,值得一看https://bitbucket.org/sofusmortensen/comet/http://www.lambdasoft.dk/comet/

于 2009-01-18T13:52:51.403 回答