MsiSourceListAddSourceEx 函式會在特定情境中新增或重新排序修補或產品的來源集合。 它也能建立一個在指定情境中不存在的補丁原始碼清單。
語法
UINT MsiSourceListAddSourceExW(
[in] LPCWSTR szProductCodeOrPatchCode,
[in, optional] LPCWSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] DWORD dwOptions,
[in] LPCWSTR szSource,
[in, optional] DWORD dwIndex
);
參數
[in] szProductCodeOrPatchCode
產品或補丁的 ProductCode 或補丁 GUID。 使用空終端字串。 若字串長度超過 39 個字元,函式失敗並回傳 ERROR_INVALID_PARAMETER。 這個參數不能 NULL。
[in, optional] szUserSid
這個參數可以是字串 SID,用來指定包含產品或補丁的使用者帳號。 SID 尚未被驗證或解決。 錯誤的 SID 可能會回傳 ERROR_UNKNOWN_PRODUCT 或 ERROR_UNKNOWN_PATCH。 在引用機器上下文時,szUserSID 必須是 NULL,dwContext 必須是 MSIINSTALLCONTEXT_MACHINE。
[in] dwContext
此參數指定產品或補丁實例的上下文。 此參數可包含以下其中一個值。
| 語境類型 | Meaning |
|---|---|
|
產品或修補實例存在於每位使用者管理的情境中。 |
|
產品或修補實例存在於每個使用者未管理的上下文中。 |
|
產品或補丁實例存在於每台機器的情境中。 |
[in] dwOptions
dwOptions 值決定 szProductCodeOrPatchCode 值的解釋及需清除來源的類型。 此參數必須是以下MSISOURCETYPE_常數之一與MSICODE_常數之一的組合。
| Flag | Meaning |
|---|---|
|
來源是一種網路類型。 |
|
來源是一個網址類型。 |
|
szProductCodeOrPatchCode 是一個產品代碼。 |
|
szProductCodeOrPatchCode 是一個補丁代碼。 |
[in] szSource
新增或移動的來源。 此參數預期僅包含路徑,而非檔名。 該檔名已註冊為「PackageName」,可透過 MsiSourceListSetInfo 操作。 這個參數是必需的。
[in, optional] dwIndex
此參數提供來源的新索引。 所有來源在來源列表中的索引範圍從 1 到 N,其中 N 是列表中的來源數量。 列表中的每個來源都有獨特的索引。
如果 MsiSourceListAddSourceEx 被呼叫,且 dwIndex 設為 0(0),則新來源會附加到現有清單中。 如果 dwIndex 設為 0,且來源已經存在於清單中,則不會對清單進行更新。
若呼叫 MsiSourceListAddSourceEx 並設定新來源且 dwIndex 設定為小於 count (N) 的非零值,則新來源會被放置於指定索引,其他來源則重新索引。 如果來源已經存在,則會移至指定索引,其他來源則重新索引。
如果呼叫 MsiSourceListAddSourceEx 並設定新來源, dwIndex 設定為大於來源數量 (N) 的非零值,則新來源會附加到現有清單中。 若來源已存在,則移至列表末尾,其他來源則重新索引。
返回值
MsiSourceListAddSourceEx 函式回傳以下值。
| 價值觀 | Meaning |
|---|---|
|
使用者無法新增或移動來源。 無法顯示是否找到該產品或貼片。 |
|
設定資料損壞了。 |
|
無法存取 Windows 安裝程式服務。 |
|
來源入或更新。 |
|
所指定的產物不詳。 |
|
指定的補丁名稱不詳。 |
|
意外的內部故障。 |
備註
管理員可以修改存在於機器情境下的產品或修補實例的安裝,或是在他們自己的每位使用者情境(受管理或非受管理)下。他們可以修改存在於任何使用者每位使用者管理情境下的產品或修補實例的安裝方式。 管理員無法修改其他使用者在該使用者的每個使用者未管理情境下所安裝的產品或修補實例。
非管理員無法修改存在於其他使用者每使用者情境(受管理或非管理)下的產品或修補實例的安裝。他們可以修改存在於其每個使用者未管理上下文下的產品或修補實例的安裝。 只有在啟用瀏覽產品或補丁來源時,他們才能在機器上下文或自身的每用戶管理上下文中修改產品或補丁實例的安裝。 使用者可透過設定政策來瀏覽來源。 欲了解更多資訊,請參閱 DisableBrowse、 AllowLockdownBrowse 及 AlwaysInstallElevated 政策。
備註
msi.h 標頭定義 MsiSourceListAddSourceEx 為別名,根據 UNICODE 預處理器常數的定義自動選擇此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型 的慣例。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 請參閱 Windows 安裝程式 Run-Time 需求,了解 Windows 安裝程式版本所需的最低 Windows 服務包。 |
| 目標平臺 | 窗戶 |
| Header | MSI.H |
| Library | Msi.lib |
| DLL | Msi.dll |