Compartilhar via


Desligar um provedor de repositório de mensagens

Aplica-se a: Outlook 2013 | Outlook 2016

Se o provedor for um provedor de armazenamento de mensagens, ele poderá ser desligado de uma das seguintes maneiras:

  • Quando um cliente ou o spooler MAPI chama IMsgStore::StoreLogoff. Desligar um provedor de repositório de mensagens com o StoreLogoff faz com que o desligamento ocorra de maneira ordenada e controlada.

  • Quando um cliente chama IMAPISession::Logoff.

Sua implementação do IMsgStore::StoreLogoff deve começar chamando IMAPISupport::StoreLogoffTransports para informar à MAPI que ele está sendo desligado, indicando que todos os provedores de transporte relacionados devem ser desligados. Quando IMsgStore::StoreLogoff retorna, o chamador invoca o método IUnknown::Release do repositório de mensagens. Implemente este método Release chamando o método IUnknown::Release do objeto de suporte.

O MAPI executa as seguintes tarefas em sua implementação de IUnknown::Release para armazenamentos de mensagens:

  1. Remove todas as estruturas MAPIUID registradas pelo provedor do repositório de mensagens.

  2. Remove a linha do provedor do repositório de mensagens da tabela status.

  3. Chama IMSLogon::Logoff para liberar todos os objetos abertos, subobjectos e status objetos.

  4. Chama IUnknown::Release para liberar o objeto de logon do provedor do repositório de mensagens.

Alguns clientes podem omitir a chamada para IMsgStore::StoreLogoff, iniciando o desligamento do provedor do repositório de mensagens com a chamada para o método IUnknown::Release do repositório de mensagens. Um desligamento nessas circunstâncias sem a chamada para StoreLogoff é menos ordenado e controlado. Escreva o método Release do repositório de mensagens para lidar com essa possibilidade e controlar se ocorreu ou não uma chamada para IMAPISupport::StoreLogoffTransports . StoreLogoffTransports deve ser chamado uma vez durante o processo de desligamento. Se você detectar no método Release que o StoreLogoffTransports ainda não foi chamado, invoque-o com o sinalizador LOGOFF_ABORT.

Confira também

Desligar um provedor de serviços