1

如何获得指向在同一台机器上以不同进程创建的现有 COM 对象的指针?

我有一个凭据提供程序,它创建一个继承ICredentialProvider的对象。ICredentialProvider 有一个方法SetSerialization

我还有一个服务,我需要从中调用 Credential Provider 的 SetSerialization 方法。问题是,我在 C++ 方面有经验,但我是 COM 的初学者,所以我不知道如何。Microsoft 的示例“CSampleProvider”的评论说要从“远程客户端”调用 SetSerialization 方法,但没有解释如何 - 我假设他们假设您知道 COM。

我整天都在阅读MSDN和各种关于 COM 的教程,我已经到了可以在服务中创建我的凭据提供程序的实例的地步,但是我需要获取一个指向凭据提供程序对象的指针存在,而不是创建一个新的,我不知道如何。

它是如何完成的?

谢谢。

4

2 回答 2

1

规范方法是通过Running Object Table. 假设对象有一个“名字对象”,即一个 COM 名称,并且该名字对象已注册。

请注意,ROT 是 IPC 的一种形式,特别是 COM 对象的系统范围目录。

于 2013-02-14T09:27:17.223 回答
0

正如雷蒙德所说,简而言之,你不能——至少不能通过任何内置的 COM 功能。如果必须,它需要通过某种形式的进程间通信来传递。

于 2013-02-14T08:09:11.137 回答