C++ 获取指向现有COM对象的指针?
如何获取指向已在同一台计算机上、在不同进程中创建的现有COM对象的指针 我有一个可以创建继承的对象的。ICredentialProvider有一个方法 我还有一个服务,需要从中调用凭证提供程序的SetSerialization方法。问题是,我在C++方面有经验,但我是一个初学者,所以我不知道如何。微软的评论说,可以从“远程客户端”调用SetSerialization方法,但没有解释如何调用——我想他们假定您知道COM 我一整天都在阅读有关COM的各种书籍,我已经到了可以在服务中找到我的凭据提供程序的程度,但是我需要获取一个指向已存在的凭据提供程序对象的指针,而不是创建一个新对象,我无法找到如何创建 怎么做的C++ 获取指向现有COM对象的指针?,c++,windows,com,credential-providers,C++,Windows,Com,Credential Providers,如何获取指向已在同一台计算机上、在不同进程中创建的现有COM对象的指针 我有一个可以创建继承的对象的。ICredentialProvider有一个方法 我还有一个服务,需要从中调用凭证提供程序的SetSerialization方法。问题是,我在C++方面有经验,但我是一个初学者,所以我不知道如何。微软的评论说,可以从“远程客户端”调用SetSerialization方法,但没有解释如何调用——我想他们假定您知道COM 我一整天都在阅读有关COM的各种书籍,我已经到了可以在服务中找到我的凭据提供程
谢谢。正如雷蒙德所说,简而言之,你不能——至少不能通过任何内置的COM功能。如果必须的话,它需要通过某种形式的。正如Raymond所说,简而言之,你不能——至少不能通过任何内置的COM功能。如果必须,则需要通过某种形式的进行传递。规范方法是通过。假设对象有一个“名字对象”,即COM名称,并且该名字对象已注册
请注意,ROT是IPC的一种形式,特别是COM对象的系统范围目录。规范方法是通过。假设对象有一个“名字对象”,即COM名称,并且该名字对象已注册
请注意,ROT是IPC的一种形式,特别是COM对象的系统范围目录。您不能只是从随机进程中窃取指针。您必须安排将凭据提供程序交给服务。但是让我们后退一步。为什么要调用ICredentialProvider::SetSerialization?如示例所示,该方法适用于远程桌面客户端,因此它可以在连接时预填充“以…身份登录”对话框。不清楚您的服务为什么需要这样做。@RaymondChen:“您必须安排将凭据提供程序交给服务”-是的,这正是我需要的,但不知道在COM世界中如何做到这一点。场景是:我们有“x”数量的机器由“讲师”机器控制,通过命名管道与远程机器上运行的服务通信。教员需要能够通过按下教员机器上的一个按钮锁定/解锁所有远程机器。我的印象是,当讲师要求时,我可以从服务中调用SetSerialization来自动登录远程机器。因此,可能看起来我一直在白费力气,我必须通过某种形式的IPC将凭据从服务传递给凭据提供商,可能是另一个管道?您需要在凭据提供程序和服务之间设置一些IPC。但是退一步:即使你得到了指针并且想调用SetSerialization,你会传递什么?(注意:我也不知道。)@RaymondChen:我想我会通过管道将用户名和密码发送给凭证提供程序,然后让凭证提供程序处理序列化。如果你想在回答中总结你的评论,我很乐意接受。谢谢你的时间。你不能只是到处乱跑,从随机进程中窃取指针。您必须安排将凭据提供程序交给服务。但是让我们后退一步。为什么要调用ICredentialProvider::SetSerialization?如示例所示,该方法适用于远程桌面客户端,因此它可以在连接时预填充“以…身份登录”对话框。不清楚您的服务为什么需要这样做。@RaymondChen:“您必须安排将凭据提供程序交给服务”-是的,这正是我需要的,但不知道在COM世界中如何做到这一点。场景是:我们有“x”数量的机器由“讲师”机器控制,通过命名管道与远程机器上运行的服务通信。教员需要能够通过按下教员机器上的一个按钮锁定/解锁所有远程机器。我的印象是,当讲师要求时,我可以从服务中调用SetSerialization来自动登录远程机器。因此,可能看起来我一直在白费力气,我必须通过某种形式的IPC将凭据从服务传递给凭据提供商,可能是另一个管道?您需要在凭据提供程序和服务之间设置一些IPC。但是退一步:即使你得到了指针并且想调用SetSerialization,你会传递什么?(注意:我也不知道。)@RaymondChen:我想我会通过管道将用户名和密码发送给凭证提供程序,然后让凭证提供程序处理序列化。如果你想在回答中总结你的评论,我很乐意接受。谢谢你的时间,太好了。看起来正是我需要的。不过,我已经实现了pipe方法,它现在可以满足我的需要。在这个例子中,我可能不使用ROT方法,但它仍然是我一直在寻找的,很好地了解它以供将来参考。谢谢,太好了。看起来正是我需要的。不过,我已经实现了pipe方法,它现在可以满足我的需要。在这个例子中,我可能不使用ROT方法,但它仍然是我一直在寻找的,很好地了解它以供将来参考。谢谢