diff options
Diffstat (limited to 'src/tool_doswin.c')
-rw-r--r-- | src/tool_doswin.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/tool_doswin.c b/src/tool_doswin.c index a64a81633..0743c7183 100644 --- a/src/tool_doswin.c +++ b/src/tool_doswin.c @@ -697,6 +697,32 @@ cleanup: return slist; } +LARGE_INTEGER Curl_freq; +bool Curl_isVistaOrGreater; + +CURLcode win32_init(void) +{ + OSVERSIONINFOEXA osvi; + unsigned __int64 mask = 0; + unsigned char op = VER_GREATER_EQUAL; + + memset(&osvi, 0, sizeof(osvi)); + osvi.dwOSVersionInfoSize = sizeof(osvi); + osvi.dwMajorVersion = 6; + VER_SET_CONDITION(mask, VER_MAJORVERSION, op); + VER_SET_CONDITION(mask, VER_MINORVERSION, op); + + if(VerifyVersionInfoA(&osvi, (VER_MAJORVERSION | VER_MINORVERSION), mask)) + Curl_isVistaOrGreater = true; + else if(GetLastError() == ERROR_OLD_WIN_VERSION) + Curl_isVistaOrGreater = false; + else + return CURLE_FAILED_INIT; + + QueryPerformanceFrequency(&Curl_freq); + return CURLE_OK; +} + #endif /* WIN32 */ #endif /* MSDOS || WIN32 */ |