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:
Remove todas as estruturas MAPIUID registradas pelo provedor do repositório de mensagens.
Remove a linha do provedor do repositório de mensagens da tabela status.
Chama IMSLogon::Logoff para liberar todos os objetos abertos, subobjectos e status objetos.
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.