IMAPIFormAdviseSink::OnActivateNext
Aplica-se a: Outlook 2013 | Outlook 2016
Indica se o formulário pode lidar com a classe de mensagem da próxima mensagem a ser exibida.
HRESULT OnActivateNext(
LPCSTR lpszMessageClass,
ULONG ulMessageStatus,
ULONG ulMessageFlags,
LPPERSISTMESSAGE FAR * ppPersistMessage
);
Parâmetros
lpszMessageClass
[in] Um ponteiro para a classe de mensagem da próxima mensagem.
ulMessageStatus
[in] Um bitmask de sinalizadores definidos pelo cliente ou definidos pelo provedor, copiados da propriedade PR_MSG_STATUS (PidTagMessageStatus) da próxima mensagem a ser exibida, que fornece status informações sobre a tabela de conteúdo na qual a mensagem está incluída.
ulMessageFlags
[in] Um ponteiro para um bitmask de sinalizadores copiados da propriedade PR_MESSAGE_FLAGS (PidTagMessageFlags) da próxima mensagem a ser exibida que indica o estado atual da mensagem.
ppPersistMessage
[out] Um ponteiro para um ponteiro para a implementação IPersistMessage para o objeto de formulário usado para o novo formulário, se um novo formulário for necessário. Um ponteiro para NULL pode ser retornado se o objeto de formulário atual puder ser usado para exibir e salvar a próxima mensagem.
Valor de retorno
S_OK
A notificação foi bem-sucedida e o formulário pode lidar com a próxima mensagem.
S_FALSE
O formulário não manipula a classe de mensagem da próxima mensagem.
Comentários
Os visualizadores de formulário chamam o método IMAPIFormAdviseSink::OnActivateNext para ajudar o formulário a determinar se ele pode exibir a próxima mensagem em uma pasta. A próxima mensagem pode ser uma mensagem de qualquer classe, mas normalmente é da mesma classe ou de uma classe relacionada. Isso torna o processo de leitura de várias mensagens da mesma classe mais eficiente, permitindo que aplicativos cliente reutilizem objetos de forma sempre que possível.
A maioria dos objetos de formulário usará a classe de mensagem apontada pelo parâmetro lpszMessageClass para determinar se eles podem lidar com a próxima mensagem. Normalmente, um formulário pode lidar com mensagens que pertencem a classes das quais a classe padrão do formulário é uma subclasse, além de mensagens que pertencem à classe padrão. No entanto, um formulário pode usar outros fatores para determinar, sem dúvida, se uma mensagem pode ser tratada, como o status enviado ou não da próxima mensagem.
Observações para implementadores
Retorne S_OK e NULL no parâmetro ppPersistMessage se o formulário puder manipular a classe de mensagem. Se o formulário puder criar um novo formulário que possa lidar com a mensagem que o formulário não pode manipular, siga estas etapas:
Chame a fábrica de classes do formulário para criar uma instância de um novo objeto de formulário.
Armazene essa instância no conteúdo do parâmetro de ponteiro ppPersistMessage .
Retorne S_OK.
O visualizador de formulário carregará a mensagem usando o método IPersistMessage::Load que pertence ao objeto apontado por ppPersistMessage.
Se nem o formulário nem um formulário que você pode criar puder lidar com a próxima mensagem, retorne S_FALSE. No entanto, em geral, os formulários não devem retornar esse valor porque isso causa uma diminuição do desempenho no visualizador de formulários.
Referência do MFCMAPI
Para ver códigos de exemplo do MFCMAPI, confira a tabela a seguir.
Arquivo | Função | Comentário |
---|---|---|
MAPIFormFunctions.cpp |
CMyMAPIFormViewer::ActivateNext |
O MFCMAPI usa o método IMAPIFormAdviseSink::OnActivateNext para implementar o método IMAPIViewContext::ActivateNext . |
Confira também
IMAPIViewContext::ActivateNext
Propriedade Canônica PidTagMessageFlags
Propriedade Canônica PidTagMessageStatus