[英]ActiveX and COM for interprocess communication
我有一个生成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
在我需要与之交互的应用程序中。 在两个单独的过程中,如何连接接收器和源?
解释或一些参考将很有用。
event_receiver(com
,而不是native
类型,因为存在ActiveX事件 IDispEventImpl
或IDispEventSimpleImpl
类来实现ActiveX控件事件的接收器(本文提供了代码段并引用了示例项目)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.