21 #include "../../SDL_internal.h"
23 #if defined(__WIN32__) || defined(__WINRT__)
31 #ifndef _WIN32_WINNT_VISTA
32 #define _WIN32_WINNT_VISTA 0x0600
34 #ifndef _WIN32_WINNT_WIN7
35 #define _WIN32_WINNT_WIN7 0x0601
45 FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
NULL, hr, 0,
76 HRESULT hr = CoInitializeEx(
NULL, COINIT_APARTMENTTHREADED);
77 if (hr == RPC_E_CHANGED_MODE) {
78 hr = CoInitializeEx(
NULL, COINIT_MULTITHREADED);
101 IsWindowsVersionOrGreater(WORD wMajorVersion, WORD wMinorVersion, WORD wServicePackMajor)
103 OSVERSIONINFOEXW osvi;
104 DWORDLONG
const dwlConditionMask = VerSetConditionMask(
107 0, VER_MAJORVERSION, VER_GREATER_EQUAL ),
108 VER_MINORVERSION, VER_GREATER_EQUAL ),
109 VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL );
112 osvi.dwOSVersionInfoSize =
sizeof(osvi);
113 osvi.dwMajorVersion = wMajorVersion;
114 osvi.dwMinorVersion = wMinorVersion;
115 osvi.wServicePackMajor = wServicePackMajor;
117 return VerifyVersionInfoW(&osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask) !=
FALSE;
126 return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 0);
135 return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN7), LOBYTE(_WIN32_WINNT_WIN7), 0);
166 static const GUID nullguid = { 0 };
167 const unsigned char *
ptr;
179 ptr = (
const unsigned char *) guid;
181 "System\\CurrentControlSet\\Control\\MediaCategories\\{%02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
186 rc = (RegOpenKeyExW(HKEY_LOCAL_MACHINE, strw, 0, KEY_QUERY_VALUE, &hkey) == ERROR_SUCCESS);
192 rc = (RegQueryValueExW(hkey, L
"Name",
NULL,
NULL,
NULL, &
len) == ERROR_SUCCESS);
204 rc = (RegQueryValueExW(hkey, L
"Name",
NULL,
NULL, (LPBYTE) strw, &
len) == ERROR_SUCCESS);