IMAPIForm::DoVerb
Область применения: Outlook 2013 | Outlook 2016
Запрашивает, чтобы форма выполняла все задачи, связанные с определенной командой.
HRESULT DoVerb(
LONG iVerb,
LPMAPIVIEWCONTEXT lpViewContext,
ULONG_PTR hwndParent,
LPCRECT lprcPosRect
);
Параметры
iVerb
[в] Число, связанное с одной из глаголов формы.
lpViewContext
[в] Указатель на объект контекста представления. Параметр lpViewContext может иметь значение NULL.
hwndParent
[в] Дескриптор родительского окна любых диалоговых окон или окон, отображаемых этим методом. Параметр hwndParent должен иметь значение NULL , если диалоговое окно или окно не является модальным.
lprcPosRect
[в] Указатель на структуру WIN32 RECT , содержащую размер и положение окна формы.
Возвращаемое значение
S_OK
Команда успешно вызвана.
OLEOBJ_S_CANNOT_DOVERB_NOW
Команда, представленная параметром iVerb , допустима, но форма не может выполнять операции, связанные с ней в данный момент.
Замечания
Средства просмотра форм вызывают метод IMAPIForm::D oVerb , чтобы запросить выполнение формой задач, которые она связывает с каждой командой, которую поддерживает форма.
Каждая из поддерживаемых глаголов определяется числовым значением, передаваемым в DoVerb в параметре iVerb . Типичные реализации DoVerb содержат инструкцию switch , которая проверяет допустимые значения для параметра iVerb для формы.
Примечания для исполнителей
Если средство просмотра форм указывает контекст представления в параметре lpViewContext , используйте его в реализации DoVerb вместо контекста представления, переданного в предыдущем вызове метода IMAPIForm::SetViewContext . Внесите все необходимые изменения во внутренние структуры данных и не сохраняйте контекст представления.
Выполните следующие задачи в реализации DoVerb :
Выполните любой код, необходимый для конкретной команды, связанной с параметром iVerb .
При необходимости восстановите исходный контекст представления.
Если был передан неизвестный номер глагола, верните MAPI_E_NO_SUPPORT. В противном случае верните результат, основанный на успешном или неудачном выполнении команды.
Закройте форму. Вы всегда несете ответственность за закрытие формы после завершения вызова DoVerb .
Некоторые глаголы, например Печать, должны быть модальными по отношению к вызову DoVerb , то есть указанная операция должна быть завершена до возврата вызова DoVerb .
Чтобы получить структуру RECT , используемую окном формы, вызовите функцию GetWindowRect .
Не сохраняйте дескриптор в параметре hwndParent , так как он обычно остается действительным до завершения DoVerb, он может быть уничтожен сразу после возврата вызова.
Примечания для вызывающих методов
Немодальные глаголы можно сделать модальными, указав lpViewContext на реализацию контекста представления, которая возвращает флаг VCSTATUS_MODAL из метода IMAPIViewContext::GetViewStatus .
Дополнительные сведения о глаголах в MAPI см. в разделе Глаголы формы. Дополнительные сведения об обработке глаголов в OLE см. в разделе OLE и передача данных.
Справочные материалы по MFCMAPI
Пример кода MFCMAPI указан в приведенной ниже таблице.
Файл | Функция | Comment |
---|---|---|
MyMAPIFormViewer.cpp |
CMyMAPIFormViewer::CallDoVerb |
MFCMAPI использует метод IMAPIForm::D oVerb для вызова команды в форме. |