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
Utiliser l’API de dépendance dynamique pour référencer des packages MSIX au moment de l’exécution