IMAPIViewContext::ActivateNext
Область применения: Outlook 2013 | Outlook 2016
Активирует следующее или предыдущее сообщение в порядке представления.
HRESULT ActivateNext(
ULONG ulDir,
LPCRECT prcPosRect
);
Параметры
ulDir
[в] Флаги состояния, предоставляющие сведения о сообщении для активации. Допустимые параметры флага:
VCDIR_CATEGORY. Средство просмотра должно активировать сообщение в другой категории представления. Активируемое сообщение:
Первое сообщение в следующей категории представления, если этот флаг имеет значение ORed с VCDIR_NEXT.
Последнее сообщение в предыдущей категории представления, если этот флаг имеет значение ORed с VCDIR_PREV, а предыдущая категория развернута.
Первое сообщение в предыдущей категории представления, если этот флаг имеет значение ORed с VCDIR_PREV и предыдущая категория не развернута. В этом случае предыдущая категория подвергается автоматическому расширению.
VCDIR_DELETE. Средство просмотра должно активировать следующее или предыдущее сообщение, так как текущее сообщение было удалено.
VCDIR_MOVE. Средство просмотра должно активировать следующее или предыдущее сообщение, так как текущее сообщение было перемещено.
VCDIR_NEXT. Средство просмотра должно активировать следующее сообщение в порядке представления.
VCDIR_PREV. Средство просмотра должно активировать предыдущее сообщение в порядке представления.
VCDIR_UNREAD. Средство просмотра должно активировать следующее или предыдущее непрочитанное сообщение в порядке представления.
prcPosRect
[в] Указатель на структуру WINDOWS RECT , содержащую размер и положение окна, используемого для отображения активированного сообщения.
Возвращаемое значение
S_OK
Сообщение успешно активировано.
S_FALSE
Сообщение было успешно активировано, но в процессе была открыта форма другого типа.
Замечания
Объекты формы вызывают метод IMAPIViewContext::ActivateNext, чтобы изменить, какое сообщение отображается пользователю. Значение, переданное в параметре ulDir , указывает, какое сообщение должно быть активировано, а в некоторых случаях — почему. Флаги VCDIR_NEXT и VCDIR_PREVIOUS соответствуют пользователям, которые выбирают в представлении команду Далее или Предыдущая соответственно. Эти операции обычно соответствуют переходу вверх или вниз по одному сообщению в списке сообщений средства просмотра формы.
Флаги VCDIR_DELETE и VCDIR_MOVE задаются методами IMAPIMessageSite::D eleteMessage и IMAPIMessageSite::MoveMessage соответственно. Реализации этих методов вызывают ActivateNext с соответствующим направлением, а затем выполняют запрошенную операцию с сообщением, если вызов ActivateNext не завершился ошибкой. Средства просмотра форм обычно позволяют пользователям указывать направление для перемещения в списке сообщений.
Примечания для исполнителей
Реализация IMAPIViewContext::ActivateNext создает следующее или предыдущее сообщение в папке в зависимости от значения текущего сообщения ulDir. После возврата ActivateNext вызовите IMAPIMessageSite::GetMessage , чтобы получить указатель на только что активированное сообщение.
Примечания для вызывающих методов
Если ActivateNext возвращает S_FALSE или текущее сообщение отсутствует, выполните обычную процедуру завершения работы, которая должна включать вызов метода IMAPIForm::ShutdownForm формы. Если отображается следующее или предыдущее сообщение, используйте прямоугольник окна, переданный в параметре prcPosRect , чтобы отобразить его.
Справочные материалы по MFCMAPI
Пример кода MFCMAPI указан в приведенной ниже таблице.
Файл | Функция | Comment |
---|---|---|
MyMAPIFormViewer.cpp |
CMyMAPIFormViewer::ActivateNext |
MFCMAPI реализует метод IMAPIViewContext::ActivateNext в этой функции. |