Partager via


MddAddPackageDependency, fonction (msixdynamicdependency.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 MddTryCreatePackageDependency , 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 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 à 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 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 : 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 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 MddAddPackageDependency 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 MddRemovePackageDependency ou que le processus soit terminé. Les appels réussis à cette méthode modifient la valeur de l’ID de génération retournée par MddGetGenerationId.

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

Si plusieurs packages sont présents dans le graphique de package avec le même classement que l’appel à MddAddPackageDependency, 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 rang, spécifiez 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 10, version 1809 (avec SDK d'application Windows 1.0 ou version ultérieure)
En-tête msixdynamicdependency.h

Voir aussi

MddRemovePackageDependency

MddTryCreatePackageDependency

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