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。