次の方法で共有


MsiSourceListEnumSourcesA 関数 (msi.h)

MsiSourceListEnumSources 関数は、指定されたパッチまたは製品のソース リスト内のソースを列挙します。

構文

UINT MsiSourceListEnumSourcesA(
  [in]                LPCSTR            szProductCodeOrPatchCode,
  [in, optional]      LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                DWORD             dwOptions,
  [in]                DWORD             dwIndex,
  [in, optional]      LPSTR             szSource,
  [in, out, optional] LPDWORD           pcchSource
);

パラメーター

[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する必要があります。

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

[in] dwContext

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

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

[in] dwOptions

dwOptions 値は、szProductCodeOrPatchCode 値の解釈とクリアするソースの種類を決定します。 このパラメーターは、次のMSISOURCETYPE_* 定数と次のいずれかのMSICODE_* 定数の組み合わせである必要があります。

意味
MSISOURCETYPE_NETWORK
ソースはネットワークの種類です。
MSISOURCETYPE_URL
ソースは URL の種類です。
MSICODE_PRODUCT
szProductCodeOrPatchCode は製品コードです。
MSICODE_PATCH
szProductCodeOrPatchCode はパッチ コードです。

[in] dwIndex

取得するソースのインデックス。 このパラメーターは、MsiSourceListEnumSources 関数の最初の呼び出しでは 0 (ゼロ) にする必要があります。その後、関数がERROR_NO_MORE_ITEMSを返すまで、後続の呼び出しではインクリメントする必要があります。 前の呼び出しがERROR_SUCCESS返された場合にのみ、インデックスをインクリメントする必要があります。

[in, optional] szSource

列挙されるソースへのパスを受け取るバッファーへのポインター。 このバッファーは、受信した値を格納するのに十分な大きさにする必要があります。 バッファーが小さすぎる場合、関数はERROR_MORE_DATAを返し、*pcchSource を、終了する NULL 文字を含まない値の TCHAR の数に設定します。

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

szSource と pcchSource がどちらも nullに設定されている場合、値が存在する場合、関数は値を取得せずにERROR_SUCCESS返します。

[in, out, optional] pcchSource

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

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

戻り値

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

価値 意味
ERROR_ACCESS_DENIED
ユーザーは、指定されたソース リストを読み取る機能を持っていません。 これは、製品またはパッチが見つかったかどうかを示すものではありません。
ERROR_BAD_CONFIGURATION
構成データが破損しています。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されます。
ERROR_MORE_DATA
指定されたバッファーは、要求されたデータを格納するのに十分ではありません。
ERROR_NO_MORE_ITEMS
指定したリストに列挙するソースはこれ以上ありません。
ERROR_SUCCESS
ソースが正常に列挙されました。
ERROR_UNKNOWN_PATCH
指定されたパッチは、指定されたコンテキストでコンピューターにインストールされません。
ERROR_UNKNOWN_PRODUCT
指定された製品は、指定されたコンテキストでコンピューターにインストールされません。
ERROR_FUNCTION_FAILED
予期しない内部エラー。

備考

MsiSourceListEnumSources を複数回呼び出して 1 つの製品インスタンスのすべてのソースを列挙する場合、各呼び出しは同じスレッドから行う必要があります。

管理者は、ユーザーごとのアンマネージド インストールとマネージド インストールを列挙できます。このインストール自体、マシンごとのインストール、およびユーザーごとのマネージド インストールは、任意のユーザーに対して行うことができます。 管理者は、他のユーザーのユーザーごとのアンマネージド インストールを列挙できません。 管理者以外は、ユーザーごとのアンマネージド インストールとマネージド インストールとマシンごとのインストールのみを列挙できます。

手記

msi.h ヘッダーは、MSISourceListEnumSources をエイリアスとして定義し、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 インストーラー 3.0 以降。 Windows インストーラーのバージョンで必要な最小 Windows Service Pack の詳細については、Windows インストーラーの Run-Time 要件を参照してください。
ターゲット プラットフォーム の ウィンドウズ
ヘッダー msi.h
ライブラリ Msi.lib
DLL Msi.dll

関連項目

インストール コンテキストの

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

ProductCode を する