Version Helper functions

The following functions can be used to determine the current operating system version or identify whether it is a Windows or Windows Server release. These functions provide simple tests that use the VerifyVersionInfo function and the recommended greater than or equal to comparisons that are proven as a robust means to determine the operating system version.

Note

These APIs are defined by versionhelpers.h, which is included in the Windows Software Development Kit (SDK) for Windows 8.1 and later. This file can be used with other Microsoft Visual Studio releases to implement the same functionality for Windows versions prior to Windows 8.1.

Note

Versionhelpers.h requires windows.h to be included before it.

Function Description
IsWindowsXPOrGreater Indicates if the current OS version matches, or is greater than, the Windows XP version.
IsWindowsXPSP1OrGreater Indicates if the current OS version matches, or is greater than, the Windows XP with Service Pack 1 (SP1) version.
IsWindowsXPSP2OrGreater Indicates if the current OS version matches, or is greater than, the Windows XP with Service Pack 2 (SP2) version.
IsWindowsXPSP3OrGreater Indicates if the current OS version matches, or is greater than, the Windows XP with Service Pack 3 (SP3) version.
IsWindowsVistaOrGreater Indicates if the current OS version matches, or is greater than, the Windows Vista version.
IsWindowsVistaSP1OrGreater Indicates if the current OS version matches, or is greater than, the Windows Vista with Service Pack 1 (SP1) version.
IsWindowsVistaSP2OrGreater Indicates if the current OS version matches, or is greater than, the Windows Vista with Service Pack 2 (SP2) version.
IsWindows7OrGreater Indicates if the current OS version matches, or is greater than, the Windows 7 version.
IsWindows7SP1OrGreater Indicates if the current OS version matches, or is greater than, the Windows 7 with Service Pack 1 (SP1) version.
IsWindows8OrGreater Indicates if the current OS version matches, or is greater than, the Windows 8 version.
IsWindows8Point1OrGreater Indicates if the current OS version matches, or is greater than, the Windows 8.1 version.

For Windows 10, IsWindows8Point1OrGreater returns false unless the application contains a manifest that includes a compatibility section that contains the GUIDs that designate Windows 8.1 and/or Windows 10.
IsWindows10OrGreater Indicates if the current OS version matches, or is greater than, the Windows 10 version.

For Windows 10, IsWindows10OrGreater returns false unless the application contains a manifest that includes a compatibility section that contains the GUID that designates Windows 10.
IsWindowsServer Indicates if the current OS is a Windows Server release. Applications that need to distinguish between server and client versions of Windows should call this function.
IsWindowsVersionOrGreater You should only use this function if the other provided version helper functions do not fit your scenario.

Indicates if the current OS version matches, or is greater than, the provided version information. This function is useful in confirming a version of Windows Server that doesn't share a version number with a client release.

Example

The inline functions defined in the VersionHelpers.h header file let you verify the operating system version by returning a Boolean value when testing for a version of Windows.

For example, if your application requires Windows 10 or later, use the following test.

#include <windows.h>
#include <VersionHelpers.h>
 
if (!IsWindows10OrGreater())
{
   MessageBox(NULL, "You need at least Windows 10", "Version Not Supported", MB_OK);
}