Sync to trunk head (r47736)
[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 _CALL_BACK_INFO
37 {
38 SENDASYNCPROC CallBack;
39 ULONG_PTR Context;
40 } CALL_BACK_INFO, * PCALL_BACK_INFO;
41
42
43 typedef struct _HOOKPROC_CALLBACK_ARGUMENTS
44 {
45 INT HookId;
46 INT Code;
47 WPARAM wParam;
48 LPARAM lParam;
49 HOOKPROC Proc;
50 BOOLEAN Ansi;
51 UINT ModuleNameLength;
52 WCHAR ModuleName[1];
53 } HOOKPROC_CALLBACK_ARGUMENTS, *PHOOKPROC_CALLBACK_ARGUMENTS;
54
55 typedef struct _HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS
56 {
57 CREATESTRUCTW Cs; /* lpszName and lpszClass replaced by offsets */
58 HWND WndInsertAfter;
59 /* WCHAR szName[] */
60 /* WCHAR szClass[] */
61 } HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS, *PHOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS;
62
63 typedef struct _EVENTPROC_CALLBACK_ARGUMENTS
64 {
65 HWINEVENTHOOK hook;
66 DWORD event;
67 HWND hwnd;
68 LONG idObject;
69 LONG idChild;
70 DWORD dwEventThread;
71 DWORD dwmsEventTime;
72 WINEVENTPROC Proc;
73 } EVENTPROC_CALLBACK_ARGUMENTS, *PEVENTPROC_CALLBACK_ARGUMENTS;
74
75 typedef struct _LOADMENU_CALLBACK_ARGUMENTS
76 {
77 HINSTANCE hModule;
78 WCHAR MenuName[1];
79 } LOADMENU_CALLBACK_ARGUMENTS, *PLOADMENU_CALLBACK_ARGUMENTS;
80
81 NTSTATUS WINAPI
82 User32CallWindowProcFromKernel(PVOID Arguments, ULONG ArgumentLength);
83 NTSTATUS WINAPI
84 User32CallSendAsyncProcForKernel(PVOID Arguments, ULONG ArgumentLength);
85 NTSTATUS WINAPI
86 User32LoadSysMenuTemplateForKernel(PVOID Arguments, ULONG ArgumentLength);
87 NTSTATUS WINAPI
88 User32SetupDefaultCursors(PVOID Arguments, ULONG ArgumentLength);
89 NTSTATUS WINAPI
90 User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength);
91 NTSTATUS WINAPI
92 User32CallEventProcFromKernel(PVOID Arguments, ULONG ArgumentLength);
93 NTSTATUS WINAPI
94 User32CallLoadMenuFromKernel(PVOID Arguments, ULONG ArgumentLength);
95 NTSTATUS WINAPI
96 User32CallClientThreadSetupFromKernel(PVOID Arguments, ULONG ArgumentLength);
97
98 #endif /* __INCLUDE_USER32_CALLBACK_H */