MsiDetermineApplicablePatchesA, fonction (msi.h)

La fonction MsiDetermineApplicablePatches prend un ensemble de fichiers de correctifs, de fichiers XML et d’objets blob XML et détermine quels correctifs s’appliquent à un package Windows Installer spécifié et dans quelle séquence. La fonction peut tenir compte des correctifs remplacés ou obsolètes. Cette fonction ne tient pas compte des produits ou correctifs installés sur le système qui ne sont pas spécifiés dans l’ensemble.

Syntaxe

UINT MsiDetermineApplicablePatchesA(
  [in] LPCSTR                 szProductPackagePath,
  [in] DWORD                  cPatchInfo,
  [in] PMSIPATCHSEQUENCEINFOA pPatchInfo
);

Paramètres

[in] szProductPackagePath

Chemin complet d’un fichier .msi. La fonction détermine les correctifs applicables à ce package et dans quelle séquence.

[in] cPatchInfo

Nombre de correctifs dans le tableau. Doit être supérieur à zéro.

[in] pPatchInfo

Pointeur vers un tableau de structures MSIPATCHSEQUENCEINFO.

Valeur de retour

La fonction MsiDetermineApplicablePatches retourne les valeurs suivantes.

Valeur Signification
ERROR_FUNCTION_FAILED
La fonction a échoué d’une manière non couverte dans les autres codes d’erreur.
ERROR_INVALID_PARAMETER
Un argument n’est pas valide.
ERROR_PATCH_NO_SEQUENCE
Aucune séquence valide n’est disponible pour l’ensemble de correctifs.
ERROR_SUCCESS
Les correctifs ont été correctement triés.
ERROR_FILE_NOT_FOUND
Le fichier .msi est introuvable.
ERROR_PATH_NOT_FOUND
Le chemin d’accès au fichier .msi est introuvable.
ERROR_INVALID_PATCH_XML
Les données de correctif XML ne sont pas valides.
ERROR_INSTALL_PACKAGE_OPEN_FAILED
Impossible d’ouvrir un package d’installation référencé par chemin d’accès.
ERROR_CALL_NOT_IMPLEMENTED
Cette erreur peut être retournée si la fonction a été appelée à partir d’un action personnalisée ou si MSXML 3.0 n’est pas installé.

Remarques

Si cette fonction est appelée à partir d’une action personnalisée, elle échoue et retourne ERROR_CALL_NOT_IMPLEMENTED. La fonction nécessite MSXML version 3.0 pour traiter XML et retourne ERROR_CALL_NOT_IMPLEMENTED si MSXML 3.0 n’est pas installé.

La fonction MsiDetermineApplicablePatches définit les uStatus et les membres dwOrder de chaque structure MSIPATCHSEQUENCEINFO pointée par pPatchInfo. Chaque structure contient des informations sur un correctif particulier.

Si la fonction réussit, la structure MSIPATCHSEQUENCEINFO de chaque correctif pouvant être appliqué au produit retourne un uStatus de ERROR_SUCCESS et un dwOrder supérieur ou égal à zéro. Les valeurs de dwOrder supérieures ou égales à zéro indiquent la meilleure séquence d’application pour les correctifs commençant par zéro.

Si la fonction réussit, les correctifs exclus de la meilleure séquence de mise à jour corrective retournent une structure MSIPATCHSEQUENCEINFO avec un dwOrder égal à -1. Dans ce cas, un champ uStatus de ERROR_SUCCESS indique un correctif obsolète ou remplacé pour le produit. Un champ uStatus de ERROR_PATCH_TARGET_NOT_FOUND indique un correctif inapplicable au produit.

Si la fonction échoue, la structure MSIPATCHSEQUENCEINFO pour chaque correctif retourne un dwOrder égal à -1. Dans ce cas, les champs uStatus peuvent contenir des erreurs avec plus d’informations sur les correctifs individuels. Par exemple, ERROR_PATCH_NO_SEQUENCE est retourné pour les correctifs qui ont des informations de séquencement circulaire.

Note

L’en-tête msi.h définit MsiDetermineApplicablePatches comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. Windows Installer 3.0 ou version ultérieure sur Windows Server 2003 ou Windows XP. Consultez la configuration requise de Windows Installer Run-Time pour plus d’informations sur le service pack Windows minimal requis par une version de Windows Installer.
plateforme cible Windows
d’en-tête msi.h
bibliothèque Msi.lib
DLL Msi.dll

Voir aussi

MsiDeterminePatchSequence

non pris en charge dans Windows Installer 2.0 et versions antérieures

ProductCode