IMAPIFormAdviseSink::OnActivateNext
Область применения: Outlook 2013 | Outlook 2016
Указывает, может ли форма обрабатывать класс сообщения следующего сообщения для отображения.
HRESULT OnActivateNext(
LPCSTR lpszMessageClass,
ULONG ulMessageStatus,
ULONG ulMessageFlags,
LPPERSISTMESSAGE FAR * ppPersistMessage
);
Параметры
lpszMessageClass
[в] Указатель на класс сообщения следующего сообщения.
ulMessageStatus
[в] Битовая маска определенных клиентом или поставщиком флагов, скопированная из свойства PR_MSG_STATUS (PidTagMessageStatus) следующего сообщения для отображения, которая предоставляет сведения о состоянии таблицы содержимого, в которую включено сообщение.
ulMessageFlags
[в] Указатель на битовую маску флагов, скопированную из свойства PR_MESSAGE_FLAGS (PidTagMessageFlags) следующего сообщения, указывающего текущее состояние сообщения.
ppPersistMessage
[out] Указатель на указатель на реализацию IPersistMessage для объекта формы, используемого для новой формы, если требуется новая форма. Указатель на NULL можно вернуть, если текущий объект формы можно использовать для отображения и сохранения следующего сообщения.
Возвращаемое значение
S_OK
Уведомление прошло успешно, и форма может обрабатывать следующее сообщение.
S_FALSE
Форма не обрабатывает класс сообщения следующего сообщения.
Замечания
Средства просмотра форм вызывают метод IMAPIFormAdviseSink::OnActivateNext , чтобы помочь форме определить, может ли она отображать следующее сообщение в папке. Следующим сообщением может быть сообщение любого класса, но обычно оно относится к тому же или связанному классу. Это делает процесс чтения нескольких сообщений одного класса более эффективным, позволяя клиентским приложениям по возможности повторно использовать объекты формы.
Большинство объектов формы будут использовать класс сообщения, на который указывает параметр lpszMessageClass , чтобы определить, могут ли они обрабатывать следующее сообщение. Обычно форма может обрабатывать сообщения, принадлежащие классам, для которых класс по умолчанию формы является подклассом, в дополнение к сообщениям, принадлежащим классу по умолчанию. Однако форма может использовать другие факторы, чтобы без сомнений определить, можно ли обрабатывать сообщение, например состояние отправки или неотправленности следующего сообщения.
Примечания для исполнителей
Верните S_OK и NULL в параметре ppPersistMessage , если форма может обрабатывать класс сообщения. Если форма может создать новую форму, которая может обрабатывать сообщение, которое форма не может обработать, выполните следующие действия.
Вызовите фабрику классов формы, чтобы создать экземпляр нового объекта формы.
Сохраните этот экземпляр в содержимом параметра указателя ppPersistMessage .
Возврат S_OK.
Средство просмотра форм загрузит сообщение с помощью метода IPersistMessage::Load , который принадлежит объекту, на который указывает ppPersistMessage.
Если ни форма, ни форма, которую можно создать, не могут обрабатывать следующее сообщение, верните S_FALSE. Однако в целом формы не должны возвращать это значение, так как это приводит к снижению производительности в средстве просмотра форм.
Справочные материалы по MFCMAPI
Пример кода MFCMAPI указан в приведенной ниже таблице.
Файл | Функция | Comment |
---|---|---|
MAPIFormFunctions.cpp |
CMyMAPIFormViewer::ActivateNext |
MFCMAPI использует метод IMAPIFormAdviseSink::OnActivateNext для реализации метода IMAPIViewContext::ActivateNext . |
См. также
IMAPIViewContext::ActivateNext
Каноническое свойство PidTagMessageFlags
Каноническое свойство PidTagMessageStatus