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 関数に関するページを参照してください。

説明
INSTALLLOGMODE_FILESINUSE
使用中のファイル情報。 このメッセージを受信すると、 FilesInUse ダイアログ が表示されます。
INSTALLLOGMODE_FATALEXIT
インストールの早期終了。
INSTALLLOGMODE_ERROR
エラー メッセージがログに記録されます。
INSTALLLOGMODE_WARNING
警告メッセージがログに記録されます。
INSTALLLOGMODE_USER
ユーザー要求がログに記録されます。
INSTALLLOGMODE_INFO
表示されないステータス メッセージがログに記録されます。
INSTALLLOGMODE_RESOLVESOURCE
有効なソースの場所を決定するための要求。
INSTALLLOGMODE_RMFILESINUSE
使用中のファイル情報。 このメッセージを受信すると、 MsiRMFilesInUse ダイアログ が表示されます。
INSTALLLOGMODE_OUTOFDISKSPACE
ディスク領域が不足しています。
INSTALLLOGMODE_ACTIONSTART
新しいインストール アクションの開始がログに記録されます。
INSTALLLOGMODE_ACTIONDATA
インストール アクションを含むデータ レコードがログに記録されます。
INSTALLLOGMODE_COMMONDATA
ユーザー インターフェイス初期化のパラメーターがログに記録されます。
INSTALLLOGMODE_PROGRESS
進行状況バー の情報。 このメッセージには、これまでのユニットと合計ユニット数に関する情報が含まれています。 メッセージ形式の詳細については、 MsiProcessMessage 関数を参照してください。 このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。
INSTALLLOGMODE_INITIALIZE
これがサイレント インストールでない場合は、 基本的な UI が初期化されています。 これが 完全な UI インストールの場合、 完全な UI はまだ初期化されていません。 このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。
INSTALLLOGMODE_TERMINATE
完全な UI が使用されている場合、 完全な UI は終了しました。 これが静かなインストールでない場合、 基本的な UI はまだ終了していません。 このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。
INSTALLLOGMODE_SHOWDIALOG
完全な UI ダイアログが表示される前に送信されます。 このメッセージは外部ユーザー インターフェイスにのみ送信され、ログに記録されません。
INSTALLLOGMODE_INSTALLSTART
製品のインストールが開始されます。

メッセージには、製品の ProductName と ProductCode が含まれています。

INSTALLLOGMODE_INSTALLEND
製品のインストールが終了します。

メッセージには、製品の 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

関連項目

インターフェイス関数とログ関数