MddAddPackageDependency 関数 (msixdynamicdependency.h)

指定したオプションを使用して MddTryCreatePackageDependency メソッドを使用して、前に作成したフレームワーク パッケージ依存関係のランタイム参照を追加します。 このメソッドが正常に返された後、アプリは型をアクティブ化し、フレームワーク パッケージのコンテンツを使用できます。

構文

HRESULT MddAddPackageDependency(
  PCWSTR                         packageDependencyId,
  INT32                          rank,
  MddAddPackageDependencyOptions options,
  MDD_PACKAGEDEPENDENCY_CONTEXT  *packageDependencyContext,
  PWSTR                          *packageFullName
) noexcept;

パラメーター

packageDependencyId

種類: PCWSTR

解決され、呼び出し元プロセスのパッケージ グラフに追加されるパッケージ依存関係の ID。 このパラメーターは、呼び出し元のユーザーまたはシステムに 対して TryCreatePackageDependency 関数を使用して定義されたパッケージの依存関係と一致する必要があります ( ScopeIsSystem オプションを使用)。

rank

種類: INT32

解決されたパッケージを呼び出し元のパッケージ グラフに追加するために使用するランク。 詳細については、備考を参照してください。

options

種類: MddAddPackageDependencyOptions

パッケージの依存関係を追加するときに適用するオプション。

packageDependencyContext

種類: PACKAGEDEPENDENCY_CONTEXT*

追加されたパッケージ依存関係のハンドル。 このハンドルは、 RemovePackageDependency に渡されるまで有効です。

packageFullName

種類: PCWSTR*

依存関係が解決されたパッケージの完全な名前。 HeapAlloc 関数を使用してこのパラメーターのメモリを割り当て、HeapFree を使用してメモリの割り当てを解除します。

戻り値

種類: HRESULT

関数が成功すると、 ERROR_SUCCESSが返されます。 それ以外の場合、関数はエラー コードを返します。 考えられるエラー コードは次のとおりです。

リターン コード 説明
E_INVALIDARG packageDependencyId または packageDependencyContext パラメーターは、入力時に NULL です。

注釈

このメソッドを呼び出すと、フレームワーク パッケージの依存関係がシステム上の特定のパッケージに解決されます。 また、フレームワーク パッケージがアクティブに使用されていること、およびすべてのバージョン更新プログラムをサイド バイ サイドで処理することも OS に通知します (アプリの使用が完了するまで、古いバージョンのアンインストールやその他のサービスを実質的に遅らせます)。 パッケージ解決はユーザーに固有であり、システム上のさまざまなユーザーに対して異なる値を返すことができます。

MddAddPackageDependency 呼び出しが成功するたびに、既に存在する場合でも、解決されたパッケージが呼び出し元プロセスのパッケージ グラフに追加されます。 API によって重複する検出やフィルター処理は適用されません (つまり、パッケージからの複数の参照は有害ではありません)。 解決が完了すると、そのユーザーの最後の参照が MddRemovePackageDependency 経由で削除されるか、プロセスが終了するまで、そのユーザーのパッケージ依存関係は解決された状態を維持します。 このメソッドの呼び出しが成功すると、 MddGetGenerationId によって返される生成 ID 値が変更されます。

このメソッドが正常に返された後、 MddRemovePackageDependency が呼び出されるまで、アプリは型をアクティブ化し、フレームワーク パッケージのコンテンツを使用できます。

MddAddPackageDependency の呼び出しと同じランクを持つパッケージ グラフに複数のパッケージが存在する場合、解決されたパッケージは (既定では) 同じランクの他のパッケージの後に追加されます。 同じランクの他のユーザーの前にパッケージを追加するには、options パラメーターに PrependIfRankCollision を指定します。

詳細については、「 動的依存関係 API を使用して実行時に MSIX パッケージを参照する」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 10 Version 1809 (Windows アプリ SDK 1.0 以降)
Header msixdynamicdependency.h

こちらもご覧ください

MddRemovePackageDependency

MddTryCreatePackageDependency

動的依存関係 API を使用して、実行時に MSIX パッケージを参照する