Função CoCopyProxy (combaseapi.h)
Faz uma cópia privada do proxy especificado.
Sintaxe
HRESULT CoCopyProxy(
[in] IUnknown *pProxy,
[out] IUnknown **ppCopy
);
Parâmetros
[in] pProxy
Um ponteiro para a interface IUnknown no proxy a ser copiado. Esse parâmetro não pode ser NULL.
[out] ppCopy
Endereço da variável de ponteiro que recebe o ponteiro de interface para a cópia do proxy. Esse parâmetro não pode ser NULL.
Valor retornado
Essa função pode retornar os valores a seguir.
Código de retorno | Descrição |
---|---|
|
Indica êxito. |
|
Um ou mais argumentos são inválidos. |
Comentários
O CoCopyProxy faz uma cópia privada do proxy especificado. Normalmente, essa função é chamada quando um cliente precisa alterar as informações de autenticação de seu proxy por meio de uma chamada para CoSetProxyBlanket ou IClientSecurity::SetBlanket sem alterar essas informações para outros clientes. CoSetProxyBlanket afeta todos os usuários de uma instância de um proxy, portanto, criar uma cópia privada do proxy por meio de uma chamada para CoCopyProxy e, em seguida, chamar CoSetProxyBlanket (ou IClientSecurity::SetBlanket) usando a cópia elimina o problema.
Essa função auxiliar encapsula a seguinte sequência de chamadas comuns (tratamento de erro excluído):
pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->CopyProxy(punkProxy, ppunkCopy);
pcs->Release();
As interfaces locais podem não ser copiadas. IUnknown e IClientSecurity são exemplos de interfaces locais existentes.
Cópias do mesmo proxy têm uma relação especial em relação a QueryInterface. Dado um proxy, a, da interface IA de um objeto remoto, suponha que uma cópia de um seja criada, chamada b. Nesse caso, chamar QueryInterface do proxy b para IID_IA não recuperará a interface IA em b, mas aquela em um, o proxy original com as configurações de segurança "padrão" para a interface IA.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | combaseapi.h (inclua Objbase.h) |
Biblioteca | Ole32.lib |
DLL | Ole32.dll |