共用方式為


coCopyProxy 函式 (combaseapi.h)

建立指定 Proxy 的私人複本。

語法

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

參數

[in] pProxy

要複製之 Proxy 上 IUnknown 介面的指標。 此參數不可為 Null

[out] ppCopy

接收 Proxy 複本介面指標的指標變數位址。 此參數不可為 Null

傳回值

此函式可以傳回下列值。

傳回碼 描述
S_OK
表示成功。
E_INVALIDARG
一或多個引數無效。

備註

CoCopyProxy 會建立指定 Proxy 的私人複本。 一般而言,當用戶端需要透過 呼叫 CoSetProxyBlanketIClientSecurity::SetBlanket 來變更 Proxy 的驗證資訊,而不需變更其他用戶端的這項資訊時,就會呼叫此函式。 CoSetProxyBlanket 會影響 Proxy 實例的所有使用者,因此透過呼叫 CoCopyProxy 建立 Proxy 的私人複本,然後呼叫 CoSetProxyBlanket (或 IClientSecurity::SetBlanket) 可消除問題。

此協助程式函式會封裝下列一連串的常見呼叫, (排除的錯誤處理) :

    pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
    pcs->CopyProxy(punkProxy, ppunkCopy);
    pcs->Release();

無法複製本機介面。 IUnknownIClientSecurity 是現有本機介面的範例。

相同 Proxy 的複本與 QueryInterface有特殊關聯性。 假設遠端物件的 IA 介面有 Proxy,假設已建立名為 b 的複本。 在此情況下,從 b proxy for IID_IA 呼叫 QueryInterface 並不會擷取 b 上的 IA 介面,而是在 上擷取具有 IA 介面「預設」安全性設定的原始 Proxy。

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 combaseapi.h (包含 Objbase.h)
程式庫 Ole32.lib
Dll Ole32.dll

另請參閱

CoSetProxyBlanket

IClientSecurity::SetBlanket

COM 中的安全性