1 #ifndef __INCLUDE_USER32_CALLBACK_H 2 #define __INCLUDE_USER32_CALLBACK_H 3 4 #define USER32_CALLBACK_WINDOWPROC (0) 5 #define USER32_CALLBACK_SENDASYNCPROC (1) 6 #define USER32_CALLBACK_LOADSYSMENUTEMPLATE (2) 7 #define USER32_CALLBACK_LOADDEFAULTCURSORS (3) 8 #define USER32_CALLBACK_HOOKPROC (4) 9 #define USER32_CALLBACK_EVENTPROC (5) 10 #define USER32_CALLBACK_LOADMENU (6) 11 #define USER32_CALLBACK_CLIENTTHREADSTARTUP (7) 12 #define USER32_CALLBACK_CLIENTLOADLIBRARY (8) 13 #define USER32_CALLBACK_GETCHARSETINFO (9) 14 #define USER32_CALLBACK_COPYIMAGE (10) 15 #define USER32_CALLBACK_SETWNDICONS (11) 16 #define USER32_CALLBACK_DELIVERUSERAPC (12) 17 #define USER32_CALLBACK_DDEPOST (13) 18 #define USER32_CALLBACK_DDEGET (14) 19 #define USER32_CALLBACK_SETOBM (15) 20 #define USER32_CALLBACK_LPK (16) 21 #define USER32_CALLBACK_UMPD (17) 22 #define USER32_CALLBACK_IMMPROCESSKEY (18) 23 #define USER32_CALLBACK_MAXIMUM (18) 24 25 typedef struct _WINDOWPROC_CALLBACK_ARGUMENTS 26 { 27 WNDPROC Proc; 28 BOOL IsAnsiProc; 29 HWND Wnd; 30 UINT Msg; 31 WPARAM wParam; 32 LPARAM lParam; 33 INT lParamBufferSize; 34 LRESULT Result; 35 /* char Buffer[]; */ 36 } WINDOWPROC_CALLBACK_ARGUMENTS, *PWINDOWPROC_CALLBACK_ARGUMENTS; 37 38 typedef struct _SENDASYNCPROC_CALLBACK_ARGUMENTS 39 { 40 SENDASYNCPROC Callback; 41 HWND Wnd; 42 UINT Msg; 43 ULONG_PTR Context; 44 LRESULT Result; 45 } SENDASYNCPROC_CALLBACK_ARGUMENTS, *PSENDASYNCPROC_CALLBACK_ARGUMENTS; 46 47 typedef struct _CALL_BACK_INFO 48 { 49 SENDASYNCPROC CallBack; 50 ULONG_PTR Context; 51 } CALL_BACK_INFO, * PCALL_BACK_INFO; 52 53 54 typedef struct _HOOKPROC_CALLBACK_ARGUMENTS 55 { 56 INT HookId; 57 INT Code; 58 WPARAM wParam; 59 LPARAM lParam; 60 HOOKPROC Proc; 61 INT Mod; 62 ULONG_PTR offPfn; 63 BOOLEAN Ansi; 64 LRESULT Result; 65 UINT lParamSize; 66 WCHAR ModuleName[512]; 67 } HOOKPROC_CALLBACK_ARGUMENTS, *PHOOKPROC_CALLBACK_ARGUMENTS; 68 69 typedef struct _HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS 70 { 71 CREATESTRUCTW Cs; /* lpszName and lpszClass replaced by offsets */ 72 HWND WndInsertAfter; 73 /* WCHAR szName[] */ 74 /* WCHAR szClass[] */ 75 } HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS, *PHOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS; 76 77 typedef struct tagCWP_Struct 78 { 79 HOOKPROC_CALLBACK_ARGUMENTS hpca; 80 CWPSTRUCT cwps; 81 PBYTE Extra[4]; 82 } CWP_Struct, *PCWP_Struct; 83 84 typedef struct tagCWPR_Struct 85 { 86 HOOKPROC_CALLBACK_ARGUMENTS hpca; 87 CWPRETSTRUCT cwprs; 88 PBYTE Extra[4]; 89 } CWPR_Struct, *PCWPR_Struct; 90 91 typedef struct _EVENTPROC_CALLBACK_ARGUMENTS 92 { 93 HWINEVENTHOOK hook; 94 DWORD event; 95 HWND hwnd; 96 LONG idObject; 97 LONG idChild; 98 DWORD dwEventThread; 99 DWORD dwmsEventTime; 100 WINEVENTPROC Proc; 101 INT_PTR Mod; 102 ULONG_PTR offPfn; 103 } EVENTPROC_CALLBACK_ARGUMENTS, *PEVENTPROC_CALLBACK_ARGUMENTS; 104 105 typedef struct _LOADMENU_CALLBACK_ARGUMENTS 106 { 107 HINSTANCE hModule; 108 LPCWSTR InterSource; 109 WCHAR MenuName[1]; 110 } LOADMENU_CALLBACK_ARGUMENTS, *PLOADMENU_CALLBACK_ARGUMENTS; 111 112 typedef struct _COPYIMAGE_CALLBACK_ARGUMENTS 113 { 114 HANDLE hImage; 115 UINT uType; 116 int cxDesired; 117 int cyDesired; 118 UINT fuFlags; 119 } COPYIMAGE_CALLBACK_ARGUMENTS, *PCOPYIMAGE_CALLBACK_ARGUMENTS; 120 121 typedef struct _CLIENT_LOAD_LIBRARY_ARGUMENTS 122 { 123 UNICODE_STRING strLibraryName; 124 UNICODE_STRING strInitFuncName; 125 BOOL Unload; 126 BOOL ApiHook; 127 } CLIENT_LOAD_LIBRARY_ARGUMENTS, *PCLIENT_LOAD_LIBRARY_ARGUMENTS; 128 129 typedef struct _GET_CHARSET_INFO 130 { 131 LCID Locale; 132 CHARSETINFO Cs; 133 } GET_CHARSET_INFO, *PGET_CHARSET_INFO; 134 135 typedef struct _SETWNDICONS_CALLBACK_ARGUMENTS 136 { 137 HICON hIconSample; 138 HICON hIconHand; 139 HICON hIconQuestion; 140 HICON hIconBang; 141 HICON hIconNote; 142 HICON hIconWindows; 143 HICON hIconSmWindows; 144 } SETWNDICONS_CALLBACK_ARGUMENTS, *PSETWNDICONS_CALLBACK_ARGUMENTS; 145 146 typedef struct _DDEPOSTGET_CALLBACK_ARGUMENTS 147 { 148 INT Type; 149 MSG; 150 int size; 151 PVOID pvData; 152 BYTE buffer[1]; 153 } DDEPOSTGET_CALLBACK_ARGUMENTS, *PDDEPOSTGET_CALLBACK_ARGUMENTS; 154 155 typedef struct _SETOBM_CALLBACK_ARGUMENTS 156 { 157 struct tagOEMBITMAPINFO oembmi[93]; 158 } SETOBM_CALLBACK_ARGUMENTS, *PSETOBM_CALLBACK_ARGUMENTS; 159 160 typedef struct _LPK_CALLBACK_ARGUMENTS 161 { 162 LPWSTR lpString; 163 HDC hdc; 164 INT x; 165 INT y; 166 UINT flags; 167 RECT rect; 168 UINT count; 169 BOOL bRect; 170 } LPK_CALLBACK_ARGUMENTS, *PLPK_CALLBACK_ARGUMENTS; 171 172 typedef struct _IMMPROCESSKEY_CALLBACK_ARGUMENTS 173 { 174 HWND hWnd; 175 HKL hKL; 176 UINT vKey; 177 LPARAM lParam; 178 DWORD dwHotKeyID; 179 } IMMPROCESSKEY_CALLBACK_ARGUMENTS, *PIMMPROCESSKEY_CALLBACK_ARGUMENTS; 180 181 NTSTATUS WINAPI 182 User32CallCopyImageFromKernel(PVOID Arguments, ULONG ArgumentLength); 183 NTSTATUS WINAPI 184 User32CallSetWndIconsFromKernel(PVOID Arguments, ULONG ArgumentLength); 185 NTSTATUS WINAPI 186 User32CallWindowProcFromKernel(PVOID Arguments, ULONG ArgumentLength); 187 NTSTATUS WINAPI 188 User32CallSendAsyncProcForKernel(PVOID Arguments, ULONG ArgumentLength); 189 NTSTATUS WINAPI 190 User32LoadSysMenuTemplateForKernel(PVOID Arguments, ULONG ArgumentLength); 191 NTSTATUS WINAPI 192 User32SetupDefaultCursors(PVOID Arguments, ULONG ArgumentLength); 193 NTSTATUS WINAPI 194 User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength); 195 NTSTATUS WINAPI 196 User32CallEventProcFromKernel(PVOID Arguments, ULONG ArgumentLength); 197 NTSTATUS WINAPI 198 User32CallLoadMenuFromKernel(PVOID Arguments, ULONG ArgumentLength); 199 NTSTATUS WINAPI 200 User32CallClientThreadSetupFromKernel(PVOID Arguments, ULONG ArgumentLength); 201 NTSTATUS WINAPI 202 User32CallClientLoadLibraryFromKernel(PVOID Arguments, ULONG ArgumentLength); 203 NTSTATUS WINAPI 204 User32CallGetCharsetInfo(PVOID Arguments, ULONG ArgumentLength); 205 NTSTATUS WINAPI 206 User32DeliverUserAPC(PVOID Arguments, ULONG ArgumentLength); 207 NTSTATUS WINAPI 208 User32CallDDEPostFromKernel(PVOID Arguments, ULONG ArgumentLength); 209 NTSTATUS WINAPI 210 User32CallDDEGetFromKernel(PVOID Arguments, ULONG ArgumentLength); 211 NTSTATUS WINAPI 212 User32CallOBMFromKernel(PVOID Arguments, ULONG ArgumentLength); 213 NTSTATUS WINAPI 214 User32CallLPKFromKernel(PVOID Arguments, ULONG ArgumentLength); 215 NTSTATUS WINAPI 216 User32CallUMPDFromKernel(PVOID Arguments, ULONG ArgumentLength); 217 NTSTATUS WINAPI 218 User32CallImmProcessKeyFromKernel(PVOID Arguments, ULONG ArgumentLength); 219 #endif /* __INCLUDE_USER32_CALLBACK_H */ 220