[英]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.