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 TranslateMDISysAccel@8
TranslateMessage@4 TranslateMessage@4
TranslateMessageEx@8 TranslateMessageEx@8
UnhookWinEvent@4 UnhookWinEvent@4=NtUserUnhookWinEvent@4
UnhookWindowsHook@8 UnhookWindowsHook@8
UnhookWindowsHookEx@4 UnhookWindowsHookEx@4
UnionRect@12 UnionRect@12

View file

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

View file

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

View file

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