如何在不同的进程中获取指向已在同一台计算机上创建的现有COM对象的指针?
我有一个Credential Provider,它会创建一个继承ICredentialProvider的对象。 ICredentialProvider有一个方法SetSerialization。
我也有一个服务,我需要从中调用Credential Provider的SetSerialization方法。问题是,我在C ++方面经验丰富,但我是COM的初学者,所以我不知道如何。微软的sample 'CSampleProvider's评论称从“远程客户端”调用SetSerialization方法,但不解释如何 - 我假设他们认为你知道COM。
我整天都在阅读有关COM的MSDN和各种tutorials,而且我已经达到了我可以create an instance我的凭据提供者服务的程度,但是我需要获得一个指向已经存在的Credential Provider对象的指针,而不是创建一个新对象,我无法找到它。
怎么做?
感谢。
答案 0 :(得分:1)
规范方法是通过Running Object Table
。这假定对象具有“名字对象”,即COM名称,并且该名字对象已被注册。
请注意,ROT是IPC的一种形式,特别是COM对象的系统范围目录。
答案 1 :(得分:0)
正如雷蒙德所言,简而言之,你不能 - 至少不是通过任何内置的COM功能。如果必须,则需要通过某种形式的Inter Process Communication传递。