2b24d8c4ef28db772eda653647234baf4be38c4a
[reactos.git] / reactos / include / user32 / callback.h
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_SENDNCCREATE (2)
7 #define USER32_CALLBACK_SENDNCCALCSIZE (3)
8 #define USER32_CALLBACK_SENDCREATE (4)
9 #define USER32_CALLBACK_MAXIMUM (5)
10
11 typedef struct _WINDOWPROC_CALLBACK_ARGUMENTS
12 {
13 WNDPROC Proc;
14 HWND Wnd;
15 UINT Msg;
16 WPARAM wParam;
17 LPARAM lParam;
18 } WINDOWPROC_CALLBACK_ARGUMENTS, *PWINDOWPROC_CALLBACK_ARGUMENTS;
19
20 typedef struct _SENDASYNCPROC_CALLBACK_ARGUMENTS
21 {
22 SENDASYNCPROC Callback;
23 HWND Wnd;
24 UINT Msg;
25 ULONG_PTR Context;
26 LRESULT Result;
27 } SENDASYNCPROC_CALLBACK_ARGUMENTS, *PSENDASYNCPROC_CALLBACK_ARGUMENTS;
28
29 typedef struct _SENDNCCREATEMESSAGE_CALLBACK_ARGUMENTS
30 {
31 HWND Wnd;
32 CREATESTRUCT CreateStruct;
33 } SENDNCCREATEMESSAGE_CALLBACK_ARGUMENTS,
34 *PSENDNCCREATEMESSAGE_CALLBACK_ARGUMENTS;
35
36 typedef struct _SENDCREATEMESSAGE_CALLBACK_ARGUMENTS
37 {
38 HWND Wnd;
39 CREATESTRUCT CreateStruct;
40 } SENDCREATEMESSAGE_CALLBACK_ARGUMENTS, *PSENDCREATEMESSAGE_CALLBACK_ARGUMENTS;
41
42 typedef struct _SENDNCCALCSIZEMESSAGE_CALLBACK_ARGUMENTS
43 {
44 HWND Wnd;
45 BOOL Validate;
46 RECT Rect;
47 NCCALCSIZE_PARAMS Params;
48 } SENDNCCALCSIZEMESSAGE_CALLBACK_ARGUMENTS,
49 *PSENDNCCALCSIZEMESSAGE_CALLBACK_ARGUMENTS;
50
51 typedef struct _SENDNCCALCSIZEMESSAGE_CALLBACK_RESULT
52 {
53 LRESULT Result;
54 RECT Rect;
55 NCCALCSIZE_PARAMS Params;
56 } SENDNCCALCSIZEMESSAGE_CALLBACK_RESULT,
57 *PSENDNCCALCSIZEMESSAGE_CALLBACK_RESULT;
58
59 NTSTATUS STDCALL
60 User32CallWindowProcFromKernel(PVOID Arguments, ULONG ArgumentLength);
61 NTSTATUS STDCALL
62 User32CallSendAsyncProcForKernel(PVOID Arguments, ULONG ArgumentLength);
63 NTSTATUS STDCALL
64 User32SendNCCREATEMessageForKernel(PVOID Arguments, ULONG ArgumentLength);
65 NTSTATUS STDCALL
66 User32SendCREATEMessageForKernel(PVOID Arguments, ULONG ArgumentLength);
67
68 #endif /* __INCLUDE_USER32_CALLBACK_H */