INSTALLUI_HANDLER_RECORD回调函数 (msi.h)

INSTALLUI_HANDLER_RECORD函数原型定义安装程序为进度通知和错误消息调用的回调函数。 调用 MsiSetExternalUIRecord 函数以启用基于记录的外部用户界面 (UI) 处理程序。

Windows Installer 3.0 和 Windows Installer 2.0: 不支持。 从 Windows Installer 版本 3.1 及更高版本开始可用。

语法

INSTALLUI_HANDLER_RECORD InstalluiHandlerRecord;

int InstalluiHandlerRecord(
  LPVOID pvContext,
  UINT iMessageType,
  MSIHANDLE hRecord
)
{...}

参数

pvContext

指向传递给 MsiSetExternalUIRecord 函数的应用程序上下文的指针。 此参数可用于错误检查。

iMessageType

指定一个消息框样式、一个消息框图标类型、一个默认按钮和一个安装消息类型的组合。 此参数必须是下列参数之一。

消息框 StylesFlag 含义
MB_ABORTRETRYIGNORE
消息框包含 “中止”、“ 重试”和“ 忽略” 按钮。
MB_OK
消息框包含 “确定” 按钮。 这是默认值。
MB_OKCANCEL
消息框包含 “确定” 和“ 取消” 按钮。
MB_RETRYCANCEL
消息框包含 “重试” 和“ 取消” 按钮。
MB_YESNO
消息框包含“ ”和“ ”按钮。
MB_YESNOCANCEL
消息框包含“”、“”和“取消”按钮。
 
消息框 IconTypesFlag 含义
MB_ICONEXCLAMATION、MB_ICONWARNING
消息框中将显示一个感叹号。
MB_ICONINFORMATION、MB_ICONASTERISK
信息符号将显示在消息框中。
MB_ICONQUESTION
消息框中将显示一个问号。
MB_ICONSTOP、MB_ICONERROR、MB_ICONHAND
消息框中将显示一个停止标志。
 
默认 ButtonsFlag 含义
MB_DEFBUTTON1
第一个按钮是默认按钮。
MB_DEFBUTTON2
第二个按钮是默认按钮。
MB_DEFBUTTON3
第三个按钮是默认按钮。
 
安装消息 TypesFlag 含义
INSTALLMESSAGE_FATALEXIT
过早终止
INSTALLMESSAGE_ERROR
格式化错误消息
INSTALLMESSAGE_WARNING
带格式的警告消息
INSTALLMESSAGE_USER
用户请求消息。
INSTALLMESSAGE_INFO
日志信息性消息
INSTALLMESSAGE_FILESINUSE
当前正在使用的文件列表,在被替换之前必须关闭
INSTALLMESSAGE_RESOLVESOURCE
请求确定有效的源位置
INSTALLMESSAGE_RMFILESINUSE
当前正在使用的文件列表,在被替换之前必须关闭。 从 Windows Installer 版本 4.0 开始提供。 有关此消息的详细信息,请参阅将重新启动管理器与外部 UI 配合使用
INSTALLMESSAGE_OUTOFDISKSPACE
磁盘空间不足消息
INSTALLMESSAGE_ACTIONSTART
开始操作消息。 此消息包括操作名称和说明。
INSTALLMESSAGE_ACTIONDATA
与单个操作项关联的格式化数据。
INSTALLMESSAGE_PROGRESS
进度仪表信息。 此消息包括到目前为止的单位数和总单位数的信息。
INSTALLMESSAGE_COMMONDATA
用户界面的格式化对话框信息。
INSTALLMESSAGE_INITIALIZE
在 UI 初始化之前发送,无字符串数据
INSTALLMESSAGE_TERMINATE
UI 终止后发送,无字符串数据
INSTALLMESSAGE_SHOWDIALOG
在显示创作的对话框或向导之前发送
INSTALLMESSAGE_INSTALLSTART
在安装产品之前发送。
INSTALLMESSAGE_INSTALLEND
在安装产品后发送。
 
 

如果缺少上述任何消息,应使用以下默认值:MB_OK、无图标和MB_DEFBUTTON1。 没有默认的安装消息类型;始终指定消息类型。

hRecord

指定记录对象的句柄。 有关记录对象的信息,请参阅 记录处理函数

返回值

以下返回值映射到消息框样式指定的按钮:

IDOK

 
IDCANCEL
 
IDABORT
 
IDRETRY
 
IDIGNORE
 
IDYES
 
IDNO

注解

如果知道调用方感兴趣的错误或消息类型,并且想要避免分析发送到INSTALLUI_HANDLER类型的外部 UI 处理程序的字符串消息,但从 hRecord 字段检索相关数据,则应使用这种类型的外部 UI 处理程序。

有关从外部用户界面处理程序返回值的详细信息,请参阅 从外部用户界面处理程序返回值 主题。 发送到基于记录的外部 UI 处理程序的 hRecord 对象由 Windows Installer 拥有,并且仅在回调的生存期内有效。 回调应从记录中提取所需的任何数据,并且不应关闭该句柄。

Windows Installer 将忽略基于记录的外部 UI 处理程序更改 hRecord 对象中的数据的任何尝试。

若要详细了解如何使用基于记录的外部处理程序,请参阅使用 MsiSetExternalUIRecord 监视安装

要求

要求
最低受支持的客户端 Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer 3.1。
目标平台 Windows
标头 msi.h

另请参阅

MsiSetExternalUI

在 Windows Installer 3.0 及更低版本中不受支持