没有:
- 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/