MsiSourceListAddSourceExA 関数 (msi.h)
MsiSourceListAddSourceEx 関数は、指定されたコンテキストでパッチまたは製品のソースのセットを追加または並べ替えます。 また、指定したコンテキストに存在しないパッチのソース リストを作成することもできます。
構文
UINT MsiSourceListAddSourceExA(
[in] LPCSTR szProductCodeOrPatchCode,
[in, optional] LPCSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] DWORD dwOptions,
[in] LPCSTR szSource,
[in, optional] DWORD dwIndex
);
パラメーター
[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 値の解釈とクリアするソースの種類を決定します。 このパラメーターは、次のいずれかのMSISOURCETYPE_定数と次のMSICODE_定数の組み合わせである必要があります。
フラグ | 説明 |
---|---|
|
ソースはネットワークの種類です。 |
|
ソースは URL の種類です。 |
|
szProductCodeOrPatchCode は製品コードです。 |
|
szProductCodeOrPatchCode はパッチ コードです。 |
[in] szSource
追加または移動するソース。 このパラメーターには、ファイル名のないパスのみが含まれている必要があります。 ファイル名は既に "PackageName" として登録されており、 MsiSourceListSetInfo を使用して操作できます。 この引数は必須です。
[in, optional] dwIndex
このパラメーターは、ソースの新しいインデックスを提供します。 すべてのソースは、ソース リストで 1 から N にインデックスが作成されます。 N はリスト内のソースの数です。 リスト内のすべてのソースには一意のインデックスがあります。
MsiSourceListAddSourceEx が新しいソースで呼び出され、dwIndex が 0 (ゼロ) に設定されている場合、新しいソースが既存のリストに追加されます。 dwIndex が 0 に設定されていて、ソースが既にリストに存在する場合、リストに対する更新は行われません。
MsiSourceListAddSourceEx が新しいソースで呼び出され、dwIndex が count (N) より小さい 0 以外の値に設定されている場合、新しいソースは指定したインデックスに配置され、他のソースはインデックスが再作成されます。 ソースが既に存在する場合は、指定したインデックスに移動され、他のソースのインデックスが再作成されます。
MsiSourceListAddSourceEx が新しいソースで呼び出され、dwIndex がソース数 (N) より大きい 0 以外の値に設定されている場合、新しいソースが既存のリストに追加されます。 ソースが既に存在する場合は、リストの末尾に移動され、他のソースのインデックスが再作成されます。
戻り値
MsiSourceListAddSourceEx 関数は、次の値を返します。
値 | 説明 |
---|---|
|
ユーザーには、ソースを追加または移動する機能がありません。 製品またはパッチが見つかったかどうかを示しません。 |
|
構成データが破損しています。 |
|
Windows インストーラー サービスにアクセスできませんでした。 |
|
ソースが挿入または更新されました。 |
|
指定された製品が不明です。 |
|
指定されたパッチが不明です。 |
|
予期しない内部エラー。 |
解説
管理者は、マシン コンテキストまたは独自のユーザーごとのコンテキスト (マネージドまたはアンマネージド) の下に存在する製品またはパッチ インスタンスのインストールを変更できます。ユーザーごとに管理されるコンテキストの下に存在する製品またはパッチ インスタンスのインストールを変更できます。 管理者は、他のユーザーのアンマネージド コンテキストの下に存在する製品またはパッチ インスタンスの別のユーザーのインストールを変更することはできません。
管理者以外のユーザーは、別のユーザーのユーザーごとのコンテキスト (マネージドまたはアンマネージド) の下に存在する製品またはパッチ インスタンスのインストールを変更できません。ユーザーごとのアンマネージド コンテキストの下に存在する製品またはパッチ インスタンスのインストールを変更できます。 製品またはパッチ ソースの参照が有効になっている場合にのみ、マシン コンテキストまたは独自のユーザー管理コンテキストで製品またはパッチ インスタンスのインストールを変更できます。 ユーザーは、ポリシーを設定することでソースの参照を有効にすることができます。 詳細については、「 DisableBrowse」、「 AllowLockdownBrowse」、「 AlwaysInstallElevated ポリシー」を参照してください。
Note
msi.h ヘッダーは、MSISourceListAddSourceEx をエイリアスとして定義し、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 インストーラーのバージョンで必要な最小 Windows サービス パックに関する情報については、Windows インストーラーの実行時の要件に関する記事を参照してください。 |
対象プラットフォーム | Windows |
ヘッダー | msi.h |
Library | Msi.lib |
[DLL] | Msi.dll |