Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228/* * PROJECT: ReactOS Kernel * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later) * PURPOSE: Defining kernel-to-user32 callbacks * COPYRIGHT: Copyright 2018 James Tabor <james.tabor@reactos.org> * Copyright 2024 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com> */
#pragma once
#define DEFINE_USER32_CALLBACK(id, value, fn) id,
typedef enum _USER32_CALLBACK{#include "u32cb.h" USER32_CALLBACK_COUNT} USER32_CALLBACK;
#undef DEFINE_USER32_CALLBACK
typedef struct _WINDOWPROC_CALLBACK_ARGUMENTS{ WNDPROC Proc; BOOL IsAnsiProc; HWND Wnd; UINT Msg; WPARAM wParam; LPARAM lParam; INT lParamBufferSize; LRESULT Result; /* char Buffer[]; */} WINDOWPROC_CALLBACK_ARGUMENTS, *PWINDOWPROC_CALLBACK_ARGUMENTS;
typedef struct _SENDASYNCPROC_CALLBACK_ARGUMENTS{ SENDASYNCPROC Callback; HWND Wnd; UINT Msg; ULONG_PTR Context; LRESULT Result;} SENDASYNCPROC_CALLBACK_ARGUMENTS, *PSENDASYNCPROC_CALLBACK_ARGUMENTS;
typedef struct _CALL_BACK_INFO{ SENDASYNCPROC CallBack; ULONG_PTR Context;} CALL_BACK_INFO, * PCALL_BACK_INFO;
typedef struct _HOOKPROC_CALLBACK_ARGUMENTS{ INT HookId; INT Code; WPARAM wParam; LPARAM lParam; HOOKPROC Proc; INT Mod; ULONG_PTR offPfn; BOOLEAN Ansi; LRESULT Result; UINT lParamSize; WCHAR ModuleName[512];} HOOKPROC_CALLBACK_ARGUMENTS, *PHOOKPROC_CALLBACK_ARGUMENTS;
typedef struct _HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS{ CREATESTRUCTW Cs; /* lpszName and lpszClass replaced by offsets */ HWND WndInsertAfter; /* WCHAR szName[] */ /* WCHAR szClass[] */} HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS, *PHOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS;
typedef struct tagCWP_Struct{ HOOKPROC_CALLBACK_ARGUMENTS hpca; CWPSTRUCT cwps; PBYTE Extra[4];} CWP_Struct, *PCWP_Struct;
typedef struct tagCWPR_Struct{ HOOKPROC_CALLBACK_ARGUMENTS hpca; CWPRETSTRUCT cwprs; PBYTE Extra[4];} CWPR_Struct, *PCWPR_Struct;
typedef struct _EVENTPROC_CALLBACK_ARGUMENTS{ HWINEVENTHOOK hook; DWORD event; HWND hwnd; LONG idObject; LONG idChild; DWORD dwEventThread; DWORD dwmsEventTime; WINEVENTPROC Proc; INT_PTR Mod; ULONG_PTR offPfn;} EVENTPROC_CALLBACK_ARGUMENTS, *PEVENTPROC_CALLBACK_ARGUMENTS;
typedef struct _LOADMENU_CALLBACK_ARGUMENTS{ HINSTANCE hModule; LPCWSTR InterSource; WCHAR MenuName[1];} LOADMENU_CALLBACK_ARGUMENTS, *PLOADMENU_CALLBACK_ARGUMENTS;
typedef struct _COPYIMAGE_CALLBACK_ARGUMENTS{ HANDLE hImage; UINT uType; int cxDesired; int cyDesired; UINT fuFlags;} COPYIMAGE_CALLBACK_ARGUMENTS, *PCOPYIMAGE_CALLBACK_ARGUMENTS;
typedef struct _CLIENT_LOAD_LIBRARY_ARGUMENTS{ UNICODE_STRING strLibraryName; UNICODE_STRING strInitFuncName; BOOL Unload; BOOL ApiHook;} CLIENT_LOAD_LIBRARY_ARGUMENTS, *PCLIENT_LOAD_LIBRARY_ARGUMENTS;
typedef struct _GET_CHARSET_INFO{ LCID Locale; CHARSETINFO Cs;} GET_CHARSET_INFO, *PGET_CHARSET_INFO;
typedef struct _SETWNDICONS_CALLBACK_ARGUMENTS{ HICON hIconSample; HICON hIconHand; HICON hIconQuestion; HICON hIconBang; HICON hIconNote; HICON hIconWindows; HICON hIconSmWindows;} SETWNDICONS_CALLBACK_ARGUMENTS, *PSETWNDICONS_CALLBACK_ARGUMENTS;
typedef struct _DDEPOSTGET_CALLBACK_ARGUMENTS{ INT Type; MSG; int size; PVOID pvData; BYTE buffer[1];} DDEPOSTGET_CALLBACK_ARGUMENTS, *PDDEPOSTGET_CALLBACK_ARGUMENTS;
typedef struct _SETOBM_CALLBACK_ARGUMENTS{ struct tagOEMBITMAPINFO oembmi[93]; } SETOBM_CALLBACK_ARGUMENTS, *PSETOBM_CALLBACK_ARGUMENTS;
typedef struct _LPK_CALLBACK_ARGUMENTS{ LPWSTR lpString; HDC hdc; INT x; INT y; UINT flags; RECT rect; UINT count; BOOL bRect;} LPK_CALLBACK_ARGUMENTS, *PLPK_CALLBACK_ARGUMENTS;
typedef struct _IMMPROCESSKEY_CALLBACK_ARGUMENTS{ HWND hWnd; HKL hKL; UINT vKey; LPARAM lParam; DWORD dwHotKeyID;} IMMPROCESSKEY_CALLBACK_ARGUMENTS, *PIMMPROCESSKEY_CALLBACK_ARGUMENTS;
typedef struct _IMMLOADLAYOUT_CALLBACK_ARGUMENTS{ HKL hKL;} IMMLOADLAYOUT_CALLBACK_ARGUMENTS, *PIMMLOADLAYOUT_CALLBACK_ARGUMENTS;
typedef struct _IMMLOADLAYOUT_CALLBACK_OUTPUT{ BOOL ret; IMEINFOEX iiex;} IMMLOADLAYOUT_CALLBACK_OUTPUT, *PIMMLOADLAYOUT_CALLBACK_OUTPUT;
NTSTATUS WINAPIUser32CallCopyImageFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallSetWndIconsFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallWindowProcFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallSendAsyncProcForKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32LoadSysMenuTemplateForKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32SetupDefaultCursors(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallEventProcFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallLoadMenuFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallClientThreadSetupFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallClientLoadLibraryFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallGetCharsetInfo(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32DeliverUserAPC(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallDDEPostFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallDDEGetFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallOBMFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallLPKFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallUMPDFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallImmProcessKeyFromKernel(PVOID Arguments, ULONG ArgumentLength);NTSTATUS WINAPIUser32CallImmLoadLayoutFromKernel(PVOID Arguments, ULONG ArgumentLength);