Condividi tramite


Funzione CoCopyProxy (combaseapi.h)

Crea una copia privata del proxy specificato.

Sintassi

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

Parametri

[in] pProxy

Puntatore all'interfaccia IUnknown nel proxy da copiare. Questo parametro non può essere NULL.

[out] ppCopy

Indirizzo della variabile del puntatore che riceve il puntatore dell'interfaccia alla copia del proxy. Questo parametro non può essere NULL.

Valore restituito

Questa funzione può restituire i valori seguenti.

Codice restituito Descrizione
S_OK
Indica l'esito positivo dell'operazione.
E_INVALIDARG
Uno o più argomenti non sono validi.

Commenti

CoCopyProxy crea una copia privata del proxy specificato. In genere, questa funzione viene chiamata quando un client deve modificare le informazioni di autenticazione del proxy tramite una chiamata a CoSetProxyBlanket o IClientSecurity::SetBlanket senza modificare queste informazioni per altri client. CoSetProxyBlanket influisce su tutti gli utenti di un'istanza di un proxy, quindi la creazione di una copia privata del proxy tramite una chiamata a CoCopyProxyProxy E quindi la chiamata a CoSetProxyBlanket (o IClientSecurity::SetBlanket) tramite la copia elimina il problema.

Questa funzione helper incapsula la sequenza seguente di chiamate comuni (gestione degli errori esclusa):

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

Le interfacce locali potrebbero non essere copiate. IUnknown e IClientSecurity sono esempi di interfacce locali esistenti.

Le copie dello stesso proxy hanno una relazione speciale rispetto a QueryInterface. Dato un proxy, un, dell'interfaccia IA di un oggetto remoto, si supponga che venga creata una copia di un oggetto denominato b. In questo caso, la chiamata a QueryInterface dal proxy b per IID_IA non recupererà l'interfaccia IA su b, ma quella su un, il proxy originale con le impostazioni di sicurezza "predefinite" per l'interfaccia IA.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione combaseapi.h (include Objbase.h)
Libreria Ole32.lib
DLL Ole32.dll

Vedi anche

CoSetProxyBlanket

IClientSecurity::SetBlanket

Sicurezza in COM