#pragma once #if IL2CPP_TARGET_WINRT extern "C" { #if WINDOWS_SDK_BUILD_VERSION < 16299 // These APIs got readded on Windows 10 Fall Creators Update #define CreateEvent CreateEventW #define FreeEnvironmentStrings FreeEnvironmentStringsW #define GetEnvironmentStrings GetEnvironmentStringsW #define GetEnvironmentVariable GetEnvironmentVariableW #define GetVersionEx GetVersionExW #define SetEnvironmentVariable SetEnvironmentVariableW #endif #define GetUserName GetUserNameW #if WINDOWS_SDK_BUILD_VERSION < 16299 inline HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCWSTR lpName) { DWORD flags = 0; if (bManualReset) flags |= CREATE_EVENT_MANUAL_RESET; if (bInitialState) flags |= CREATE_EVENT_INITIAL_SET; return CreateEventExW(lpEventAttributes, lpName, flags, EVENT_ALL_ACCESS); } #endif inline HANDLE WINAPI CreateFileW(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) { const DWORD kFileAttributeMask = 0x0000FFFF; const DWORD kFileFlagMask = 0xFFFF0000; CREATEFILE2_EXTENDED_PARAMETERS extendedParameters; extendedParameters.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS); extendedParameters.dwFileAttributes = dwFlagsAndAttributes & kFileAttributeMask; extendedParameters.dwFileFlags = dwFlagsAndAttributes & kFileFlagMask; extendedParameters.dwSecurityQosFlags = SECURITY_ANONYMOUS; extendedParameters.lpSecurityAttributes = lpSecurityAttributes; extendedParameters.hTemplateFile = hTemplateFile; return CreateFile2(lpFileName, dwDesiredAccess, dwShareMode, dwCreationDisposition, &extendedParameters); } #if WINDOWS_SDK_BUILD_VERSION < 16299 BOOL WINAPI FreeEnvironmentStringsW(LPWCH strings); LPWCH WINAPI GetEnvironmentStringsW(); DWORD WINAPI GetEnvironmentVariableW(LPCWSTR lpName, LPWSTR lpBuffer, DWORD nSize); BOOL WINAPI GetVersionExW(LPOSVERSIONINFOW lpVersionInformation); #endif BOOL WINAPI GetUserNameW(LPWSTR lpBuffer, LPDWORD pcbBuffer); inline HMODULE WINAPI LoadLibraryW(LPCWSTR lpLibFileName) { return LoadPackagedLibrary(lpLibFileName, 0); } #if WINDOWS_SDK_BUILD_VERSION < 16299 BOOL WINAPI SetEnvironmentVariableW(LPCWSTR lpName, LPCWSTR lpValue); #endif #define CreateFileMappingW(hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName) \ CreateFileMappingFromApp(hFile, lpFileMappingAttributes, flProtect, (static_cast(dwMaximumSizeHigh) << 32) | dwMaximumSizeLow, lpName); #define MapViewOfFile(hFileMappingObject, dwDesiredAccess, dwFileOffsetHigh, dwFileOffsetLow, dwNumberOfBytesToMap) \ MapViewOfFileFromApp(hFileMappingObject, dwDesiredAccess, (static_cast(dwFileOffsetHigh) << 32) | dwFileOffsetLow, dwNumberOfBytesToMap); #if WINDOWS_SDK_BUILD_VERSION < 14393 #define TlsAlloc() FlsAlloc(NULL) #define TlsGetValue FlsGetValue #define TlsSetValue FlsSetValue #define TlsFree FlsFree #endif } // extern "C" #endif