VerifyVersionInfoA, fonction (winbase.h)
Compare un ensemble d’exigences de version du système d’exploitation aux valeurs correspondantes pour la version en cours d’exécution du système. Cette fonction est soumise à un comportement basé sur un manifeste. Pour plus d’informations, consultez la section Remarques.
Remarque : cette fonction a été déconseillée pour Windows 10. Pour plus d’informations, consultez cibler vos applications pour Windows.
Syntaxe
BOOL VerifyVersionInfoA(
[in] LPOSVERSIONINFOEXA lpVersionInformation,
[in] DWORD dwTypeMask,
[in] DWORDLONG dwlConditionMask
);
Paramètres
[in] lpVersionInformation
Pointeur vers une structure OSVERSIONINFOEX contenant la configuration requise pour la version du système d’exploitation à comparer. Le paramètre dwTypeMask indique les membres de cette structure qui contiennent des informations à comparer.
Vous devez définir le membre
[in] dwTypeMask
Masque qui indique les membres de la structure OSVERSIONINFOEX à tester. Ce paramètre peut être une ou plusieurs des valeurs suivantes.
[in] dwlConditionMask
Type de comparaison à utiliser pour chaque lpVersionInfo membre comparé. Pour générer cette valeur, appelez la fonction VerSetConditionMask ou la macro VER_SET_CONDITION une fois pour chaque OSVERSIONINFOEX membre comparé.
Valeur de retour
Si le système d’exploitation en cours d’exécution satisfait aux exigences spécifiées, la valeur de retour est une valeur différente de zéro.
Si le système actuel ne répond pas aux exigences, la valeur de retour est égale à zéro et GetLastError retourne ERROR_OLD_WIN_VERSION.
Si la fonction échoue, la valeur de retour est égale à zéro et GetLastError retourne un code d’erreur autre que ERROR_OLD_WIN_VERSION.
Remarques
La fonction VerifyVersionInfo récupère les informations de version sur le système d’exploitation en cours d’exécution et la compare aux membres valides de la structure lpVersionInfo. Cela vous permet de déterminer facilement la présence d’un ensemble requis de conditions de version du système d’exploitation. Il est préférable d’utiliser VerifyVersionInfo plutôt que d’appeler la fonction GetVersionEx pour effectuer vos propres comparaisons.
En règle générale, VerifyVersionInfo retourne une valeur différente de zéro uniquement si tous les tests spécifiés réussissent. Toutefois, les versions majeures, mineures et Service Pack sont testées de manière hiérarchique, car la version du système d’exploitation est une combinaison de ces valeurs. Si une condition existe pour la version principale, elle remplace les conditions spécifiées pour la version mineure et la version de Service Pack. (Vous ne pouvez pas tester la version principale supérieure à 5 et la version mineure inférieure ou égale à 1. Si vous spécifiez un tel test, la fonction modifie la demande pour tester une version mineure supérieure à 1, car elle effectue une opération supérieure à celle de la version principale.)
La fonction teste ces valeurs dans cet ordre : version majeure, version mineure et version de Service Pack. La fonction continue de tester les valeurs pendant qu’elles sont égales et s’arrête quand l’une des valeurs ne répond pas à la condition spécifiée. Par exemple, si vous testez un système supérieur ou égal à la version 5.1 service pack 1, le test réussit si la version actuelle est 6.0. (La version principale est supérieure à la version spécifiée, de sorte que le test s’arrête.) De la même façon, si vous testez un système supérieur ou égal à la version 5.1 service pack 1, le test réussit si la version actuelle est 5.2. (La version mineure est supérieure aux versions spécifiées, de sorte que le test s’arrête.) Toutefois, si vous testez un système supérieur ou égal à la version 5.1 service pack 1, le test échoue si la version actuelle est 5.0 Service Pack 2. (La version mineure n’est pas supérieure à la version spécifiée. Par conséquent, le test s’arrête.)
Pour vérifier une plage de versions système, vous devez appeler VerifyVersionInfo deux fois. Par exemple, pour vérifier que la version système est supérieure à 5.0, mais inférieure ou égale à 5.1, appelez d’abord VerifyVersionInfo pour tester que la version principale est 5 et que la version mineure est supérieure à 0, puis appelez VerifyVersionInfo pour tester que la version principale est 5 et que la version mineure est inférieure ou égale à 1.
L’identification du système d’exploitation actuel n’est généralement pas la meilleure façon de déterminer si une fonctionnalité de système d’exploitation particulière est présente. Cela est dû au fait que le système d’exploitation a peut-être ajouté de nouvelles fonctionnalités dans une DLL redistribuable. Au lieu d’utiliser GetVersionEx pour déterminer la plateforme ou le numéro de version du système d’exploitation, testez la présence de la fonctionnalité elle-même. Pour plus d’informations, consultez version du système d’exploitation.
Pour vérifier si le système d’exploitation actuel est la version Media Center ou Tablet PC de Windows, appelez GetSystemMetrics.
Windows 10 : VerifyVersionInfo retourne false lorsqu’elle est appelée par des applications qui n’ont pas de manifeste de compatibilité pour Windows 8.1 ou Windows 10 si le paramètre lpVersionInfo est défini afin qu’il spécifie Windows 8.1 ou Windows 10, même lorsque la version actuelle du système d’exploitation est Windows 8.1 ou Windows 10. Plus précisément, VerifyVersionInfo a le comportement suivant :
- Si l’application n’a pas de manifeste, VerifyVersionInfo se comporte comme si la version du système d’exploitation est Windows 8 (6.2).
- Si l’application a un manifeste qui contient le GUID correspondant à Windows 8.1, VerifyVersionInfo se comporte comme si la version du système d’exploitation est Windows 8.1 (6.3).
- Si l’application a un manifeste qui contient le GUID correspondant à Windows 10, VerifyVersionInfo se comporte comme si la version du système d’exploitation est Windows 10 (10.0).
Pour manifester vos applications pour Windows 8.1 ou Windows 10, consultez Ciblage de votre application pour Windows.
Exemples
Pour obtenir un exemple, consultez Vérification de la version système.
Note
L’en-tête winbase.h définit VerifyVersionInfo 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 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | winbase.h (inclure Windows.h) |
bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |
Voir aussi
version du système d’exploitation