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が返される可能性があります。 マシン コンテキストを参照する場合、 szUserSIDNULL で、 dwContext はMSIINSTALLCONTEXT_MACHINEする必要があります。

SID の種類 説明
NULL
NULL は、現在ログオンしているユーザーを示します。 現在のユーザー アカウントを参照する場合、 szUserSIDNULL にすることができ、 dwContext はMSIINSTALLCONTEXT_USERMANAGEDまたはMSIINSTALLCONTEXT_USERUNMANAGEDできます。
ユーザー SID
システム内の特定のユーザーの列挙を指定します。 ユーザー SID の例として、"S-1-3-64-2415071341-1358098788-3127455600-2561" があります。
 
メモ 特殊な SID 文字列 s-1-5-18 (システム) を使用して、マシンごとにインストールされている製品またはパッチを列挙することはできません。 SID 値を s-1-5-18 に設定すると、ERROR_INVALID_PARAMETERが返されます。
 
メモ 特別な SID 文字列 s-1-1-0 (すべてのユーザー) を使用しないでください。 SID 値を s-1-1-0 に設定すると失敗し、ERROR_INVALID_PARAMが返されます。
 

[in] dwContext

このパラメーターは、製品またはパッチ インスタンスのコンテキストを指定します。 このパラメーターには、次のいずれかの値を含めることができます。

コンテキストの種類 説明
MSIINSTALLCONTEXT_USERMANAGED
製品またはパッチ インスタンスは、ユーザー管理コンテキストに存在します。
MSIINSTALLCONTEXT_USERUNMANAGED
製品またはパッチ インスタンスは、ユーザーごとのアンマネージド コンテキストに存在します。
MSIINSTALLCONTEXT_MACHINE
製品またはパッチ インスタンスは、マシンごとのコンテキストに存在します。

[in] dwOptions

dwOptions 値は、szProductCodeOrPatchCode の意味を指定します。

フラグ 説明
MSICODE_PRODUCT
szProductCodeOrPatchCode は製品コード GUID です。
MSICODE_PATCH
szProductCodeOrPatchCode はパッチ コード GUID です。

[in] szProperty

取得するプロパティ値を指定する null で終わる文字列。 szProperty パラメーターには、次の値のいずれかを指定できます。

名前 意味
INSTALLPROPERTY_MEDIAPACKAGEPATH
"MediaPackagePath"
インストール メディアのルートに対して相対的なパス。
INSTALLPROPERTY_DISKPROMPT
"DiskPrompt"
ユーザーにインストール メディアの入力を求めるときに使用されるプロンプト テンプレート。
INSTALLPROPERTY_LASTUSEDSOURCE
"LastUsedSource"
製品に最後に使用したソースの場所。
INSTALLPROPERTY_LASTUSEDTYPE
"LastUsedType"
最後に使用したソースがネットワークの場所の場合は "n" です。 最後に使用したソースが URL の場所の場合は "u" です。 最後に使用したソースがメディアの場合は "m" です。 最後に使用されたソースがない場合は、空の文字列 ("") です。
INSTALLPROPERTY_PACKAGENAME
"PackageName"
ソースの Windows インストーラー パッケージまたはパッチ パッケージの名前。

[out, optional] szValue

情報を受け取る出力バッファー。 このバッファーは、情報を格納するのに十分な大きさにする必要があります。 バッファーが小さすぎる場合、関数は ERROR_MORE_DATAを返し、終了 NULL 文字を含まない値の TCHAR の数に *pcchValue を設定します。

szValueNULL に設定され、pcchValue が有効なポインターに設定されている場合、関数は ERROR_SUCCESSを返し、終了する NULL 文字を含まない値の TCHAR の数に *pcchValue を設定します。 その後、関数を再度呼び出して値を取得し、*pcchValue + 1 文字を格納するのに十分な大きさの szValue バッファーを使用できます。

szValuepcchValue の両方が NULL に設定されている場合、関数は値が存在する場合ERROR_SUCCESSを返します。値は取得されません。

[in, out, optional] pcchValue

szValue バッファー内の TCHAR の数を指定する変数へのポインター。 関数が戻るとき、関数が指定したバッファーに値をコピーするかどうかに関係なく、このパラメーターは要求された値のサイズに設定されます。 サイズは、要求された値の TCHAR の数として返されます。終端の null 文字は含まれません。

このパラメーターは、szValueNULL の場合にのみ NULL に設定できます。それ以外の場合、関数はERROR_INVALID_PARAMETERを返します。

戻り値

MsiSourceListGetInfo 関数は、次の値を返します。

説明
ERROR_ACCESS_DENIED
ユーザーには、指定したソース リストを読み取る機能がありません。 これは、製品またはパッチが見つかったかどうかを示すものではありません。
ERROR_BAD_CONFIGURATION
構成データが破損しています。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されます。
ERROR_MORE_DATA
指定されたバッファーは、要求されたデータを格納するのに十分ではありません。
ERROR_SUCCESS
プロパティは正常に取得されます。
ERROR_UNKNOWN_PATCH
パッチが見つかりません。
ERROR_UNKNOWN_PRODUCT
製品が見つかりません。
ERROR_UNKNOWN_PROPERTY
source プロパティが見つかりません。
ERROR_FUNCTION_FAILED
予期しない内部エラー。

解説

管理者は、マシン コンテキストまたは独自のユーザーごとのコンテキスト (マネージドまたはアンマネージド) の下に存在する製品またはパッチ インスタンスのインストールを変更できます。ユーザーごとに管理されるコンテキストの下に存在する製品またはパッチ インスタンスのインストールを変更できます。 管理者は、他のユーザーのアンマネージド コンテキストの下に存在する製品またはパッチ インスタンスの別のユーザーのインストールを変更することはできません。

管理者以外のユーザーは、別のユーザーのユーザーごとのコンテキスト (マネージドまたはアンマネージド) の下に存在する製品またはパッチ インスタンスのインストールを変更できません。ユーザーごとのアンマネージド コンテキストの下に存在する製品またはパッチ インスタンスのインストールを変更できます。 製品またはパッチ ソースの参照が有効になっている場合にのみ、マシン コンテキストまたは独自のユーザー管理コンテキストで製品またはパッチ インスタンスのインストールを変更できます。 ユーザーは、ポリシーを設定することでソースの参照を有効にすることができます。 詳細については、「 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

関連項目

MsiSourceListSetInfo

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

ProductCode