IMAPISupport::StoreLogoffTransports
Aplica-se a: Outlook 2013 | Outlook 2016
Solicita a liberação ordenada de um repositório de mensagens.
HRESULT StoreLogoffTransports(
ULONG FAR * lpulFlags
);
Parâmetros
lpulFlags
[in, out] Um bitmask de sinalizadores que controla como o logoff do repositório de mensagens ocorre. Na entrada, todos os sinalizadores para esse parâmetro são mutuamente exclusivos; apenas um dos seguintes sinalizadores pode ser definido por chamada:
LOGOFF_ABORT
Qualquer atividade do provedor de transporte para este repositório deve ser interrompida antes do logoff. O controle é retornado ao cliente depois que a atividade é interrompida e o spooler MAPI foi registrado fora do repositório. Se alguma atividade de transporte estiver ocorrendo, o logoff não ocorrerá e nenhuma alteração no comportamento do provedor de transporte ou do provedor de transporte mapi ocorrerá. Se não houver nenhuma atividade no momento, o spooler MAPI liberará o repositório.
LOGOFF_NO_WAIT
O spooler MAPI deve liberar o repositório e retornar o controle ao cliente imediatamente depois que todos os emails de saída prontos para serem enviados forem enviados. Se o repositório de mensagens tiver a caixa de entrada padrão, qualquer mensagem em processo será recebida e, em seguida, a recepção adicional será desabilitada.
LOGOFF_ORDERLY
O spooler MAPI deve liberar o repositório e retornar o controle ao cliente imediatamente após o término do processamento de mensagens pendentes. Nenhuma nova mensagem deve ser processada.
LOGOFF_PURGE
Funciona da mesma forma que o sinalizador de LOGOFF_NO_WAIT. O sinalizador LOGOFF_PURGE retorna o controle ao chamador após a conclusão.
LOGOFF_QUIET
O logoff não deve ocorrer se alguma atividade do provedor de transporte estiver ocorrendo. O tipo de atividade que ocorre é retornado como um sinalizador na saída.
Na saída, o spooler MAPI pode retornar um ou mais dos seguintes sinalizadores:
LOGOFF_COMPLETE
O logoff pode ser concluído. Todos os recursos associados ao repositório foram liberados e o objeto foi invalidado. O spooler MAPI executou ou executará todas as solicitações. Somente o método IUnknown::Release do repositório de mensagens deve ser chamado neste momento.
LOGOFF_INBOUND
No momento, uma mensagem está entrando na loja de um ou mais provedores de transporte.
LOGOFF_OUTBOUND
No momento, uma mensagem está sendo enviada do repositório por um ou mais provedores de transporte.
LOGOFF_OUTBOUND_QUEUE
Atualmente, há mensagens na fila de saída do repositório.
Valor de retorno
S_OK
O procedimento de logoff foi bem-sucedido.
Comentários
O método IMAPISupport::StoreLogoffTransports é implementado para objetos de suporte do provedor do repositório de mensagens. Os provedores do repositório de mensagens chamam StoreLogoffTransports para dar aos aplicativos cliente algum controle sobre como o MAPI lida com a atividade do provedor de transporte enquanto um repositório de mensagens está fechando.
Se outro processo tiver a loja a ser registrada aberta para o mesmo perfil, a MAPI ignorará uma chamada para StoreLogoffTransports e retornará o sinalizador LOGOFF_COMPLETE no parâmetro lpulFlags .
O comportamento do provedor da loja após o retorno do StoreLogoffTransports deve ser baseado no valor de lpulFlags, que indica o sistema status e transmite instruções do cliente para o comportamento de logoff.
Notas para chamadores
O StoreLogoffTransports normalmente é chamado do método IMsgStore::StoreLogoff de um provedor de loja. No entanto, ele também pode ser chamado do método IUnknown::Release do repositório de mensagens. Implemente o método Release do repositório de mensagens para que você possa marcar se ocorreu ou não uma chamada para StoreLogoffTransports. Se uma chamada não tiver ocorrido, chame StoreLogoffTransports com o conjunto de sinalizadores LOGOFF_ABORT.
O parâmetro lpulFlags é definido como um sinalizador que indica como o cliente exige que o repositório de mensagens seja desligado. Determine a configuração apropriada para ulFlags com base na configuração do parâmetro correspondente na chamada para StoreLogoff. Ou seja, se um cliente chamou seu método StoreLogoff com ulFlags definido como LOGOFF_ORDERLY, você deverá chamar StoreLogoffTransports com ulFlags definido como LOGOFF_ORDERLY.
Para obter mais informações sobre o processo de logoff do repositório de mensagens, consulte Desligar um provedor do Repositório de Mensagens.