xref: /reactos/win32ss/include/callback.h (revision 177ae91b)
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