1 #ifndef __INCLUDE_USER32_CALLBACK_H
2 #define __INCLUDE_USER32_CALLBACK_H
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)
14 typedef struct _WINDOWPROC_CALLBACK_ARGUMENTS
25 } WINDOWPROC_CALLBACK_ARGUMENTS
, *PWINDOWPROC_CALLBACK_ARGUMENTS
;
27 typedef struct _SENDASYNCPROC_CALLBACK_ARGUMENTS
29 SENDASYNCPROC Callback
;
34 } SENDASYNCPROC_CALLBACK_ARGUMENTS
, *PSENDASYNCPROC_CALLBACK_ARGUMENTS
;
36 typedef struct _HOOKPROC_CALLBACK_ARGUMENTS
44 UINT ModuleNameLength
;
46 } HOOKPROC_CALLBACK_ARGUMENTS
, *PHOOKPROC_CALLBACK_ARGUMENTS
;
48 typedef struct _HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS
50 CREATESTRUCTW Cs
; /* lpszName and lpszClass replaced by offsets */
54 } HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS
, *PHOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS
;
56 typedef struct _EVENTPROC_CALLBACK_ARGUMENTS
66 } EVENTPROC_CALLBACK_ARGUMENTS
, *PEVENTPROC_CALLBACK_ARGUMENTS
;
68 typedef struct _LOADMENU_CALLBACK_ARGUMENTS
72 } LOADMENU_CALLBACK_ARGUMENTS
, *PLOADMENU_CALLBACK_ARGUMENTS
;
75 User32CallWindowProcFromKernel(PVOID Arguments
, ULONG ArgumentLength
);
77 User32CallSendAsyncProcForKernel(PVOID Arguments
, ULONG ArgumentLength
);
79 User32LoadSysMenuTemplateForKernel(PVOID Arguments
, ULONG ArgumentLength
);
81 User32SetupDefaultCursors(PVOID Arguments
, ULONG ArgumentLength
);
83 User32CallHookProcFromKernel(PVOID Arguments
, ULONG ArgumentLength
);
85 User32CallEventProcFromKernel(PVOID Arguments
, ULONG ArgumentLength
);
87 User32CallLoadMenuFromKernel(PVOID Arguments
, ULONG ArgumentLength
);
89 User32CallClientThreadSetupFromKernel(PVOID Arguments
, ULONG ArgumentLength
);
91 #endif /* __INCLUDE_USER32_CALLBACK_H */