【发布时间】:2014-08-28 16:28:57
【问题描述】:
我有一个生成 ActiveX 事件的闭源程序,我需要修改我的程序以便可以接收这些事件。所以我们有两个独立的可执行文件,并且没有使用 GUI 的东西。到目前为止,我已经到了这一点,它仅在事件由同一进程生成和接收时才有效:
[event_source(native)]
class CSource {
public:
__event void MyEvent(int nValue);
};
[event_receiver(native)]
class CReceiver {
public:
void MyHandler(int nValue) { ... }
void hookEvent(CSource* pSource) {
__hook(&CSource::MyEvent, pSource, &CReceiver::MyHandler);
}
void unhookEvent(CSource* pSource) {
__unhook(&CSource::MyEvent, pSource, &CReceiver::MyHandler);
}
};
int main() {
CSource source;
CReceiver receiver;
receiver.hookEvent(&source);
__raise source.MyEvent(123);
receiver.unhookEvent(&source);
}
现在,event_source 位于我需要与之交互的应用程序中。当接收器和源处于两个单独的进程中时,如何连接它们?
解释或一些参考资料会很有用。
【问题讨论】:
标签: c++ com activex inter-process-communicat