Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Desconecta todas as conexões de processo remoto que estão sendo mantidas em nome de todos os ponteiros de interface que apontam para um objeto especificado.
Somente o processo que realmente gerencia o objeto deve chamar CoDisconnectObject.
Sintaxe
HRESULT CoDisconnectObject(
[in] LPUNKNOWN pUnk,
[in] DWORD dwReserved
);
Parâmetros
[in] pUnk
Um ponteiro para qualquer interface derivada de IUnknown no objeto a ser desconectado.
[in] dwReserved
Esse parâmetro é reservado e deve ser 0.
Retornar valor
Essa função retorna S_OK para indicar que todas as conexões com processos remotos foram excluídas com êxito.
Comentários
A função CoDisconnectObject permite que um servidor desconecte corretamente todos os clientes externos para o objeto especificado por pUnk.
Ele executa as seguintes tarefas:
- Verifica se o objeto a ser desconectado implementa a interface IMarshal . Nesse caso, ele obtém o ponteiro para essa interface; caso contrário, ele obtém um ponteiro para a implementação IMarshal do marshaler padrão (ou seja, COM).
- Usando o ponteiro da interface IMarshal adquirido, a função chama IMarshal::D isconnectObject para desconectar todos os clientes fora do processo.
Da mesma forma, um contêiner OLE que dá suporte a links externos para seus objetos inseridos pode chamar CoDisconnectObject para destruir esses links. Novamente, essa chamada normalmente é feita em resposta a um usuário fechando o aplicativo. O contêiner deve primeiro chamar IOleObject::Close para todos os seus objetos OLE, cada um dos quais deve enviar notificações IAdviseSink::OnClose para seus vários clientes. Em seguida, o contêiner pode chamar CoDisconnectObject para fechar quaisquer conexões existentes.
CoDisconnectObject não desconecta necessariamente clientes fora do processo imediatamente. Se alguma chamada marshalada estiver pendente no objeto do servidor, CoDisconnectObject desconectará o objeto somente quando essas chamadas forem retornadas. Enquanto isso, CoDisconnectObject define um sinalizador que faz com que novas chamadas marshaladas retornem CO_E_OBJNOTCONNECTED.
Requisitos
| Requisito | Valor |
|---|---|
| Cliente mínimo com suporte | Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP] |
| Servidor mínimo com suporte | Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP] |
| Plataforma de Destino | Windows |
| Cabeçalho | combaseapi.h (inclua Objbase.h) |
| Biblioteca | Ole32.lib |
| DLL | Ole32.dll |