AddPackageDependency, fonction (appmodel.h)
Ajoute une référence au moment de l’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 des types et utiliser du contenu à partir du package d’infrastructure.
Voir également addPackageDependency2.
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 ajouté au graphe de package du processus appelant. 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), ou une erreur est retournée.
rank
Type : INT32
Classement à utiliser pour ajouter le package résolu au graphe 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 est retournée, 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 de retour
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.
Retourner le code | Description |
---|---|
E_INVALIDARG | Le paramètre packageDependencyId ou packageDependencyContext est NULL lors de l’entrée. |
Remarques
L’appel de cette méthode résout la dépendance du package d’infrastructure en 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 de gérer les mises à jour de version de manière côte à côte (retardez efficacement 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 AddPackageDepend ency réussi ajoute le package résolu au graphe de package du processus appelant, même s’il est déjà présent. Il n’existe aucune détection ou filtrage en double appliqué par l’API (autrement dit, plusieurs références 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 sur tous les processus de cet utilisateur soit supprimée via RemovePackageDependency ou que le processus est arrêté.
Une fois cette méthode retournée, votre application peut activer des types et utiliser du contenu à partir du package d’infrastructure jusqu’à ce que RemovePackageDependency soit appelée.
Si plusieurs packages sont présents dans le graphique de package avec le même rang que l’appel à AddPackageDependency, le package résolu est ajouté (par défaut) après d’autres personnes du même rang. Pour ajouter un package avant d’autres personnes du même rang, spécifiez AddPackageDependencyOptions_PrependIfRankCollision pour les options de paramètre.
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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 11 (introduit dans la version 10.0.22000.0) |
d’en-tête | appmodel.h |