MsiSetExternalUIA 函数 (msi.h)
MsiSetExternalUI 函数启用外部用户界面处理程序。 在普通内部用户界面处理程序之前调用此外部 UI 处理程序。 外部 UI 处理程序通过返回非零值来禁止显示内部 UI,以指示它已处理消息。 有关详细信息,请参阅 关于用户界面。
语法
INSTALLUI_HANDLERA MsiSetExternalUIA(
[in] INSTALLUI_HANDLERA puiHandler,
[in] DWORD dwMessageFilter,
[in] LPVOID pvContext
);
参数
[in] puiHandler
指定符合 INSTALLUI_HANDLER 规范的回调函数。
[in] dwMessageFilter
指定要使用外部消息处理程序处理的消息。 如果外部处理程序返回非零结果,则不会将该消息发送到 UI,而是在启用日志记录时记录该消息。 有关详细信息,请参阅 MsiEnableLog 函数。
价值 | 意义 |
---|---|
|
正在使用的信息中的文件。 收到此消息后,应显示 FilesInUse 对话框。 |
|
安装过早终止。 |
|
将记录错误消息。 |
|
记录警告消息。 |
|
记录用户请求。 |
|
记录未显示的状态消息。 |
|
请求确定有效的源位置。 |
|
正在使用的信息中的文件。 收到此消息后,应显示 MsiRMFilesInUse 对话框。 |
|
磁盘空间不足。 |
|
记录新的安装操作的开始。 |
|
记录包含安装操作的数据记录。 |
|
记录用户界面初始化的参数。 |
|
进度栏 信息。 此消息包括到目前为止有关单位和单位总数的信息。 有关消息格式的说明,请参阅 MsiProcessMessage 函数。 此消息仅发送到外部用户界面,不会记录。 |
|
如果这不是安静的安装,则 基本 UI 已初始化。 如果这是安装 完整的 UI,则尚未初始化 完整的 UI。 此消息仅发送到外部用户界面,不会记录。 |
|
如果使用 完整的 UI,则 完整的 UI 已结束。 如果这不是一个安静的安装,基本 UI 尚未结束。 此消息仅发送到外部用户界面,不会记录。 |
|
在显示 完整的 UI 对话框之前发送。 此消息仅发送到外部用户界面,不会记录。 |
|
产品安装开始。
该消息包含产品的 ProductName 和 ProductCode。 |
|
产品安装结束。
该消息包含产品的 ProductName、ProductCode 和返回值。 |
[in] pvContext
指向传递给回调函数的应用程序上下文的指针。 此参数可用于错误检查。
返回值
返回值是以前设置的外部处理程序,如果没有以前设置的处理程序,则返回值为零(0)。
言论
若要还原以前的 UI 处理程序,请使用第一次调用
puiHandler 参数指向的外部用户界面处理程序无法完全控制外部用户界面,除非 使用 dwUILevel 参数设置为INSTALLUILEVEL_NONE调用 msiSetInternalUI。 如果未调用 MsiSetInternalUI,则内部用户界面级别默认为INSTALLUILEVEL_BASIC。 因此,外部用户界面处理程序未处理的任何消息都由 Windows Installer 处理。 初始“准备安装”。 . 即使外部用户界面处理程序处理所有消息,也始终会出现 “.” 对话框。
MsiSetExternalUI 只能从 引导 应用程序调用。 不能从自定义操作调用 MsiSetExternalUI。
注意
msi.h 标头将 MsiSetExternalUI 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 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。 有关 Windows Installer 版本所需的最低 Windows Service Pack 的信息,请参阅 Windows Installer Run-Time 要求。 |
目标平台 | 窗户 |
标头 | msi.h |
库 | Msi.lib |
DLL | Msi.dll |