Partager via


MsiEnumFeaturesA, fonction (msi.h)

La fonction MsiEnumFeatures énumère les fonctionnalités publiées pour un produit donné. Cette fonction récupère un ID de fonctionnalité chaque fois qu’elle est appelée.

Syntaxe

UINT MsiEnumFeaturesA(
  [in]  LPCSTR szProduct,
  [in]  DWORD  iFeatureIndex,
  [out] LPSTR  lpFeatureBuf,
  [out] LPSTR  lpParentBuf
);

Paramètres

[in] szProduct

Chaîne terminée par null spécifiant le code de produit du produit dont les fonctionnalités doivent être énumérées.

[in] iFeatureIndex

Spécifie l’index de la fonctionnalité à récupérer. Ce paramètre doit être égal à zéro pour le premier appel à la fonction MsiEnumFeatures , puis incrémenté pour les appels suivants. Étant donné que les fonctionnalités ne sont pas triées, toute nouvelle fonctionnalité a un index arbitraire. Cela signifie que la fonction peut retourner des fonctionnalités dans n’importe quel ordre.

[out] lpFeatureBuf

Pointeur vers une mémoire tampon qui reçoit l’ID de fonctionnalité. La taille de la mémoire tampon doit contenir une valeur de chaîne de longueur MAX_FEATURE_CHARS+1. La fonction retourne ERROR_MORE_DATA si la longueur de l’ID de fonctionnalité dépasse MAX_FEATURE_CHARS.

[out] lpParentBuf

Pointeur vers une mémoire tampon qui reçoit l’ID de fonctionnalité du parent de la fonctionnalité. La taille de la mémoire tampon doit contenir une valeur de chaîne de longueur MAX_FEATURE_CHARS+1. Si la longueur de l’ID de fonctionnalité de la fonctionnalité parente dépasse MAX_FEATURE_CHARS, seuls les premiers caractères MAX_FEATURE_CHARS sont copiés dans la mémoire tampon.

Valeur retournée

Valeur Signification
ERROR_BAD_CONFIGURATION
Les données de configuration sont endommagées.
ERROR_INVALID_PARAMETER
Un paramètre non valide a été transmis à la fonction.
ERROR_MORE_DATA
Une mémoire tampon est trop petite pour contenir les données demandées.
ERROR_NO_MORE_ITEMS
Il n’y a aucune fonctionnalité à retourner.
ERROR_SUCCESS
Une valeur a été énumérée.
ERROR_UNKNOWN_PRODUCT
Le produit spécifié est inconnu.
 
 

Remarques

Pour énumérer les fonctionnalités, une application doit initialement appeler la fonction MsiEnumFeatures avec le paramètre iFeatureIndex défini sur zéro. L’application doit ensuite incrémenter le paramètre iFeatureIndex et appeler MsiEnumFeatures jusqu’à ce qu’il n’y ait plus de fonctionnalités (autrement dit, jusqu’à ce que la fonction retourne ERROR_NO_MORE_ITEMS).

Notes

L’en-tête msi.h définit MsiEnumFeatures comme un 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.

Configuration requise

Condition requise Valeur
Client minimal 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 sur Windows Server 2003 ou Windows XP. Pour plus d’informations sur le Service Pack Windows requis par une version de Windows Installer, consultez Configuration requise pour le runtime Windows.
Plateforme cible Windows
En-tête msi.h
Bibliothèque Msi.lib
DLL Msi.dll

Voir aussi

Fonctions d’état du système