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