Compartilhar via


Envio e recebimento de notificações de formulário

Aplica-se a: Outlook 2013 | Outlook 2016

As notificações de formulário são usadas no MAPI para facilitar a comunicação tanto do formulário para o visualizador quanto do visualizador para o formulário.

Os formulários enviam notificações ao visualizador quando ocorrem um dos seguintes eventos:

  • O formulário está fechado.

  • Uma nova mensagem é carregada no formulário.

  • Uma operação de salvamento é concluída.

  • Uma mensagem é enviada.

Cada um desses tipos de evento corresponde a um método específico no IMAPIViewAdviseSink : IUnknown, uma das interfaces que o visualizador de formulários deve implementar. Quando um evento ocorre, o formulário chama o método IMAPIViewAdviseSink correspondente no coletor de aconselhamento do visualizador. Por exemplo, quando uma nova mensagem chega que o visualizador deve incluir em sua exibição, o formulário chama o método IMAPIViewAdviseSink::OnNewMessage .

Implementar seu modo de exibição aconselha o coletor de uma forma que faça sentido para o visualizador; não há nenhuma implementação padrão. Por exemplo, no OnNewMessage , você pode atualizar a exibição da tabela de conteúdo da pasta atual para incluir a mensagem recém-chegada. Em IMAPIViewAdviseSink::OnSubmitted, o método chamado quando você recebe um evento de mensagem enviada, você pode copiar a mensagem enviada para uma pasta Itens Enviados.

Os formulários recebem notificação do visualizador quando ocorre uma alteração que afeta o formulário e quando você está carregando uma nova mensagem. Para notificar um formulário, chame um dos métodos de IMAPIFormAdviseSink: IMAPIFormAdviseSink::OnChange ou IMAPIFormAdviseSink::OnActivateNext. Chame OnChange para comunicar status. Por exemplo, se o formulário estiver exibindo o último item em uma pasta quando uma nova mensagem chegar, chame OnChange com o sinalizador VCSTATUS_NEXT definido para informar ao formulário que agora há um próximo item.

Chame OnActivateNext para alertar o formulário para a chegada de uma nova mensagem que ele pode ou não ser capaz de exibir. Passe a classe de mensagem da mensagem para OnActivateNext.

As notificações por um objeto de formulário para o aplicativo cliente são tratadas pela interface IMAPIViewAdviseSink do aplicativo cliente. Para obter mais informações, consulte IMAPIViewAdviseSink : IUnknown.