msiSetExternalUIRecord 函数 (msi.h)
MsiSetExternalUIRecord 函数启用外部用户界面 (UI) 处理程序。
语法
UINT MsiSetExternalUIRecord(
[in] INSTALLUI_HANDLER_RECORD puiHandler,
[in] DWORD dwMessageFilter,
[in] LPVOID pvContext,
[out, optional] PINSTALLUI_HANDLER_RECORD ppuiPrevHandler
);
parameters
[in] puiHandler
指定符合 INSTALLUI_HANDLER_RECORD 规范的回调函数。
若要禁用当前外部 UI 处理程序,请使用此参数设置为 NULL 值调用 函数。
[in] dwMessageFilter
指定要使用外部消息处理程序处理的消息。 如果外部处理程序返回非零结果,则该消息不会发送到 UI,而是在启用日志记录时记录消息。 有关详细信息,请参阅 MsiEnableLog。
值 | 含义 |
---|---|
|
正在使用的文件信息。
收到此消息时,应显示 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 参数指向的外部用户界面处理程序不能完全控制外部用户界面,除非调用 MsiSetInternalUI 并将 dwUILevel 参数设置为 INSTALLUILEVEL_NONE。 如果未调用 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 运行时要求。 |
目标平台 | Windows |
标头 | msi.h |
Library | Msi.lib |
DLL | Msi.dll |