CoDisconnectObject
9/8/2008
Essa função desconecta remoto todas as conexões processo que está sendo mantidas em nome de todos os ponteiros de interface que apontar para um objeto especificado. Somente o processo que gerencia, na verdade, o objeto deve chamar CoDisconnectObject.
Syntax
STDAPI CoDisconnectObject(
IUnknown* pUnk,
DWORD dwReserved
);
Parameters
- pUnk
[no] Ponteiro para qualquer IUnknown-derivado interface sobre o objeto para ser desconectada.
- dwReserved
[no] Reservado para uso futuro; Deve ser zero.
Return Value
- S_OK
Todas as conexões com remoto processos foram excluídos com êxito.
Remarks
O CoDisconnectObject função permite que um servidor para corretamente desconectar externo todos os clientes para o objeto especificado por pUnk.
O CoDisconnectObject função executa a seguinte tarefas:
- Verifica se o objeto ser desconectada implementa o IMarshal interface. Em caso afirmativo, ele obtém o ponteiro para essa interface; Caso contrário, ele obtém um ponteiro para o padrão do empacotador (that is, COM) IMarshal implementação.
- Usando que IMarshal ponteiro interface que ele foi adquirido, em seguida, chama a função IMarshal::DisconnectObject Para desconectar todos os limite - de - processo clientes.
Cliente de um objeto não chamar CoDisconnectObject Para desconectar se o servidor (os clientes devem usar IUnknown::Release Para essa finalidade). Em vez disso, chama um servidor OLE CoDisconnectObject Para desconectar forçosamente clientes de um objeto, geralmente em resposta a um usuário fechar o aplicativo servidor.
Da mesma forma, um contêiner OLE que ofereça suporte a externo links para seu incorporado objetos podem chamar CoDisconnectObject Para destruir esses links. Novamente, esta chamar normalmente é feita em resposta a um usuário fechar o aplicativo.
O contêiner deve primeiro chamar IOleObject::Close Para todos os seus objetos OLE, cada um deles deve enviar IAdviseSink::OnClose As notificações para seus vários clientes. E o contêiner segura pode chamar CoDisconnectObject Para fechar as conexões existentes.
CoDisconnectObject Não necessariamente desconecta out - de - processo clientes imediatamente.
Se quaisquer chamadas empacotadas pendente no objeto de servidor, CoDisconnectObject Desconecta o objeto apenas quando essas chamadas tiverem retornado.
Nesse meio tempo, CoDisconnectObject Define um sinalizador que faz com que as novas chamadas empacotadas para retornar CO_E_OBJECTNOTCONNECTED.
Para determinar se a plataforma oferece suporte a essa função, consulte Determinando suporte COM APIs.
Requirements
Header | objbase.h |
Library | ole32.lib |
Windows Embedded CE | Windows CE 3.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |