mirror of
https://github.com/UzixLS/KernelEx.git
synced 2025-07-19 07:21:20 +03:00
185 lines
8.1 KiB
C
Executable File
185 lines
8.1 KiB
C
Executable File
/*
|
|
* KernelEx
|
|
* Copyright (C) 2008, Xeno86
|
|
*
|
|
* This file is part of KernelEx source code.
|
|
*
|
|
* KernelEx is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published
|
|
* by the Free Software Foundation; version 2 of the License.
|
|
*
|
|
* KernelEx is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with GNU Make; see the file COPYING. If not, write to
|
|
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*
|
|
*/
|
|
|
|
#include "common.h"
|
|
#include "kexcoresdk.h"
|
|
#include "_user32_apilist.h"
|
|
#include "thuni_layer.h"
|
|
|
|
IsHungThread_t IsHungThread_pfn;
|
|
DrawCaptionTempA_t DrawCaptionTempA_pfn;
|
|
|
|
BOOL SetParent_fix_init();
|
|
|
|
BOOL init_user32()
|
|
{
|
|
HMODULE hUser32 = GetModuleHandle("USER32.DLL");
|
|
|
|
IsHungThread_pfn = (IsHungThread_t)kexGetProcAddress(hUser32, "IsHungThread");
|
|
DrawCaptionTempA_pfn = (DrawCaptionTempA_t)kexGetProcAddress(hUser32, "DrawCaptionTempA");
|
|
GetMouseMovePoints_pfn = (GetMouseMovePoints_t)kexGetProcAddress(hUser32, "GetMouseMovePoints");
|
|
|
|
return IsHungThread_pfn && DrawCaptionTempA_pfn && GetMouseMovePoints_pfn
|
|
&& InitUniThunkLayer();
|
|
}
|
|
|
|
/* APIs which don't require Unicode implementations in thuni model
|
|
* MAKE_EXPORT CallMsgFilterA=CallMsgFilterW
|
|
* MAKE_EXPORT CopyAcceleratorTableA=CopyAcceleratorTableW
|
|
* MAKE_EXPORT CreateAcceleratorTableA=CreateAcceleratorTableW
|
|
* MAKE_EXPORT DispatchMessageA=DispatchMessageW
|
|
* MAKE_EXPORT IsDialogMessageA=IsDialogMessageW
|
|
* MAKE_EXPORT GetAltTabInfo=GetAltTabInfoA
|
|
* MAKE_EXPORT RealGetWindowClass=RealGetWindowClassA
|
|
* MAKE_EXPORT SetWindowsHookExA=SetWindowsHookExW
|
|
* MAKE_EXPORT SetWindowsHookA=SetWindowsHookW
|
|
* MAKE_EXPORT TranslateAcceleratorA=TranslateAcceleratorW
|
|
*/
|
|
|
|
/* Shell hook APIs. Can be implemented with shell,
|
|
* but would be too sensitive for cruel world.
|
|
* MAKE_EXPORT IsWindow=DeregisterShellHookWindow
|
|
* MAKE_EXPORT IsWindow=RegisterShellHookWindow
|
|
*/
|
|
|
|
static const apilib_named_api user32_named_apis[] =
|
|
{
|
|
/*** AUTOGENERATED APILIST NAMED EXPORTS BEGIN ***/
|
|
DECL_API("AllowSetForegroundWindow", AllowSetForegroundWindow_98),
|
|
DECL_API("AppendMenuW", AppendMenuW_new),
|
|
DECL_API("CallMsgFilterW", CallMsgFilterA),
|
|
DECL_API("CallWindowProcA", CallWindowProcA_fix),
|
|
DECL_API("CallWindowProcW", CallWindowProcW_new),
|
|
DECL_API("ChangeMenuW", ChangeMenuW_new),
|
|
DECL_API("CharLowerBuffW", CharLowerBuffW_new),
|
|
DECL_API("CharLowerW", CharLowerW_new),
|
|
DECL_API("CharNextExW", CharNextExW_new),
|
|
DECL_API("CharNextW", CharNextW_new),
|
|
DECL_API("CharPrevExW", CharPrevExW_new),
|
|
DECL_API("CharPrevW", CharPrevW_new),
|
|
DECL_API("CharToOemBuffW", CharToOemBuffW_new),
|
|
DECL_API("CharToOemW", CharToOemW_new),
|
|
DECL_API("CharUpperBuffW", CharUpperBuffW_new),
|
|
DECL_API("CharUpperW", CharUpperW_new),
|
|
DECL_API("CopyAcceleratorTableW", CopyAcceleratorTableA),
|
|
DECL_API("CreateAcceleratorTableW", CreateAcceleratorTableA),
|
|
DECL_API("CreateDialogIndirectParamW", CreateDialogIndirectParamW_NEW),
|
|
DECL_API("CreateDialogParamW", CreateDialogParamW_NEW),
|
|
DECL_API("CreateMDIWindowW", CreateMDIWindowW_NEW),
|
|
DECL_API("CreateWindowExW", CreateWindowExW_NEW),
|
|
DECL_API("CreateWindowW", CreateWindowW_NEW),
|
|
DECL_API("DefDlgProcW", DefDlgProcW_NEW),
|
|
DECL_API("DefFrameProcW", DefFrameProcW_NEW),
|
|
DECL_API("DefMDIChildProcW", DefMDIChildProcW_NEW),
|
|
DECL_API("DefRawInputProc", DefRawInputProc_new),
|
|
DECL_API("DefWindowProcW", DefWindowProcW_NEW),
|
|
DECL_API("DeregisterShellHookWindow", IsWindow),
|
|
DECL_API("DialogBoxIndirectParamW", DialogBoxIndirectParamW_NEW),
|
|
DECL_API("DialogBoxParamW", DialogBoxParamW_NEW),
|
|
DECL_API("DisableProcessWindowsGhosting", DisableProcessWindowsGhosting_new),
|
|
DECL_API("DispatchMessageW", DispatchMessageA),
|
|
DECL_API("DrawCaptionTempW", DrawCaptionTempW_new),
|
|
DECL_API("EnableWindow", EnableWindow_new),
|
|
DECL_API("GetAltTabInfoA", GetAltTabInfo),
|
|
DECL_API("GetAncestor", GetAncestor_fix),
|
|
DECL_API("GetClassInfoExW", GetClassInfoExW_NEW),
|
|
DECL_API("GetClassInfoW", GetClassInfoW_NEW),
|
|
DECL_API("GetClassLongW", GetClassLongW_NEW),
|
|
DECL_API("GetDlgItemTextW", GetDlgItemTextW_NEW),
|
|
DECL_API("GetLastInputInfo", GetLastInputInfo_NEW),
|
|
DECL_API("GetMessageA", GetMessageA_NEW),
|
|
DECL_API("GetMessageW", GetMessageW_NEW),
|
|
DECL_API("GetMouseMovePointsEx", GetMouseMovePointsEx_98),
|
|
DECL_API("GetNextDlgTabItem", GetNextDlgTabItem_fix),
|
|
DECL_API("GetRawInputBuffer", GetRawInputBuffer_new),
|
|
DECL_API("GetRawInputData", GetRawInputData_new),
|
|
DECL_API("GetRawInputDeviceInfoA", GetRawInputDeviceInfo_new),
|
|
DECL_API("GetRawInputDeviceInfoW", GetRawInputDeviceInfo_new),
|
|
DECL_API("GetRawInputDeviceList", GetRawInputDeviceList_new),
|
|
DECL_API("GetRegisteredRawInputDevices", GetRegisteredRawInputDevices_new),
|
|
DECL_API("GetWindowLongA", GetWindowLongA_NEW),
|
|
DECL_API("GetWindowLongW", GetWindowLongW_NEW),
|
|
DECL_API("GetWindowTextLengthW", GetWindowTextLengthW_NEW),
|
|
DECL_API("GetWindowTextW", GetWindowTextW_NEW),
|
|
DECL_API("InsertMenuW", InsertMenuW_new),
|
|
DECL_API("IsCharAlphaNumericW", IsCharAlphaNumericW_new),
|
|
DECL_API("IsCharAlphaW", IsCharAlphaW_new),
|
|
DECL_API("IsCharLowerW", IsCharLowerW_new),
|
|
DECL_API("IsCharUpperW", IsCharUpperW_new),
|
|
DECL_API("IsDialogMessageW", IsDialogMessageA),
|
|
DECL_API("IsHungAppWindow", IsHungAppWindow_new),
|
|
DECL_API("IsWindowUnicode", IsWindowUnicode_NEW),
|
|
DECL_API("LoadMenuA", LoadMenuA_fix),
|
|
DECL_API("LoadMenuIndirectW", LoadMenuIndirectA),
|
|
DECL_API("LoadMenuW", LoadMenuW_new),
|
|
DECL_API("LoadStringW", LoadStringW_new),
|
|
DECL_API("LockSetForegroundWindow", LockSetForegroundWindow_98),
|
|
DECL_API("LockWorkStation", LockWorkStation_new),
|
|
DECL_API("MapVirtualKeyA", MapVirtualKeyA_new),
|
|
DECL_API("MapVirtualKeyExA", MapVirtualKeyExA_new),
|
|
DECL_API("ModifyMenuW", ModifyMenuW_new),
|
|
DECL_API("OemToCharBuffW", OemToCharBuffW_new),
|
|
DECL_API("OemToCharW", OemToCharW_new),
|
|
DECL_API("PeekMessageA", PeekMessageA_NEW),
|
|
DECL_API("PeekMessageW", PeekMessageW_NEW),
|
|
DECL_API("PostMessageW", PostMessageW_NEW),
|
|
DECL_API("PostThreadMessageW", PostThreadMessageW_NEW),
|
|
DECL_API("PrintWindow", PrintWindow_stub),
|
|
DECL_API("RealGetWindowClassA", RealGetWindowClass),
|
|
DECL_API("RealGetWindowClassW", RealGetWindowClassW_new),
|
|
DECL_API("RegisterClassExW", RegisterClassExW_NEW),
|
|
DECL_API("RegisterClassW", RegisterClassW_NEW),
|
|
DECL_API("RegisterRawInputDevices", RegisterRawInputDevices_new),
|
|
DECL_API("RegisterShellHookWindow", IsWindow),
|
|
DECL_API("SendDlgItemMessageW", SendDlgItemMessageW_NEW),
|
|
DECL_API("SendMessageA", SendMessageA_fix),
|
|
DECL_API("SendMessageCallbackW", SendMessageCallbackW_NEW),
|
|
DECL_API("SendMessageTimeoutW", SendMessageTimeoutW_NEW),
|
|
DECL_API("SendMessageW", SendMessageW_NEW),
|
|
DECL_API("SendNotifyMessageW", SendNotifyMessageW_NEW),
|
|
DECL_API("SetClassLongW", SetClassLongW_NEW),
|
|
DECL_API("SetDlgItemTextW", SetDlgItemTextW_NEW),
|
|
DECL_API("SetLayeredWindowAttributes", SetLayeredWindowAttributes_stub),
|
|
DECL_API("SetParent", SetParent_fix),
|
|
DECL_API("SetWindowLongA", SetWindowLongA_NEW),
|
|
DECL_API("SetWindowLongW", SetWindowLongW_NEW),
|
|
DECL_API("SetWindowTextW", SetWindowTextW_NEW),
|
|
DECL_API("SetWindowsHookExW", SetWindowsHookExA),
|
|
DECL_API("SetWindowsHookW", SetWindowsHookA),
|
|
DECL_API("SystemParametersInfoA", SystemParametersInfoA_fix),
|
|
DECL_API("ToUnicode", ToUnicode_new),
|
|
DECL_API("ToUnicodeEx", ToUnicodeEx_new),
|
|
DECL_API("TranslateAcceleratorW", TranslateAcceleratorA),
|
|
DECL_API("UnregisterClassW", UnregisterClassW_NEW),
|
|
DECL_API("UpdateLayeredWindow", UpdateLayeredWindow_new),
|
|
/*** AUTOGENERATED APILIST NAMED EXPORTS END ***/
|
|
};
|
|
|
|
#if 0
|
|
static const apilib_unnamed_api user32_ordinal_apis[] =
|
|
{
|
|
/*** AUTOGENERATED APILIST ORDINAL EXPORTS BEGIN ***/
|
|
/*** AUTOGENERATED APILIST ORDINAL EXPORTS END ***/
|
|
};
|
|
#endif
|
|
|
|
const apilib_api_table apitable_user32 = DECL_TAB("USER32.DLL", user32_named_apis, 0 /*user32_ordinal_apis*/);
|