Partager via


AddPackageDependency, fonction (appmodel.h)

Ajoute une référence d’exécution pour la dépendance de package d’infrastructure que vous avez créée précédemment à l’aide de la méthode TryCreatePackageDependency , avec les options spécifiées. Une fois cette méthode retournée, votre application peut activer les types et utiliser le contenu du package d’infrastructure.

Syntaxe

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

Paramètres

packageDependencyId

Type : PCWSTR

ID de la dépendance de package à résoudre et à ajouter au graphe de package du processus d’appel. Ce paramètre doit correspondre à une dépendance de package définie à l’aide de la fonction TryCreatePackageDependency pour l’utilisateur appelant ou le système (via l’option CreatePackageDependencyOptions_ScopeIsSystem ), sinon une erreur est retournée.

rank

Type : INT32

Classement à utiliser pour ajouter le package résolu au graphique de package de l’appelant. Pour plus d’informations, consultez les remarques.

options

Type : AddPackageDependencyOptions

Options à appliquer lors de l’ajout de la dépendance de package.

packageDependencyContext

Type : PACKAGEDEPENDENCY_CONTEXT*

Handle de la dépendance de package ajoutée. Ce handle est valide jusqu’à ce qu’il soit passé à RemovePackageDependency.

packageFullName

Type : PCWSTR*

Lorsque cette méthode retourne, contient l’adresse d’un pointeur vers une chaîne Unicode terminée par null qui spécifie le nom complet du package auquel la dépendance a été résolue. L’appelant est chargé de libérer cette ressource une fois qu’elle n’est plus nécessaire en appelant HeapFree.

Valeur retournée

Type : HRESULT

Si la fonction réussit, elle retourne ERROR_SUCCESS. Sinon, la fonction retourne un code d’erreur. Les codes d’erreur possibles sont les suivants.

Code de retour Description
E_INVALIDARG Le paramètre packageDependencyId ou packageDependencyContext a la valeur NULL en entrée.

Remarques

L’appel de cette méthode résout la dépendance du package d’infrastructure à un package spécifique sur le système. Il informe également le système d’exploitation que le package d’infrastructure est en cours d’utilisation active et qu’il doit gérer les mises à jour de version côte à côte (retarder la désinstallation ou la maintenance de l’ancienne version jusqu’à ce que votre application ait terminé de l’utiliser). La résolution de package est spécifique à un utilisateur et peut retourner différentes valeurs pour différents utilisateurs sur un système.

Chaque appel AddPackageDependency réussi ajoute le package résolu au graphe de package du processus appelant, même s’il est déjà présent. Aucune détection ou filtrage en double n’est appliqué par l’API (autrement dit, plusieurs références à partir d’un package ne sont pas dangereuses). Une fois la résolution terminée, la dépendance de package reste résolue pour cet utilisateur jusqu’à ce que la dernière référence de tous les processus de cet utilisateur soit supprimée via RemovePackageDependency ou que le processus soit terminé.

Une fois cette méthode retournée, votre application peut activer des types et utiliser le contenu du package d’infrastructure jusqu’à ce que RemovePackageDependency soit appelé.

Si plusieurs packages sont présents dans le graphe de package avec le même classement que l’appel à AddPackageDependency, le package résolu est (par défaut) ajouté après d’autres de même classement. Pour ajouter un package avant d’autres personnes du même classement, spécifiez AddPackageDependencyOptions_PrependIfRankCollision pour le paramètre options .

Pour plus d’informations, consultez Utiliser l’API de dépendance dynamique pour référencer des packages MSIX au moment de l’exécution.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 11 (introduit dans 10.0.22000.0)
En-tête appmodel.h

Voir aussi

RemovePackageDependency

TryCreatePackageDependency

Utiliser l’API de dépendance dynamique pour référencer des packages MSIX au moment de l’exécution