Freigeben über


CoCopyProxy-Funktion (combaseapi.h)

Erstellt eine private Kopie des angegebenen Proxys.

Syntax

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

Parameter

[in] pProxy

Ein Zeiger auf die IUnknown-Schnittstelle im zu kopierenden Proxy. Dieser Parameter darf nicht NULL sein.

[out] ppCopy

Adresse der Zeigervariable, die den Schnittstellenzeiger auf die Kopie des Proxys empfängt. Dieser Parameter darf nicht NULL sein.

Rückgabewert

Diese Funktion kann die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Gibt die erfolgreiche Ausführung an.
E_INVALIDARG
Mindestens ein Argument ist ungültig.

Hinweise

CoCopyProxy erstellt eine private Kopie des angegebenen Proxys. In der Regel wird diese Funktion aufgerufen, wenn ein Client die Authentifizierungsinformationen seines Proxys durch einen Aufruf von CoSetProxyBlanket oder IClientSecurity::SetBlanket ändern muss, ohne diese Informationen für andere Clients zu ändern. CoSetProxyBlanket wirkt sich auf alle Benutzer einer instance eines Proxys aus. Das Erstellen einer privaten Kopie des Proxys durch einen Aufruf von CoCopyProxy und anschließendes Aufrufen von CoSetProxyBlanket (oder IClientSecurity::SetBlanket) mithilfe der Kopie beseitigt das Problem.

Diese Hilfsfunktion kapselt die folgende Sequenz gängiger Aufrufe (Fehlerbehandlung ausgeschlossen):

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

Lokale Schnittstellen werden möglicherweise nicht kopiert. IUnknown und IClientSecurity sind Beispiele für vorhandene lokale Schnittstellen.

Kopien desselben Proxys weisen eine besondere Beziehung in Bezug auf QueryInterface auf. Angenommen, ein Proxy der IA-Schnittstelle eines Remoteobjekts, wird eine Kopie eines erstellt, genannt b. In diesem Fall wird beim Aufrufen von QueryInterface aus dem b-Proxy für IID_IA nicht die IA-Schnittstelle auf b, sondern die IA-Schnittstelle für a, den ursprünglichen Proxy mit den "Standard"-Sicherheitseinstellungen für die IA-Schnittstelle, abgerufen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile combaseapi.h (include Objbase.h)
Bibliothek Ole32.lib
DLL Ole32.dll

Weitere Informationen

CoSetProxyBlanket

IClientSecurity::SetBlanket

Sicherheit in COM