[CSRSRV/BASESRV/CONSRV/WIN32CSR/WINSRV]
[reactos.git] / 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_GETCHARSETINFO (9)
14 #define USER32_CALLBACK_MAXIMUM (9)
15
16 typedef struct _WINDOWPROC_CALLBACK_ARGUMENTS
17 {
18 WNDPROC Proc;
19 BOOL IsAnsiProc;
20 HWND Wnd;
21 UINT Msg;
22 WPARAM wParam;
23 LPARAM lParam;
24 INT lParamBufferSize;
25 LRESULT Result;
26 /* char Buffer[]; */
27 } WINDOWPROC_CALLBACK_ARGUMENTS, *PWINDOWPROC_CALLBACK_ARGUMENTS;
28
29 typedef struct _SENDASYNCPROC_CALLBACK_ARGUMENTS
30 {
31 SENDASYNCPROC Callback;
32 HWND Wnd;
33 UINT Msg;
34 ULONG_PTR Context;
35 LRESULT Result;
36 } SENDASYNCPROC_CALLBACK_ARGUMENTS, *PSENDASYNCPROC_CALLBACK_ARGUMENTS;
37
38 typedef struct _CALL_BACK_INFO
39 {
40 SENDASYNCPROC CallBack;
41 ULONG_PTR Context;
42 } CALL_BACK_INFO, * PCALL_BACK_INFO;
43
44
45 typedef struct _HOOKPROC_CALLBACK_ARGUMENTS
46 {
47 INT HookId;
48 INT Code;
49 WPARAM wParam;
50 LPARAM lParam;
51 HOOKPROC Proc;
52 BOOLEAN Ansi;
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 typedef struct _CLIENT_LOAD_LIBRARY_ARGUMENTS
82 {
83 UNICODE_STRING strLibraryName;
84 UNICODE_STRING strInitFuncName;
85 BOOL Unload;
86 BOOL ApiHook;
87 } CLIENT_LOAD_LIBRARY_ARGUMENTS, *PCLIENT_LOAD_LIBRARY_ARGUMENTS;
88
89 typedef struct _GET_CHARSET_INFO
90 {
91 LCID Locale;
92 CHARSETINFO Cs;
93 } GET_CHARSET_INFO, *PGET_CHARSET_INFO;
94
95 NTSTATUS WINAPI
96 User32CallWindowProcFromKernel(PVOID Arguments, ULONG ArgumentLength);
97 NTSTATUS WINAPI
98 User32CallSendAsyncProcForKernel(PVOID Arguments, ULONG ArgumentLength);
99 NTSTATUS WINAPI
100 User32LoadSysMenuTemplateForKernel(PVOID Arguments, ULONG ArgumentLength);
101 NTSTATUS WINAPI
102 User32SetupDefaultCursors(PVOID Arguments, ULONG ArgumentLength);
103 NTSTATUS WINAPI
104 User32CallHookProcFromKernel(PVOID Arguments, ULONG ArgumentLength);
105 NTSTATUS WINAPI
106 User32CallEventProcFromKernel(PVOID Arguments, ULONG ArgumentLength);
107 NTSTATUS WINAPI
108 User32CallLoadMenuFromKernel(PVOID Arguments, ULONG ArgumentLength);
109 NTSTATUS WINAPI
110 User32CallClientThreadSetupFromKernel(PVOID Arguments, ULONG ArgumentLength);
111 NTSTATUS WINAPI
112 User32CallClientLoadLibraryFromKernel(PVOID Arguments, ULONG ArgumentLength);
113 NTSTATUS WINAPI
114 User32CallGetCharsetInfo(PVOID Arguments, ULONG ArgumentLength);
115 #endif /* __INCLUDE_USER32_CALLBACK_H */