MsiGetFeatureValidStatesA, fonction (msiquery.h)
La fonction MsiGetFeatureValidStates retourne un état d’installation valide.
Syntaxe
UINT MsiGetFeatureValidStatesA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFeature,
[out] LPDWORD lpInstallStates
);
Paramètres
[in] hInstall
Gérez l’installation fournie à une action personnalisée DLL ou obtenue via MsiOpenPackage, MsiOpenPackageEx ou MsiOpenProduct.
[in] szFeature
Spécifie le nom de la fonctionnalité.
[out] lpInstallStates
Reçoit l’emplacement pour contenir les états d’installation valides. Pour chaque état d’installation valide, le programme d’installation définit pInstallState sur une combinaison des valeurs suivantes. Ce paramètre ne doit pas être null.
Valeur retournée
La fonction MsiGetFeatureValidStates retourne les valeurs suivantes :
Remarques
Consultez Appel de fonctions de base de données à partir de programmes.
La fonction MsiGetFeatureValidStates détermine la validité de l’état en interrogeant tous les composants liés à la fonctionnalité spécifiée sans tenir compte de l’état actuel installé d’un composant.
Les états valides possibles pour une fonctionnalité sont déterminés comme suit :
- Si la fonctionnalité ne contient pas de composants, INSTALLSTATE_LOCAL et INSTALLSTATE_SOURCE sont des états valides pour la fonctionnalité.
- Si au moins un composant de la fonctionnalité a un attribut de msidbComponentAttributesLocalOnly ou msidbComponentAttributesOptional, INSTALLSTATE_LOCAL est un état valide pour la fonctionnalité.
- Si au moins un composant de la fonctionnalité a un attribut de msidbComponentAttributesSourceOnly ou msidbComponentAttributesOptional, INSTALLSTATE_SOURCE est un état valide pour la fonctionnalité.
- Si un fichier d’un composant qui appartient à la fonctionnalité est corrigé ou à partir d’une source compressée, INSTALLSTATE_SOURCE n’est pas inclus comme état valide pour la fonctionnalité.
- INSTALLSTATE_ADVERTISE n’est pas un état valide si la fonctionnalité interdit la publication (msidbFeatureAttributesDisallowAdvertise) ou si la fonctionnalité nécessite la prise en charge de la plateforme pour la publication (msidbFeatureAttributesNoUnsupportedAdvertise) et si la plateforme ne la prend pas en charge.
- INSTALLSTATE_ABSENT est un état valide pour la fonctionnalité si ses attributs n’incluent pas msidbFeatureAttributesUIDisallowAbsent.
- Les états valides pour les fonctionnalités enfants marquées pour suivre la fonctionnalité parente (msidbFeatureAttributesFollowParent) sont basés sur l’action ou l’état installé de la fonctionnalité parente.
MsiGetFeatureValidStates(hProduct, "Feature1", &dwValidStates);
Si Feature1 a des attributs de valeur 0 (privilégiez local) et Feature1 a un composant avec des attributs de valeur 0 (local uniquement), la valeur de dwValidStates après l’appel est 14. Cela indique que INSTALLSTATE_LOCAL, INSTALLSTATE_ABSENT et INSTALLSTATE_ADVERTISED sont des états valides pour Feature1. L’instruction conditionnelle suivante prend la valeur True si local est un état valide pour cette fonctionnalité.
( ( dwValidStates & ( 1 << INSTALLSTATE_LOCAL ) ) == ( 1 << INSTALLSTATE_LOCAL ) )
Si la fonction échoue, vous pouvez obtenir des informations d’erreur étendues à l’aide de MsiGetLastErrorRecord.
Notes
L’en-tête msiquery.h définit MsiGetFeatureValidStates en tant qu’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. La combinaison 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 |
Plateforme cible | Windows |
En-tête | msiquery.h |
Bibliothèque | Msi.lib |
DLL | Msi.dll |
Voir aussi
Fonctions de sélection du programme d’installation
Passage de Null en tant qu’argument des fonctions Windows Installer