次の方法で共有


MsiQueryComponentStateA 関数 (msi.h)

MsiQueryComponentState 関数は、コンポーネントのインストール済み状態を返します。 この関数は、現在のユーザー以外のユーザー アカウントのユーザー アカウントに対してユーザーごとのアンマネージド コンテキストで製品がアドバタイズされない場合に、現在のユーザー以外のユーザー アカウントにインストールされている製品のインスタンスのコンポーネントを照会できます。 現在のユーザー以外のユーザーにインストールされている製品の情報を取得するには、呼び出し元プロセスに管理特権が必要です。

構文

UINT MsiQueryComponentStateA(
  [in]  LPCSTR            szProductCode,
  [in]  LPCSTR            szUserSid,
  [in]  MSIINSTALLCONTEXT dwContext,
  [in]  LPCSTR            szComponentCode,
  [out] INSTALLSTATE      *pdwState
);

パラメーター

[in] szProductCode

コンポーネントを含む製品の ProductCode GUID を指定します。

[in] szUserSid

クエリ対象の製品のインスタンスが存在するアカウントのセキュリティ識別子 (SID) を指定します。 dwContext MSIINSTALLCONTEXT_MACHINEされていない場合、null は現在のユーザーを指定します。

SID の種類 意味
NULL
NULL は、現在ログオンしているユーザーを表します。
ユーザー SID の
システム内の特定のユーザーの列挙を指定します。 ユーザー SID の例として、"S-1-3-64-2415071341-1358098788-3127455600-2561" があります。
 
特別な SID 文字列 "S-1-5-18" (システム) を使用して、コンピューターごとにインストールされている製品を列挙することはできません。 dwContext MSIINSTALLCONTEXT_MACHINE場合、szUserSid null にする必要があります。
 

[in] dwContext

クエリ対象の製品インスタンスのインストール コンテキスト。

名前 意味
MSIINSTALLCONTEXT_USERMANAGED
製品のユーザーごとのマネージド インスタンスのコンポーネントの状態を取得します。
MSIINSTALLCONTEXT_USERUNMANAGED
製品のユーザーごとの非マネージド インスタンスのコンポーネントの状態を取得します。
MSIINSTALLCONTEXT_MACHINE
製品のマシンごとのインスタンスのコンポーネントの状態を取得します。

[in] szComponentCode

クエリを実行するコンポーネントを指定します。 コンポーネント テーブルの ComponentID 列にあるコンポーネントのコンポーネント コード GUID。

[out] pdwState

指定した製品インスタンスのコンポーネントのインストール状態。 このパラメーターは、次のいずれかの値または null 値を返すことができます。

価値 意味
INSTALLSTATE_LOCAL
コンポーネントはローカルにインストールされます。
INSTALLSTATE_SOURCE
コンポーネントは、ソースから実行するためにインストールされます。

戻り値

MsiQueryComponentState 関数は、次の値を返します。

価値 意味
ERROR_ACCESS_DENIED
現在のユーザー以外のユーザーにインストールされている製品の情報を取得するには、呼び出し元プロセスに管理特権が必要です。
ERROR_BAD_CONFIGURATION
構成データが破損しています。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。
ERROR_SUCCESS
関数は正常に完了しました。
ERROR_UNKNOWN_COMPONENT
コンポーネント ID は既知のコンポーネントを識別しません。
ERROR_UNKNOWN_PRODUCT
製品コードは既知の製品を識別しません。
ERROR_FUNCTION_FAILED
Windows エラー コードに書き込むことができないエラー。
ERROR_MORE_DATA
バッファーが小さすぎてユーザー SID を取得できません。
 

詳細については、「表示されるエラー メッセージの」を参照してください。

備考

手記

msi.h ヘッダーは、MSIQueryComponentState をエイリアスとして定義し、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 インストーラーのバージョンで必要な最小 Windows Service Pack の詳細については、Windows インストーラーの Run-Time 要件を参照してください。
ターゲット プラットフォーム の ウィンドウズ
ヘッダー msi.h
ライブラリ Msi.lib
DLL Msi.dll

関連項目

コンポーネント

表示されたエラー メッセージの

インストーラー選択関数

Windows インストーラー 2.0 以前の ではサポートされていません

ProductCode を する