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