coCopyProxy 函式 (combaseapi.h)
建立指定 Proxy 的私人複本。
語法
HRESULT CoCopyProxy(
[in] IUnknown *pProxy,
[out] IUnknown **ppCopy
);
參數
[in] pProxy
要複製之 Proxy 上 IUnknown 介面的指標。 此參數不可為 Null。
[out] ppCopy
接收 Proxy 複本介面指標的指標變數位址。 此參數不可為 Null。
傳回值
此函式可以傳回下列值。
傳回碼 | 描述 |
---|---|
|
表示成功。 |
|
一或多個引數無效。 |
備註
CoCopyProxy 會建立指定 Proxy 的私人複本。 一般而言,當用戶端需要透過 呼叫 CoSetProxyBlanket 或 IClientSecurity::SetBlanket 來變更 Proxy 的驗證資訊,而不需變更其他用戶端的這項資訊時,就會呼叫此函式。 CoSetProxyBlanket 會影響 Proxy 實例的所有使用者,因此透過呼叫 CoCopyProxy 建立 Proxy 的私人複本,然後呼叫 CoSetProxyBlanket (或 IClientSecurity::SetBlanket) 可消除問題。
此協助程式函式會封裝下列一連串的常見呼叫, (排除的錯誤處理) :
pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->CopyProxy(punkProxy, ppunkCopy);
pcs->Release();
無法複製本機介面。 IUnknown 和 IClientSecurity 是現有本機介面的範例。
相同 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 |