SERVICEWIZARDDLGPROC

适用于:Outlook 2013 | Outlook 2016

定义由配置文件向导调用的回调函数,以允许服务提供程序在显示提供程序的属性表或页面时对用户事件做出反应。

属性
标头文件:
Mapiwz.h
由实现的已定义函数:
服务提供程序
由调用的已定义函数:
MAPI 配置文件向导
BOOL SERVICEWIZARDDLGPROC(
  HWND hDlg,
  UINT wMsgID,
  WPARAM wParam,
  LPARAM lParam
);

参数

hDlg

[in]“配置文件向导”对话框的窗口句柄。

wMsgID

[in]要处理的窗口消息。 除了模式对话框预期的常规窗口消息外,还可以接收以下消息:

WM_CLOSE

配置文件向导已完成。 服务提供商应执行所有必需的清理,例如解除分配任何动态分配的内存。

WM_COMMAND

已选择提供程序的控件之一,或者单击了 “下一步 ”或“ 后退 ”按钮。 wParam 参数中的值指示发生了其中哪些用户事件。

WM_INITDIALOG

用户已移动到另一个属性页,必须为其初始化对话框。 提供程序应初始化配置文件向导已添加到对话框中的控件。

WIZ_QUERYNUMPAGES

配置文件向导将提示提供程序需要显示的页数。 提供程序应返回页数,而不是 TRUE 或 FALSE。 例如,使用以下 return 语句来指示应显示三个页面:

return (BOOL)3;

wParam

[in]与窗口消息关联的 32 位参数。 可能的值取决于 wMsgID 参数中指定的消息。 除了模式对话框的常规窗口消息的预期值外,还可以接收以下值:

WIZ_NEXT

wMsgID 包含WM_COMMAND时,用户已单击“ 下一步 ”按钮。

WIZ_PREV

wMsgID 包含WM_COMMAND时,用户已单击“ 后退 ”按钮。

lParam

[in]与窗口消息关联的 32 位参数。 可能的值取决于 wMsgID 参数中指定的消息。

返回值

基于 SERVICEWIZARDDLGPROC 的函数返回的值取决于收到的窗口消息。 请特别注意WIZ_QUERYNUMPAGES消息的异常返回值。 正常返回值为:

TRUE

服务提供程序已处理收到的窗口消息。

FALSE

服务提供程序尚未处理收到的窗口消息。

备注

当用户从一个属性页移动到另一个属性页时,提供程序负责隐藏旧页的控件并显示下一页或上一页的控件。 当用户单击“ 下一步 ”按钮时,将调用基于 SERVICEWIZARDDLGPROC 的 函数,并在 wParam 参数中WM_COMMAND消息和WIZ_NEXT。 以下步骤描述了在用户单击“ 下一步 ”和呈现第一个提供程序的配置页之间所发生的情况。

  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 函数,根据用户单击) 按钮,发送 wParam 参数设置为 WIZ_NEXT 或 WIZ_PREV (WM_COMMAND 消息。 提供程序负责显示或隐藏其控件,并将其数据写入传递给配置文件向导的 IMAPIProp ,以逐步完成其页面序列。 如果成功显示下一页或上一页,则提供程序应返回 TRUE;如果无法显示下一页或上一页,则返回 FALSE。 提供程序需要注意何时单步执行其页面序列,并通过隐藏其控件并将数据写入配置文件来做出适当的响应。

  7. 如果用户步过提供程序的页面范围之外,配置文件向导将从对话框中删除提供程序的隐藏控件,并调用下一个提供程序或显示其下一页(如果该提供程序是最后一个提供程序)。