Desligar um provedor de serviços
Aplica-se a: Outlook 2013 | Outlook 2016
Quando um cliente chama o método IMAPISession::Logoff para encerrar a sessão e desligar todos os provedores de serviços ativos, o MAPI, por sua vez, chama os seguintes métodos:
IABLogon::Logoff para provedores de catálogo de endereços.
IMSLogon::Logoff para provedores de repositório de mensagens.
IXPLogon::TransportLogoff para provedores de transporte.
Esses métodos têm implementações semelhantes. As tarefas main executadas por um método logoff são as seguintes:
Liberando todos os objetos abertos, incluindo subobjetos e objetos status.
Chamando o método IUnknown::Release do objeto de suporte para descretar sua contagem de referência.
Removendo todas as estruturas MAPIUID registradas do provedor.
Removendo a linha do provedor na tabela status.
Executando todas as tarefas relacionadas à limpeza de recursos, como o seguinte:
Encerrando uma conexão com um servidor remoto.
Decrementando a contagem de referência no objeto logon.
Removendo o objeto logon da lista de objetos de logon que seu provedor armazena.
No modo de depuração, emitindo rastreamentos para localizar objetos que vazaram memória.
Quando o método logoff retornar, o MAPI chama o seguinte:
O método IUnknown::Release do objeto logon.
O método Shutdown do objeto provedor para executar todas as tarefas finais de limpeza. Dependendo do tipo do provedor, um dos seguintes métodos é chamado:
IABProvider::Desligamento para provedores de catálogo de endereços
IMSProvider::Desligamento para provedores de repositório de mensagens
IXPProvider::Desligamento para provedores de transporte
Método IUnknown::Release do objeto provedor.
Se o provedor for um repositório de mensagens, uma chamada do cliente para IMsgStore::StoreLogoff também iniciará o processo de desligamento. O StoreLogoff desliga um provedor de armazenamento de mensagens específico e não tem efeito na sessão. Somente um provedor de armazenamento de mensagens pode ser desligado com esse método; não há nenhuma maneira explícita de desligar um catálogo de endereços ou um provedor de transporte específico. Para obter informações sobre como responder a uma chamada storeLogoff , consulte Desligar um provedor de repositório de mensagens.
A DLL do provedor será descarregada quando o MAPI chamar a função de API Win32 FreeLibrary, uma chamada feita após o último cliente ativo ter chamado MAPIUninitialize. A essa altura, seu provedor de serviços terá terminado de desligar.