ControlEvent 概觀
ControlEvent 類似于 Win32 應用程式中的 Microsoft Windows 訊息。 不過,使用者介面 (UI) 安裝程式和控制項發佈ControlEvents,而不是建立回呼函式來接收 Windows 訊息和傳送 Windows 訊息。 您可以指定其他控制項和安裝程式來訂閱特定 ControlEvents,然後變更訂閱控制項的屬性。 若要將工作控制項新增至對話方塊,UI 的作者會在 ControlEvent 資料表中指定 ControlEvents 的發行集,並訂閱 EventMapping 資料表中的 ControlEvents 控制項。
安裝程式會將下列事件發佈至 訂閱 EventMapping 資料表中列出的控制項。 ProgressBar 控制項或Billboard 控制項通常會訂閱 SetProgress,其餘部分則由Text 控制項訂閱。
當選取專案在 SelectionTree 控制項 或 DirectoryList 控制項中移動時,控制項會發佈下列事件。 訂閱控制項必須位於相同的對話方塊,並列在 EventMapping 資料表中。
SelectionDescription ControlEvent
您可以藉由與對話方塊上的 PushButton 控制項 或 CheckBox 控制項 互動,任意發佈下列 ControlEvents。 核取方塊控制項只能發佈 AddLocal、AddSource、Remove、DoAction 和 SetProperty 事件。 透過 Windows Server 2003 和更新版本隨附的 Windows Installer 版本, SelectionTree 控制項 可以發佈 DoAction、ControlEvent 和 SetProperty ControlEvents。 UI 的作者應該在 ControlEvent 資料表中列出 ControlEvent。 安裝程式的 UI 處理常式是這些事件的訂閱者。
CheckExistingTargetPath ControlEvent
ValidateProductID ControlEvent
PushButton 控制項可以將下列事件發佈至位於相同對話方塊中的訂閱SelectionTree 控制項或DirectoryList 控制項。 PushButton 控制項應該列在 ControlEvent 資料表中,而訂閱控制項應該列在 EventMapping 資料表中。
DirectoryListOpen ControlEvent
控制事件通常需要在 完整的 UI 層級執行 UI。 大部分 ControlEvents 都無法搭配 減少的 UI 或 基本 UI 使用,因為這些層級只會顯示無強制回應對話方塊。 ActionText、AddSource、SetProgress、TimeRemaining 和 ScriptInProgress 事件是例外狀況,而且在縮減或基本 UI 中運作。 如需 UI 層級的詳細資訊,請參閱 使用者介面層級。
您可以從PushButton 控制項或核取方塊控制項發佈 ControlEvent 來執行自訂動作。 將記錄新增至 ControlEvent 資料表 ,其中包含對話方塊的名稱,以及發佈 ControlEvent 的控制項。 此控制項應該發佈 DoAction ControlEvent ,通知安裝程式執行自訂動作。 在 Windows XP 或舊版系統上,您無法從 SelectionTree 控制項發佈 ControlEvent 來執行自訂動作。
如需特定 ControlEvents 的詳細資訊,請參閱使用者介面參考中的標準ControlEvent 清單。