MsiGetProductInfoExA 関数 (msi.h)

MsiGetProductInfoEx 関数は、アドバタイズされた製品とインストールされている製品の製品情報を返します。 この関数は情報を取得できます

現在のユーザー以外のユーザー アカウントにインストールされている製品のインスタンスについて。

呼び出し元プロセスには、現在のユーザーとは異なるユーザーの管理者権限が必要です。 MsiGetProductInfoEx 関数は、現在のユーザー以外のユーザー アカウントのユーザーごとのアンマネージド コンテキストでアドバタイズされた製品のインスタンスに対してクエリを実行できません。

この関数は、 MsiGetProductInfo 関数の拡張機能です。

構文

UINT MsiGetProductInfoExA(
  [in]                LPCSTR            szProductCode,
  [in]                LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                LPCSTR            szProperty,
  [out, optional]     LPSTR             szValue,
  [in, out, optional] LPDWORD           pcchValue
);

パラメーター

[in] szProductCode

クエリを実行する製品インスタンスの ProductCode GUID。

[in] szUserSid

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

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

[in] dwContext

クエリを実行する製品インスタンスのインストール コンテキスト。

名前 意味
MSIINSTALLCONTEXT_USERMANAGED
製品のユーザーごとのマネージド インスタンスの product プロパティを取得します。
MSIINSTALLCONTEXT_USERUNMANAGED
製品のユーザーごとのアンマネージド インスタンスの product プロパティを取得します。
MSIINSTALLCONTEXT_MACHINE
製品のマシンごとのインスタンスの product プロパティを取得します。

[in] szProperty

クエリ対象のプロパティ。

取得するプロパティ。 次の表のプロパティは、既にインストールされているアプリケーションからのみ取得できます。 必須プロパティはすべて使用できますが、他のプロパティは プロパティが設定されている場合にのみ使用できます。 詳細については、「
必須のプロパティプロパティ

プロパティ 説明
INSTALLPROPERTY_PRODUCTSTATE
アドバタイズされた場合は "1" として文字列形式で返され、インストールされている場合は "5" として返される製品の状態。
INSTALLPROPERTY_HELPLINK
サポート リンク。 詳細については、ARPHELPLINK プロパティを参照してください。
INSTALLPROPERTY_HELPTELEPHONE
サポート電話。 詳細については、ARPHELPTELEPHONE プロパティを参照してください。
INSTALLPROPERTY_INSTALLDATE
この製品が最後に保守を受けた日時。 このプロパティの値は、パッチが適用または製品から削除されるたびに、または /v コマンド ライン オプションを使用して製品を修復するたびに置き換えられます。 製品が修復もパッチも受けたことがない場合、このプロパティの値は製品がこのコンピューターにインストールされた日時です。
INSTALLPROPERTY_INSTALLEDLANGUAGE
インストールされている言語。

Windows インストーラー 4.5 以前: サポートされていません。

INSTALLPROPERTY_INSTALLEDPRODUCTNAME
インストールされている製品名。 詳細については、ProductName プロパティを参照してください。
INSTALLPROPERTY_INSTALLLOCATION
インストール場所。 詳細については、ARPINSTALLLOCATION プロパティを参照してください。
INSTALLPROPERTY_INSTALLSOURCE
インストール ソース。 詳細については、SourceDir プロパティを参照してください。
INSTALLPROPERTY_LOCALPACKAGE
ローカル キャッシュ パッケージ。
INSTALLPROPERTY_PUBLISHER
パブリッシャーです。 詳細については、Manufacturer プロパティを参照してください。
INSTALLPROPERTY_URLINFOABOUT
URL 情報。 詳細については、ARPURLINFOABOUT プロパティを参照してください。
INSTALLPROPERTY_URLUPDATEINFO
URL の更新情報。 詳細については、ARPURLUPDATEINFO プロパティを参照してください。
INSTALLPROPERTY_VERSIONMINOR
ProductVersion プロパティから派生したマイナー製品バージョン。
INSTALLPROPERTY_VERSIONMAJOR
ProductVersion プロパティから派生したメジャー製品バージョン。
INSTALLPROPERTY_VERSIONSTRING
製品のバージョン。 詳細については、ProductVersion プロパティを参照してください。
 

インストールされているアプリケーションから製品 ID、登録済み所有者、または登録済み会社を取得するには、 szProperty を次のいずれかのテキスト文字列値に設定します。

説明
ProductID 製品 ID。 詳細については、ProductID プロパティを参照してください。
RegCompany 製品を使用するために登録されている会社。
RegOwner 製品を使用するために登録されている所有者。
 

製品のインスタンスの種類を取得するには、 szProperty を次の値に設定します。 このプロパティは、アドバタイズまたはインストールされた製品で使用できます。

説明
InstanceType 欠損値または 0 (ゼロ) の値は、通常の製品インストールを示します。 値 1 は、複数インスタンス変換と MSINEWINSTANCE プロパティを使用してインストールされた製品を示します。 詳しくは、「製品とパッチの複数のインスタンスをインストールする」をご覧ください。
 

次の表のプロパティは、アドバタイズまたはインストールされているアプリケーションから取得できます。 これらのプロパティは、現在のユーザー アカウント以外のユーザー アカウントの per-user-unmanaged (ユーザーごとのアンマネージド) コンテキストでインストールされている製品インスタンスでは取得できません。

プロパティ 説明
INSTALLPROPERTY_TRANSFORMS 変換。
INSTALLPROPERTY_LANGUAGE 製品の言語。
INSTALLPROPERTY_PRODUCTNAME 人間が判読できる製品名。 詳細については、ProductName プロパティを参照してください。
INSTALLPROPERTY_ASSIGNMENTTYPE 製品がユーザーごとにアドバタイズまたはインストールされている場合は、0 (ゼロ) と等しくなります。

製品がすべてのユーザー用に、コンピューターごとに提供またはインストールされている場合は 1 です。

INSTALLPROPERTY_PACKAGECODE 製品がインストールされるパッケージの識別子。 詳細については、「 パッケージ コード 」プロパティを参照してください。
INSTALLPROPERTY_VERSION ProductVersion プロパティから派生した製品バージョン。
INSTALLPROPERTY_PRODUCTICON パッケージのプライマリ アイコン。 詳細については、ARPPRODUCTICON プロパティを参照してください。
INSTALLPROPERTY_PACKAGENAME 元のインストール パッケージの名前。
INSTALLPROPERTY_AUTHORIZED_LUA_APP 値 1 は、 ユーザー アカウント制御 (UAC) パッチ適用を使用して管理者以外が処理できる製品を示します。 欠損値または 0 (ゼロ) の値は、最小特権のパッチ適用が有効になっていないことを示します。 Windows インストーラー 3.0 以降で使用できます。

[out, optional] szValue

プロパティ値を受け取るバッファーへのポインター。 このバッファーは、情報を格納するのに十分な大きさにする必要があります。 バッファーが小さすぎる場合、関数は ERROR_MORE_DATAを返し、終了 NULL 文字を含まない値の TCHAR の数に *pcchValue を設定します。

lpValueNULL に設定され、pcchValue が有効なポインターに設定されている場合、関数は ERROR_SUCCESSを返し、終了する NULL 文字を含まない値の TCHAR の数に *pcchValue を設定します。 その後、関数を再度呼び出して値を取得できます。 lpValue バッファーは、*pcchValue + 1 文字を含むのに十分な大きさです。

lpValuepcchValue の両方が NULL に設定されている場合、値が存在する場合、関数は値を取得せずにERROR_SUCCESSを返します。

[in, out, optional] pcchValue

lpValue バッファー内の TCHAR の数を指定する変数へのポインター。 関数が戻るとき、関数が指定したバッファーに値をコピーするかどうかに関係なく、このパラメーターは要求された値のサイズに設定されます。 サイズは、要求された値の TCHAR の数として返されます。終端の null 文字は含まれません。

このパラメーターは、lpValueNULL の場合にのみ NULL に設定できます。 それ以外の場合、関数は ERROR_INVALID_PARAMETERを返します。

戻り値

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

リターン コード 説明
ERROR_ACCESS_DENIED
現在のユーザー以外のユーザーに対してインストールされた製品の情報を取得するには、呼び出し元プロセスに管理特権が必要です。
ERROR_BAD_CONFIGURATION
構成データが破損しています。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されます。
ERROR_MORE_DATA
バッファーが小さすぎて、要求されたデータを保持できません。
ERROR_SUCCESS
関数は正常に終了しました。
ERROR_UNKNOWN_PRODUCT
製品が未変換またはアンインストールされている。
ERROR_UNKNOWN_PROPERTY
プロパティが認識されません。
メモMsiGetProductInfo 関数は、クエリ対象のアプリケーションがアドバタイズされ、インストールされていない場合にERROR_UNKNOWN_PROPERTYを返します。
 
ERROR_FUNCTION_FAILED
予期しない内部エラー。

注釈

MsiGetProductInfoEx 関数が返されると、pcchValue パラメーターにはバッファーに格納されている文字列の長さが含まれます。 返されるカウントには、終端の null 文字は含まれません。 バッファーの大きさが十分でない場合、 MsiGetProductInfoExERROR_MORE_DATAを返し、 pcchValue パラメーターには文字列のサイズが TCHAR で含まれますが、null 文字はカウントされません。

MsiGetProductInfoEx 関数 (INSTALLPROPERTY_LOCALPACKAGE) は、キャッシュされたパッケージへのパスを返します。 キャッシュされたパッケージは内部使用専用です。 メンテナンス モードのインストールは、 MsiConfigureFeatureMsiConfigureProduct、または MsiConfigureProductEx 関数を使用して呼び出す必要があります。

MsiGetProductInfo 関数は、クエリ対象のアプリケーションがアドバタイズされ、インストールされていない場合にERROR_UNKNOWN_PROPERTYを返します。 たとえば、アプリケーションがアドバタイズされ、インストールされていない場合、 INSTALLPROPERTY_INSTALLLOCATION のクエリは ERROR_UNKNOWN_PROPERTY のエラーを返します。

注意

msi.h ヘッダーは、MSIGetProductInfoEx をエイリアスとして定義します。これは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント 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

こちらもご覧ください

ARPHELPLINK

ARPHELPTELEPHONE

ARPINSTALLLOCATION

ARPPRODUCTICON

ARPURLINFOABOUT

ARPURLUPDATEINFO

Manufacturer

MsiConfigureFeature

MsiConfigureProduct

MsiConfigureProductEx

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

パッケージ コード

ProductCode

ProductID

ProductName

ProductVersion

Properties

必須プロパティ

SourceDir

システム状態関数