ControlEvent の概要

ControlEvent は、Win32 ベースのアプリケーションでの Microsoft Windows メッセージに似ています。 ただし、コールバック関数を作成して Windows メッセージを受信し、SendMessage 関数を使用して Windows メッセージを送信するのではなく、ユーザー インターフェイス (UI) インストーラーとコントロールによって ControlEvent が発行されます。 他のコントロールとインストーラーを指定して特定の ControlEvent をサブスクライブできます。それによって、サブスクライブしているコントロールの属性が変更されます。 作業コントロールをダイアログ ボックスに追加するために、UI の作成者は ControlEvent テーブルの ControlEvent の発行を指定し、EventMapping テーブルの ControlEvent にコントロールをサブスクライブします。

インストーラーは、EventMapping テーブルに一覧表示されたサブスクライブしているコントロールに次のイベントを発行します。 ProgressBar コントロールまたは Billboard コントロールは通常、SetProgress をサブスクライブし、残りは Text コントロールによってサブスクライブされます。

ActionData ControlEvent

ActionText ControlEvent

SetProgress ControlEvent

TimeRemaining ControlEvent

ScriptInProgress ControlEvent

SelectionTree コントロールまたは DirectoryList コントロールで項目の選択が移動すると、コントロールによって次のイベントが発行されます。 サブスクライブしているコントロールは、同じダイアログ ボックスにあり、EventMapping テーブルに一覧表示されている必要があります。

IgnoreChange ControlEvent

SelectionDescription ControlEvent

SelectionSize ControlEvent

SelectionPath ControlEvent

SelectionAction ControlEvent

SelectionNoItems ControlEvent

次の ControlEvent は、ダイアログ ボックス上の PushButton コントロールまたは CheckBox コントロールを操作することで、ユーザーの判断で発行できます。 Checkbox コントロールは、AddLocal、AddSource、Remove、DoAction、SetProperty の各イベントのみを発行できます。 Windows Server 2003 以降に付属している Windows インストーラー バージョンでは、SelectionTree コントロールで DoAction、ControlEvent、SetProperty の ControlEvent を発行できます。 UI の作成者は、ControlEvent テーブルに ControlEvent を一覧表示する必要があります。 インストーラーの UI ハンドラーは、これらのイベントのサブスクライバーです。

AddLocal ControlEvent

AddSource ControlEvent

CheckExistingTargetPath ControlEvent

CheckTargetPath ControlEvent

DoAction ControlEvent

EnableRollback ControlEvent

EndDialog ControlEvent

NewDialog ControlEvent

Reinstall ControlEvent

ReinstallMode ControlEvent

Remove ControlEvent

Reset ControlEvent

SetInstallLevel ControlEvent

SetProperty ControlEvent

SetTargetPath ControlEvent

SpawnDialog ControlEvent

SpawnWaitDialog ControlEvent

ValidateProductID ControlEvent

PushButton コントロールは、同じダイアログ ボックスにあるサブスクライブしている SelectionTree コントロールまたは DirectoryList コントロールに次のイベントを発行できます。 PushButton コントロールは ControlEvent テーブルに一覧表示されている必要があり、サブスクライブしているコントロールは EventMapping テーブルに一覧表示されている必要があります。

SelectionBrowse ControlEvent

DirectoryListUp ControlEvent

DirectoryListNew ControlEvent

DirectoryListOpen ControlEvent

コントロール イベントでは通常、UI を "フル UI" レベルで実行することが必要とされます。 ほとんどの ControlEvent は、"縮小 UI" または "基本 UI" では動作しません。これらのレベルではモードレス ダイアログ ボックスのみが表示されるためです。 ActionText、AddSource、SetProgress、TimeRemaining、ScriptInProgress の各イベントは例外であり、縮小 UI または基本 UI で動作します。 UI レベルの詳細については、「ユーザー インターフェイス レベル」を参照してください。

カスタム アクションを実行するには、PushButton コントロールまたは Checkbox コントロールから ControlEvent を発行します。 ControlEvent テーブルに、ダイアログ名と ControlEvent を発行するコントロールの名前を含むレコードを追加します。 このコントロールは、カスタム アクションを実行するようにインストーラーに通知する DoAction ControlEvent を発行する必要があります。 Windows XP またはそれ以前のシステムでは、SelectionTree コントロールから ControlEvent を発行してカスタム アクションを実行することはできません。

特定の ControlEvent の詳細については、「ユーザー インターフェイス リファレンス」の標準 ControlEvent の一覧を参照してください。