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