- When calling NtUserCallNextHookEx check that the current hook is not the first in the chain. If so don't call the hook proc and just return, as it has already been called and it makes no sense for the NextHook function to call the first hook proc. Fixes bugs #4461 and #4407.
- The previous commit claiming to fix bug #4461 was incorrect, it may have actually fixed bug #5320. Testers please test.

svn path=/trunk/; revision=47065
This commit is contained in:
Michael Martin 2010-04-30 11:23:17 +00:00
parent 174a4670ea
commit 0409ef75e8

View file

@ -1050,6 +1050,12 @@ NtUserCallNextHookEx(int Code,
if (!HookObj) RETURN( 0);
/* Check that the first hook in the chain is not this hook */
NextObj = IntGetFirstHook(IntGetTable(HookObj), HookObj->HookId);
/* Its the same so it has already been called */
if (HookObj == NextObj) RETURN(0);
UserReferenceObject(HookObj);
Ansi = HookObj->Ansi;