MsiEmbeddedUI 表
MsiEmbeddedUI 表定义嵌入在 Windows Installer 包中的用户界面。
Windows Installer 4.0 或更高版本:不支持。 此表从 Windows Installer 4.5 开始可用。
MsiEmbeddedUI 表具有以下列。
列 | 类型 | 钥匙 | 空 |
---|---|---|---|
MsiEmbeddedUI | 标识符 | Y | N |
文件名 | 文本 | N | N |
属性 | 整数 | N | N |
MessageFilter | DoubleInteger | N | Y |
数据 | 二进制 | N | N |
列
-
MsiEmbeddedUI
-
表的主键。
-
FileName
-
接收数据列中二进制信息的文件的名称。 需要文件的名称才能包含扩展名。 例如,可以接受名称 embeddedui.dll,但 embeddedui 是不可接受的。 名称可能已本地化。 此字段可以包含短文件名或长文件名,但不能同时包含这两者。 此字段的格式类似于 Filename 列数据类型,但短文件名/长文件名语法的垂直条 (|) 分隔符不可用。 由于某些 Web 服务器可能区分大小写,FileName 应与源文件大小写完全匹配,以确保支持 Internet 下载。
-
属性
-
有关“数据”列中的数据的信息。 此字段中的值可以包含以下一个或多个常量。
不断 十六进制 十进制 意义 没有 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 和返回值。 -
数据
-
此列包含二进制信息。 如果 Attribute 字段使用 msidbEmbeddedUI 属性进行标记,则此字段中的信息必须是 DLL。 如果“属性”字段不是 msidbEmbeddedUI 属性,则此字段中的信息可以是任何格式的资源文件。
言论
若要使用嵌入式用户界面,安装程序开发人员必须将此功能创作到 Windows Installer 包中。 MsiEmbeddedUI 表定义嵌入的用户界面。 嵌入 UI 的 DLL 应导出 InitializeEmbeddedUI、EmbeddedUIHandler和 ShutdownEmbeddedUI 函数。 不支持嵌入式用户界面的包可以使用 Windows Installer 内部用户界面。
若要在嵌入式用户界面上运行适用于 Windows 的 调试工具,请使用 调试自定义作中所述的技术。 将 MsiBreak 的值设置为 MsiEmbeddedUI。
有关嵌入自定义 UI 的示例,请参阅 使用嵌入式 UI。