diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c index a7e22cc..8d8d8b5 100644 --- a/src/winapi_hooks.c +++ b/src/winapi_hooks.c @@ -612,7 +612,7 @@ HHOOK WINAPI fake_SetWindowsHookExA(int idHook, HOOKPROC lpfn, HINSTANCE hmod, D return result; } -void HandleMessage(LPMSG lpMsg, HWND hWnd) +BOOL HandleMessage(LPMSG lpMsg, HWND hWnd) { if (lpMsg && g_ddraw.ref && g_ddraw.hwnd && g_ddraw.width && !g_config.fixmousehook) { @@ -637,7 +637,7 @@ void HandleMessage(LPMSG lpMsg, HWND hWnd) } if (lpMsg->hwnd != g_ddraw.hwnd) - return; + return TRUE; switch (LOWORD(lpMsg->message)) { @@ -653,6 +653,7 @@ void HandleMessage(LPMSG lpMsg, HWND hWnd) mouse_lock(); lpMsg->message = (UINT)MAKELONG(WM_NULL, HIWORD(lpMsg->message)); + return FALSE; } break; @@ -675,12 +676,15 @@ void HandleMessage(LPMSG lpMsg, HWND hWnd) { // Does not work with 'New Robinson' lpMsg->message = (UINT)MAKELONG(WM_NULL, HIWORD(lpMsg->message)); + return FALSE; } break; } } } + + return TRUE; } BOOL WINAPI fake_GetMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax) @@ -705,7 +709,7 @@ BOOL WINAPI fake_PeekMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT w BOOL result = real_PeekMessageA(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg); if (result) { - HandleMessage(lpMsg, hWnd); + return HandleMessage(lpMsg, hWnd); } return result;