MsiEmbeddedUI 表

MsiEmbeddedUI 表用于定义嵌入在 Windows Installer 包中的用户界面。

Windows Installer 4.0 或更低版本:不支持。 此表从 Windows Installer 4.5 开始提供。

MsiEmbeddedUI 表包含以下列。

类型 密钥 Nullable
MsiEmbeddedUI Identifier Y N
FileName 文本 N N
特性 整数 N N
MessageFilter DoubleInteger N Y
数据 二进制 N N

 

MsiEmbeddedUI

表的主键。

FileName

在“数据”列中接收二进制信息的文件的文件名。 文件名需要包含扩展名。 例如,可以接受像 embeddedui.dll 这样的文件名,但不接受 embeddedui。 名称可能已本地化。 此字段可以包含短文件名或长文件名,但不能同时包含两者。 此字段的格式类似于 Filename 列数据类型,短文件名/长文件名语法的竖线 (|) 分隔符不可用的情况除外。 由于某些 Web 服务器可能区分大小写,因此 FileName 应与源文件大小写完全匹配,以确保支持 Internet 下载。

Attributes

有关“数据”列中数据的信息。 此字段中的值可以包含以下一个或多个常量。

常数 十六进制 十进制 含义
0x00 0 此文件不是用户界面的 DLL 文件。 它可能是用户界面使用的资源文件。
msidbEmbeddedUI 0x01 1 用户界面的主 DLL 文件。 表中最多只能有一行可以标记有此属性。 如果多行标记有此属性,将出现错误,无法保证使用哪个 DLL。
msidbEmbeddedHandlesBasic 0x02 2 使安装程序能够在基本 UI 级别安装期间调用嵌入的 UI。 如果此属性未与 msidbEmbeddedUI 属性结合使用,安装程序将忽略此属性。

 

MessageFilter

指定发送到用户界面 DLL 的消息类型。 此列仅与具有 msidbEmbeddedUI 属性的行相关。 如果行引用资源文件,并且 Attributes 的值为 null,则此字段应为 null。 如果行引用用户界面 DLL,则此列中的值不应为 null。

此列中的值可以是以下值的组合。 安装程序将忽略任何其他值。

常数 十六进制 十进制 说明
INSTALLLOGMODE_FATALEXIT 0x00001 1 过早终止。
INSTALLLOGMODE_ERROR 0x00002 2 错误消息。
INSTALLLOGMODE_WARNING 0x00004 4 警告消息。
INSTALLLOGMODE_USER 0x00008 8 用户消息。
INSTALLLOGMODE_INFO 0x00010 16 未记录的状态消息。
INSTALLLOGMODE_FILESINUSE 0x00020 32 当前正在使用中的文件。
INSTALLLOGMODE_RESOLVESOURCE 0x00040 64 源解析请求。
INSTALLLOGMODE_OUTOFDISKSPACE 0x00080 128 磁盘空间消息。
INSTALLLOGMODE_ACTIONSTART 0x00100 256 操作启动消息。
INSTALLLOGMODE_ACTIONDATA 0x00200 512 操作数据消息。
INSTALLLOGMODE_PROGRESS 0x00400 1024 进度消息。
INSTALLLOGMODE_COMMONDATA 0x00800 2048 UI 初始化消息。
INSTALLLOGMODE_INITIALIZE 0x01000 4096 启动产品安装时发送的 UI 启动消息。
INSTALLLOGMODE_TERMINATE 0x02000 8192 产品安装完成后发送的 UI 关闭消息。
INSTALLLOGMODE_SHOWDIALOG 0x04000 16384 UI 对话框显示之前发送的消息。
INSTALLLOGMODE_RMFILESINUSE 0x02000000 33554432 当前正在使用中的文件。
INSTALLLOGMODE_INSTALLSTART 0x04000000 67108864 产品安装开始。 该消息包含产品的 ProductName 和 ProductCode。
INSTALLLOGMODE_INSTALLEND 0x08000000 134217728 产品安装结束。 该消息包含产品的 ProductName、ProductCode 和返回值。

 

Data

此列包含二进制信息。 如果“属性”字段标记有 msidbEmbeddedUI 属性,则此字段中的信息必须是 DLL。 如果“属性”字段不是 msidbEmbeddedUI 属性,则此字段中的信息可以是任何格式的资源文件。

备注

若要使用嵌入式用户界面,安装程序开发人员必须将此功能创作到 Windows Installer 包中。 MsiEmbeddedUI 表定义嵌入的用户界面。 嵌入式 UI 的 DLL 应导出 InitializeEmbeddedUI、EmbeddedUIHandler 和 ShutdownEmbeddedUI 函数。 不支持嵌入式用户界面的包可以使用 Windows Installer 内部用户界面。

若要在嵌入式用户界面上运行 Windows 调试工具,请使用调试自定义操作中所述的技术。 将 MsiBreak 的值设置为 MsiEmbeddedUI。

有关嵌入式自定义 UI 的示例,请参阅使用嵌入式 UI