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」を参照してください。

説明
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

コールバック関数に渡されるアプリケーション コンテキストへのポインター。

このパラメーターは、エラー チェックに使用できます。

[out, optional] ppuiPrevHandler

INSTALLUI_HANDLER_RECORD仕様に準拠する以前に設定されたコールバック関数へのポインターを返します。コールバックが以前に設定されていない場合は NULL を返します。

戻り値

リターン コード 説明
ERROR_SUCCESS
関数は正常に完了します。
ERROR_CALL_NOT_IMPLEMENTED
この値は、カスタム アクションからこの関数を呼び出そうとしたことを示します。

この関数は、カスタム アクションから呼び出すことはできません。

解説

カスタム アクションからこの関数を呼び出すことはできません。

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

関連項目

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

Windows Installer 3.0 以前でのサポート対象外