2 * Windows hook definitions
4 * Copyright 1994 Alexandre Julliard
13 /* Hook data (pointed to by a HHOOK) */
16 HHOOK next
; /* Next hook in chain */
17 HOOKPROC proc
; /* Hook procedure */
18 short id
; /* Hook id (WH_xxx) */
19 HTASK htask
; /* Task owning this hook */
23 #define FIRST_HOOK WH_MSGFILTER
24 #define LAST_HOOK WH_SHELL
26 #define SYSTEM_HOOK(id) (systemHooks[(id)-FIRST_HOOK])
27 #define TASK_HOOK(id) (taskHooks[(id)-FIRST_HOOK])
28 #define INTERNAL_CALL_HOOK(hhook,code,wparam,lparam) \
29 ((hhook) ? CallHookProc(((HOOKDATA*)PTR_SEG_TO_LIN(hhook))->proc,\
30 code, wparam, lparam) : 0)
32 #define CALL_SYSTEM_HOOK(id,code,wparam,lparam) \
33 INTERNAL_CALL_HOOK(SYSTEM_HOOK(id),code,wparam,lparam)
34 #define CALL_TASK_HOOK(id,code,wparam,lparam) \
35 INTERNAL_CALL_HOOK(TASK_HOOK(id),code,wparam,lparam)
37 extern DWORD
CallHookProc( HOOKPROC func
, short code
,
38 WPARAM wParam
, LPARAM lParam
); /* callback.c */
40 extern HHOOK systemHooks
[];
41 extern HHOOK taskHooks
[];