【发布时间】:2011-07-06 14:33:48
【问题描述】:
我有两个用 C++ 和 ATL 编写的 COM 对象。在一个库中,我知道它们的 IID 和 CLID。
我找不到在两个简单 COM 对象之间进行这种简单通信的示例。如何创建 IMoniker 以及如何将其添加到 ROT?然后,如何在不同进程/线程的其他 COM 中检索该对象的指针?
谁能提供一个小例子?
编辑:更多信息:
我正在为 IE 编写一个插件。 IE 加载两个完全不相关的 COM 对象用于不同目的。一个是BHO(Browser Helper Obect),另一个是异步可插拔协议(APP)我发现我可以通过ROThere进行通信。
【问题讨论】:
-
在这种情况下为什么要使用 ROT?
-
@sharptooth 我正在为 IE 编写插件。我更新了我的问题。
-
嗯,我明白了。您必须搜索如何实现IMoniker接口。
-
@sharptooth 是吗?我希望我可以使用
CreatePointerMoniker或其他功能。但是当我通过IRunningObjectTable::Register注册这个指针名字时,我得到E_NOTIMPL。也许我应该使用其他 COM 提供的名字? -
我也试过了——它也将
E_NOTIMPL返回给我。您确定它首先应该适用于进程内服务器吗?
标签: visual-c++ com atl moniker