msiSetExternalUIRecord 函数 (msi.h)
MsiSetExternalUIRecord 函数启用外部用户界面 (UI) 处理程序。
语法
UINT MsiSetExternalUIRecord(
[in] INSTALLUI_HANDLER_RECORD puiHandler,
[in] DWORD dwMessageFilter,
[in] LPVOID pvContext,
[out, optional] PINSTALLUI_HANDLER_RECORD ppuiPrevHandler
);
参数
[in] puiHandler
指定符合 INSTALLUI_HANDLER_RECORD规范的 回调函数。
若要禁用当前的外部 UI 处理程序,请调用此参数设置为 NULL 值的函数。
[in] dwMessageFilter
指定要使用外部消息处理程序处理的消息。 如果外部处理程序返回非零结果,则不会将该消息发送到 UI,而是在启用日志记录时记录该消息。 有关详细信息,请参阅 MsiEnableLog。
Value | 含义 |
---|---|
|
正在使用信息中的文件。
收到此消息后,应显示 FilesInUse 对话框 。 |
|
安装过早终止。 |
|
记录错误消息。 |
|
记录警告消息。 |
|
记录用户请求。 |
|
未显示的状态消息将记录。 |
|
请求确定有效的源位置。 |
|
正在使用信息中的文件。 收到此消息后,应显示 MsiRMFilesInUse 对话框 。 |
|
磁盘空间不足。 |
|
记录新的安装操作的开始。 |
|
记录包含安装操作的数据记录。 |
|
记录用户界面初始化的参数。 |
|
进度栏信息。
此消息包含到目前为止有关单位的信息和单位总数。 此消息仅发送到外部用户界面,并且未记录。 有关详细信息,请参阅 MsiProcessMessage。 |
|
如果这不是安静安装,则会初始化 基本 UI 。
如果这是完整的 UI 安装,则尚未初始化 完整 UI 。 此消息仅发送到外部用户界面,并且未记录。 |
|
如果使用完整 UI,则完整 UI 已结束。
如果这不是安静安装,则基本 UI 尚未结束。 此消息仅发送到外部用户界面,并且未记录。 |
|
在显示“完整 UI”对话框之前发送。
此消息仅发送到外部用户界面,并且未记录。 |
|
产品安装开始。
该消息包含产品的 ProductName 和 ProductCode。 |
|
产品安装结束。
该消息包含产品的 ProductName、ProductCode 和返回值。 |
[in] pvContext
指向传递给回调函数的应用程序上下文的指针。
此参数可用于错误检查。
[out, optional] ppuiPrevHandler
返回指向以前设置的回调函数的指针,该函数符合 INSTALLUI_HANDLER_RECORD 规范;如果未设置任何回调,则返回 NULL 。
返回值
返回代码 | 说明 |
---|---|
|
函数成功完成。 |
|
此值指示尝试从自定义操作调用此函数。
无法从自定义操作调用此函数。 |
注解
无法从 自定义操作调用此函数。
通过调用 MsiSetExternalUIRecord 启用的外部 UI 处理程序接收 记录对象格式的消息。 通过调用 MsiSetExternalUI 启用的外部 UI 处理程序以字符串格式接收消息。 在 Windows Installer 内部 UI 之前,始终调用外部 UI。 在基于字符串的外部 UI 之前调用启用了基于记录的外部 UI。 如果基于记录的外部 UI 处理程序返回 0 (零) ,则会将消息发送到任何启用的基于字符串的外部 UI 处理程序。 如果外部 UI 处理程序返回非零值,则会取消内部 Windows Installer UI 处理程序,并将消息视为已处理。
此函数存储它已设置的外部用户界面。 若要将当前外部 UI 处理程序替换为以前的处理程序,请调用该函数,并将 INSTALLUI_HANDLER_RECORD 指定为 puiHandler 参数,将 0 (零) 指定为 dwMessageFilter 参数。
puiHandler 参数指向的外部用户界面处理程序无法完全控制外部用户界面,除非使用 dwUILevel 参数设置为INSTALLUILEVEL_NONE调用 MsiSetInternalUI。 如果未调用 MsiSetInternalUI ,则内部用户界面级别默认为INSTALLUILEVEL_BASIC。 因此,外部用户界面处理程序未处理的任何消息都由 Windows Installer 处理。 初始“准备安装”。 . 即使外部用户界面处理程序处理所有消息,对话框也会始终显示。 MsiSetExternalUI 只能从 引导 应用程序调用。 无法从自定义操作调用 MsiSetExternalUI 。
若要禁用此外部 UI 处理程序,请使用 puiHandler 参数的 NULL 值调用 MsiSetExternalUIRecord。
Windows Installer 2.0 和 Windows Installer 3.0: 不支持。 MsiSetExternalUIRecord 函数从 Windows Installer 3.1 开始可用。
有关使用基于记录的外部处理程序的详细信息,请参阅 使用 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 Installer 版本所需的最低 Windows Service Pack 的信息,请参阅 Windows Installer Run-Time要求。 |
目标平台 | Windows |
标头 | msi.h |
Library | Msi.lib |
DLL | Msi.dll |