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 |