共用方式為


msiSetExternalUIA 函式 (msi.h)

MsiSetExternalUI函式會啟用外部使用者介面處理常式。 這個外部 UI 處理常式會在一般內部使用者介面處理常式之前呼叫。 外部 UI 處理常式可以選擇傳回非零值來隱藏內部 UI,以指出它已處理訊息。 如需詳細資訊,請參閱 關於使用者介面

語法

INSTALLUI_HANDLERA MsiSetExternalUIA(
  [in] INSTALLUI_HANDLERA puiHandler,
  [in] DWORD              dwMessageFilter,
  [in] LPVOID             pvContext
);

參數

[in] puiHandler

指定符合 INSTALLUI_HANDLER 規格的回呼函式。

[in] dwMessageFilter

指定要使用外部訊息處理常式處理的訊息。 如果外部處理常式傳回非零的結果,則不會將該訊息傳送至 UI,而是會在啟用記錄時記錄訊息。 如需詳細資訊,請參閱 MsiEnableLog 函式。

意義
INSTALLLOGMODE_FILESINUSE
使用中資訊的檔案。 收到此訊息時,應該會顯示 FilesInUse Dialog
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 安裝,則尚未初始化 完整的 UI 。 此訊息只會傳送至外部使用者介面,而且不會記錄。
INSTALLLOGMODE_TERMINATE
如果使用 完整 UI則完整 UI 已結束。 如果這不是無訊息安裝, 基本 UI 尚未結束。 此訊息只會傳送至外部使用者介面,而且不會記錄。
INSTALLLOGMODE_SHOWDIALOG
在顯示 完整 UI 對話方塊之前傳送。 此訊息只會傳送至外部使用者介面,而且不會記錄。
INSTALLLOGMODE_INSTALLSTART
產品安裝開始。

此訊息包含產品的 ProductName 和 ProductCode。

INSTALLLOGMODE_INSTALLEND
產品安裝結束。

此訊息包含產品的 ProductName、ProductCode 和傳回值。

[in] pvContext

傳遞至回呼函式的應用程式內容指標。 此參數可用於錯誤檢查。

傳回值

傳回值是先前設定的外部處理常式,如果沒有先前設定的處理常式,則為零 (0) 。

備註

若要還原先前的 UI 處理常式,第一次呼叫MsiSetExternalUI會使用第一次呼叫MsiSetExternalUI所傳回的INSTALLUI_HANDLER,並針對 dwMessageFilter 指定零 (0) 。

puiHandler參數所指向的外部使用者介面處理常式無法完全控制外部使用者介面,除非已呼叫 MsiSetInternalUI,並將dwUILevel參數設定為 INSTALLUILEVEL_NONE。 如果未呼叫 MsiSetInternalUI ,內部使用者介面層級會預設為 INSTALLUILEVEL_BASIC。 因此,Windows Installer 會處理外部使用者介面處理常式未處理的任何訊息。 初始「準備安裝」。 . 即使外部使用者介面處理常式處理所有訊息,也一律會出現 。」 對話方塊一律會出現。

MsiSetExternalUI 只能從 啟動載入 應用程式呼叫。 您無法從自訂動作呼叫 MsiSetExternalUI

注意

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

需求

   
最低支援的用戶端 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 Installer 版本所需的最低 Windows Service Pack 相關資訊,請參閱 Windows Installer Run-Time 需求。
目標平台 Windows
標頭 msi.h
程式庫 Msi.lib
Dll Msi.dll

另請參閱

介面和記錄函式