MsiGetProductInfoA 関数 (msi.h)
MsiGetProductInfo 関数は、公開およびインストールされている製品の製品情報を返します。
構文
UINT MsiGetProductInfoA(
[in] LPCSTR szProduct,
[in] LPCSTR szAttribute,
[out] LPSTR lpValueBuf,
[in, out] LPDWORD pcchValueBuf
);
パラメーター
[in] szProduct
製品の製品コードを指定します。
[in] szAttribute
取得するプロパティを指定します。
必須プロパティは使用可能であることが保証されますが、そのプロパティが設定されている場合にのみ他のプロパティを使用できます。 詳細については、「 プロパティで定義されているインターフェイスのプライベート C++ 固有の実装です。 次の一覧のプロパティは、インストールされているアプリケーションからのみ取得できます。
プロパティ | 意味 |
---|---|
|
サポート リンク。 詳細については、ARPHELPLINK プロパティを参照してください。 |
|
電話をサポートします。 詳細については、ARPHELPTELEPHONE プロパティを参照してください。 |
|
この製品が最後に保守を受けた日時。 このプロパティの値は、パッチが適用または製品から削除されるたびに、または /v コマンド ライン オプションを使用して製品を修復するたびに置き換えられます。 製品が修復もパッチも受けたことがない場合、このプロパティの値は製品がこのコンピューターにインストールされた日時です。 |
|
インストールされている言語。
Windows インストーラー 4.5 以前: サポートされていません。 |
|
インストールされている製品名。 詳細については、ProductName プロパティを参照してください。 |
|
インストール場所。 詳細については、ARPINSTALLLOCATION プロパティを参照してください。 |
|
インストール ソース。 詳細については、SourceDir プロパティを参照してください。 |
|
ローカルにキャッシュされたパッケージ。 |
|
公開者。 詳細については、Manufacturer プロパティを参照してください。 |
|
URL 情報。 詳細については、ARPURLINFOABOUT プロパティを参照してください。 |
|
URL 更新情報。 詳細については、ARPURLUPDATEINFO プロパティを参照してください。 |
|
ProductVersion プロパティから派生したマイナー製品バージョン。 |
|
ProductVersion プロパティから派生したメジャー製品バージョン。 |
|
製品のバージョン。 詳細については、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 にすることができます。 この場合、関数は プロパティが製品に正しく登録されていることを確認します。
戻り値
値 | 意味 |
---|---|
|
構成データが破損しています。 |
|
無効なパラメーターが関数に渡されました。 |
|
バッファーが小さすぎて、要求されたデータを保持できません。 |
|
関数は正常に終了しました。 |
|
製品が変換されていないか、アンインストールされています。 |
|
プロパティが認識されません。
メモ クエリ対象のアプリケーションがアドバタイズされ、インストールされていない場合、 MsiGetProductInfo 関数はERROR_UNKNOWN_PROPERTYを返します。
|
注釈
MsiGetProductInfo 関数が返されると、pcchValueBuf パラメーターにはバッファーに格納されている文字列の長さが含まれます。 返されるカウントには、終端の null 文字は含まれません。 バッファーの大きさが十分でない場合、 MsiGetProductInfo は ERROR_MORE_DATAを返し、 pcchValueBuf には文字列のサイズ (文字数) が含まれますが、null 文字はカウントされません。
MsiGetProductInfo(INSTALLPROPERTY_LOCALPACKAGE) は、キャッシュされたパッケージへのパスを必ずしも返すわけではありません。 キャッシュされたパッケージは内部でのみ使用されます。 メンテナンス モードのインストールは、 MsiConfigureFeature、 MsiConfigureProduct、または 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 |