MsiSetExternalUIRecord 関数 (msi.h)
MsiSetExternalUIRecord 関数を使用すると、外部ユーザー インターフェイス (UI) ハンドラーが有効になります。
構文
UINT MsiSetExternalUIRecord(
[in] INSTALLUI_HANDLER_RECORD puiHandler,
[in] DWORD dwMessageFilter,
[in] LPVOID pvContext,
[out, optional] PINSTALLUI_HANDLER_RECORD ppuiPrevHandler
);
パラメーター
[in] puiHandler
INSTALLUI_HANDLER_RECORD仕様に準拠するコールバック関数を指定します。
現在の外部 UI ハンドラーを無効にするには、このパラメーターを NULL 値に設定して 関数を呼び出します。
[in] dwMessageFilter
外部メッセージ ハンドラーを使用して処理するメッセージを指定します。 外部ハンドラーから 0 以外の結果が返された場合、そのメッセージは UI に送信されず、ログ記録が有効になっている場合はメッセージがログに記録されます。 詳細については、「 MsiEnableLog」を参照してください。
値 | 説明 |
---|---|
|
使用中のファイル情報。
このメッセージを受信すると、 FilesInUse ダイアログ が表示されます。 |
|
インストールの早期終了。 |
|
エラー メッセージがログに記録されます。 |
|
警告メッセージがログに記録されます。 |
|
ユーザー要求がログに記録されます。 |
|
表示されないステータス メッセージがログに記録されます。 |
|
有効なソースの場所を決定するための要求。 |
|
使用中のファイル情報。 このメッセージを受信すると、 MsiRMFilesInUse ダイアログ が表示されます。 |
|
ディスク領域が不足しています。 |
|
新しいインストール アクションの開始がログに記録されます。 |
|
インストール アクションを含むデータ レコードがログに記録されます。 |
|
ユーザー インターフェイス初期化のパラメーターがログに記録されます。 |
|
進行状況バーの情報。
このメッセージには、これまでのユニットと合計ユニット数に関する情報が含まれています。 このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。 詳細については、「 MsiProcessMessage」を参照してください。 |
|
これがサイレント インストールでない場合は、 基本的な UI が初期化されます。
これが完全な UI インストールの場合、 完全な UI はまだ初期化されていません。 このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。 |
|
完全な UI が使用されている場合、完全な UI は終了しました。
これが静かなインストールでない場合、基本的な UI は終了していません。 このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。 |
|
[完全な UI] ダイアログが表示される前に送信されます。
このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。 |
|
製品のインストールが開始されます。
メッセージには、製品の ProductName と ProductCode が含まれています。 |
|
製品のインストールが終了します。
メッセージには、製品の ProductName、ProductCode、および戻り値が含まれています。 |
[in] pvContext
コールバック関数に渡されるアプリケーション コンテキストへのポインター。
このパラメーターは、エラー チェックに使用できます。
[out, optional] ppuiPrevHandler
INSTALLUI_HANDLER_RECORD仕様に準拠する以前に設定されたコールバック関数へのポインターを返します。コールバックが以前に設定されていない場合は NULL を返します。
戻り値
リターン コード | 説明 |
---|---|
|
関数は正常に完了します。 |
|
この値は、カスタム アクションからこの関数を呼び出そうとしたことを示します。
この関数は、カスタム アクションから呼び出すことはできません。 |
解説
カスタム アクションからこの関数を呼び出すことはできません。
MsiSetExternalUIRecord を呼び出すことによって有効になっている外部 UI ハンドラーは、Record オブジェクトの形式でメッセージを受信します。 MsiSetExternalUI を呼び出すことによって有効になっている外部 UI ハンドラーは、文字列の形式でメッセージを受信します。 外部 UI は、常に Windows インストーラーの内部 UI の前に呼び出されます。 有効なレコードベースの外部 UI は、文字列ベースの外部 UI の前に呼び出されます。 レコードベースの外部 UI ハンドラーが 0 (ゼロ) を返す場合、メッセージは有効な文字列ベースの外部 UI ハンドラーに送信されます。 外部 UI ハンドラーから 0 以外の値が返された場合、内部 Windows インストーラー UI ハンドラーは抑制され、メッセージは処理されたと見なされます。
この関数は、設定した外部ユーザー インターフェイスを格納します。 現在の外部 UI ハンドラーを前のハンドラーに置き換えるには、 関数を呼び出し、INSTALLUI_HANDLER_RECORDを puiHandler パラメーターとして指定し、dwMessageFilter パラメーターとして 0 (ゼロ) を指定します。
puiHandler パラメーターが指す外部ユーザー インターフェイス ハンドラーは、dwUILevel パラメーターを INSTALLUILEVEL_NONE に設定して MsiSetInternalUI が呼び出されない限り、外部ユーザー インターフェイスを完全に制御できません。 MsiSetInternalUI が呼び出されない場合、内部ユーザー インターフェイス レベルの既定値は INSTALLUILEVEL_BASIC になります。 その結果、外部ユーザー インターフェイス ハンドラーによって処理されないメッセージは、Windows インストーラーによって処理されます。 最初の "インストールの準備中。 . " ダイアログは、外部ユーザー インターフェイス ハンドラーがすべてのメッセージを処理する場合でも常に表示されます。 MsiSetExternalUI は 、ブートストラップ アプリケーションからのみ呼び出す必要があります。 カスタム アクションから MsiSetExternalUI を呼び出すことはできません。
この外部 UI ハンドラーを無効にするには、puiHandler パラメーターの NULL 値を使用して MsiSetExternalUIRecord を呼び出します。
Windows インストーラー 2.0 と Windows インストーラー 3.0: サポートされていません。 MsiSetExternalUIRecord 関数は、Windows インストーラー 3.1 以降で使用できます。
レコード ベースの外部ハンドラーの使用について詳しくは、「MsiSetExternalUIRecord を使用したインストールの監視」をご覧ください。
要件
サポートされている最小のクライアント | 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 インストーラーのバージョンで必要な最小 Windows サービス パックに関する情報については、Windows インストーラーの実行時の要件に関する記事を参照してください。 |
対象プラットフォーム | Windows |
ヘッダー | msi.h |
Library | Msi.lib |
[DLL] | Msi.dll |