gpt4 book ai didi

c++ - COM 事件通知

转载 作者:太空宇宙 更新时间:2023-11-04 12:28:36 25 4
gpt4 key购买 nike

没有:

  • ATL
  • MFC

注意:

  • 客户端在与服务器不同的线程中执行

问题:

  • 一旦从 COM 对象收到事件通知,我如何控制客户端的行为>(服务器)?
  • 如何从客户端实现事件接口(interface)?

下图:

hresult = pis8->QueryInterface(
__uuidof(IConnectionPointContainer),
(void **) &pContainer);

//result handling omitted


hresult = pContainer->FindConnectionPoint(
__uuidof(IS8SimulationEvents),
&pConnection);

//result handling omitted

最佳答案

客户端实现事件接口(interface) (IS8SimulationEvents) 这可以在单独的组件中,也可以在客户端组件本身上。当组件触发事件时调用实现。

FindConnectionPoint 之后,客户端调用pConnection->Advise,传递IS8SimulationEvents 并接收“cookie”。 cookie 需要调用 Unadvise,它必须在清理期间调用以断开连接。

如果客户端运行在与服务器不同的线程中,则客户端需要运行消息循环来接收调用。

关于c++ - COM 事件通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/454316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com