IClientSecurity::CopyProxy 方法 (objidl.h)
为指定接口创建代理的专用副本。
语法
HRESULT CopyProxy(
[in] IUnknown *pProxy,
[out] IUnknown **ppCopy
);
参数
[in] pProxy
指向要复制其代理的接口的指针。 此参数不能为 NULL。
[out] ppCopy
指向接收代理副本的 IUnknown 接口指针的指针。 此参数不能为 NULL。
返回值
此方法可以返回以下值。
返回代码 | 说明 |
---|---|
|
该方法已成功完成。 |
|
一个或多个参数无效。 |
注解
客户端调用 CopyProxy 以创建指定接口的代理的专用副本。 代理副本具有身份验证信息的默认值。 可以通过调用 IClientSecurity::SetBlanket 更改其身份验证信息,而不会影响原始代理的任何其他客户端。 副本有一个引用, CopyProxy 的调用方必须确保释放代理副本。
无法复制本地接口,例如 IUnknown 和 IClientSecurity。 不能使用 CopyProxy 复制代理管理器。
同一代理的副本与 QueryInterface 具有特殊关系。 给定远程对象的 IA 接口的代理 a,假设创建了 一个副本,称为 b。 在这种情况下,从 b 代理为 IID_IA 调用 QueryInterface 不会检索 b 上的 IA 接口,而检索原始代理上的 IA 接口。
请注意,任何人都可以使用 SetBlanket 查询代理并更改其安全性。 但是,当你创建代理的副本时,除非你将其交给他们,否则任何人都无法获取该副本。 只有拥有副本的人员才能设置该副本的安全性。
帮助程序函数 CoCopyProxy 封装了指向 IClientSecurity 的指针的 QueryInterface 调用、使用 IClientSecurity 指针对 CopyProxy 的调用,以及 IClientSecurity 指针的释放。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | objidl.h (包括 ObjIdl.h) |