如何解决如何处理另一个进程中给定的IUnknown *标识的COM对象?
| 我编写了两个小型C ++应用程序,其中一个是嵌入一些ActiveX控件的ActiveX容器。该容器应用程序知道引用ActiveX控件的“ 0”。 另一个应用程序是一个客户端,它将与前一个应用程序中的ActiveX控件进行交互。但是,我不知道如何在客户端应用程序中获取控件的句柄。由于地址空间的独立性,仅将“ 0”的指针值从服务器传输到客户端将无法完成课程。 是否可以“复制”某个COM对象的句柄,以便新创建的句柄可以被其他进程使用?我想让COM为我完成RPC工作。否则,我需要在服务器应用程序中执行所有COM调用,并亲自执行所有RPC。 :-/解决方法
您可能希望了解一般的RPC和COM代理。
代理位于调用进程的地址空间中,并充当远程对象的代理。从调用对象的角度来看,代理是对象。通常,代理的角色是将接口参数打包为在其对象接口中调用方法。代理将参数打包到消息缓冲区中,然后将缓冲区传递到通道上,该通道处理进程之间的传输。代理被实现为一个聚合或复合对象。它包含一个系统提供的管理器部件,称为代理管理器,以及一个或多个特定于接口的组件,称为接口代理。接口代理的数量等于已暴露给该特定客户端的对象接口的数量。对于符合组件对象模型的客户端,代理似乎是真实对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。