Sync with trunk head (part 1 of 2)
[reactos.git] / include / reactos / win32k / 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_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_MAXIMUM (7)
13
14 typedef struct _WINDOWPROC_CALLBACK_ARGUMENTS
15 {
16 WNDPROC Proc;
17 BOOL IsAnsiProc;
18 HWND Wnd;
19 UINT Msg;
20 WPARAM wParam;
21 LPARAM lParam;
22 INT lParamBufferSize;
23 LRESULT Result;
24 /* char Buffer[]; */
25 } WINDOWPROC_CALLBACK_ARGUMENTS, *PWINDOWPROC_CALLBACK_ARGUMENTS;
26
27 typedef struct _SENDASYNCPROC_CALLBACK_ARGUMENTS
28 {
29 SENDASYNCPROC Callback;
30 HWND Wnd;
31 UINT Msg;
32 ULONG_PTR Context;
33 LRESULT Result;
34 } SENDASYNCPROC_CALLBACK_ARGUMENTS, *PSENDASYNCPROC_CALLBACK_ARGUMENTS;
35
36 typedef struct _HOOKPROC_CALLBACK_ARGUMENTS
37 {
38 INT HookId;
39 INT Code;
40 WPARAM wParam;
41 LPARAM lParam;
42 HOOKPROC Proc;
43 BOOLEAN Ansi;
44 UINT ModuleNameLength;
45 WCHAR ModuleName[1];
46 } HOOKPROC_CALLBACK_ARGUMENTS, *PHOOKPROC_CALLBACK_ARGUMENTS;
47
48 typedef struct _HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS
49 {
50 CREATESTRUCTW Cs; /* lpszName and lpszClass replaced by offsets */
51 HWND WndInsertAfter;
52 /* WCHAR szName[] */
53 /* WCHAR szClass[] */
54 } HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS, *PHOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS;
55
56 typedef struct _EVENTPROC_CALLBACK_ARGUMENTS
57 {
58 HWINEVENTHOOK hook;
59 DWORD event;
60 HWND hwnd;
61 LONG idObject;
62 LONG idChild;
63 DWORD dwEventThread;
64 DWORD dwmsEventTime;
65 WINEVENTPROC Proc;
66 } EVENTPROC_CALLBACK_ARGUMENTS, *PEVENTPROC_CALLBACK_ARGUMENTS;
67
68 typedef struct _LOADMENU_CALLBACK_ARGUMENTS
69 {
70 HINSTANCE hModule;
71 WCHAR MenuName[1];
72 } LOADMENU_CALLBACK_ARGUMENTS, *PLOADMENU_CALLBACK_ARGUMENTS;
73
74 NTSTATUS WINAPI
75 User32CallWindowProcFromKernel(PVOID Arguments, ULONG ArgumentLength);
76 NTSTATUS WINAPI
77 User32CallSendAsyncProcForKernel(PVOID Arguments, ULONG ArgumentLength);
78 NTSTATUS WINAPI
79 User32LoadSysMenuTemplateForKernel(PVOID Arguments, ULONG ArgumentLength);
80 NTSTATUS WINAPI
81 User32SetupDefaultCursors(PVOID Arguments, ULONG ArgumentLength);
82 NTSTATUS WINAPI
83 User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength);
84 NTSTATUS WINAPI
85 User32CallEventProcFromKernel(PVOID Arguments, ULONG ArgumentLength);
86 NTSTATUS WINAPI
87 User32CallLoadMenuFromKernel(PVOID Arguments, ULONG ArgumentLength);
88 NTSTATUS WINAPI
89 User32CallClientThreadSetupFromKernel(PVOID Arguments, ULONG ArgumentLength);
90
91 #endif /* __INCLUDE_USER32_CALLBACK_H */