MsiGetFeatureValidStatesA, fonction (msiquery.h)
La fonction msiGetFeatureValidStates
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, MsiOpenPackageExou 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 à une combinaison des valeurs suivantes. Ce paramètre ne doit pas être null.
Valeur de retour
La fonction MsiGetFeatureValidStates retourne les valeurs suivantes :
Remarques
Consultez appels 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 installé actuel d’un composant.
Les états valides possibles pour une fonctionnalité sont déterminés comme suit :
- Si la fonctionnalité ne contient pas de composants, les INSTALLSTATE_LOCAL et les INSTALLSTATE_SOURCE sont des états valides pour la fonctionnalité.
- Si au moins un composant de la fonctionnalité a un attribut msidbComponentAttributesLocalOnly ou msidbComponentAttributesOptional, INSTALLSTATE_LOCAL est un état valide pour la fonctionnalité.
- Si au moins un composant de la fonctionnalité a un attribut 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 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égier 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.
Note
L’en-tête msiquery.h définit MsiGetFeatureValidStates 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 sur Windows Server 2003 ou Windows XP |
plateforme cible | Windows |
d’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