Compartilhar via


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:

  1. Chame a fábrica de classes do formulário para criar uma instância de um novo objeto de formulário.

  2. Armazene essa instância no conteúdo do parâmetro de ponteiro ppPersistMessage .

  3. 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

IPersistMessage : IUnknown

IPersistMessage::Load

Propriedade Canônica PidTagMessageFlags

Propriedade Canônica PidTagMessageStatus

IMAPIFormAdviseSink : IUnknown

MFCMAPI como exemplo de código