From 3743a1a7ca170c765cd779c61b9e362c5b1c5203 Mon Sep 17 00:00:00 2001 From: Vitaliy Margolen Date: Sun, 1 Feb 2009 13:11:46 -0700 Subject: [PATCH] dinput: Consume mouse & keyboard events in exclusive mode. --- dlls/dinput/dinput_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c index 46e4e281e7..bdcf557eca 100644 --- a/dlls/dinput/dinput_main.c +++ b/dlls/dinput/dinput_main.c @@ -885,6 +885,7 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) static LRESULT CALLBACK LL_hook_proc( int code, WPARAM wparam, LPARAM lparam ) { IDirectInputImpl *dinput; + int skip = 0; if (code != HC_ACTION) return CallNextHookEx( 0, code, wparam, lparam ); @@ -899,12 +900,13 @@ static LRESULT CALLBACK LL_hook_proc( int code, WPARAM wparam, LPARAM lparam ) { TRACE("calling %p->%p (%lx %lx)\n", dev, dev->event_proc, wparam, lparam); dev->event_proc( (LPDIRECTINPUTDEVICE8A)dev, wparam, lparam ); + skip |= dev->dwCoopLevel & DISCL_EXCLUSIVE; } LeaveCriticalSection( &dinput->crit ); } LeaveCriticalSection( &dinput_hook_crit ); - return CallNextHookEx( 0, code, wparam, lparam ); + return skip ? 1 : CallNextHookEx( 0, code, wparam, lparam ); } static LRESULT CALLBACK callwndproc_proc( int code, WPARAM wparam, LPARAM lparam )