我有一个进程外的 ATL COM 服务器 (exe)。当它由客户端启动时,服务器会产生一个工作线程来轮询一些数据。每次更新数据时,我都想用更新后的值通知所有客户端。
我创建了一个 COM 客户端,它通过 CoCreateInstanceEx 连接,创建它的 Sink 对象,获取连接点并调用 Advise,所有这些都没有错误。但是,当服务器尝试 Fire_event 时,它的 IConnectionPointImpl::m_vec 是空的,并且不会通知任何客户端。
我假设这是因为服务器创建了自己的对象,所以我最终得到了两个 IConnectionPointImpl::m_vec 实例,一个来自服务器,一个来自客户端,当它调用 Advise 时。如何将服务器数据发送给客户端?