Función CoCopyProxy (combaseapi.h)
Realiza una copia privada del proxy especificado.
Sintaxis
HRESULT CoCopyProxy(
[in] IUnknown *pProxy,
[out] IUnknown **ppCopy
);
Parámetros
[in] pProxy
Puntero a la interfaz IUnknown en el proxy que se va a copiar. Este parámetro no puede ser NULL.
[out] ppCopy
Dirección de la variable de puntero que recibe el puntero de interfaz a la copia del proxy. Este parámetro no puede ser NULL.
Valor devuelto
Esta función puede devolver los valores siguientes.
Código devuelto | Descripción |
---|---|
|
Indica que se completó correctamente. |
|
Uno o más argumentos no son válidos. |
Comentarios
CoCopyProxy realiza una copia privada del proxy especificado. Normalmente, se llama a esta función cuando un cliente necesita cambiar la información de autenticación de su proxy a través de una llamada a CoSetProxyBlanket o IClientSecurity::SetBlanket sin cambiar esta información para otros clientes. CoSetProxyBlanket afecta a todos los usuarios de una instancia de un proxy, por lo que la creación de una copia privada del proxy a través de una llamada a CoCopyProxyBlanket y, a continuación, la llamada a CoSetProxyBlanket (o IClientSecurity::SetBlanket) mediante la copia elimina el problema.
Esta función auxiliar encapsula la siguiente secuencia de llamadas comunes (se excluye el control de errores):
pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->CopyProxy(punkProxy, ppunkCopy);
pcs->Release();
Es posible que no se copien las interfaces locales. IUnknown e IClientSecurity son ejemplos de interfaces locales existentes.
Las copias del mismo proxy tienen una relación especial con respecto a QueryInterface. Dado un proxy, a, de la interfaz IA de un objeto remoto, supongamos que se crea una copia de un elemento , denominado b. En este caso, al llamar a QueryInterface desde el proxy b para IID_IA no se recuperará la interfaz IA en b, pero la de un proxy original con la configuración de seguridad "predeterminada" para la interfaz IA.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | combaseapi.h (incluya Objbase.h) |
Library | Ole32.lib |
Archivo DLL | Ole32.dll |