Session.Message メソッド

Session オブジェクトの Message メソッドは、有効なログ記録操作を実行し、エンジンに関連付けられている UI ハンドラー オブジェクトへの実行を延期します。 ログ記録は、さまざまなメッセージの種類に対して選択的に有効にすることができます。 EnableLog メソッドを参照してください。

レコード フィールド 0 に書式設定文字列が含まれる場合、他のフィールドのデータの書式設定に使用されます。 それ以外で、メッセージがエラー、警告、またはユーザー メッセージの場合は、メッセージの種類と戻り値のレコードのフィールド 1 にあるエラー番号を使用して、現在のデータベースのエラー テーブルでメッセージ テンプレートを検索しようとします。

構文

Session.Message(
  kind,
  record
)

パラメーター

kind

kind パラメーターは、次のいずれかの値である必要があります。 プッシュ ボタンとアイコンを含むメッセージ ボックスを表示するには、MessageBoxMessageBoxEx で使用する標準のメッセージ ボックス スタイルを msiMessageTypeErrormsiMessageTypeWarning、または msiMessageTypeUser に追加して、kind の値を計算します。 詳細については、下記の「解説」を参照してください。

定数 説明
msiMessageTypeFatalExit
&H00000000
途中終了。致命的なメモリ不足の可能性があります。
msiMessageTypeError
&H01000000
書式設定されたエラー メッセージ [1] は、エラー テーブルのメッセージ番号です。
msiMessageTypeWarning
&H02000000
書式設定された警告メッセージ [1] は、エラー テーブルのメッセージ番号です。
msiMessageTypeUser
&H03000000
ユーザー要求メッセージ [1] は、エラー テーブルのメッセージ番号です。
msiMessageTypeInfo
&H04000000
ログの情報メッセージ。表示されない。
msiMessageTypeFilesInUse
&H05000000
置き換えが必要な使用中のファイルのリスト。
msiMessageTypeResolveSource
&H06000000
有効なソースの場所を決定するための要求。
msiMessageTypeOutOfDiskSpace
&H07000000
ディスク領域の不足メッセージ。
msiMessageTypeActionStart
&H08000000
アクションの開始、[1] アクション名、[2] 説明、[3] ACTIONDATA メッセージのテンプレート。
msiMessageTypeActionData
&H09000000
アクション データ。 レコード フィールドは、ACTIONSTART メッセージのテンプレートに対応します。
msiMessageTypeProgress
&H0A000000
進行状況バーの情報。 下記のレコード フィールドの説明を参照してください。
msiMessageTypeCommonData
&H0B000000
[キャンセル] ボタンを有効にするには、[1] を 2 に、[2] を 1 に設定します。
[キャンセル] ボタンを無効にするには、[1] を 2 に、[2] を 0 に設定します

 

record

メッセージ固有のフィールドを含む必須の Record オブジェクト。

戻り値

定数
msiMessageStatusError
-1
msiMessageStatusNone
0
msiMessageStatusOk
1
msiMessageStatusCancel
2
msiMessageStatusAbort
3
msiMessageStatusRetry
4
msiMessageStatusIgnore
5
msiMessageStatusYes
6
msiMessageStatusNo
7

 

解説

メッセージ レコード フィールド

msiMessageTypeProgress をメッセージ型として渡す場合のレコード フィールド定義を次に示します。

フィールド 1 は、進行状況メッセージの種類を指定します。 他のフィールドの意味は、このフィールドの値によって異なります。 フィールド 1 に設定できる値は次のとおりです。

メッセージ名 フィールド 1 の説明
MasterReset 0 進行状況バーをリセットし、バーのティックの予想合計数を設定します。
ActionInfo 1 現在のアクションによって送信される進行状況メッセージに関連する情報を提供します。
ProgressReport 2 進行状況バーを進めます。
ProgressAddition 3 アクション (CustomAction など) で、進行状況バーの進行状況の予想合計数にティックを追加できるようにします。

 

フィールド 2 の意味は、次のようにフィールド 1 の値によって異なります。

フィールド 1 の値 フィールド 2 の説明
0 進行状況バーのティックの予想合計数。
1 ActionData メッセージごとに進行状況バーが動かすティックの数。 フィールド 3 が 0 の場合、このフィールドは無視されます。
2 進行状況バーが動かしたティックの数。
3 予想進行状況の合計に追加するティックの数。

 

フィールド 3 の意味は、次のようにフィールド 1 の値によって異なります。

フィールド 1 の値 フィールド 3 の値 フィールド 3 の説明
0 0 正方向の進行状況バー (左から右へ)
  1 逆方向の進行状況バー (右から左へ)
1 0 現在のアクションが、明確な ProgressReport メッセージを送信します。
  1 ActionData メッセージが送信されるたびに、フィールド 2 で指定したティック数だけ進行状況バーを進めます。
2 未使用
3 未使用

 

フィールド 4 の意味は、次のようにフィールド 1 の値によって異なります。

フィールド 1 の値 フィールド 4 の値 フィールド 4 の説明
0 0 実行が進行中です。 この場合、UI は残り時間を計算して表示できます。
  1 実行スクリプトの作成。 この場合、UI はインストーラーがインストールの準備を完了するまでお待ちくださいというメッセージを表示できます。
1 未使用
2 未使用
3 未使用

 

メッセージ ボックスの表示

プッシュ ボタンとアイコンを含むメッセージ ボックスを表示するには、MessageBoxMessageBoxEx で使用する標準のメッセージ ボックス スタイルを msiMessageTypeErrormsiMessageTypeWarning、または msiTypeUser に追加して、kind の値を計算します。 VBScript で使用できるプッシュ ボタン オプションは、vbOKOnly (MB_OK)、vbOKCancel (MB_OKCANCEL)、vbAbortRetryIgnore (MB_ABORTRETRYIGNORE)、vbYesNoCancel (MB_YESNOCANCEL)、vbYesNo (MB_YESNO)、vbRetryCancel (MB_RETRYCANCEL) です。 VBScript で使用できるアイコン オプションは、vbCritical (MB_ICONERROR)、vbQuestion (MB_ICONQUESTION)、vbExclamation (MB_ICONWARNING)、vbInformation (MB_ICONINFORMATION) です。

たとえば、次のように呼び出すと、vbExclamation アイコンと vbYesNo ボタンを含む msiMessageTypeError メッセージが送信されます。

Session.Message &H01000034, record

カスタム アクションが Message メソッドを呼び出す場合、カスタム アクションはユーザーによるキャンセルを処理できる必要があり、msiDoActionStatusUserExit を返す必要があります。

必要条件

要件
バージョン
Windows Server 2012、Windows 8、Windows Server 2008 R2、または Windows 7 の Windows インストーラー 5.0。 Windows Server 2008 または Windows Vista の Windows インストーラー 4.0 または Windows インストーラー 4.5。 Windows Server 2003 または Windows XP の Windows インストーラー
[DLL]
Msi.dll
IID
IID_ISession が 000C109E-0000-0000-C000-000000000046 として定義されている