少年修仙传客户端基础资源
hch
2024-04-01 d01413b00ef631ac20347716b23818b0b811f65f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#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