Поделиться через


Отправка и получение уведомлений формы

Область применения: Outlook 2013 | Outlook 2016

Уведомления о формах используются в MAPI для упрощения обмена данными как из формы, так и из средства просмотра в форму.

Формы отправляют уведомления в средство просмотра, когда происходит одно из следующих событий:

  • Форма закрыта.

  • В форме загружается новое сообщение.

  • Операция сохранения завершена.

  • Отправляется сообщение.

Каждый из этих типов событий соответствует определенному методу в IMAPIViewAdviseSink : IUnknown, одном из интерфейсов, который необходимо реализовать в средстве просмотра форм. При возникновении события форма вызывает соответствующий метод IMAPIViewAdviseSink в приемнике рекомендаций средства просмотра. Например, при поступлении нового сообщения, которое средство просмотра должно включить в его отображение, форма вызывает метод IMAPIViewAdviseSink::OnNewMessage .

Реализуйте приемник рекомендаций представления таким образом, который имеет смысл для вашего зрителя; отсутствует стандартная реализация. Например, в OnNewMessage можно обновить представление таблицы содержимого текущей папки, чтобы включить новое сообщение. В методе IMAPIViewAdviseSink::OnSubmitted, который вызывается при получении события отправленного сообщения, можно скопировать отправленное сообщение в папку Отправленные.

Формы получают уведомление от средства просмотра, когда происходит изменение, влияющее на форму, и при загрузке нового сообщения. Чтобы уведомить форму, вызовите один из методов IMAPIFormAdviseSink: IMAPIFormAdviseSink::OnChange или IMAPIFormAdviseSink::OnActivateNext. Вызовите OnChange , чтобы сообщить о состоянии. Например, если форма отображает последний элемент в папке при поступлении нового сообщения, вызовите OnChange с установленным флагом VCSTATUS_NEXT, чтобы сообщить форме, что теперь есть следующий элемент.

Вызовите OnActivateNext, чтобы предупредить форму о поступлении нового сообщения, которое она может отобразить или не сможет отобразить. Передайте класс сообщения в OnActivateNext.

Уведомления объекта формы для клиентского приложения обрабатываются интерфейсом IMAPIViewAdviseSink клиентского приложения. Дополнительные сведения см. в разделе IMAPIViewAdviseSink : IUnknown.