AddPackageDependency 関数 (appmodel.h)

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

構文

HRESULT AddPackageDependency(
  PCWSTR                      packageDependencyId,
  INT32                       rank,
  AddPackageDependencyOptions options,
  PACKAGEDEPENDENCY_CONTEXT   *packageDependencyContext,
  PWSTR                       *packageFullName
);

パラメーター

packageDependencyId

種類: PCWSTR

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

rank

型: INT32

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

options

種類: AddPackageDependencyOptions

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

packageDependencyContext

種類: PACKAGEDEPENDENCY_CONTEXT*

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

packageFullName

種類: PCWSTR*

このメソッドが戻るときに、 には、依存関係が解決されたパッケージの完全な名前を指定する null で終わる Unicode 文字列へのポインターのアドレスが含まれます。 呼び出し元は、 HeapFree を呼び出すことによって不要になったリソースを解放する責任があります。

戻り値

型: HRESULT

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

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

注釈

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

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

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

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

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

要件

要件
サポートされている最小のクライアント Windows 11 (10.0.22000.0 で導入)
Header appmodel.h

こちらもご覧ください

RemovePackageDependency

TryCreatePackageDependency

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