MsiSourceListGetInfoA 関数 (msi.h)
MsiSourceListGetInfo 関数は、特定のコンテキストの製品またはパッチのソース リストに関する情報を取得します。
構文
UINT MsiSourceListGetInfoA(
[in] LPCSTR szProductCodeOrPatchCode,
[in, optional] LPCSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] DWORD dwOptions,
[in] LPCSTR szProperty,
[out, optional] LPSTR szValue,
[in, out, optional] LPDWORD pcchValue
);
パラメーター
[in] szProductCodeOrPatchCode
製品またはパッチの ProductCode またはパッチ GUID。 null で終わる文字列を使用します。 文字列が 39 文字を超える場合、関数は失敗し、ERROR_INVALID_PARAMETERを返します。 このパラメーターを NULL にすることはできません。
[in, optional] szUserSid
このパラメーターには、製品またはパッチを含むユーザー アカウントを指定する文字列セキュリティ識別子 (SID) を指定できます。 SID は検証も解決もされません。 SID が正しくないと、ERROR_UNKNOWN_PRODUCTまたはERROR_UNKNOWN_PATCHが返される可能性があります。 マシン コンテキストを参照する場合、 szUserSID は NULL で、 dwContext はMSIINSTALLCONTEXT_MACHINEする必要があります。
[in] dwContext
このパラメーターは、製品またはパッチ インスタンスのコンテキストを指定します。 このパラメーターには、次のいずれかの値を含めることができます。
[in] dwOptions
dwOptions 値は、szProductCodeOrPatchCode の意味を指定します。
フラグ | 説明 |
---|---|
|
szProductCodeOrPatchCode は製品コード GUID です。 |
|
szProductCodeOrPatchCode はパッチ コード GUID です。 |
[in] szProperty
取得するプロパティ値を指定する null で終わる文字列。 szProperty パラメーターには、次の値のいずれかを指定できます。
[out, optional] szValue
情報を受け取る出力バッファー。 このバッファーは、情報を格納するのに十分な大きさにする必要があります。 バッファーが小さすぎる場合、関数は ERROR_MORE_DATAを返し、終了 NULL 文字を含まない値の TCHAR の数に *pcchValue を設定します。
szValue が NULL に設定され、pcchValue が有効なポインターに設定されている場合、関数は ERROR_SUCCESSを返し、終了する NULL 文字を含まない値の TCHAR の数に *pcchValue を設定します。 その後、関数を再度呼び出して値を取得し、*pcchValue + 1 文字を格納するのに十分な大きさの szValue バッファーを使用できます。
szValue と pcchValue の両方が NULL に設定されている場合、関数は値が存在する場合ERROR_SUCCESSを返します。値は取得されません。
[in, out, optional] pcchValue
szValue バッファー内の TCHAR の数を指定する変数へのポインター。 関数が戻るとき、関数が指定したバッファーに値をコピーするかどうかに関係なく、このパラメーターは要求された値のサイズに設定されます。 サイズは、要求された値の TCHAR の数として返されます。終端の null 文字は含まれません。
このパラメーターは、szValue も NULL の場合にのみ NULL に設定できます。それ以外の場合、関数はERROR_INVALID_PARAMETERを返します。
戻り値
MsiSourceListGetInfo 関数は、次の値を返します。
値 | 説明 |
---|---|
|
ユーザーには、指定したソース リストを読み取る機能がありません。 これは、製品またはパッチが見つかったかどうかを示すものではありません。 |
|
構成データが破損しています。 |
|
無効なパラメーターが関数に渡されます。 |
|
指定されたバッファーは、要求されたデータを格納するのに十分ではありません。 |
|
プロパティは正常に取得されます。 |
|
パッチが見つかりません。 |
|
製品が見つかりません。 |
|
source プロパティが見つかりません。 |
|
予期しない内部エラー。 |
解説
管理者は、マシン コンテキストまたは独自のユーザーごとのコンテキスト (マネージドまたはアンマネージド) の下に存在する製品またはパッチ インスタンスのインストールを変更できます。ユーザーごとに管理されるコンテキストの下に存在する製品またはパッチ インスタンスのインストールを変更できます。 管理者は、他のユーザーのアンマネージド コンテキストの下に存在する製品またはパッチ インスタンスの別のユーザーのインストールを変更することはできません。
管理者以外のユーザーは、別のユーザーのユーザーごとのコンテキスト (マネージドまたはアンマネージド) の下に存在する製品またはパッチ インスタンスのインストールを変更できません。ユーザーごとのアンマネージド コンテキストの下に存在する製品またはパッチ インスタンスのインストールを変更できます。 製品またはパッチ ソースの参照が有効になっている場合にのみ、マシン コンテキストまたは独自のユーザー管理コンテキストで製品またはパッチ インスタンスのインストールを変更できます。 ユーザーは、ポリシーを設定することでソースの参照を有効にすることができます。 詳細については、「 DisableBrowse」、「 AllowLockdownBrowse」、「 AlwaysInstallElevated ポリシー」を参照してください。
注意
msi.h ヘッダーは、MSISourceListGetInfo をエイリアスとして定義し、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 Server 2003 または Windows XP 上では Windows インストーラー 3.0 以降。 Windows インストーラーのバージョンに必要な最小の Windows Service Pack については、Windows インストーラーの実行時の要件に関する記事を参照してください。 |
対象プラットフォーム | Windows |
ヘッダー | msi.h |
Library | Msi.lib |
[DLL] | Msi.dll |