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 數據行數據類型,不同之處在於簡短檔名/長檔名語法的垂直線 (|) 分隔符無法使用。 由於某些網頁伺服器可能會區分大小寫,因此 FileName 應該完全符合來源檔案的案例,以確保支援因特網下載。
-
屬性
-
數據行中數據的相關信息。 此欄位中的值可以包含下列一或多個常數。
不斷 十六進位 十進位 意義 沒有 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 和傳回值。 -
數據
-
此資料列包含二進位資訊。 如果 [屬性] 欄位標示為 msidbEmbeddedUI 屬性,則此欄位中的資訊必須是 DLL。 如果 [屬性] 欄位不是 msidbEmbeddedUI 屬性,則此欄位中的資訊可以是任何格式的資源檔。
言論
若要使用內嵌的使用者介面,安裝程式開發人員必須將這項功能撰寫到 Windows Installer 套件中。 MsiEmbeddedUI 數據表會定義內嵌的使用者介面。 內嵌 UI 的 DLL 應該匯出 InitializeEmbeddedUI、EmbeddedUIHandler和 ShutdownEmbeddedUI 函式。 不支援內嵌使用者介面的套件可以使用 Windows Installer 內部使用者介面。
若要在內嵌使用者介面上執行適用於 Windows 的 偵錯工具,請使用 偵錯自定義動作中所述的技術。 將 MsiBreak 的值設定為 MsiEmbeddedUI。