Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 MddTryCreatePackageDependency, 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.
Syntaxe
HRESULT MddAddPackageDependency(
PCWSTR packageDependencyId,
INT32 rank,
MddAddPackageDependencyOptions options,
MDD_PACKAGEDEPENDENCY_CONTEXT *packageDependencyContext,
PWSTR *packageFullName
) noexcept;
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 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 : MddAddPackageDependencyOptions
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*
Nom complet du package auquel la dépendance a été résolue. Utilisez la fonction HeapAlloc pour allouer de la mémoire pour ce paramètre et utilisez heapFree pour libérer la mémoire.
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.
| Code de retour | 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 réussi MddAddPackageDependency 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 MddRemovePackageDependency ou que le processus est arrêté. Les appels réussis à cette méthode modifient la valeur d’ID de génération retournée par MddGetGenerationId.
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 MddRemovePackageDependency soit appelée.
Si plusieurs packages sont présents dans le graphique de package avec le même rang que l’appel à MddAddPackageDependency, le package résolu est ajouté (par défaut) après d’autres du même rang. Pour ajouter un package avant d’autres personnes du même rang, spécifiez 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.
Spécifications
| Besoin | Valeur |
|---|---|
| client minimum pris en charge | Windows 10, version 1809 (avec windows App SDK 1.0 ou version ultérieure) |
| En-tête | msixdynamicdependency.h |
Voir aussi
Utiliser l’API de dépendance dynamique pour référencer des packages MSIX au moment de l’exécution