mddAddPackageDependency 函式 (msixdynamicdependency.h)
使用 MddTryCreatePackageDependency 方法,新增您稍早建立之架構套件相依性的運行時間參考,以及指定的選項。 在此方法成功傳回之後,您的應用程式可以啟動類型和使用架構套件的內容。
語法
HRESULT MddAddPackageDependency(
PCWSTR packageDependencyId,
INT32 rank,
MddAddPackageDependencyOptions options,
MDD_PACKAGEDEPENDENCY_CONTEXT *packageDependencyContext,
PWSTR *packageFullName
) noexcept;
參數
packageDependencyId
類型: PCWSTR
要解析的封裝相依性標識符,並新增至叫用程式的封裝圖形。 此參數必須符合使用 TryCreatePackageDependency 函式定義的套件相依性,才能透過 ScopeIsSystem 選項) 呼叫使用者或系統 (,否則會傳回錯誤。
rank
類型: INT32
用來將已解析的封裝加入呼叫端套件圖形的排名。 如需詳細資訊,請參閱備註。
options
類型: MddAddPackageDependencyOptions
新增套件相依性時要套用的選項。
packageDependencyContext
類型: PACKAGEDEPENDENCY_CONTEXT*
已新增套件相依性句柄。 此句柄有效,直到傳遞至 RemovePackageDependency 為止。
packageFullName
類型: PCWSTR*
已解析相依性之封裝的完整名稱。 使用 HeapAlloc 函式來配置此參數的記憶體,並使用 HeapFree 解除分配記憶體。
傳回值
類型: HRESULT
如果函式成功,它會傳回 ERROR_SUCCESS。 否則,函式會傳回錯誤碼。 可能的錯誤碼包括下列各項。
傳回碼 | 描述 |
---|---|
E_INVALIDARG | packageDependencyId 或 packageDependencyContext 參數在輸入時為 NULL。 |
備註
呼叫這個方法會將架構套件相依性解析為系統上的特定套件。 它也會通知操作系統架構套件正在使用中,並排處理任何版本更新, (有效地延遲卸載或維護較舊版本,直到您的應用程式使用完成) 為止。 套件解析是使用者特有的,而且可以針對系統上的不同用戶傳回不同的值。
每個成功的 MddAddPackageDependency 呼叫都會將已解析的套件新增至呼叫程式的封裝圖形,即使已經存在也一樣。 API (不會套用重複的偵測或篩選,也就是說,來自套件的多個參考不會有害) 。 解決完成之後,套件相依性會維持為該使用者解析,直到透過 MddRemovePackageDependency 移除該使用者之所有進程的最後一個參考,或進程終止為止。 成功呼叫此方法會變更 MddGetGenerationId 所傳回的世代標識碼。
在此方法成功傳回之後,您的應用程式可以啟動類型和使用架構套件中的內容,直到呼叫 MddRemovePackageDependency 為止。
如果套件圖表中有多個套件,其排名與呼叫 MddAddPackageDependency 相同,則解析的套件預設會 () 新增至相同排名的其他人之後。 若要在相同排名的其他套件之前新增套件,請為 options 參數指定 PrependIfRankCollision。
如需詳細資訊,請參閱 使用動態相依性 API 在運行時間參考 MSIX 套件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 版本 1809 (Windows 應用程式 SDK 1.0 或更新版本) |
標頭 | msixdynamicdependency.h |