IClientSecurity::CopyProxy 方法 (objidl.h)

为指定接口创建代理的专用副本。

语法

HRESULT CopyProxy(
  [in]  IUnknown *pProxy,
  [out] IUnknown **ppCopy
);

参数

[in] pProxy

指向要复制其代理的接口的指针。 此参数不能为 NULL

[out] ppCopy

指向接收代理副本的 IUnknown 接口指针的指针。 此参数不能为 NULL

返回值

此方法可以返回以下值。

返回代码 说明
S_OK
该方法已成功完成。
E_INVALIDARG
一个或多个参数无效。

注解

客户端调用 CopyProxy 以创建指定接口的代理的专用副本。 代理副本具有身份验证信息的默认值。 可以通过调用 IClientSecurity::SetBlanket 更改其身份验证信息,而不会影响原始代理的任何其他客户端。 副本有一个引用, CopyProxy 的调用方必须确保释放代理副本。

无法复制本地接口,例如 IUnknownIClientSecurity。 不能使用 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)

另请参阅

CoCopyProxy

IClientSecurity