如何寻址另一个进程中由给定 IUnknown* 标识的 COM 对象?
我编写了两个小型 C++ 应用程序,其中之一是嵌入一些 ActiveX 控件的 ActiveX 容器。此容器应用程序知道引用 ActiveX 控件的 IUnknown*
。
另一个应用程序是一个客户端,它将与前一个应用程序中的 ActiveX 控件进行交互。但是,我不知道如何获取客户端应用程序中的控件的句柄。由于独立的地址空间,简单地将 IUnknown*
的指针值从服务器传输到客户端当然是行不通的。
是否可以以某种方式“复制”某个 COM 对象的句柄,以便其他进程可以使用新创建的句柄?我想让 COM 为我完成 RPC 工作。否则,我需要在服务器应用程序中执行所有 COM 调用并亲自执行所有 RPC。 :-/
I wrote two small C++ applications, one of which is an ActiveX container embedding some ActiveX control. This container application knows the IUnknown*
referencing the ActiveX control.
The other application is a client which shall interact with the ActiveX control in the former application. However, I don't know how to get a handle on the control in the client application. Simply transporting the pointer value of the IUnknown*
from the server to the client won't work of courses due to independant address spaces.
Is it somehow possible to "duplicate" a handle to some COM object so that the newly created handle can be used by other processes? I'd like to have COM do the RPC work for me. Otherwise, I'd need to do all COM calls in the server application and do all the RPC myself. :-/
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可能想了解一下一般的 RPC 和 COM 代理。
You may want to look at RPC in general, and COM Proxies.