| /* |
| * Windows hook definitions |
| * |
| * Copyright 1994 Alexandre Julliard |
| */ |
| |
| #ifndef HOOK_H |
| #define HOOK_H |
| |
| #include "windows.h" |
| #include "user.h" |
| |
| /* Hook data (pointed to by a HHOOK) */ |
| typedef struct |
| { |
| HHOOK next; /* Next hook in chain */ |
| HOOKPROC proc; /* Hook procedure */ |
| short id; /* Hook id (WH_xxx) */ |
| HTASK htask; /* Task owning this hook */ |
| } HOOKDATA; |
| |
| |
| #define FIRST_HOOK WH_MSGFILTER |
| #define LAST_HOOK WH_SHELL |
| |
| #define SYSTEM_HOOK(id) (systemHooks[(id)-FIRST_HOOK]) |
| #define TASK_HOOK(id) (taskHooks[(id)-FIRST_HOOK]) |
| #define INTERNAL_CALL_HOOK(hhook,code,wparam,lparam) \ |
| ((hhook) ? CallHookProc(((HOOKDATA*)(hhook))->proc,code,wparam,lparam) : 0) |
| |
| #define CALL_SYSTEM_HOOK(id,code,wparam,lparam) \ |
| INTERNAL_CALL_HOOK(SYSTEM_HOOK(id),code,wparam,lparam) |
| #define CALL_TASK_HOOK(id,code,wparam,lparam) \ |
| INTERNAL_CALL_HOOK(TASK_HOOK(id),code,wparam,lparam) |
| |
| extern DWORD CallHookProc( HOOKPROC func, short code, |
| WPARAM wParam, LPARAM lParam ); /* callback.c */ |
| |
| extern HHOOK systemHooks[]; |
| extern HHOOK taskHooks[]; |
| |
| #endif /* HOOK_H */ |