summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/os/windows/win32.cpp32
-rw-r--r--src/os/windows/win32.h1
-rw-r--r--src/sound/win32_s.cpp3
-rw-r--r--src/video/win32_v.cpp1
4 files changed, 3 insertions, 34 deletions
diff --git a/src/os/windows/win32.cpp b/src/os/windows/win32.cpp
index 3ed0cdb2a..4478caa65 100644
--- a/src/os/windows/win32.cpp
+++ b/src/os/windows/win32.cpp
@@ -707,38 +707,6 @@ int OTTDStringCompare(const char *s1, const char *s2)
return CompareString(MAKELCID(_current_language->winlangid, SORT_DEFAULT), NORM_IGNORECASE, s1_buf, -1, s2_buf, -1);
}
-/**
- * Is the current Windows version Vista or later?
- * @return True if the current Windows is Vista or later.
- */
-bool IsWindowsVistaOrGreater()
-{
- typedef BOOL (WINAPI * LPVERIFYVERSIONINFO)(LPOSVERSIONINFOEX, DWORD, DWORDLONG);
- typedef ULONGLONG (NTAPI * LPVERSETCONDITIONMASK)(ULONGLONG, DWORD, BYTE);
-#ifdef UNICODE
- static LPVERIFYVERSIONINFO _VerifyVersionInfo = (LPVERIFYVERSIONINFO)GetProcAddress(GetModuleHandle(_T("Kernel32")), "VerifyVersionInfoW");
-#else
- static LPVERIFYVERSIONINFO _VerifyVersionInfo = (LPVERIFYVERSIONINFO)GetProcAddress(GetModuleHandle(_T("Kernel32")), "VerifyVersionInfoA");
-#endif
- static LPVERSETCONDITIONMASK _VerSetConditionMask = (LPVERSETCONDITIONMASK)GetProcAddress(GetModuleHandle(_T("Kernel32")), "VerSetConditionMask");
-
- if (_VerifyVersionInfo != nullptr && _VerSetConditionMask != nullptr) {
- OSVERSIONINFOEX osvi = { sizeof(osvi), 0, 0, 0, 0, {0}, 0, 0 };
- DWORDLONG dwlConditionMask = 0;
- dwlConditionMask = _VerSetConditionMask(dwlConditionMask, VER_MAJORVERSION, VER_GREATER_EQUAL);
- dwlConditionMask = _VerSetConditionMask(dwlConditionMask, VER_MINORVERSION, VER_GREATER_EQUAL);
- dwlConditionMask = _VerSetConditionMask(dwlConditionMask, VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL);
-
- osvi.dwMajorVersion = 6;
- osvi.dwMinorVersion = 0;
- osvi.wServicePackMajor = 0;
-
- return _VerifyVersionInfo(&osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask) != FALSE;
- } else {
- return LOBYTE(GetVersion()) >= 6;
- }
-}
-
#ifdef _MSC_VER
/* Based on code from MSDN: https://msdn.microsoft.com/en-us/library/xcb2z8hs.aspx */
const DWORD MS_VC_EXCEPTION = 0x406D1388;
diff --git a/src/os/windows/win32.h b/src/os/windows/win32.h
index 095181c46..b2048375b 100644
--- a/src/os/windows/win32.h
+++ b/src/os/windows/win32.h
@@ -25,6 +25,5 @@ wchar_t *convert_to_fs(const char *name, wchar_t *utf16_buf, size_t buflen);
void Win32SetCurrentLocaleName(const char *iso_code);
int OTTDStringCompare(const char *s1, const char *s2);
-bool IsWindowsVistaOrGreater();
#endif /* WIN32_H */
diff --git a/src/sound/win32_s.cpp b/src/sound/win32_s.cpp
index eccbb4f42..87959e586 100644
--- a/src/sound/win32_s.cpp
+++ b/src/sound/win32_s.cpp
@@ -17,6 +17,7 @@
#include "win32_s.h"
#include <windows.h>
#include <mmsystem.h>
+#include <versionhelpers.h>
#include "../os/windows/win32.h"
#include "../thread.h"
@@ -69,7 +70,7 @@ const char *SoundDriver_Win32::Start(const StringList &parm)
wfex.nAvgBytesPerSec = wfex.nSamplesPerSec * wfex.nBlockAlign;
/* Limit buffer size to prevent overflows. */
- _bufsize = GetDriverParamInt(parm, "bufsize", (GB(GetVersion(), 0, 8) > 5) ? 8192 : 4096);
+ _bufsize = GetDriverParamInt(parm, "bufsize", IsWindowsVistaOrGreater() ? 8192 : 4096);
_bufsize = std::min<int>(_bufsize, UINT16_MAX);
try {
diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp
index f0291db71..7dfc0034a 100644
--- a/src/video/win32_v.cpp
+++ b/src/video/win32_v.cpp
@@ -25,6 +25,7 @@
#include "win32_v.h"
#include <windows.h>
#include <imm.h>
+#include <versionhelpers.h>
#include "../safeguards.h"