次の方法で共有


Windows インストーラー メッセージの解析

外部 UI ハンドラーは、MsiSetExternalUI 関数の dwMessagedFilter パラメーターに指定されたインストーラー メッセージのリストを処理できます。 これらのメッセージには、直接使用できる文字列が含まれるものもあれば、外部 UI ハンドラーで解析して処理しないと役に立たないメッセージもあります。 外部 UI ハンドラーは、インストールに影響を与える操作は実行せず、Windows インストーラー メッセージを監視するだけでよい場合があります。

次の Windows インストーラー メッセージに含まれる文字列は、ダイアログ ボックスで表示できるため、追加の処理は必要ありません。 これらのメッセージには、ダイアログ ボックスで表示されるボタンとアイコンのリストが含まれます。 MB_ICONMASKMB_DEFMASKMB_TYPEMASK の値を使用して、アイコンとボタンを指定できます。

INSTALLMESSAGE_FATALEXIT

インストールの途中終了が発生しました。

INSTALLMESSAGE_ERROR

書式設定されたエラー メッセージ。

INSTALLMESSAGE_WARNING

書式設定された警告メッセージ。

INSTALLMESSAGE_INFO

書式設定されたログ メッセージ。

INSTALLMESSAGE_USER

書式設定されたユーザー メッセージ。

INSTALLMESSAGE_OUTOFDISKSPACE

ディスク領域不足状態を示す、書式設定されたメッセージ

外部ユーザー ハンドラーは、次の Windows インストーラー メッセージを使用して、Windows インストーラー UI のシーケンスを監視できます。 インストーラーは、これらのメッセージを Windows インストーラー UI シーケンスの開始時、各ダイアログボックスの表示時、UI シーケンスの終了時に送信します。 これらのメッセージを使用するために必要な処理はありません。

INSTALLMESSAGE_TERMINATE

このメッセージは、UI シーケンスの終了を示します。 文字列は null 文字列です。

INSTALLMESSAGE_INITIALIZE

このメッセージは、UI シーケンスが開始されたことを示します。 文字列は null 文字列です。

INSTALLMESSAGE_SHOWDIALOG

文字列には、現在のダイアログ ボックスの名前が含まれます。

以下の Windows インストーラー メッセージは、外部 UI ハンドラーによる追加の処理が必要です。

INSTALLMESSAGE_RESOLVESOURCE

外部ユーザー インターフェイス ハンドラーは 0 を返し、Windows インストーラーがメッセージを処理できるようにする必要があります。 外部ユーザー インターフェイス ハンドラーはこのメッセージを監視できますが、インストールに影響を与えるアクションを実行してはいけません。

INSTALLMESSAGE_FILESINUSE

外部 UI は、このメッセージに応答して、FilesInUse ダイアログを表示する必要があります。

INSTALLMESSAGE_RMFILESINUSE

外部 UI は、このメッセージに応答して、MsiRMFilesInUse ダイアログを表示する必要があります。 Windows インストーラー バージョン 4.0 以降で使用できます。 詳細については、「外部 UI での Restart Manager の使用」を参照してください。

INSTALLMESSAGE_ACTIONSTART

このメッセージは、現在のアクションに関する情報を提供します。 形式は、アクション [1]: [2]. [3] です。フィールド 1 とフィールド 2 の区切りにコロンが使用され、フィールド 2 とフィールド 3 の区切りにピリオドが使用されます。 フィールド [1] には、アクションが開始された時刻が Time プロパティ形式を使用して含まれます。 フィールド [2] には、シーケンス テーブルのアクションの名前が含まれます。 フィールド [3] から、ActionText テーブル または MsiProcessMessage 関数からアクションの説明が得られます。

INSTALLMESSAGE_ACTIONDATA

この文字列の形式は、ActionText テーブルまたは MsiProcessMessage 関数で提供される Template 値によって指定されます。 INSTALLMESSAGE_ACTIONSTART メッセージの後の INSTALLMESSAGE_ACTIONDATA メッセージの数に制限はありません。

INSTALLMESSAGE_COMMONDATA

このメッセージには、Language、Caption、CancelShow の 3 つのサブタイプがあります。 文字列には、数字とその後に続くコロンで区切られたフィールドが 3 つ含まれる可能性があります。 すべてのフィールドが必要なわけではありません。 メッセージは、NULL または空の ("") 文字列の場合があります。

Language

フィールド 1 に含まれる値 0 は、この文字列に言語情報が含まれることを示します。 フィールド 2 には、数値言語識別子 (LANGID) である言語値が含まれています。フィールド 3 は、ANSI コード ページを表す値です。

Caption

フィールド 1 に含まれる値 1 は、この文字列にキャプションまたはタイトルのテキストが含まれることを示します。 フィールド 2 に含まれるテキストは、外部 UI ハンドラーがダイアログ ボックスのタイトルのキャプションとして使用できます。 フィールド 3 は NULL または空の ("") 文字列です。 フィールド 3 はキャプション メッセージにないこともあります。

CancelShow

フィールド 1 に含まれる値 2 は、この文字列にキャンセル ボタンを表示するかどうかに関する情報が含まれることを示します。 キャンセル ボタンを非表示にする必要がある場合、フィールド 2 に値 0 が含まれます。 キャンセル ボタンを表示する必要がある場合、フィールド 2 に値 1 が含まれます。

INSTALLMESSAGE_PROGRESS

このメッセージには、Reset、ActionInfo、ProgressReport、ProgressAddition の 4 つのサブタイプがあります。 最初の Reset 進行状況メッセージを受信するまで、外部ハンドラーがこれらのメッセージに対して動作しないようにする必要があります。 こうすることで、進行状況バーのティックの合計数の推定値が得られます。

リセット

フィールド 1 には、進行状況バーのリセットを示す値 0 が含まれます。 フィールド 2 には、進行状況バーのティックの合計数が含まれます。 フィールド 3 には、正方向の進行状況バーのモーションの値 0 が含まれます。 フィールド 3 には、逆方向の進行状況バーのモーションの値 1 が含まれます。 フィールド 4 の値 0 は、インストールが進行中であることを意味し、残りの時間を計算できます。 フィールド 4 の値 1 は、スクリプトが実行されていることを意味し、"しばらくお待ちください..." メッセージを表示できます。 ティックの合計数の推定値は近似値であり、正確ではない可能性があります。

ActionInfo

フィールド 1 に含まれる値 1 は、この文字列にアクション情報が含まれることを示します。 フィールド 2 には、現在のアクションによって送信される ActionData メッセージごとに進行状況バーが動かすティックの数が含まれます。 フィールド 3 に値 0 が含まれる場合、フィールド 2 を無視します。 フィールド 3 に値 1 が含まれる場合は、現在のアクションによって送信される ActionData メッセージごとに、フィールド 2 のティック数だけ進行状況バーを進めます。 フィールド 4 は使用されません。

ProgressReport

フィールド 1 に含まれる値 2 は、この文字列に進行情報が含まれることを示します。 フィールド 2 には、進行状況バーが動かしたティックの数が含まれます。 フィールド 3 は使用されません。 フィールド 4 は使用されません。

ProgressAddition

フィールド 1 に含まれる値 3 は、アクションが進行状況バーにティックを追加できることを示します。 フィールド 2 には、進行状況ティックの予想合計数に加えるティック数が含まれます。 フィールド 3 は使用されません。 フィールド 4 は使用されません。