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 | 意味 |
---|---|
|
現在ログオンしているユーザー。 |
|
システム内の特定のユーザーの列挙。 ユーザー SID の例として、"S-1-3-64-2415071341-1358098788-3127455600-2561" があります。 |
[in] dwContext
クエリを実行する製品インスタンスのインストール コンテキスト。
[in] szProperty
クエリ対象のプロパティ。
取得するプロパティ。 次の表のプロパティは、既にインストールされているアプリケーションからのみ取得できます。 必須プロパティはすべて使用できますが、他のプロパティは プロパティが設定されている場合にのみ使用できます。 詳細については、「
必須のプロパティ と プロパティ。
プロパティ | 説明 |
---|---|
|
アドバタイズされた場合は "1" として文字列形式で返され、インストールされている場合は "5" として返される製品の状態。 |
|
サポート リンク。 詳細については、ARPHELPLINK プロパティを参照してください。 |
|
サポート電話。 詳細については、ARPHELPTELEPHONE プロパティを参照してください。 |
|
この製品が最後に保守を受けた日時。 このプロパティの値は、パッチが適用または製品から削除されるたびに、または /v コマンド ライン オプションを使用して製品を修復するたびに置き換えられます。 製品が修復もパッチも受けたことがない場合、このプロパティの値は製品がこのコンピューターにインストールされた日時です。 |
|
インストールされている言語。
Windows インストーラー 4.5 以前: サポートされていません。 |
|
インストールされている製品名。 詳細については、ProductName プロパティを参照してください。 |
|
インストール場所。 詳細については、ARPINSTALLLOCATION プロパティを参照してください。 |
|
インストール ソース。 詳細については、SourceDir プロパティを参照してください。 |
|
ローカル キャッシュ パッケージ。 |
|
パブリッシャーです。 詳細については、Manufacturer プロパティを参照してください。 |
|
URL 情報。 詳細については、ARPURLINFOABOUT プロパティを参照してください。 |
|
URL の更新情報。 詳細については、ARPURLUPDATEINFO プロパティを参照してください。 |
|
ProductVersion プロパティから派生したマイナー製品バージョン。 |
|
ProductVersion プロパティから派生したメジャー製品バージョン。 |
|
製品のバージョン。 詳細については、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 を設定します。
lpValue が NULL に設定され、pcchValue が有効なポインターに設定されている場合、関数は ERROR_SUCCESSを返し、終了する NULL 文字を含まない値の TCHAR の数に *pcchValue を設定します。 その後、関数を再度呼び出して値を取得できます。 lpValue バッファーは、*pcchValue + 1 文字を含むのに十分な大きさです。
lpValue と pcchValue の両方が NULL に設定されている場合、値が存在する場合、関数は値を取得せずにERROR_SUCCESSを返します。
[in, out, optional] pcchValue
lpValue バッファー内の TCHAR の数を指定する変数へのポインター。 関数が戻るとき、関数が指定したバッファーに値をコピーするかどうかに関係なく、このパラメーターは要求された値のサイズに設定されます。 サイズは、要求された値の TCHAR の数として返されます。終端の null 文字は含まれません。
このパラメーターは、lpValue が NULL の場合にのみ NULL に設定できます。 それ以外の場合、関数は ERROR_INVALID_PARAMETERを返します。
戻り値
MsiGetProductInfoEx 関数は、次の値を返します。
リターン コード | 説明 |
---|---|
|
現在のユーザー以外のユーザーに対してインストールされた製品の情報を取得するには、呼び出し元プロセスに管理特権が必要です。 |
|
構成データが破損しています。 |
|
無効なパラメーターが関数に渡されます。 |
|
バッファーが小さすぎて、要求されたデータを保持できません。 |
|
関数は正常に終了しました。 |
|
製品が未変換またはアンインストールされている。 |
|
プロパティが認識されません。
メモMsiGetProductInfo 関数は、クエリ対象のアプリケーションがアドバタイズされ、インストールされていない場合にERROR_UNKNOWN_PROPERTYを返します。
|
|
予期しない内部エラー。 |
注釈
MsiGetProductInfoEx 関数が返されると、pcchValue パラメーターにはバッファーに格納されている文字列の長さが含まれます。 返されるカウントには、終端の null 文字は含まれません。 バッファーの大きさが十分でない場合、 MsiGetProductInfoEx は ERROR_MORE_DATAを返し、 pcchValue パラメーターには文字列のサイズが TCHAR で含まれますが、null 文字はカウントされません。
MsiGetProductInfoEx 関数 (INSTALLPROPERTY_LOCALPACKAGE) は、キャッシュされたパッケージへのパスを返します。 キャッシュされたパッケージは内部使用専用です。 メンテナンス モードのインストールは、 MsiConfigureFeature、 MsiConfigureProduct、または 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 |