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が返される可能性があります。 コンピューター コンテキストを参照する場合、
[in] dwContext
製品またはパッチ インスタンスのコンテキスト。 このパラメーターには、次のいずれかの値を含めることができます。
[in] dwOptions
dwOptions 値は、szProductCodeOrPatchCode 値の解釈とクリアするソースの種類を決定します。 このパラメーターは、次のMSISOURCETYPE_* 定数と次のいずれかのMSICODE_* 定数の組み合わせである必要があります。
旗 | 意味 |
---|---|
|
ソースはネットワークの種類です。 |
|
ソースは URL の種類です。 |
|
szProductCodeOrPatchCode は製品コードです。 |
|
szProductCodeOrPatchCode はパッチ コードです。 |
[in] dwIndex
取得するソースのインデックス。 このパラメーターは、MsiSourceListEnumSources 関数の最初の呼び出しでは 0 (ゼロ) にする必要があります。その後、関数がERROR_NO_MORE_ITEMSを返すまで、後続の呼び出しではインクリメントする必要があります。 前の呼び出しがERROR_SUCCESS返された場合にのみ、インデックスをインクリメントする必要があります。
[in, optional] szSource
列挙されるソースへのパスを受け取るバッファーへのポインター。 このバッファーは、受信した値を格納するのに十分な大きさにする必要があります。 バッファーが小さすぎる場合、関数はERROR_MORE_DATAを返し、*pcchSource を、終了する NULL 文字を含まない値の TCHAR の数に設定します。
[in, out, optional] pcchSource
szSource バッファー内の TCHAR の数を指定する変数へのポインター。 関数が戻るときに、関数が指定したバッファーに値をコピーするかどうかに関係なく、このパラメーターは要求された値のサイズに設定されます。 サイズは、要求された値 TCHAR の数として返されます。終端の null 文字は含まれません。
このパラメーターは、
戻り値
MsiSourceListEnumSources 関数は、次の値を返します。
価値 | 意味 |
---|---|
|
ユーザーは、指定されたソース リストを読み取る機能を持っていません。 これは、製品またはパッチが見つかったかどうかを示すものではありません。 |
|
構成データが破損しています。 |
|
無効なパラメーターが関数に渡されます。 |
|
指定されたバッファーは、要求されたデータを格納するのに十分ではありません。 |
|
指定したリストに列挙するソースはこれ以上ありません。 |
|
ソースが正常に列挙されました。 |
|
指定されたパッチは、指定されたコンテキストでコンピューターにインストールされません。 |
|
指定された製品は、指定されたコンテキストでコンピューターにインストールされません。 |
|
予期しない内部エラー。 |
備考
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 を