次の方法で共有


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" の場合、szUserSid は NULLする必要があります。
 

[in] dwContext

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

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

[in] szProperty

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

取得するプロパティ。 次の表のプロパティは、既にインストールされているアプリケーションからのみ取得できます。 すべての必須プロパティは使用可能であることが保証されますが、その他のプロパティは、プロパティが設定されている場合にのみ使用できます。 詳細については、次を参照してください。
必須プロパティ プロパティと プロパティします。

財産 意味
INSTALLPROPERTY_PRODUCTSTATE
アドバタイズされた場合は "1"、インストールされている場合は "5" として文字列形式で返される製品の状態。
INSTALLPROPERTY_HELPLINK
サポート リンク。 詳細については、ARPHELPLINK プロパティを参照してください。
INSTALLPROPERTY_HELPTELEPHONE
サポート電話。 詳細については、ARPHELPTELEPHONE プロパティを参照してください。
INSTALLPROPERTY_INSTALLDATE
この製品がサービスを最後に受信した時刻。 このプロパティの値は、パッチが適用または製品から削除されるたびに置き換えられます。または、/v Command-Line Option を使用して製品を修復します。 製品が修理やパッチを受け取っていない場合、このプロパティには、この製品がこのコンピューターにインストールされた時刻が含まれます。
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 製品識別子。 詳細については、ProductID プロパティを参照してください。
RegCompany 製品を使用するために登録されている会社。
RegOwner 製品を使用するために登録されている所有者。
 

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

価値 形容
InstanceType 欠損値または 0 (ゼロ) の値は、通常の製品インストールを示します。 値が 1 の場合は、複数インスタンス変換と、MSINEWINSTANCE プロパティを使用してインストールされた製品を示します。 詳細については、「製品とパッチの複数のインスタンスをインストールする」を参照してください。
 

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

財産 形容
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 を返し、*pcchValue を、終了する NULL 文字を含まない値の TCHAR の数に設定します。

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

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

[in, out, optional] pcchValue

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

このパラメーターは、lpValue も NULL場合にのみ、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 パラメーターには、null 文字をカウントせずに、文字列のサイズ TCHARに含まれます。

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

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

手記

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

必要条件

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

関連項目

ARPHELPLINK の

ARPHELPTELEPHONE

ARPINSTALLLOCATION

ARPPRODUCTICON

ARPURLINFOABOUT

ARPURLUPDATEINFO を する

Manufacturer

MsiConfigureFeature

MsiConfigureProduct

MsiConfigureProductEx

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

パッケージ コードの

ProductCode を する

ProductID の

ProductName を する

ProductVersion

の宿泊施設

必須プロパティ

SourceDir の

システムステータス機能