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
S_OK
Indica êxito.
E_INVALIDARG
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

Confira também

CoSetProxyBlanket

IClientSecurity::SetBlanket

Segurança no COM