reactos/subsystems/win32/win32k/include/hook.h
Timo Kreuzer 8af88571ea sync with trunk (r49238)
svn path=/branches/reactos-yarotows/; revision=49240
2010-10-23 16:42:45 +00:00

47 lines
1.5 KiB
C

#pragma once
#define HOOK_THREAD_REFERENCED (0x1)
#define HOOKID_TO_INDEX(HookId) (HookId - WH_MINHOOK)
#define HOOKID_TO_FLAG(HookId) (1 << ((HookId) + 1))
#define ISITHOOKED(HookId) (((PTHREADINFO)PsGetCurrentThreadWin32Thread())->fsHooks & HOOKID_TO_FLAG(HookId))
typedef struct tagEVENTHOOK
{
THROBJHEAD head;
LIST_ENTRY Chain; /* Event chain entry */
UINT eventMin;
UINT eventMax;
DWORD idProcess;
DWORD idThread;
WINEVENTPROC Proc; /* Event function */
ULONG Flags; /* Some internal flags */
ULONG_PTR offPfn;
INT ihmod;
} EVENTHOOK, *PEVENTHOOK;
typedef struct tagEVENTTABLE
{
LIST_ENTRY Events;
UINT Counts;
} EVENTTABLE, *PEVENTTABLE;
typedef struct _NOTIFYEVENT
{
DWORD event;
LONG idObject;
LONG idChild;
DWORD flags;
} NOTIFYEVENT, *PNOTIFYEVENT;
LRESULT FASTCALL co_CallHook(INT HookId, INT Code, WPARAM wParam, LPARAM lParam);
LRESULT FASTCALL co_HOOK_CallHooks(INT HookId, INT Code, WPARAM wParam, LPARAM lParam);
LRESULT FASTCALL co_EVENT_CallEvents(DWORD, HWND, UINT_PTR, LONG_PTR);
VOID FASTCALL HOOK_DestroyThreadHooks(PETHREAD Thread);
VOID FASTCALL EVENT_DestroyThreadEvents(PETHREAD Thread);
PHOOK FASTCALL IntGetHookObject(HHOOK);
PHOOK FASTCALL IntGetNextHook(PHOOK Hook);
LRESULT FASTCALL UserCallNextHookEx( PHOOK pHook, int Code, WPARAM wParam, LPARAM lParam, BOOL Ansi);
BOOL FASTCALL IntUnhookWindowsHook(int,HOOKPROC);
/* EOF */