21 #include "../../SDL_internal.h" 23 #if defined(__WIN32__) || defined(__WINRT__) 31 #ifndef _WIN32_WINNT_VISTA 32 #define _WIN32_WINNT_VISTA 0x0600 42 FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
NULL, hr, 0,
45 SDL_SetError(
"%s%s%s", prefix ? prefix :
"", prefix ?
": " :
"", message);
73 HRESULT hr = CoInitializeEx(
NULL, COINIT_APARTMENTTHREADED);
74 if (hr == RPC_E_CHANGED_MODE) {
75 hr = CoInitializeEx(
NULL, COINIT_MULTITHREADED);
98 IsWindowsVersionOrGreater(WORD wMajorVersion, WORD wMinorVersion, WORD wServicePackMajor)
100 OSVERSIONINFOEXW osvi;
101 DWORDLONG
const dwlConditionMask = VerSetConditionMask(
104 0, VER_MAJORVERSION, VER_GREATER_EQUAL ),
105 VER_MINORVERSION, VER_GREATER_EQUAL ),
106 VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL );
109 osvi.dwOSVersionInfoSize =
sizeof(osvi);
110 osvi.dwMajorVersion = wMajorVersion;
111 osvi.dwMinorVersion = wMinorVersion;
112 osvi.wServicePackMajor = wServicePackMajor;
114 return VerifyVersionInfoW(&osvi, VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, dwlConditionMask) !=
FALSE;
123 return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 0);
GLuint GLsizei const GLchar * message
int WIN_SetErrorFromHRESULT(const char *prefix, HRESULT hr)
BOOL WIN_IsWindowsVistaOrGreater()
HRESULT WIN_CoInitialize(void)
#define WIN_StringToUTF8(S)
void WIN_CoUninitialize(void)
int WIN_SetError(const char *prefix)
#define SDL_arraysize(array)