MsiGetPatchInfoExA 関数 (msi.h)
MsiGetPatchInfoEx 関数は、製品の指定されたインスタンスへのパッチの適用に関する情報を照会します。
構文
UINT MsiGetPatchInfoExA(
[in] LPCSTR szPatchCode,
[in] LPCSTR szProductCode,
[in] LPCSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] LPCSTR szProperty,
[out, optional] LPSTR lpValue,
[in, out] LPDWORD pcchValue
);
パラメーター
[in] szPatchCode
パッチの GUID を含む null で終わる文字列。 このパラメーターを NULL にすることはできません。
[in] szProductCode
製品インスタンスの ProductCode GUID を含む null で終わる文字列。 このパラメーターを NULL にすることはできません。
[in] szUserSid
クエリ対象のパッチのインスタンスが存在するセキュリティ識別子 (SID) を指定する null で終わる文字列。 NULL 値を使用すると、現在のユーザーが指定されます。
SID | 説明 |
---|---|
|
ログオンしているユーザーを指定します。 |
|
システム内の特定のユーザー ID の列挙を指定します。 次の例では、考えられるユーザー SID "S-1-3-64-2415071341-1358098788-3127455600-2561" を識別します。 |
[in] dwContext
列挙を、ユーザーごとのアンマネージド、ユーザーごとのマネージド、またはマシンごとのコンテキストに制限します。 このパラメーターには、次のいずれかの値を指定できます。
[in] szProperty
取得するプロパティ値を指定する null で終わる文字列。 szProperty パラメーターには、次のいずれかを指定できます。
Name | 意味 |
---|---|
|
製品が使用するキャッシュされたパッチ ファイルを取得します。 |
|
最後のパッチ インストールが製品に適用された一連のパッチ変換を取得します。 この値は、ユーザーがログオンしていない場合は、ユーザーごとの非マネージド アプリケーションでは使用できない場合があります。 |
|
この製品がサービスを最後に受信した時刻を取得します。 このプロパティの値は、パッチが適用または製品から削除されるたびに、または /v コマンド ライン オプションを使用して製品を修復するたびに置き換えられます。 製品が修復もパッチも受けたことがない場合、このプロパティの値は製品がこのコンピューターにインストールされた日時です。 |
|
パッチが製品からアンインストールできるものとしてマークされている場合、"1" を返します。 その場合でも、アンインストールできない別の更新プログラムでこの更新プログラムが必要な場合は、インストーラーによってアンインストールがブロックされる可能性があります。 |
|
このパッチが製品に現在適用されている場合、"1" を返します。 このパッチが別のパッチによって置き換えられる場合は、"2" を返します。 この修正プログラムが古い場合は、"4" を返します。 これらの値は、MsiEnumPatchesEx の dwFilter パラメーターで使用される定数に対応します。 |
|
パッチの登録されている表示名を取得します。 MsiPatchMetadata テーブルに DisplayName プロパティが含まれていないパッチの場合、返される表示名は空の文字列 ("") になります。 |
|
パッチの登録されているサポート情報 URL を取得します。 MsiPatchMetadata テーブルに MoreInfoURL プロパティが含まれていないパッチの場合、返されるサポート情報 URL は空の文字列 ("") になります。 |
[out, optional] lpValue
このパラメーターは、プロパティ値を受け取るバッファーへのポインターです。 このバッファーは、情報を格納するのに十分な大きさにする必要があります。 バッファーが小さすぎる場合、関数は ERROR_MORE_DATA を返し、*pcchValue をプロパティ値の TCHAR の数 (終端の NULL 文字を含まない) に設定します。
lpValue が NULL に設定され、pcchValue が有効なポインターに設定されている場合、関数は ERROR_SUCCESSを返し、*pcchValue を終了する NULL 文字を含まない値の TCHAR の数に設定します。 その後、関数を再度呼び出して値を取得できます。 lpValue バッファーは*pcchValue + 1 文字を含むのに十分な大きさです。
lpValue と pcchValue の両方が NULL に設定されている場合、値が存在する場合、関数は値を取得せずにERROR_SUCCESSを返します。
[in, out] pcchValue
関数を呼び出すとき、このパラメーターは lpValue バッファー内の TCHAR の数を指定する変数へのポインターである必要があります。 関数が戻るときに、関数が指定したバッファーに値をコピーするかどうかに関係なく、このパラメーターは要求された値のサイズに設定されます。 サイズは、要求された値の TCHAR の数として返されます。終端の null 文字は含まれません。
このパラメーターは、lpValue も NULL の場合にのみ NULL に設定できます。 それ以外の場合、関数は ERROR_INVALID_PARAMETERを返します。
戻り値
MsiGetPatchInfoEx 関数は、次の値を返します。
リターン コード | 説明 |
---|---|
|
この関数は、十分な特権を持つリソースにアクセスできません。 |
|
構成データが破損しています。 |
|
関数は失敗し、エラーは他のエラー コードでは識別されません。 |
|
無効なパラメーターが関数に渡されます。 |
|
この値は、指定されたバッファーに収まりません。 |
|
パッチが正常に列挙されました。 |
|
szProduct が指定する製品は、コンピューターにインストールされていません。 |
|
プロパティが認識されません。 |
|
パッチが認識されません。 |
解説
Windows インストーラー 2.0: サポートされていません。 この関数は、Windows インストーラー バージョン 3.0 以降で使用できます。
ユーザーは、表示されている製品インスタンスのパッチ データに対してクエリを実行できます。 管理者グループは、コンピューター上の任意の製品インスタンスと任意のユーザーのパッチ データに対してクエリを実行できます。 ユーザーがログオンしていない場合、すべての値がユーザー単位の非マネージド アプリケーションで使用できるわけではありません。
Note
msi.h ヘッダーは、MSIGetPatchInfoEx をエイリアスとして定義し、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 インストーラーのバージョンで必要な最小 Windows サービス パックに関する情報については、Windows インストーラーの実行時の要件に関する記事を参照してください。 |
対象プラットフォーム | Windows |
ヘッダー | msi.h |
Library | Msi.lib |
[DLL] | Msi.dll |