diff --git a/CMakeLists.txt b/CMakeLists.txt index 25a6ae2..146e6a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,25 +7,17 @@ if (CMAKE_SIZEOF_VOID_P EQUAL 4) endif () set(CMAKE_SHARED_LINKER_FLAGS -Wl,--kill-at) -option(ZYDIS_BUILD_TOOLS "" OFF) -option(ZYDIS_BUILD_EXAMPLES "" OFF) -add_subdirectory("deps/zydis") - set(CMAKE_CXX_STANDARD 20) -add_executable(patcher main.cpp dll.c) - -target_link_libraries(patcher Zydis imagehlp) - -if (CMAKE_SIZEOF_VOID_P EQUAL 4) - add_library(bcompat SHARED dll.c) - target_link_libraries(bcompat -static-libgcc) - set_target_properties(bcompat PROPERTIES PREFIX "") - #target_compile_options(bcompat PRIVATE -march=pentium) - add_library(user32 SHARED user32.c) - target_link_libraries(user32 -static-libgcc) - set_target_properties(user32 PROPERTIES PREFIX "") -endif () - add_executable(bconfig config.c config.rc) target_link_libraries(bconfig comctl32) + +if (CMAKE_SIZEOF_VOID_P EQUAL 4) + add_library(user32 SHARED user32.c) + target_link_libraries(user32 -static-libgcc) + set_target_properties(user32 PROPERTIES PREFIX "") + + add_library(kernel32 SHARED kernel32.c) + target_link_libraries(kernel32 -nostdlib) + set_target_properties(kernel32 PROPERTIES PREFIX "") +endif () diff --git a/common.h b/common.h new file mode 100644 index 0000000..22fbb20 --- /dev/null +++ b/common.h @@ -0,0 +1,14 @@ +#ifndef BCOMPAT_COMMON_H +#define BCOMPAT_COMMON_H + +#define WIN32_LEAN_AND_MEAN +#define NOUSER +#include +#include +#include + +#define DLL_EXPORT __declspec(dllexport) + +#define getFunction(dllName, functionName) GetProcAddress(GetModuleHandleA(dllName), functionName) + +#endif //BCOMPAT_COMMON_H \ No newline at end of file diff --git a/config.c b/config.c index 103c460..a50bf07 100644 --- a/config.c +++ b/config.c @@ -19,15 +19,21 @@ struct FunctionVersion { typedef struct FunctionVersion FunctionVersion; ReportedVersion reportedVersions[] = { - { "Win32s", 4, 0, 950, VER_PLATFORM_WIN32s }, + { "Win32s", 1, 0, 0, VER_PLATFORM_WIN32s }, { "Windows NT 3.1", 3, 10, 511, VER_PLATFORM_WIN32_NT }, { "Windows NT 3.50", 3, 50, 807, VER_PLATFORM_WIN32_NT }, { "Windows NT 3.51", 3, 51, 1057, VER_PLATFORM_WIN32_NT }, { "Windows 95", 4, 0, 950, VER_PLATFORM_WIN32_WINDOWS }, { "Windows NT 4.0", 4, 0, 1381, VER_PLATFORM_WIN32_NT } }; -FunctionVersion functionVersions[] = { - { "Windows NT 4.0", "kernel32.dllGetVersionEx", "kernel32.dllGetVersion"} +LPCSTR csdVersions[] = { + "None", + "Service Pack 1", + "Service Pack 2", + "Service Pack 3", + "Service Pack 4", + "Service Pack 5", + "Service Pack 6" }; BOOL reportedChanged; @@ -44,8 +50,8 @@ INT_PTR CALLBACK GlobalPageProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar ListBox_AddString(reportedBox, reportedVersions[i].name); } HWND functionBox = GetDlgItem(hWnd, 2); - for (int i = 0; i < ARRAYSIZE(functionVersions); i++) { - ListBox_AddString(functionBox, functionVersions[i].name); + for (int i = 0; i < ARRAYSIZE(csdVersions); i++) { + ListBox_AddString(functionBox, csdVersions[i]); } HKEY key; @@ -59,40 +65,23 @@ INT_PTR CALLBACK GlobalPageProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar RegQueryValueEx(key, TEXT("ReportedBuild"), NULL, NULL, (LPBYTE) &build, &size); DWORD platform = 0; RegQueryValueEx(key, TEXT("ReportedPlatform"), NULL, NULL, (LPBYTE) &platform, &size); - RegCloseKey(key); for (int i = 0; i < ARRAYSIZE(reportedVersions); i++) { ReportedVersion version = reportedVersions[i]; if (major == version.major && minor == version.minor && build == version.build && platform == version.platform) { ListBox_SetCurSel(reportedBox, i); } } - } - if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\BCompat\\Functions"), 0, KEY_READ, &key) == ERROR_SUCCESS) { - TCHAR functions[MAX_FUNCTION_COUNT][64]; - DWORD nameLength = 64; - int count = 0; - while (RegEnumKeyEx(key, count, functions[count], &nameLength, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) { - count++; + TCHAR csd[128]; + size = sizeof(csd); + RegQueryValueEx(key, TEXT("ReportedServicePack"), NULL, NULL, (LPBYTE) &csd, &size); + if (strlen(csd) == 0) { + strcpy(csd, "None"); } - for (int i = 0; i < ARRAYSIZE(functionVersions); i++) { - FunctionVersion version = functionVersions[i]; - int x; - for (x = 0; x < ARRAYSIZE(version.functions) && version.functions[x] != NULL; x++) { - BOOL found = FALSE; - for (int y = 0; y < count; ++y) { - if (strcmp(functions[y], version.functions[x]) == 0) { - found = TRUE; - break; - } - } - if (!found) { - goto outer; - } + for (int i = 0; i < ARRAYSIZE(csdVersions); i++) { + LPCSTR version = csdVersions[i]; + if (strcmp(csd, version) == 0) { + ListBox_SetCurSel(reportedBox, i); } - if (x == count) { - ListBox_SetCurSel(functionBox, i); - } - outer: } RegCloseKey(key); } @@ -133,14 +122,13 @@ INT_PTR CALLBACK GlobalPageProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar } if (functionChanged) { functionChanged = FALSE; - FunctionVersion version = functionVersions[ListBox_GetCurSel(GetDlgItem(hWnd, 2))]; + LPCSTR version = csdVersions[ListBox_GetCurSel(GetDlgItem(hWnd, 2))]; HKEY key; - RegDeleteKey(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\BCompat\\Functions")); - RegCreateKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\BCompat\\Functions"), 0, NULL, 0, KEY_WRITE, NULL, &key, NULL); - for (int i = 0; i < ARRAYSIZE(version.functions) && version.functions[i] != NULL; i++) { - DWORD value = 0; - RegSetValueEx(key, version.functions[i], 0, REG_DWORD, (LPBYTE) &value, sizeof(DWORD)); + RegCreateKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\BCompat"), 0, NULL, 0, KEY_WRITE, NULL, &key, NULL); + if (strcmp(version, "None") == 0) { + version = ""; } + RegSetValueEx(key, "ReportedServicePack", 0, REG_SZ, (LPBYTE) version, strlen(version) + 1); RegCloseKey(key); } } diff --git a/config.rc b/config.rc index d1d2b3e..3253763 100644 --- a/config.rc +++ b/config.rc @@ -1,11 +1,11 @@ #include -1 DIALOG DISCARDABLE 0, 0, 215, 125 +1 DIALOG DISCARDABLE 0, 0, 215, 135 STYLE WS_CHILD | WS_VISIBLE | WS_BORDER -FONT 9, "SEGOE UI" +FONT 9, "MS Shell Dlg" { CTEXT "Reported Version:", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 5, 60, 10 - CONTROL "ReportedBox", 1, "ListBox", LBS_STANDARD | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 15, 85, 100 - CTEXT "Function Version:", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 95, 5, 60, 10 - CONTROL "FunctionBox", 2, "ListBox", LBS_STANDARD | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 95, 15, 85, 100 + CONTROL "ReportedBox", 1, "ListBox", LBS_NOTIFY | WS_VSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 15, 100, 130 + CTEXT "Reported Service Pack:", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 110, 5, 80, 10 + CONTROL "FunctionBox", 2, "ListBox", LBS_NOTIFY | WS_VSCROLL | WS_BORDER | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 110, 15, 100, 130 } diff --git a/kernel32.c b/kernel32.c new file mode 100644 index 0000000..c113c16 --- /dev/null +++ b/kernel32.c @@ -0,0 +1,86 @@ +#include "common.h" +#include "kernel32.h" + +typedef LPWCH (__cdecl *wcscpyPtr)(LPWCH dest, LPWCH source); +typedef size_t (__cdecl *wcstombsPtr)(LPSTR dest, LPWCH source, size_t maxCount); +typedef LONG (WINAPI *RegOpenKeyExWPtr)(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult); +typedef LONG (WINAPI *RegQueryValueExWPtr)(HKEY hKey, LPCWSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData); +typedef LONG (WINAPI *RegCloseKeyPtr)(HKEY hKey); + +DLL_EXPORT WINAPI BOOL GetVersionExW(LPOSVERSIONINFOW version) { + if (version->dwOSVersionInfoSize == sizeof(OSVERSIONINFOW)) { + version->dwMajorVersion = 4; + version->dwMinorVersion = 0; + version->dwBuildNumber = 1381; + version->dwPlatformId = VER_PLATFORM_WIN32_NT; + version->szCSDVersion[0] = L'\0'; + //wcscpyPtr wcscpy = (wcscpyPtr) getFunction("msvcrt.dll", "wcscpy"); + //wcscpy(version->szCSDVersion, L"Befator Inc gruesst Sie!"); + + RegOpenKeyExWPtr regOpenKeyExW = (RegOpenKeyExWPtr) getFunction("advapi32.dll", "RegOpenKeyExW"); + RegQueryValueExWPtr regQueryValueExW = (RegQueryValueExWPtr) getFunction("advapi32.dll", "RegQueryValueExW"); + RegCloseKeyPtr regCloseKey = (RegCloseKeyPtr) getFunction("advapi32.dll", "RegCloseKey"); + HKEY key; + if (regOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\BCompat", 0, KEY_READ, &key) == ERROR_SUCCESS) { + DWORD size; + DWORD major = 0; + if (regQueryValueExW(key, L"ReportedMajor", NULL, NULL, (LPBYTE) &major, &size) == ERROR_SUCCESS) { + version->dwMajorVersion = major; + } + DWORD minor = 0; + if (regQueryValueExW(key, L"ReportedMinor", NULL, NULL, (LPBYTE) &minor, &size) == ERROR_SUCCESS) { + version->dwMinorVersion = minor; + } + DWORD build = 0; + if (regQueryValueExW(key, L"ReportedBuild", NULL, NULL, (LPBYTE) &build, &size) == ERROR_SUCCESS) { + version->dwBuildNumber = build; + } + DWORD platform = 0; + if (regQueryValueExW(key, L"ReportedPlatform", NULL, NULL, (LPBYTE) &platform, &size) == ERROR_SUCCESS) { + version->dwPlatformId = platform; + } + size = sizeof(version->szCSDVersion); + if (regQueryValueExW(key, L"ReportedServicePack", NULL, NULL, (LPBYTE) &version->szCSDVersion, &size) == ERROR_SUCCESS) { + version->szCSDVersion[127] = L'\0'; + } + regCloseKey(key); + } + return TRUE; + } else { + SetLastError(ERROR_INSUFFICIENT_BUFFER); + return FALSE; + } +} + +DLL_EXPORT WINAPI BOOL GetVersionExA(LPOSVERSIONINFOA version) { + if (version->dwOSVersionInfoSize == sizeof(OSVERSIONINFOA)) { + OSVERSIONINFOW versionW; + versionW.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW); + if (GetVersionExW(&versionW)) { + version->dwMajorVersion = versionW.dwMajorVersion; + version->dwMinorVersion = versionW.dwMinorVersion; + version->dwBuildNumber = versionW.dwBuildNumber; + version->dwPlatformId = versionW.dwPlatformId; + version->szCSDVersion[0] = '\0'; + wcstombsPtr wcstombs = (wcstombsPtr) getFunction("msvcrt.dll", "wcstombs"); + wcstombs(version->szCSDVersion, versionW.szCSDVersion, ARRAYSIZE(version->szCSDVersion)); + return TRUE; + } + return FALSE; + } else { + SetLastError(ERROR_INSUFFICIENT_BUFFER); + return FALSE; + } +} + +DLL_EXPORT WINAPI DWORD GetVersion() { + OSVERSIONINFOW versionW; + if (GetVersionExW(&versionW)) { + return (versionW.dwPlatformId ^ 2) << 30 | + versionW.dwBuildNumber << 16 | + versionW.dwMinorVersion << 8 | + versionW.dwMajorVersion; + } else { + return -1; + } +} diff --git a/kernel32.h b/kernel32.h new file mode 100644 index 0000000..1ecd4c8 --- /dev/null +++ b/kernel32.h @@ -0,0 +1,687 @@ +#ifndef BCOMPAT_KERNEL32_H +#define BCOMPAT_KERNEL32_H + +#define FORWARDED_EXPORT(exp_name) asm (".section .drectve\n\t.ascii \" -export:" #exp_name "=_kernel32." #exp_name "\""); +FORWARDED_EXPORT(AddAtomA) +FORWARDED_EXPORT(AddAtomW) +FORWARDED_EXPORT(AddConsoleAliasA) +FORWARDED_EXPORT(AddConsoleAliasW) +FORWARDED_EXPORT(AllocConsole) +FORWARDED_EXPORT(AreFileApisANSI) +FORWARDED_EXPORT(BackupRead) +FORWARDED_EXPORT(BackupSeek) +FORWARDED_EXPORT(BackupWrite) +FORWARDED_EXPORT(BaseAttachCompleteThunk) +FORWARDED_EXPORT(Beep) +FORWARDED_EXPORT(BeginUpdateResourceA) +FORWARDED_EXPORT(BeginUpdateResourceW) +FORWARDED_EXPORT(BuildCommDCBA) +FORWARDED_EXPORT(BuildCommDCBAndTimeoutsA) +FORWARDED_EXPORT(BuildCommDCBAndTimeoutsW) +FORWARDED_EXPORT(BuildCommDCBW) +FORWARDED_EXPORT(CallNamedPipeA) +FORWARDED_EXPORT(CallNamedPipeW) +FORWARDED_EXPORT(CancelIo) +FORWARDED_EXPORT(CancelWaitableTimer) +FORWARDED_EXPORT(ClearCommBreak) +FORWARDED_EXPORT(ClearCommError) +FORWARDED_EXPORT(CloseConsoleHandle) +FORWARDED_EXPORT(CloseHandle) +FORWARDED_EXPORT(CloseProfileUserMapping) +FORWARDED_EXPORT(CmdBatNotification) +FORWARDED_EXPORT(CommConfigDialogA) +FORWARDED_EXPORT(CommConfigDialogW) +FORWARDED_EXPORT(CompareFileTime) +FORWARDED_EXPORT(CompareStringA) +FORWARDED_EXPORT(CompareStringW) +FORWARDED_EXPORT(ConnectNamedPipe) +FORWARDED_EXPORT(ConsoleMenuControl) +FORWARDED_EXPORT(ContinueDebugEvent) +FORWARDED_EXPORT(ConvertDefaultLocale) +FORWARDED_EXPORT(ConvertThreadToFiber) +FORWARDED_EXPORT(CopyFileA) +FORWARDED_EXPORT(CopyFileExA) +FORWARDED_EXPORT(CopyFileExW) +FORWARDED_EXPORT(CopyFileW) +FORWARDED_EXPORT(CreateConsoleScreenBuffer) +FORWARDED_EXPORT(CreateDirectoryA) +FORWARDED_EXPORT(CreateDirectoryExA) +FORWARDED_EXPORT(CreateDirectoryExW) +FORWARDED_EXPORT(CreateDirectoryW) +FORWARDED_EXPORT(CreateEventA) +FORWARDED_EXPORT(CreateEventW) +FORWARDED_EXPORT(CreateFiber) +FORWARDED_EXPORT(CreateFileA) +FORWARDED_EXPORT(CreateFileMappingA) +FORWARDED_EXPORT(CreateFileMappingW) +FORWARDED_EXPORT(CreateFileW) +FORWARDED_EXPORT(CreateIoCompletionPort) +FORWARDED_EXPORT(CreateMailslotA) +FORWARDED_EXPORT(CreateMailslotW) +FORWARDED_EXPORT(CreateMutexA) +FORWARDED_EXPORT(CreateMutexW) +FORWARDED_EXPORT(CreateNamedPipeA) +FORWARDED_EXPORT(CreateNamedPipeW) +FORWARDED_EXPORT(CreatePipe) +FORWARDED_EXPORT(CreateProcessA) +FORWARDED_EXPORT(CreateProcessW) +FORWARDED_EXPORT(CreateRemoteThread) +FORWARDED_EXPORT(CreateSemaphoreA) +FORWARDED_EXPORT(CreateSemaphoreW) +FORWARDED_EXPORT(CreateTapePartition) +FORWARDED_EXPORT(CreateThread) +FORWARDED_EXPORT(CreateVirtualBuffer) +FORWARDED_EXPORT(CreateWaitableTimerA) +FORWARDED_EXPORT(CreateWaitableTimerW) +FORWARDED_EXPORT(DebugActiveProcess) +FORWARDED_EXPORT(DebugBreak) +FORWARDED_EXPORT(DefineDosDeviceA) +FORWARDED_EXPORT(DefineDosDeviceW) +FORWARDED_EXPORT(DeleteAtom) +FORWARDED_EXPORT(DeleteCriticalSection) +FORWARDED_EXPORT(DeleteFiber) +FORWARDED_EXPORT(DeleteFileA) +FORWARDED_EXPORT(DeleteFileW) +FORWARDED_EXPORT(DeviceIoControl) +FORWARDED_EXPORT(DisableThreadLibraryCalls) +FORWARDED_EXPORT(DisconnectNamedPipe) +FORWARDED_EXPORT(DosDateTimeToFileTime) +FORWARDED_EXPORT(DuplicateConsoleHandle) +FORWARDED_EXPORT(DuplicateHandle) +FORWARDED_EXPORT(EndUpdateResourceA) +FORWARDED_EXPORT(EndUpdateResourceW) +FORWARDED_EXPORT(EnterCriticalSection) +FORWARDED_EXPORT(EnumCalendarInfoA) +FORWARDED_EXPORT(EnumCalendarInfoW) +FORWARDED_EXPORT(EnumDateFormatsA) +FORWARDED_EXPORT(EnumDateFormatsW) +FORWARDED_EXPORT(EnumResourceLanguagesA) +FORWARDED_EXPORT(EnumResourceLanguagesW) +FORWARDED_EXPORT(EnumResourceNamesA) +FORWARDED_EXPORT(EnumResourceNamesW) +FORWARDED_EXPORT(EnumResourceTypesA) +FORWARDED_EXPORT(EnumResourceTypesW) +FORWARDED_EXPORT(EnumSystemCodePagesA) +FORWARDED_EXPORT(EnumSystemCodePagesW) +FORWARDED_EXPORT(EnumSystemLocalesA) +FORWARDED_EXPORT(EnumSystemLocalesW) +FORWARDED_EXPORT(EnumTimeFormatsA) +FORWARDED_EXPORT(EnumTimeFormatsW) +FORWARDED_EXPORT(EraseTape) +FORWARDED_EXPORT(EscapeCommFunction) +FORWARDED_EXPORT(ExitProcess) +FORWARDED_EXPORT(ExitThread) +FORWARDED_EXPORT(ExitVDM) +FORWARDED_EXPORT(ExpandEnvironmentStringsA) +FORWARDED_EXPORT(ExpandEnvironmentStringsW) +FORWARDED_EXPORT(ExpungeConsoleCommandHistoryA) +FORWARDED_EXPORT(ExpungeConsoleCommandHistoryW) +FORWARDED_EXPORT(ExtendVirtualBuffer) +FORWARDED_EXPORT(FatalAppExitA) +FORWARDED_EXPORT(FatalAppExitW) +FORWARDED_EXPORT(FatalExit) +FORWARDED_EXPORT(FileTimeToDosDateTime) +FORWARDED_EXPORT(FileTimeToLocalFileTime) +FORWARDED_EXPORT(FileTimeToSystemTime) +FORWARDED_EXPORT(FillConsoleOutputAttribute) +FORWARDED_EXPORT(FillConsoleOutputCharacterA) +FORWARDED_EXPORT(FillConsoleOutputCharacterW) +FORWARDED_EXPORT(FindAtomA) +FORWARDED_EXPORT(FindAtomW) +FORWARDED_EXPORT(FindClose) +FORWARDED_EXPORT(FindCloseChangeNotification) +FORWARDED_EXPORT(FindFirstChangeNotificationA) +FORWARDED_EXPORT(FindFirstChangeNotificationW) +FORWARDED_EXPORT(FindFirstFileA) +FORWARDED_EXPORT(FindFirstFileExA) +FORWARDED_EXPORT(FindFirstFileExW) +FORWARDED_EXPORT(FindFirstFileW) +FORWARDED_EXPORT(FindNextChangeNotification) +FORWARDED_EXPORT(FindNextFileA) +FORWARDED_EXPORT(FindNextFileW) +FORWARDED_EXPORT(FindResourceA) +FORWARDED_EXPORT(FindResourceExA) +FORWARDED_EXPORT(FindResourceExW) +FORWARDED_EXPORT(FindResourceW) +FORWARDED_EXPORT(FlushConsoleInputBuffer) +FORWARDED_EXPORT(FlushFileBuffers) +FORWARDED_EXPORT(FlushInstructionCache) +FORWARDED_EXPORT(FlushViewOfFile) +FORWARDED_EXPORT(FoldStringA) +FORWARDED_EXPORT(FoldStringW) +FORWARDED_EXPORT(FormatMessageA) +FORWARDED_EXPORT(FormatMessageW) +FORWARDED_EXPORT(FreeConsole) +FORWARDED_EXPORT(FreeEnvironmentStringsA) +FORWARDED_EXPORT(FreeEnvironmentStringsW) +FORWARDED_EXPORT(FreeLibrary) +FORWARDED_EXPORT(FreeLibraryAndExitThread) +FORWARDED_EXPORT(FreeResource) +FORWARDED_EXPORT(FreeVirtualBuffer) +FORWARDED_EXPORT(GenerateConsoleCtrlEvent) +FORWARDED_EXPORT(GetACP) +FORWARDED_EXPORT(GetAtomNameA) +FORWARDED_EXPORT(GetAtomNameW) +FORWARDED_EXPORT(GetBinaryType) +FORWARDED_EXPORT(GetBinaryTypeA) +FORWARDED_EXPORT(GetBinaryTypeW) +FORWARDED_EXPORT(GetCPInfo) +FORWARDED_EXPORT(GetCommConfig) +FORWARDED_EXPORT(GetCommMask) +FORWARDED_EXPORT(GetCommModemStatus) +FORWARDED_EXPORT(GetCommProperties) +FORWARDED_EXPORT(GetCommState) +FORWARDED_EXPORT(GetCommTimeouts) +FORWARDED_EXPORT(GetCommandLineA) +FORWARDED_EXPORT(GetCommandLineW) +FORWARDED_EXPORT(GetCompressedFileSizeA) +FORWARDED_EXPORT(GetCompressedFileSizeW) +FORWARDED_EXPORT(GetComputerNameA) +FORWARDED_EXPORT(GetComputerNameW) +FORWARDED_EXPORT(GetConsoleAliasA) +FORWARDED_EXPORT(GetConsoleAliasExesA) +FORWARDED_EXPORT(GetConsoleAliasExesLengthA) +FORWARDED_EXPORT(GetConsoleAliasExesLengthW) +FORWARDED_EXPORT(GetConsoleAliasExesW) +FORWARDED_EXPORT(GetConsoleAliasW) +FORWARDED_EXPORT(GetConsoleAliasesA) +FORWARDED_EXPORT(GetConsoleAliasesLengthA) +FORWARDED_EXPORT(GetConsoleAliasesLengthW) +FORWARDED_EXPORT(GetConsoleAliasesW) +FORWARDED_EXPORT(GetConsoleCP) +FORWARDED_EXPORT(GetConsoleCommandHistoryA) +FORWARDED_EXPORT(GetConsoleCommandHistoryLengthA) +FORWARDED_EXPORT(GetConsoleCommandHistoryLengthW) +FORWARDED_EXPORT(GetConsoleCommandHistoryW) +FORWARDED_EXPORT(GetConsoleCursorInfo) +FORWARDED_EXPORT(GetConsoleDisplayMode) +FORWARDED_EXPORT(GetConsoleFontInfo) +FORWARDED_EXPORT(GetConsoleFontSize) +FORWARDED_EXPORT(GetConsoleHardwareState) +FORWARDED_EXPORT(GetConsoleInputExeNameA) +FORWARDED_EXPORT(GetConsoleInputExeNameW) +FORWARDED_EXPORT(GetConsoleInputWaitHandle) +FORWARDED_EXPORT(GetConsoleKeyboardLayoutNameA) +FORWARDED_EXPORT(GetConsoleKeyboardLayoutNameW) +FORWARDED_EXPORT(GetConsoleMode) +FORWARDED_EXPORT(GetConsoleOutputCP) +FORWARDED_EXPORT(GetConsoleScreenBufferInfo) +FORWARDED_EXPORT(GetConsoleTitleA) +FORWARDED_EXPORT(GetConsoleTitleW) +FORWARDED_EXPORT(GetCurrencyFormatA) +FORWARDED_EXPORT(GetCurrencyFormatW) +FORWARDED_EXPORT(GetCurrentConsoleFont) +FORWARDED_EXPORT(GetCurrentDirectoryA) +FORWARDED_EXPORT(GetCurrentDirectoryW) +FORWARDED_EXPORT(GetCurrentProcess) +FORWARDED_EXPORT(GetCurrentProcessId) +FORWARDED_EXPORT(GetCurrentThread) +FORWARDED_EXPORT(GetCurrentThreadId) +FORWARDED_EXPORT(GetDateFormatA) +FORWARDED_EXPORT(GetDateFormatW) +FORWARDED_EXPORT(GetDefaultCommConfigA) +FORWARDED_EXPORT(GetDefaultCommConfigW) +FORWARDED_EXPORT(GetDiskFreeSpaceA) +FORWARDED_EXPORT(GetDiskFreeSpaceExA) +FORWARDED_EXPORT(GetDiskFreeSpaceExW) +FORWARDED_EXPORT(GetDiskFreeSpaceW) +FORWARDED_EXPORT(GetDriveTypeA) +FORWARDED_EXPORT(GetDriveTypeW) +FORWARDED_EXPORT(GetEnvironmentStrings) +FORWARDED_EXPORT(GetEnvironmentStringsA) +FORWARDED_EXPORT(GetEnvironmentStringsW) +FORWARDED_EXPORT(GetEnvironmentVariableA) +FORWARDED_EXPORT(GetEnvironmentVariableW) +FORWARDED_EXPORT(GetExitCodeProcess) +FORWARDED_EXPORT(GetExitCodeThread) +FORWARDED_EXPORT(GetFileAttributesA) +FORWARDED_EXPORT(GetFileAttributesExA) +FORWARDED_EXPORT(GetFileAttributesExW) +FORWARDED_EXPORT(GetFileAttributesW) +FORWARDED_EXPORT(GetFileInformationByHandle) +FORWARDED_EXPORT(GetFileSize) +FORWARDED_EXPORT(GetFileTime) +FORWARDED_EXPORT(GetFileType) +FORWARDED_EXPORT(GetFullPathNameA) +FORWARDED_EXPORT(GetFullPathNameW) +FORWARDED_EXPORT(GetHandleInformation) +FORWARDED_EXPORT(GetLargestConsoleWindowSize) +FORWARDED_EXPORT(GetLastError) +FORWARDED_EXPORT(GetLocalTime) +FORWARDED_EXPORT(GetLocaleInfoA) +FORWARDED_EXPORT(GetLocaleInfoW) +FORWARDED_EXPORT(GetLogicalDriveStringsA) +FORWARDED_EXPORT(GetLogicalDriveStringsW) +FORWARDED_EXPORT(GetLogicalDrives) +FORWARDED_EXPORT(GetMailslotInfo) +FORWARDED_EXPORT(GetModuleFileNameA) +FORWARDED_EXPORT(GetModuleFileNameW) +FORWARDED_EXPORT(GetModuleHandleA) +FORWARDED_EXPORT(GetModuleHandleW) +FORWARDED_EXPORT(GetNamedPipeHandleStateA) +FORWARDED_EXPORT(GetNamedPipeHandleStateW) +FORWARDED_EXPORT(GetNamedPipeInfo) +FORWARDED_EXPORT(GetNextVDMCommand) +FORWARDED_EXPORT(GetNumberFormatA) +FORWARDED_EXPORT(GetNumberFormatW) +FORWARDED_EXPORT(GetNumberOfConsoleFonts) +FORWARDED_EXPORT(GetNumberOfConsoleInputEvents) +FORWARDED_EXPORT(GetNumberOfConsoleMouseButtons) +FORWARDED_EXPORT(GetOEMCP) +FORWARDED_EXPORT(GetOverlappedResult) +FORWARDED_EXPORT(GetPriorityClass) +FORWARDED_EXPORT(GetPrivateProfileIntA) +FORWARDED_EXPORT(GetPrivateProfileIntW) +FORWARDED_EXPORT(GetPrivateProfileSectionA) +FORWARDED_EXPORT(GetPrivateProfileSectionNamesA) +FORWARDED_EXPORT(GetPrivateProfileSectionNamesW) +FORWARDED_EXPORT(GetPrivateProfileSectionW) +FORWARDED_EXPORT(GetPrivateProfileStringA) +FORWARDED_EXPORT(GetPrivateProfileStringW) +FORWARDED_EXPORT(GetPrivateProfileStructA) +FORWARDED_EXPORT(GetPrivateProfileStructW) +FORWARDED_EXPORT(GetProcAddress) +FORWARDED_EXPORT(GetProcessAffinityMask) +FORWARDED_EXPORT(GetProcessHeap) +FORWARDED_EXPORT(GetProcessHeaps) +FORWARDED_EXPORT(GetProcessPriorityBoost) +FORWARDED_EXPORT(GetProcessShutdownParameters) +FORWARDED_EXPORT(GetProcessTimes) +FORWARDED_EXPORT(GetProcessVersion) +FORWARDED_EXPORT(GetProcessWorkingSetSize) +FORWARDED_EXPORT(GetProfileIntA) +FORWARDED_EXPORT(GetProfileIntW) +FORWARDED_EXPORT(GetProfileSectionA) +FORWARDED_EXPORT(GetProfileSectionW) +FORWARDED_EXPORT(GetProfileStringA) +FORWARDED_EXPORT(GetProfileStringW) +FORWARDED_EXPORT(GetQueuedCompletionStatus) +FORWARDED_EXPORT(GetShortPathNameA) +FORWARDED_EXPORT(GetShortPathNameW) +FORWARDED_EXPORT(GetStartupInfoA) +FORWARDED_EXPORT(GetStartupInfoW) +FORWARDED_EXPORT(GetStdHandle) +FORWARDED_EXPORT(GetStringTypeA) +FORWARDED_EXPORT(GetStringTypeExA) +FORWARDED_EXPORT(GetStringTypeExW) +FORWARDED_EXPORT(GetStringTypeW) +FORWARDED_EXPORT(GetSystemDefaultLCID) +FORWARDED_EXPORT(GetSystemDefaultLangID) +FORWARDED_EXPORT(GetSystemDirectoryA) +FORWARDED_EXPORT(GetSystemDirectoryW) +FORWARDED_EXPORT(GetSystemInfo) +FORWARDED_EXPORT(GetSystemPowerStatus) +FORWARDED_EXPORT(GetSystemTime) +FORWARDED_EXPORT(GetSystemTimeAdjustment) +FORWARDED_EXPORT(GetSystemTimeAsFileTime) +FORWARDED_EXPORT(GetTapeParameters) +FORWARDED_EXPORT(GetTapePosition) +FORWARDED_EXPORT(GetTapeStatus) +FORWARDED_EXPORT(GetTempFileNameA) +FORWARDED_EXPORT(GetTempFileNameW) +FORWARDED_EXPORT(GetTempPathA) +FORWARDED_EXPORT(GetTempPathW) +FORWARDED_EXPORT(GetThreadContext) +FORWARDED_EXPORT(GetThreadLocale) +FORWARDED_EXPORT(GetThreadPriority) +FORWARDED_EXPORT(GetThreadPriorityBoost) +FORWARDED_EXPORT(GetThreadSelectorEntry) +FORWARDED_EXPORT(GetThreadTimes) +FORWARDED_EXPORT(GetTickCount) +FORWARDED_EXPORT(GetTimeFormatA) +FORWARDED_EXPORT(GetTimeFormatW) +FORWARDED_EXPORT(GetTimeZoneInformation) +FORWARDED_EXPORT(GetUserDefaultLCID) +FORWARDED_EXPORT(GetUserDefaultLangID) +FORWARDED_EXPORT(GetVDMCurrentDirectories) +FORWARDED_EXPORT(GetVersion) +FORWARDED_EXPORT(GetVersionExA) +FORWARDED_EXPORT(GetVersionExW) +FORWARDED_EXPORT(GetVolumeInformationA) +FORWARDED_EXPORT(GetVolumeInformationW) +FORWARDED_EXPORT(GetWindowsDirectoryA) +FORWARDED_EXPORT(GetWindowsDirectoryW) +FORWARDED_EXPORT(GlobalAddAtomA) +FORWARDED_EXPORT(GlobalAddAtomW) +FORWARDED_EXPORT(GlobalAlloc) +FORWARDED_EXPORT(GlobalCompact) +FORWARDED_EXPORT(GlobalDeleteAtom) +FORWARDED_EXPORT(GlobalFindAtomA) +FORWARDED_EXPORT(GlobalFindAtomW) +FORWARDED_EXPORT(GlobalFix) +FORWARDED_EXPORT(GlobalFlags) +FORWARDED_EXPORT(GlobalFree) +FORWARDED_EXPORT(GlobalGetAtomNameA) +FORWARDED_EXPORT(GlobalGetAtomNameW) +FORWARDED_EXPORT(GlobalHandle) +FORWARDED_EXPORT(GlobalLock) +FORWARDED_EXPORT(GlobalMemoryStatus) +FORWARDED_EXPORT(GlobalReAlloc) +FORWARDED_EXPORT(GlobalSize) +FORWARDED_EXPORT(GlobalUnWire) +FORWARDED_EXPORT(GlobalUnfix) +FORWARDED_EXPORT(GlobalUnlock) +FORWARDED_EXPORT(GlobalWire) +FORWARDED_EXPORT(HeapAlloc) +FORWARDED_EXPORT(HeapCompact) +FORWARDED_EXPORT(HeapCreate) +FORWARDED_EXPORT(HeapCreateTagsW) +FORWARDED_EXPORT(HeapDestroy) +FORWARDED_EXPORT(HeapExtend) +FORWARDED_EXPORT(HeapFree) +FORWARDED_EXPORT(HeapLock) +FORWARDED_EXPORT(HeapQueryTagW) +FORWARDED_EXPORT(HeapReAlloc) +FORWARDED_EXPORT(HeapSize) +FORWARDED_EXPORT(HeapSummary) +FORWARDED_EXPORT(HeapUnlock) +FORWARDED_EXPORT(HeapUsage) +FORWARDED_EXPORT(HeapValidate) +FORWARDED_EXPORT(HeapWalk) +FORWARDED_EXPORT(InitAtomTable) +FORWARDED_EXPORT(InitializeCriticalSection) +FORWARDED_EXPORT(InitializeCriticalSectionAndSpinCount) +FORWARDED_EXPORT(InterlockedCompareExchange) +FORWARDED_EXPORT(InterlockedDecrement) +FORWARDED_EXPORT(InterlockedExchange) +FORWARDED_EXPORT(InterlockedExchangeAdd) +FORWARDED_EXPORT(InterlockedIncrement) +FORWARDED_EXPORT(InvalidateConsoleDIBits) +FORWARDED_EXPORT(IsBadCodePtr) +FORWARDED_EXPORT(IsBadHugeReadPtr) +FORWARDED_EXPORT(IsBadHugeWritePtr) +FORWARDED_EXPORT(IsBadReadPtr) +FORWARDED_EXPORT(IsBadStringPtrA) +FORWARDED_EXPORT(IsBadStringPtrW) +FORWARDED_EXPORT(IsBadWritePtr) +FORWARDED_EXPORT(IsDBCSLeadByte) +FORWARDED_EXPORT(IsDBCSLeadByteEx) +FORWARDED_EXPORT(IsDebuggerPresent) +FORWARDED_EXPORT(IsProcessorFeaturePresent) +FORWARDED_EXPORT(IsValidCodePage) +FORWARDED_EXPORT(IsValidLocale) +FORWARDED_EXPORT(LCMapStringA) +FORWARDED_EXPORT(LCMapStringW) +FORWARDED_EXPORT(LeaveCriticalSection) +FORWARDED_EXPORT(LoadLibraryA) +FORWARDED_EXPORT(LoadLibraryExA) +FORWARDED_EXPORT(LoadLibraryExW) +FORWARDED_EXPORT(LoadLibraryW) +FORWARDED_EXPORT(LoadModule) +FORWARDED_EXPORT(LoadResource) +FORWARDED_EXPORT(LocalAlloc) +FORWARDED_EXPORT(LocalCompact) +FORWARDED_EXPORT(LocalFileTimeToFileTime) +FORWARDED_EXPORT(LocalFlags) +FORWARDED_EXPORT(LocalFree) +FORWARDED_EXPORT(LocalHandle) +FORWARDED_EXPORT(LocalLock) +FORWARDED_EXPORT(LocalReAlloc) +FORWARDED_EXPORT(LocalShrink) +FORWARDED_EXPORT(LocalSize) +FORWARDED_EXPORT(LocalUnlock) +FORWARDED_EXPORT(LockFile) +FORWARDED_EXPORT(LockFileEx) +FORWARDED_EXPORT(LockResource) +FORWARDED_EXPORT(MapViewOfFile) +FORWARDED_EXPORT(MapViewOfFileEx) +FORWARDED_EXPORT(MoveFileA) +FORWARDED_EXPORT(MoveFileExA) +FORWARDED_EXPORT(MoveFileExW) +FORWARDED_EXPORT(MoveFileW) +FORWARDED_EXPORT(MulDiv) +FORWARDED_EXPORT(MultiByteToWideChar) +FORWARDED_EXPORT(OpenConsoleW) +FORWARDED_EXPORT(OpenEventA) +FORWARDED_EXPORT(OpenEventW) +FORWARDED_EXPORT(OpenFile) +FORWARDED_EXPORT(OpenFileMappingA) +FORWARDED_EXPORT(OpenFileMappingW) +FORWARDED_EXPORT(OpenMutexA) +FORWARDED_EXPORT(OpenMutexW) +FORWARDED_EXPORT(OpenProcess) +FORWARDED_EXPORT(OpenProfileUserMapping) +FORWARDED_EXPORT(OpenSemaphoreA) +FORWARDED_EXPORT(OpenSemaphoreW) +FORWARDED_EXPORT(OpenWaitableTimerA) +FORWARDED_EXPORT(OpenWaitableTimerW) +FORWARDED_EXPORT(OutputDebugStringA) +FORWARDED_EXPORT(OutputDebugStringW) +FORWARDED_EXPORT(PeekConsoleInputA) +FORWARDED_EXPORT(PeekConsoleInputW) +FORWARDED_EXPORT(PeekNamedPipe) +FORWARDED_EXPORT(PostQueuedCompletionStatus) +FORWARDED_EXPORT(PrepareTape) +FORWARDED_EXPORT(PulseEvent) +FORWARDED_EXPORT(PurgeComm) +FORWARDED_EXPORT(QueryDosDeviceA) +FORWARDED_EXPORT(QueryDosDeviceW) +FORWARDED_EXPORT(QueryPerformanceCounter) +FORWARDED_EXPORT(QueryPerformanceFrequency) +FORWARDED_EXPORT(QueryWin31IniFilesMappedToRegistry) +FORWARDED_EXPORT(QueueUserAPC) +FORWARDED_EXPORT(RaiseException) +FORWARDED_EXPORT(ReadConsoleA) +FORWARDED_EXPORT(ReadConsoleInputA) +FORWARDED_EXPORT(ReadConsoleInputExA) +FORWARDED_EXPORT(ReadConsoleInputExW) +FORWARDED_EXPORT(ReadConsoleInputW) +FORWARDED_EXPORT(ReadConsoleOutputA) +FORWARDED_EXPORT(ReadConsoleOutputAttribute) +FORWARDED_EXPORT(ReadConsoleOutputCharacterA) +FORWARDED_EXPORT(ReadConsoleOutputCharacterW) +FORWARDED_EXPORT(ReadConsoleOutputW) +FORWARDED_EXPORT(ReadConsoleW) +FORWARDED_EXPORT(ReadDirectoryChangesW) +FORWARDED_EXPORT(ReadFile) +FORWARDED_EXPORT(ReadFileEx) +FORWARDED_EXPORT(ReadFileScatter) +FORWARDED_EXPORT(ReadProcessMemory) +FORWARDED_EXPORT(RegisterConsoleVDM) +FORWARDED_EXPORT(RegisterWaitForInputIdle) +FORWARDED_EXPORT(RegisterWowBaseHandlers) +FORWARDED_EXPORT(RegisterWowExec) +FORWARDED_EXPORT(ReleaseMutex) +FORWARDED_EXPORT(ReleaseSemaphore) +FORWARDED_EXPORT(RemoveDirectoryA) +FORWARDED_EXPORT(RemoveDirectoryW) +FORWARDED_EXPORT(ResetEvent) +FORWARDED_EXPORT(ResumeThread) +FORWARDED_EXPORT(RtlFillMemory) +FORWARDED_EXPORT(RtlMoveMemory) +FORWARDED_EXPORT(RtlUnwind) +FORWARDED_EXPORT(RtlZeroMemory) +FORWARDED_EXPORT(ScrollConsoleScreenBufferA) +FORWARDED_EXPORT(ScrollConsoleScreenBufferW) +FORWARDED_EXPORT(SearchPathA) +FORWARDED_EXPORT(SearchPathW) +FORWARDED_EXPORT(SetCommBreak) +FORWARDED_EXPORT(SetCommConfig) +FORWARDED_EXPORT(SetCommMask) +FORWARDED_EXPORT(SetCommState) +FORWARDED_EXPORT(SetCommTimeouts) +FORWARDED_EXPORT(SetComputerNameA) +FORWARDED_EXPORT(SetComputerNameW) +FORWARDED_EXPORT(SetConsoleActiveScreenBuffer) +FORWARDED_EXPORT(SetConsoleCP) +FORWARDED_EXPORT(SetConsoleCommandHistoryMode) +FORWARDED_EXPORT(SetConsoleCtrlHandler) +FORWARDED_EXPORT(SetConsoleCursor) +FORWARDED_EXPORT(SetConsoleCursorInfo) +FORWARDED_EXPORT(SetConsoleCursorPosition) +FORWARDED_EXPORT(SetConsoleDisplayMode) +FORWARDED_EXPORT(SetConsoleFont) +FORWARDED_EXPORT(SetConsoleHardwareState) +FORWARDED_EXPORT(SetConsoleIcon) +FORWARDED_EXPORT(SetConsoleInputExeNameA) +FORWARDED_EXPORT(SetConsoleInputExeNameW) +FORWARDED_EXPORT(SetConsoleKeyShortcuts) +FORWARDED_EXPORT(SetConsoleMaximumWindowSize) +FORWARDED_EXPORT(SetConsoleMenuClose) +FORWARDED_EXPORT(SetConsoleMode) +FORWARDED_EXPORT(SetConsoleNumberOfCommandsA) +FORWARDED_EXPORT(SetConsoleNumberOfCommandsW) +FORWARDED_EXPORT(SetConsoleOutputCP) +FORWARDED_EXPORT(SetConsolePalette) +FORWARDED_EXPORT(SetConsoleScreenBufferSize) +FORWARDED_EXPORT(SetConsoleTextAttribute) +FORWARDED_EXPORT(SetConsoleTitleA) +FORWARDED_EXPORT(SetConsoleTitleW) +FORWARDED_EXPORT(SetConsoleWindowInfo) +FORWARDED_EXPORT(SetCriticalSectionSpinCount) +FORWARDED_EXPORT(SetCurrentDirectoryA) +FORWARDED_EXPORT(SetCurrentDirectoryW) +FORWARDED_EXPORT(SetDefaultCommConfigA) +FORWARDED_EXPORT(SetDefaultCommConfigW) +FORWARDED_EXPORT(SetEndOfFile) +FORWARDED_EXPORT(SetEnvironmentVariableA) +FORWARDED_EXPORT(SetEnvironmentVariableW) +FORWARDED_EXPORT(SetErrorMode) +FORWARDED_EXPORT(SetEvent) +FORWARDED_EXPORT(SetFileApisToANSI) +FORWARDED_EXPORT(SetFileApisToOEM) +FORWARDED_EXPORT(SetFileAttributesA) +FORWARDED_EXPORT(SetFileAttributesW) +FORWARDED_EXPORT(SetFilePointer) +FORWARDED_EXPORT(SetFileTime) +FORWARDED_EXPORT(SetHandleCount) +FORWARDED_EXPORT(SetHandleInformation) +FORWARDED_EXPORT(SetLastConsoleEventActive) +FORWARDED_EXPORT(SetLastError) +FORWARDED_EXPORT(SetLocalTime) +FORWARDED_EXPORT(SetLocaleInfoA) +FORWARDED_EXPORT(SetLocaleInfoW) +FORWARDED_EXPORT(SetMailslotInfo) +FORWARDED_EXPORT(SetNamedPipeHandleState) +FORWARDED_EXPORT(SetPriorityClass) +FORWARDED_EXPORT(SetProcessAffinityMask) +FORWARDED_EXPORT(SetProcessPriorityBoost) +FORWARDED_EXPORT(SetProcessShutdownParameters) +FORWARDED_EXPORT(SetProcessWorkingSetSize) +FORWARDED_EXPORT(SetStdHandle) +FORWARDED_EXPORT(SetSystemPowerState) +FORWARDED_EXPORT(SetSystemTime) +FORWARDED_EXPORT(SetSystemTimeAdjustment) +FORWARDED_EXPORT(SetTapeParameters) +FORWARDED_EXPORT(SetTapePosition) +FORWARDED_EXPORT(SetThreadAffinityMask) +FORWARDED_EXPORT(SetThreadContext) +FORWARDED_EXPORT(SetThreadIdealProcessor) +FORWARDED_EXPORT(SetThreadLocale) +FORWARDED_EXPORT(SetThreadPriority) +FORWARDED_EXPORT(SetThreadPriorityBoost) +FORWARDED_EXPORT(SetTimeZoneInformation) +FORWARDED_EXPORT(SetUnhandledExceptionFilter) +FORWARDED_EXPORT(SetVDMCurrentDirectories) +FORWARDED_EXPORT(SetVolumeLabelA) +FORWARDED_EXPORT(SetVolumeLabelW) +FORWARDED_EXPORT(SetWaitableTimer) +FORWARDED_EXPORT(SetupComm) +FORWARDED_EXPORT(ShowConsoleCursor) +FORWARDED_EXPORT(SignalObjectAndWait) +FORWARDED_EXPORT(SizeofResource) +FORWARDED_EXPORT(Sleep) +FORWARDED_EXPORT(SleepEx) +FORWARDED_EXPORT(SuspendThread) +FORWARDED_EXPORT(SwitchToFiber) +FORWARDED_EXPORT(SwitchToThread) +FORWARDED_EXPORT(SystemTimeToFileTime) +FORWARDED_EXPORT(SystemTimeToTzSpecificLocalTime) +FORWARDED_EXPORT(TerminateProcess) +FORWARDED_EXPORT(TerminateThread) +FORWARDED_EXPORT(TlsAlloc) +FORWARDED_EXPORT(TlsFree) +FORWARDED_EXPORT(TlsGetValue) +FORWARDED_EXPORT(TlsSetValue) +FORWARDED_EXPORT(TransactNamedPipe) +FORWARDED_EXPORT(TransmitCommChar) +FORWARDED_EXPORT(TrimVirtualBuffer) +FORWARDED_EXPORT(TryEnterCriticalSection) +FORWARDED_EXPORT(UnhandledExceptionFilter) +FORWARDED_EXPORT(UnlockFile) +FORWARDED_EXPORT(UnlockFileEx) +FORWARDED_EXPORT(UnmapViewOfFile) +FORWARDED_EXPORT(UpdateResourceA) +FORWARDED_EXPORT(UpdateResourceW) +FORWARDED_EXPORT(VDMConsoleOperation) +FORWARDED_EXPORT(VDMOperationStarted) +FORWARDED_EXPORT(VerLanguageNameA) +FORWARDED_EXPORT(VerLanguageNameW) +FORWARDED_EXPORT(VerifyConsoleIoHandle) +FORWARDED_EXPORT(VerifyVersionInfoA) +FORWARDED_EXPORT(VerifyVersionInfoW) +FORWARDED_EXPORT(VirtualAlloc) +FORWARDED_EXPORT(VirtualAllocEx) +FORWARDED_EXPORT(VirtualBufferExceptionHandler) +FORWARDED_EXPORT(VirtualFree) +FORWARDED_EXPORT(VirtualFreeEx) +FORWARDED_EXPORT(VirtualLock) +FORWARDED_EXPORT(VirtualProtect) +FORWARDED_EXPORT(VirtualProtectEx) +FORWARDED_EXPORT(VirtualQuery) +FORWARDED_EXPORT(VirtualQueryEx) +FORWARDED_EXPORT(VirtualUnlock) +FORWARDED_EXPORT(WaitCommEvent) +FORWARDED_EXPORT(WaitForDebugEvent) +FORWARDED_EXPORT(WaitForMultipleObjects) +FORWARDED_EXPORT(WaitForMultipleObjectsEx) +FORWARDED_EXPORT(WaitForSingleObject) +FORWARDED_EXPORT(WaitForSingleObjectEx) +FORWARDED_EXPORT(WaitNamedPipeA) +FORWARDED_EXPORT(WaitNamedPipeW) +FORWARDED_EXPORT(WideCharToMultiByte) +FORWARDED_EXPORT(WinExec) +FORWARDED_EXPORT(WriteConsoleA) +FORWARDED_EXPORT(WriteConsoleInputA) +FORWARDED_EXPORT(WriteConsoleInputVDMA) +FORWARDED_EXPORT(WriteConsoleInputVDMW) +FORWARDED_EXPORT(WriteConsoleInputW) +FORWARDED_EXPORT(WriteConsoleOutputA) +FORWARDED_EXPORT(WriteConsoleOutputAttribute) +FORWARDED_EXPORT(WriteConsoleOutputCharacterA) +FORWARDED_EXPORT(WriteConsoleOutputCharacterW) +FORWARDED_EXPORT(WriteConsoleOutputW) +FORWARDED_EXPORT(WriteConsoleW) +FORWARDED_EXPORT(WriteFile) +FORWARDED_EXPORT(WriteFileEx) +FORWARDED_EXPORT(WriteFileGather) +FORWARDED_EXPORT(WritePrivateProfileSectionA) +FORWARDED_EXPORT(WritePrivateProfileSectionW) +FORWARDED_EXPORT(WritePrivateProfileStringA) +FORWARDED_EXPORT(WritePrivateProfileStringW) +FORWARDED_EXPORT(WritePrivateProfileStructA) +FORWARDED_EXPORT(WritePrivateProfileStructW) +FORWARDED_EXPORT(WriteProcessMemory) +FORWARDED_EXPORT(WriteProfileSectionA) +FORWARDED_EXPORT(WriteProfileSectionW) +FORWARDED_EXPORT(WriteProfileStringA) +FORWARDED_EXPORT(WriteProfileStringW) +FORWARDED_EXPORT(WriteTapemark) +FORWARDED_EXPORT(_hread) +FORWARDED_EXPORT(_hwrite) +FORWARDED_EXPORT(_lclose) +FORWARDED_EXPORT(_lcreat) +FORWARDED_EXPORT(_llseek) +FORWARDED_EXPORT(_lopen) +FORWARDED_EXPORT(_lread) +FORWARDED_EXPORT(_lwrite) +FORWARDED_EXPORT(lstrcat) +FORWARDED_EXPORT(lstrcatA) +FORWARDED_EXPORT(lstrcatW) +FORWARDED_EXPORT(lstrcmp) +FORWARDED_EXPORT(lstrcmpA) +FORWARDED_EXPORT(lstrcmpW) +FORWARDED_EXPORT(lstrcmpi) +FORWARDED_EXPORT(lstrcmpiA) +FORWARDED_EXPORT(lstrcmpiW) +FORWARDED_EXPORT(lstrcpy) +FORWARDED_EXPORT(lstrcpyA) +FORWARDED_EXPORT(lstrcpyW) +FORWARDED_EXPORT(lstrcpyn) +FORWARDED_EXPORT(lstrcpynA) +FORWARDED_EXPORT(lstrcpynW) +FORWARDED_EXPORT(lstrlen) +FORWARDED_EXPORT(lstrlenA) +FORWARDED_EXPORT(lstrlenW) + +#endif //BCOMPAT_KERNEL32_H \ No newline at end of file diff --git a/user32.c b/user32.c index 227c22a..a51127c 100644 --- a/user32.c +++ b/user32.c @@ -1,17 +1,11 @@ -#define WIN32_LEAN_AND_MEAN -#define NOUSER -#include -#include -#include +#include "common.h" #include "user32.h" -#define DLL_EXPORT __declspec(dllexport) - typedef int (WINAPI *MessageBoxAPtr)(HWND hwnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType); typedef int (WINAPI *MessageBoxWPtr)(HWND hwnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType); DLL_EXPORT WINAPI int MessageBoxA(HWND hwnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType) { - MessageBoxAPtr proc = (MessageBoxAPtr) GetProcAddress(GetModuleHandle("_user32.dll"), "MessageBoxA"); + MessageBoxAPtr proc = (MessageBoxAPtr) getFunction("_user32.dll", "MessageBoxA"); LPSTR buffer = malloc(strlen(lpText) + 1 + 26); strcpy(buffer, "MessageBoxA gruesst Sie!\n"), strcat(buffer, lpText); @@ -21,7 +15,7 @@ DLL_EXPORT WINAPI int MessageBoxA(HWND hwnd, LPCSTR lpText, LPCSTR lpCaption, UI } DLL_EXPORT WINAPI int MessageBoxW(HWND hwnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType) { - MessageBoxWPtr proc = (MessageBoxWPtr) GetProcAddress(GetModuleHandle("_user32.dll"), "MessageBoxW"); + MessageBoxWPtr proc = (MessageBoxWPtr) getFunction("_user32.dll", "MessageBoxW"); LPWSTR buffer = malloc(wcslen(lpText) + 1 + 26); wcscpy(buffer, L"MessageBoxW gruesst Sie!\n"); wcscat(buffer, lpText); diff --git a/user32.h b/user32.h index b294a85..1b4cffc 100644 --- a/user32.h +++ b/user32.h @@ -12,6 +12,7 @@ FORWARDED_EXPORT(ArrangeIconicWindows) FORWARDED_EXPORT(AttachThreadInput) FORWARDED_EXPORT(BeginDeferWindowPos) FORWARDED_EXPORT(BeginPaint) +FORWARDED_EXPORT(BlockInput) FORWARDED_EXPORT(BringWindowToTop) FORWARDED_EXPORT(BroadcastSystemMessage) FORWARDED_EXPORT(BroadcastSystemMessageA) @@ -215,7 +216,12 @@ FORWARDED_EXPORT(FlashWindow) FORWARDED_EXPORT(FrameRect) FORWARDED_EXPORT(FreeDDElParam) FORWARDED_EXPORT(FullScreenControl) +FORWARDED_EXPORT(GetAccCursorInfo) FORWARDED_EXPORT(GetActiveWindow) +FORWARDED_EXPORT(GetAltTabInfo) +FORWARDED_EXPORT(GetAltTabInfoA) +FORWARDED_EXPORT(GetAltTabInfoW) +FORWARDED_EXPORT(GetAncestor) FORWARDED_EXPORT(GetAppCompatFlags) FORWARDED_EXPORT(GetAsyncKeyState) FORWARDED_EXPORT(GetCapture) @@ -237,6 +243,7 @@ FORWARDED_EXPORT(GetClipboardFormatNameA) FORWARDED_EXPORT(GetClipboardFormatNameW) FORWARDED_EXPORT(GetClipboardOwner) FORWARDED_EXPORT(GetClipboardViewer) +FORWARDED_EXPORT(GetComboBoxInfo) FORWARDED_EXPORT(GetCursor) FORWARDED_EXPORT(GetCursorInfo) FORWARDED_EXPORT(GetCursorPos) @@ -252,6 +259,7 @@ FORWARDED_EXPORT(GetDlgItemTextW) FORWARDED_EXPORT(GetDoubleClickTime) FORWARDED_EXPORT(GetFocus) FORWARDED_EXPORT(GetForegroundWindow) +FORWARDED_EXPORT(GetGUIThreadInfo) FORWARDED_EXPORT(GetIconInfo) FORWARDED_EXPORT(GetInputDesktop) FORWARDED_EXPORT(GetInputState) @@ -267,7 +275,9 @@ FORWARDED_EXPORT(GetKeyboardLayoutNameW) FORWARDED_EXPORT(GetKeyboardState) FORWARDED_EXPORT(GetKeyboardType) FORWARDED_EXPORT(GetLastActivePopup) +FORWARDED_EXPORT(GetListBoxInfo) FORWARDED_EXPORT(GetMenu) +FORWARDED_EXPORT(GetMenuBarInfo) FORWARDED_EXPORT(GetMenuCheckMarkDimensions) FORWARDED_EXPORT(GetMenuContextHelpId) FORWARDED_EXPORT(GetMenuDefaultItem) @@ -294,6 +304,7 @@ FORWARDED_EXPORT(GetProgmanWindow) FORWARDED_EXPORT(GetPropA) FORWARDED_EXPORT(GetPropW) FORWARDED_EXPORT(GetQueueStatus) +FORWARDED_EXPORT(GetScrollBarInfo) FORWARDED_EXPORT(GetScrollInfo) FORWARDED_EXPORT(GetScrollPos) FORWARDED_EXPORT(GetScrollRange) @@ -307,6 +318,7 @@ FORWARDED_EXPORT(GetTabbedTextExtentA) FORWARDED_EXPORT(GetTabbedTextExtentW) FORWARDED_EXPORT(GetTaskmanWindow) FORWARDED_EXPORT(GetThreadDesktop) +FORWARDED_EXPORT(GetTitleBarInfo) FORWARDED_EXPORT(GetTopWindow) FORWARDED_EXPORT(GetUpdateRect) FORWARDED_EXPORT(GetUpdateRgn) @@ -316,8 +328,12 @@ FORWARDED_EXPORT(GetUserObjectSecurity) FORWARDED_EXPORT(GetWindow) FORWARDED_EXPORT(GetWindowContextHelpId) FORWARDED_EXPORT(GetWindowDC) +FORWARDED_EXPORT(GetWindowInfo) FORWARDED_EXPORT(GetWindowLongA) FORWARDED_EXPORT(GetWindowLongW) +FORWARDED_EXPORT(GetWindowModuleFileName) +FORWARDED_EXPORT(GetWindowModuleFileNameA) +FORWARDED_EXPORT(GetWindowModuleFileNameW) FORWARDED_EXPORT(GetWindowPlacement) FORWARDED_EXPORT(GetWindowRect) FORWARDED_EXPORT(GetWindowRgn) @@ -418,6 +434,7 @@ FORWARDED_EXPORT(ModifyMenuW) FORWARDED_EXPORT(MoveWindow) FORWARDED_EXPORT(MsgWaitForMultipleObjects) FORWARDED_EXPORT(MsgWaitForMultipleObjectsEx) +FORWARDED_EXPORT(NotifyWinEvent) FORWARDED_EXPORT(OemKeyScan) FORWARDED_EXPORT(OemToCharA) FORWARDED_EXPORT(OemToCharBuffA) @@ -447,6 +464,10 @@ FORWARDED_EXPORT(PrivateExtractIconsW) FORWARDED_EXPORT(PrivateKDBreakPoint) FORWARDED_EXPORT(PtInRect) FORWARDED_EXPORT(QuerySendMessage) +FORWARDED_EXPORT(RealChildWindowFromPoint) +FORWARDED_EXPORT(RealGetWindowClass) +FORWARDED_EXPORT(RealGetWindowClassA) +FORWARDED_EXPORT(RealGetWindowClassW) FORWARDED_EXPORT(RedrawWindow) FORWARDED_EXPORT(RegisterClassA) FORWARDED_EXPORT(RegisterClassExA) @@ -476,6 +497,7 @@ FORWARDED_EXPORT(ScrollWindow) FORWARDED_EXPORT(ScrollWindowEx) FORWARDED_EXPORT(SendDlgItemMessageA) FORWARDED_EXPORT(SendDlgItemMessageW) +FORWARDED_EXPORT(SendInput) FORWARDED_EXPORT(SendMessageA) FORWARDED_EXPORT(SendMessageCallbackA) FORWARDED_EXPORT(SendMessageCallbackW) @@ -540,6 +562,7 @@ FORWARDED_EXPORT(SetTimer) FORWARDED_EXPORT(SetUserObjectInformationA) FORWARDED_EXPORT(SetUserObjectInformationW) FORWARDED_EXPORT(SetUserObjectSecurity) +FORWARDED_EXPORT(SetWinEventHook) FORWARDED_EXPORT(SetWindowContextHelpId) FORWARDED_EXPORT(SetWindowLongA) FORWARDED_EXPORT(SetWindowLongW) @@ -585,6 +608,7 @@ FORWARDED_EXPORT(TranslateAcceleratorW) FORWARDED_EXPORT(TranslateMDISysAccel) FORWARDED_EXPORT(TranslateMessage) FORWARDED_EXPORT(TranslateMessageEx) +FORWARDED_EXPORT(UnhookWinEvent) FORWARDED_EXPORT(UnhookWindowsHook) FORWARDED_EXPORT(UnhookWindowsHookEx) FORWARDED_EXPORT(UnionRect)