MsiSetExternalUIA 関数 (msi.h)
MsiSetExternalUI 関数を使用すると、外部ユーザー インターフェイス ハンドラーが有効になります。 この外部 UI ハンドラーは、通常の内部ユーザー インターフェイス ハンドラーの前に呼び出されます。 外部 UI ハンドラーには、メッセージを処理したことを示す 0 以外の値を返すことによって内部 UI を抑制するオプションがあります。 詳しくは、「ユーザー インターフェイスについて」をご覧ください。
構文
INSTALLUI_HANDLERA MsiSetExternalUIA(
[in] INSTALLUI_HANDLERA puiHandler,
[in] DWORD dwMessageFilter,
[in] LPVOID pvContext
);
パラメーター
[in] puiHandler
INSTALLUI_HANDLER仕様に準拠するコールバック関数を指定します。
[in] dwMessageFilter
外部メッセージ ハンドラーを使用して処理するメッセージを指定します。 外部ハンドラーから 0 以外の結果が返された場合、そのメッセージは UI に送信されず、ログ記録が有効になっている場合はメッセージがログに記録されます。 詳細については、 MsiEnableLog 関数に関するページを参照してください。
値 | 説明 |
---|---|
|
使用中のファイル情報。 このメッセージを受信すると、 FilesInUse ダイアログ が表示されます。 |
|
インストールの早期終了。 |
|
エラー メッセージがログに記録されます。 |
|
警告メッセージがログに記録されます。 |
|
ユーザー要求がログに記録されます。 |
|
表示されないステータス メッセージがログに記録されます。 |
|
有効なソースの場所を決定するための要求。 |
|
使用中のファイル情報。 このメッセージを受信すると、 MsiRMFilesInUse ダイアログ が表示されます。 |
|
ディスク領域が不足しています。 |
|
新しいインストール アクションの開始がログに記録されます。 |
|
インストール アクションを含むデータ レコードがログに記録されます。 |
|
ユーザー インターフェイス初期化のパラメーターがログに記録されます。 |
|
進行状況バー の情報。 このメッセージには、これまでのユニットと合計ユニット数に関する情報が含まれています。 メッセージ形式の詳細については、 MsiProcessMessage 関数を参照してください。 このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。 |
|
これがサイレント インストールでない場合は、 基本的な UI が初期化されています。 これが 完全な UI インストールの場合、 完全な UI はまだ初期化されていません。 このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。 |
|
完全な UI が使用されている場合、 完全な UI は終了しました。 これが静かなインストールでない場合、 基本的な UI はまだ終了していません。 このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。 |
|
完全な UI ダイアログが表示される前に送信されます。 このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。 |
|
製品のインストールが開始されます。
メッセージには、製品の ProductName と ProductCode が含まれています。 |
|
製品のインストールが終了します。
メッセージには、製品の ProductName、ProductCode、および戻り値が含まれています。 |
[in] pvContext
コールバック関数に渡されるアプリケーション コンテキストへのポインター。 このパラメーターは、エラー チェックに使用できます。
戻り値
戻り値は、以前に設定された外部ハンドラーです。以前に設定されたハンドラーがなかった場合はゼロ (0) です。
解説
前の UI ハンドラーを復元するために、 MsiSetExternalUI の最初の呼び出しによって返される INSTALLUI_HANDLER を使用し、dwMessageFilter にゼロ (0) を指定して 、MsiSetExternalUI に対して 2 回目の呼び出しが行われます。
puiHandler パラメーターが指す外部ユーザー インターフェイス ハンドラーは、dwUILevel パラメーターを INSTALLUILEVEL_NONE に設定して MsiSetInternalUI が呼び出されない限り、外部ユーザー インターフェイスを完全に制御できません。 MsiSetInternalUI が呼び出されない場合、内部ユーザー インターフェイス レベルの既定値は INSTALLUILEVEL_BASIC になります。 その結果、外部ユーザー インターフェイス ハンドラーによって処理されないメッセージは、Windows インストーラーによって処理されます。 最初の "インストールの準備中。 . " ダイアログは、外部ユーザー インターフェイス ハンドラーがすべてのメッセージを処理する場合でも常に表示されます。
MsiSetExternalUI は 、ブートストラップ アプリケーションからのみ呼び出す必要があります。 カスタム アクションから MsiSetExternalUI を呼び出すことはできません。
注意
msi.h ヘッダーは、MSISetExternalUI をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | 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 インストーラー。 Windows インストーラーのバージョン別に必須となる最小 Windows サービス パックに関する詳細については、Windows インストーラーの実行時の要件に関する記事を参照してください。 |
対象プラットフォーム | Windows |
ヘッダー | msi.h |
Library | Msi.lib |
[DLL] | Msi.dll |