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


SERVICEWIZARDDLGPROC

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

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

Свойство Значение
Файл заголовка:
Mapiwz.h
Определена функция, реализованная:
Поставщики служб
Определенная функция, вызываемая:
Мастер профилей MAPI
BOOL SERVICEWIZARDDLGPROC(
  HWND hDlg,
  UINT wMsgID,
  WPARAM wParam,
  LPARAM lParam
);

Параметры

hDlg

[в] Дескриптор окна в диалоговом окне Мастер профилей.

wMsgID

[в] Сообщение окна, которое требуется обработать. Помимо обычных оконных сообщений, ожидаемых модальным диалоговым окном, можно получать следующие сообщения:

WM_CLOSE

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

WM_COMMAND

Выбран один из элементов управления поставщика или нажата кнопка Далее или Назад . Значение в параметре wParam указывает, какое из этих событий пользователя произошло.

WM_INITDIALOG

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

WIZ_QUERYNUMPAGES

Мастер профилей запрашивает количество страниц, которое должен отобразить поставщик. Поставщик должен возвращать количество страниц вместо TRUE или FALSE. Например, используйте следующую инструкцию return, чтобы указать, что должны отображаться три страницы:

return (BOOL)3;

wParam

[в] 32-разрядный параметр, связанный с сообщениями окна. Возможные значения зависят от сообщения, указанного в параметре wMsgID . В дополнение к значениям, ожидаемым в обычных сообщениях окна для модального диалогового окна, можно получить следующие значения:

WIZ_NEXT

Если wMsgID содержит WM_COMMAND, пользователь нажимает кнопку Далее .

WIZ_PREV

Если wMsgID содержит WM_COMMAND, пользователь нажал кнопку Назад .

lParam

[в] 32-разрядный параметр, связанный с сообщениями окна. Возможные значения зависят от сообщения, указанного в параметре wMsgID .

Возвращаемое значение

Значение, возвращаемое функцией на основе SERVICEWIZARDDLGPROC , зависит от полученного сообщения окна. Обратите внимание, в частности, на исключительное возвращаемое значение для сообщения WIZ_QUERYNUMPAGES. Обычные возвращаемые значения:

TRUE

Поставщик услуг обработал полученное сообщение окна.

FALSE

Поставщик услуг не обработал полученное сообщение окна.

Замечания

Когда пользователь переходит с одной страницы свойств на другую, поставщик отвечает за скрытие элементов управления старой страницы и отображение элементов управления для следующей или предыдущей страницы. Когда пользователь нажимает кнопку Далее , вызывается функция на основе SERVICEWIZARDDLGPROC с сообщением WM_COMMAND и WIZ_NEXT в параметре wParam . В следующих шагах описывается, что происходит между тем, когда пользователь нажимает кнопку Далее и когда отрисовываются страницы конфигурации первого поставщика.

  1. Мастер профилей скрывает все элементы управления, которые находятся в окне.

  2. Мастер профилей добавляет на страницу скрытые элементы управления поставщика.

  3. Мастер профилей вызывает SERVICEWIZARDDLGPROC, отправляя WM_INITDIALOG сообщение, чтобы поставщик смог инициализировать элементы управления.

  4. Мастер профилей вызывает SERVICEWIZARDDLGPROC, отправляя WIZ_QUERYNUMPAGES сообщение. Поставщик возвращает количество отображаемых страниц.

  5. Мастер профилей вызывает SERVICEWIZARDDLGPROC, отправляя сообщение WM_COMMAND с параметром wParam WIZ_NEXT или WIZ_PREV. На этом этапе поставщик возвращает значение FALSE {error} или показывает свои элементы управления и возвращает true {success}. Если мастер профилей передает ID_NEXT, отображается первая страница поставщика. При передаче ID_PREV отображается последняя страница.

  6. Мастер профилей вызывает функцию SERVICEWIZARDDLGPROC поставщика, отправляя сообщение WM_COMMAND с параметром wParam , для которого задано значение WIZ_NEXT или WIZ_PREV (в зависимости от того, какую кнопку нажал пользователь). Поставщик отвечает за отображение или скрытие своих элементов управления и запись своих данных в IMAPIProp , передаваемый мастеру профилей для пошагового выполнения последовательности страниц. Поставщик должен возвращать значение TRUE, если следующая или предыдущая страница успешно отображается, и FALSE, если ни следующая, ни предыдущая страница не могут быть показаны. Поставщик должен знать, когда он выходит за пределы последовательности страниц, и соответствующим образом реагировать, скрывая свои элементы управления и записывая свои данные в профиль.

  7. Если пользователь выходит за пределы диапазона страниц поставщика, мастер профилей удаляет скрытые элементы управления поставщика из диалогового окна и вызывает следующего поставщика или отображает его следующую страницу, если это был последний поставщик.