共用方式為


MsiSetExternalUIW function (msi.h)

MsiSetExternalUI 函式啟用外部使用者介面處理器。 這個外部 UI 處理器會先於一般的內部使用者介面處理器被呼叫。 外部 UI 處理器可選擇透過回傳非零值來抑制內部 UI,表示已處理訊息。 欲了解更多資訊,請參閱 「關於使用者介面」。

語法

INSTALLUI_HANDLERW MsiSetExternalUIW(
  [in] INSTALLUI_HANDLERW puiHandler,
  [in] DWORD              dwMessageFilter,
  [in] LPVOID             pvContext
);

參數

[in] puiHandler

指定一個符合 INSTALLUI_HANDLER 規範的回調函數。

[in] dwMessageFilter

指定使用外部訊息處理器處理哪些訊息。 若外部處理器回傳非零結果,該訊息不會傳送至介面,若已啟用日誌,則會記錄該訊息。 更多資訊請參閱 MsiEnableLog 函式。

價值觀 Meaning
INSTALLLOGMODE_FILESINUSE
檔案使用資訊。 當收到此訊息時,應會顯示一個 檔案使用對話框
INSTALLLOGMODE_FATALEXIT
安裝過早終止。
INSTALLLOGMODE_ERROR
錯誤訊息會被記錄下來。
INSTALLLOGMODE_WARNING
警告訊息會被記錄下來。
INSTALLLOGMODE_USER
使用者的請求會被記錄下來。
INSTALLLOGMODE_INFO
未顯示的狀態訊息會被記錄。
INSTALLLOGMODE_RESOLVESOURCE
請求確定有效的來源位置。
INSTALLLOGMODE_RMFILESINUSE
檔案使用資訊。 當收到此訊息時,應會顯示 MsiRMFilesInUse 對話框
INSTALLLOGMODE_OUTOFDISKSPACE
磁碟空間不足。
INSTALLLOGMODE_ACTIONSTART
新安裝動作的開始會被記錄下來。
INSTALLLOGMODE_ACTIONDATA
包含安裝動作的資料紀錄會被記錄。
INSTALLLOGMODE_COMMONDATA
使用者介面初始化的參數會被記錄下來。
INSTALLLOGMODE_PROGRESS
進度條 資訊。 此訊息包含迄今單位及總單位數的資訊。 關於訊息格式的說明,請參見 MsiProcessMessage 函式。 此訊息僅傳送至外部使用者介面,且不會被記錄。
INSTALLLOGMODE_INITIALIZE
如果安裝不安靜,代表 基本介面 已被初始化。 如果這是 完整的 UI 安裝,完整 UI 還沒初始化。 此訊息僅傳送至外部使用者介面,且不會被記錄。
INSTALLLOGMODE_TERMINATE
如果使用 完整使用者介面 ,則完整 使用者介面 已結束。 如果安裝過程不夠安靜,基本 介面 還沒結束。 此訊息僅傳送至外部使用者介面,且不會被記錄。
INSTALLLOGMODE_SHOWDIALOG
在完整 介面 對話框顯示前傳送。 此訊息僅傳送至外部使用者介面,且不會被記錄。
INSTALLLOGMODE_INSTALLSTART
產品安裝開始。

訊息包含產品的 ProductName 與 ProductCode。

INSTALLLOGMODE_INSTALLEND
產品終端安裝。

訊息包含產品的 ProductName、ProductCode 及返回值。

[in] pvContext

指標指向一個應用程式上下文,該上下文會傳遞給回調函式。 此參數可用於錯誤檢查。

返回值

回傳值為先前設定的外部處理器,若沒有先前設定的處理器,則為零(0)。

備註

若要還原先前的 UI 處理器,第二次呼叫 MsiSetExternalUI,使用第一次呼叫 MsiSetExternalUI 回傳的 INSTALLUI_HANDLER,並指定 dwMessageFilter 為零(0)。

puiHandler 參數指向的外部使用者介面處理器,除非以 dwUILevel 參數設為 INSTALLUILEVEL_NONE 時呼叫 MsiSetInternalUI,否則無法完全控制外部使用者介面。 若未呼叫 MsiSetInternalUI ,內部使用者介面層級預設為 INSTALLUILEVEL_BASIC。 因此,任何未由外部使用者介面處理器處理的訊息,則由 Windows 安裝程式處理。 最初的「準備安裝中。 . 即使外部使用者介面處理器處理所有訊息,對話框仍會顯示。

MsiSetExternalUI 只能從 Bootstrapping 應用程式呼叫。 你無法從自訂動作呼叫 MsiSetExternalUI

備註

msi.h 標頭將 MsiSetExternalUI 定義為別名,根據 UNICODE 預處理器常數的定義自動選擇此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型 慣例。

需求

Requirement 價值觀
最低支援的用戶端 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 安裝程式 Run-Time 需求,了解 Windows 安裝程式版本所需的最低 Windows 服務包。
目標平臺 窗戶
Header MSI.H
Library Msi.lib
DLL Msi.dll

另請參閱

介面與日誌功能