【问题标题】:How to implement an outgoing interface on a sink object (C++)如何在接收器对象上实现传出接口(C++)
【发布时间】:2009-01-18 13:29:55
【问题描述】:

我有一个 predefined 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

【问题讨论】:

    标签: c++ com event-handling


    【解决方案1】:

    本文解释了如何在纯 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/

    【讨论】:

    • 谢谢 - 你能制作一个简单的插图吗?
    • CP的每篇文章都包含一个示例项目,它比我能提供的任何东西都要好得多。下载它,编译并测试它的行为,这样你就可以破解它。
    • 耻辱 - 该文件不再可用:(
    • 示例项目在那儿,但您必须是注册用户。
    • 好的 Xhantt,谢谢。但我实际上正在寻找一个纯 C++ 实现。我已经设法使应用程序自动化,我只需要弄清楚如何调整它来处理来自 COM 对象服务器的事件通知......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 2016-09-21
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多