MsiGetProductInfoA 関数 (msi.h)

MsiGetProductInfo 関数は、公開およびインストールされている製品の製品情報を返します。

構文

UINT MsiGetProductInfoA(
  [in]      LPCSTR  szProduct,
  [in]      LPCSTR  szAttribute,
  [out]     LPSTR   lpValueBuf,
  [in, out] LPDWORD pcchValueBuf
);

パラメーター

[in] szProduct

製品の製品コードを指定します。

[in] szAttribute

取得するプロパティを指定します。

必須プロパティは使用可能であることが保証されますが、そのプロパティが設定されている場合にのみ他のプロパティを使用できます。 詳細については、「 プロパティで定義されているインターフェイスのプライベート C++ 固有の実装です。 次の一覧のプロパティは、インストールされているアプリケーションからのみ取得できます。

プロパティ 意味
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 製品の製品識別子。 詳細については、ProductID プロパティを参照してください。
RegCompany この製品を使用するものとして登録された会社。
RegOwner この製品を使用するものとして登録された所有者。
 

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

説明
InstanceType 欠損値または 0 (ゼロ) の値は、通常の製品インストールを示します。 値 1 (1) は、複数インスタンス変換と MSINEWINSTANCE プロパティを使用してインストールされた製品を示します。 Windows Server 2003 または Windows XP (SP1 適用) で実行するインストーラーで使用できます。 詳細については、「製品とパッチの複数のインスタンスをインストールする」を参照してください。
 

次の一覧のアドバタイズされたプロパティは、アドバタイズまたはインストールされているアプリケーションから取得できます。

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

製品がすべてのユーザーに対してマシンごとにアドバタイズまたはインストールされている場合は、1 (1) と等しくなります。

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

[out] lpValueBuf

プロパティ値を受け取るバッファーへのポインター。 このパラメーターには、null を指定できます。

[in, out] pcchValueBuf

lpValueBuf パラメーターが指すバッファーのサイズを文字数で指定する変数へのポインター。 入力時には、終端の null 文字のスペースを含む、バッファーのフルサイズです。 渡されたバッファーが小さすぎる場合、返されるカウントには終端の null 文字は含まれません。

lpValueBuf が null の場合、pcchValueBuf は null にすることができます。 この場合、関数は プロパティが製品に正しく登録されていることを確認します。

戻り値

意味
ERROR_BAD_CONFIGURATION
構成データが破損しています。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されました。
ERROR_MORE_DATA
バッファーが小さすぎて、要求されたデータを保持できません。
ERROR_SUCCESS
関数は正常に終了しました。
ERROR_UNKNOWN_PRODUCT
製品が変換されていないか、アンインストールされています。
ERROR_UNKNOWN_PROPERTY
プロパティが認識されません。
メモ クエリ対象のアプリケーションがアドバタイズされ、インストールされていない場合、 MsiGetProductInfo 関数はERROR_UNKNOWN_PROPERTYを返します。
 

注釈

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

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

MsiGetProductInfo を使用して、インストールされている製品でのみ使用できるプロパティについてアドバタイズされた製品に対してクエリを実行しようとすると、関数は ERROR_UNKNOWN_PROPERTYを返します。 たとえば、アプリケーションがアドバタイズされ、インストールされていない場合、INSTALLPROPERTY_INSTALLLOCATION プロパティのクエリは ERROR_UNKNOWN_PROPERTY のエラーを返します。

注意

msi.h ヘッダーは、MSIGetProductInfo をエイリアスとして定義し、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

こちらもご覧ください

インストール コンテキストの決定

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

システム状態関数