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 WCHAR ModuleName[512]; 65 } HOOKPROC_CALLBACK_ARGUMENTS, *PHOOKPROC_CALLBACK_ARGUMENTS; 66 67 typedef struct _HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS 68 { 69 CREATESTRUCTW Cs; /* lpszName and lpszClass replaced by offsets */ 70 HWND WndInsertAfter; 71 /* WCHAR szName[] */ 72 /* WCHAR szClass[] */ 73 } HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS, *PHOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS; 74 75 typedef struct _EVENTPROC_CALLBACK_ARGUMENTS 76 { 77 HWINEVENTHOOK hook; 78 DWORD event; 79 HWND hwnd; 80 LONG idObject; 81 LONG idChild; 82 DWORD dwEventThread; 83 DWORD dwmsEventTime; 84 WINEVENTPROC Proc; 85 INT_PTR Mod; 86 ULONG_PTR offPfn; 87 } EVENTPROC_CALLBACK_ARGUMENTS, *PEVENTPROC_CALLBACK_ARGUMENTS; 88 89 typedef struct _LOADMENU_CALLBACK_ARGUMENTS 90 { 91 HINSTANCE hModule; 92 LPCWSTR InterSource; 93 WCHAR MenuName[1]; 94 } LOADMENU_CALLBACK_ARGUMENTS, *PLOADMENU_CALLBACK_ARGUMENTS; 95 96 typedef struct _COPYIMAGE_CALLBACK_ARGUMENTS 97 { 98 HANDLE hImage; 99 UINT uType; 100 int cxDesired; 101 int cyDesired; 102 UINT fuFlags; 103 } COPYIMAGE_CALLBACK_ARGUMENTS, *PCOPYIMAGE_CALLBACK_ARGUMENTS; 104 105 typedef struct _CLIENT_LOAD_LIBRARY_ARGUMENTS 106 { 107 UNICODE_STRING strLibraryName; 108 UNICODE_STRING strInitFuncName; 109 BOOL Unload; 110 BOOL ApiHook; 111 } CLIENT_LOAD_LIBRARY_ARGUMENTS, *PCLIENT_LOAD_LIBRARY_ARGUMENTS; 112 113 typedef struct _GET_CHARSET_INFO 114 { 115 LCID Locale; 116 CHARSETINFO Cs; 117 } GET_CHARSET_INFO, *PGET_CHARSET_INFO; 118 119 typedef struct _SETWNDICONS_CALLBACK_ARGUMENTS 120 { 121 HICON hIconSample; 122 HICON hIconHand; 123 HICON hIconQuestion; 124 HICON hIconBang; 125 HICON hIconNote; 126 HICON hIconWindows; 127 HICON hIconSmWindows; 128 } SETWNDICONS_CALLBACK_ARGUMENTS, *PSETWNDICONS_CALLBACK_ARGUMENTS; 129 130 typedef struct _DDEPOSTGET_CALLBACK_ARGUMENTS 131 { 132 INT Type; 133 MSG; 134 int size; 135 PVOID pvData; 136 BYTE buffer[1]; 137 } DDEPOSTGET_CALLBACK_ARGUMENTS, *PDDEPOSTGET_CALLBACK_ARGUMENTS; 138 139 typedef struct _SETOBM_CALLBACK_ARGUMENTS 140 { 141 struct tagOEMBITMAPINFO oembmi[93]; 142 } SETOBM_CALLBACK_ARGUMENTS, *PSETOBM_CALLBACK_ARGUMENTS; 143 144 typedef struct _LPK_CALLBACK_ARGUMENTS 145 { 146 LPWSTR lpString; 147 HDC hdc; 148 INT x; 149 INT y; 150 UINT flags; 151 RECT rect; 152 UINT count; 153 BOOL bRect; 154 } LPK_CALLBACK_ARGUMENTS, *PLPK_CALLBACK_ARGUMENTS; 155 156 NTSTATUS WINAPI 157 User32CallCopyImageFromKernel(PVOID Arguments, ULONG ArgumentLength); 158 NTSTATUS WINAPI 159 User32CallSetWndIconsFromKernel(PVOID Arguments, ULONG ArgumentLength); 160 NTSTATUS WINAPI 161 User32CallWindowProcFromKernel(PVOID Arguments, ULONG ArgumentLength); 162 NTSTATUS WINAPI 163 User32CallSendAsyncProcForKernel(PVOID Arguments, ULONG ArgumentLength); 164 NTSTATUS WINAPI 165 User32LoadSysMenuTemplateForKernel(PVOID Arguments, ULONG ArgumentLength); 166 NTSTATUS WINAPI 167 User32SetupDefaultCursors(PVOID Arguments, ULONG ArgumentLength); 168 NTSTATUS WINAPI 169 User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength); 170 NTSTATUS WINAPI 171 User32CallEventProcFromKernel(PVOID Arguments, ULONG ArgumentLength); 172 NTSTATUS WINAPI 173 User32CallLoadMenuFromKernel(PVOID Arguments, ULONG ArgumentLength); 174 NTSTATUS WINAPI 175 User32CallClientThreadSetupFromKernel(PVOID Arguments, ULONG ArgumentLength); 176 NTSTATUS WINAPI 177 User32CallClientLoadLibraryFromKernel(PVOID Arguments, ULONG ArgumentLength); 178 NTSTATUS WINAPI 179 User32CallGetCharsetInfo(PVOID Arguments, ULONG ArgumentLength); 180 NTSTATUS WINAPI 181 User32DeliverUserAPC(PVOID Arguments, ULONG ArgumentLength); 182 NTSTATUS WINAPI 183 User32CallDDEPostFromKernel(PVOID Arguments, ULONG ArgumentLength); 184 NTSTATUS WINAPI 185 User32CallDDEGetFromKernel(PVOID Arguments, ULONG ArgumentLength); 186 NTSTATUS WINAPI 187 User32CallOBMFromKernel(PVOID Arguments, ULONG ArgumentLength); 188 NTSTATUS WINAPI 189 User32CallLPKFromKernel(PVOID Arguments, ULONG ArgumentLength); 190 NTSTATUS WINAPI 191 User32CallUMPDFromKernel(PVOID Arguments, ULONG ArgumentLength); 192 #endif /* __INCLUDE_USER32_CALLBACK_H */ 193