More work on hooks.

svn path=/trunk/; revision=32928
This commit is contained in:
James Tabor 2008-04-12 19:19:30 +00:00
parent 72a3860fd7
commit 764ba25e18
4 changed files with 35 additions and 24 deletions

View file

@ -691,7 +691,7 @@ TranslateAcceleratorW@12
TranslateMDISysAccel@8
TranslateMessage@4
TranslateMessageEx@8
UnhookWinEvent@4
UnhookWinEvent@4=NtUserUnhookWinEvent@4
UnhookWindowsHook@8
UnhookWindowsHookEx@4
UnionRect@12

View file

@ -211,14 +211,13 @@ RegisterShellHookWindow(HWND hWnd)
}
/*
* @unimplemented
* @implemented
*/
BOOL
STDCALL
UnhookWindowsHook ( int nCode, HOOKPROC pfnFilterProc )
{
UNIMPLEMENTED;
return FALSE;
return NtUserCallTwoParam(nCode, (DWORD)pfnFilterProc, TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK);
}
/*
@ -233,11 +232,11 @@ NotifyWinEvent(
LONG idChild
)
{
UNIMPLEMENTED;
NtUserNotifyWinEvent(event, hwnd, idObject, idChild);
}
/*
* @unimplemented
* @implemented
*/
HWINEVENTHOOK
STDCALL
@ -251,19 +250,30 @@ SetWinEventHook(
UINT dwFlags
)
{
UNIMPLEMENTED;
return FALSE;
}
WCHAR ModuleName[MAX_PATH];
UNICODE_STRING USModuleName;
/*
* @unimplemented
*/
BOOL
STDCALL
UnhookWinEvent ( HWINEVENTHOOK hWinEventHook )
{
UNIMPLEMENTED;
return FALSE;
if ((hmodWinEventProc != NULL) && (dwFlags & WINEVENT_INCONTEXT))
{
if (0 == GetModuleFileNameW(hmodWinEventProc, ModuleName, MAX_PATH))
{
return NULL;
}
RtlInitUnicodeString(&USModuleName, ModuleName);
}
else
{
RtlInitUnicodeString(&USModuleName, NULL);
}
return NtUserSetWinEventHook(eventMin,
eventMax,
hmodWinEventProc,
&USModuleName,
pfnWinEventProc,
idProcess,
idThread,
dwFlags);
}
/*
@ -274,11 +284,12 @@ STDCALL
IsWinEventHookInstalled(
DWORD event)
{
UNIMPLEMENTED;
if ((PW32THREADINFO)NtCurrentTeb()->Win32ThreadInfo)
{
}
return FALSE;
}
/*
* @unimplemented
*/

View file

@ -2233,7 +2233,7 @@ NtUserSetWindowStationUser(
WORD NTAPI
NtUserSetWindowWord(HWND hWnd, INT Index, WORD NewVal);
DWORD
HWINEVENTHOOK
NTAPI
NtUserSetWinEventHook(
UINT eventMin,
@ -2330,7 +2330,7 @@ NtUserUnhookWindowsHookEx(
DWORD
NTAPI
NtUserUnhookWinEvent(
DWORD Unknown0);
HWINEVENTHOOK hWinEventHook);
BOOL
NTAPI

View file

@ -697,7 +697,7 @@ CLEANUP:
END_CLEANUP;
}
DWORD
HWINEVENTHOOK
STDCALL
NtUserSetWinEventHook(
UINT eventMin,
@ -765,7 +765,7 @@ CLEANUP:
DWORD
STDCALL
NtUserUnhookWinEvent(
DWORD Unknown0)
HWINEVENTHOOK hWinEventHook)
{
UNIMPLEMENTED