-
-
Notifications
You must be signed in to change notification settings - Fork 42
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e9668fb
commit 241cb92
Showing
7 changed files
with
612 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule WonSetThreadUILanguage
added at
45a577
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
/****************************************************************** | ||
* * | ||
* VersionHelpers.h -- This module defines helper functions to * | ||
* promote version check with proper * | ||
* comparisons. * | ||
* * | ||
* Copyright (c) Microsoft Corp. All rights reserved. * | ||
* * | ||
******************************************************************/ | ||
#ifndef _versionhelpers_H_INCLUDED_ | ||
#define _versionhelpers_H_INCLUDED_ | ||
|
||
#include <winapifamily.h> | ||
|
||
#ifdef _MSC_VER | ||
#pragma once | ||
#endif // _MSC_VER | ||
|
||
#pragma region Application Family | ||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) | ||
|
||
#include <specstrings.h> // for _In_, etc. | ||
|
||
#if !defined(__midl) && !defined(SORTPP_PASS) | ||
|
||
#if (NTDDI_VERSION >= NTDDI_WINXP) | ||
|
||
#ifdef __cplusplus | ||
|
||
#define VERSIONHELPERAPI inline bool | ||
|
||
#else // __cplusplus | ||
|
||
#define VERSIONHELPERAPI FORCEINLINE BOOL | ||
|
||
#endif // __cplusplus | ||
|
||
VERSIONHELPERAPI | ||
IsWindowsVersionOrGreater(WORD wMajorVersion, WORD wMinorVersion, WORD wServicePackMajor) | ||
{ | ||
OSVERSIONINFOEXW osvi = { sizeof(osvi), 0, 0, 0, 0, {0}, 0, 0 }; | ||
DWORDLONG const dwlConditionMask = VerSetConditionMask( | ||
VerSetConditionMask( | ||
VerSetConditionMask( | ||
0, VER_MAJORVERSION, VER_GREATER_EQUAL), | ||
VER_MINORVERSION, VER_GREATER_EQUAL), | ||
VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL); | ||
|
||
osvi.dwMajorVersion = wMajorVersion; | ||
osvi.dwMinorVersion = wMinorVersion; | ||
osvi.wServicePackMajor = wServicePackMajor; | ||
|
||
return VerifyVersionInfoW(&osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask) != FALSE; | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindowsXPOrGreater() | ||
{ | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 0); | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindowsXPSP1OrGreater() | ||
{ | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 1); | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindowsXPSP2OrGreater() | ||
{ | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 2); | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindowsXPSP3OrGreater() | ||
{ | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 3); | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindowsVistaOrGreater() | ||
{ | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 0); | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindowsVistaSP1OrGreater() | ||
{ | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 1); | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindowsVistaSP2OrGreater() | ||
{ | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 2); | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindows7OrGreater() | ||
{ | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN7), LOBYTE(_WIN32_WINNT_WIN7), 0); | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindows7SP1OrGreater() | ||
{ | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN7), LOBYTE(_WIN32_WINNT_WIN7), 1); | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindows8OrGreater() | ||
{ | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN8), LOBYTE(_WIN32_WINNT_WIN8), 0); | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindows8Point1OrGreater() | ||
{ | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINBLUE), LOBYTE(_WIN32_WINNT_WINBLUE), 0); | ||
} | ||
|
||
VERSIONHELPERAPI | ||
IsWindowsServer() | ||
{ | ||
OSVERSIONINFOEXW osvi = { sizeof(osvi), 0, 0, 0, 0, {0}, 0, 0, 0, VER_NT_WORKSTATION }; | ||
DWORDLONG const dwlConditionMask = VerSetConditionMask( 0, VER_PRODUCT_TYPE, VER_EQUAL ); | ||
|
||
return !VerifyVersionInfoW(&osvi, VER_PRODUCT_TYPE, dwlConditionMask); | ||
} | ||
|
||
#endif // NTDDI_VERSION | ||
|
||
#endif // defined(__midl) | ||
|
||
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ | ||
#pragma endregion | ||
|
||
#endif // _VERSIONHELPERS_H_INCLUDED_ |
Oops, something went wrong.