90 lines
3.0 KiB
C
90 lines
3.0 KiB
C
|
#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<ULONG64>(dwMaximumSizeHigh) << 32) | dwMaximumSizeLow, lpName);
|
||
|
|
||
|
#define MapViewOfFile(hFileMappingObject, dwDesiredAccess, dwFileOffsetHigh, dwFileOffsetLow, dwNumberOfBytesToMap) \
|
||
|
MapViewOfFileFromApp(hFileMappingObject, dwDesiredAccess, (static_cast<ULONG64>(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
|