diff --git a/dlls/user32/message.c b/dlls/user32/message.c index ba3f4c6d86d..9e0ce05b215 100644 --- a/dlls/user32/message.c +++ b/dlls/user32/message.c @@ -2489,7 +2489,7 @@ static BOOL process_mouse_message( MSG *msg, UINT hw_id, ULONG_PTR extra_info, H INT hittest; EVENTMSG event; GUITHREADINFO info; - MOUSEHOOKSTRUCT hook; + MOUSEHOOKSTRUCTEX hook; BOOL eatMsg; /* find the window to dispatch this mouse message to */ @@ -2585,17 +2585,19 @@ static BOOL process_mouse_message( MSG *msg, UINT hw_id, ULONG_PTR extra_info, H /* message is accepted now (but may still get dropped) */ - hook.pt = msg->pt; - hook.hwnd = msg->hwnd; - hook.wHitTestCode = hittest; - hook.dwExtraInfo = extra_info; + hook.s.pt = msg->pt; + hook.s.hwnd = msg->hwnd; + hook.s.wHitTestCode = hittest; + hook.s.dwExtraInfo = extra_info; + hook.mouseData = msg->wParam; if (HOOK_CallHooks( WH_MOUSE, remove ? HC_ACTION : HC_NOREMOVE, message, (LPARAM)&hook, TRUE )) { - hook.pt = msg->pt; - hook.hwnd = msg->hwnd; - hook.wHitTestCode = hittest; - hook.dwExtraInfo = extra_info; + hook.s.pt = msg->pt; + hook.s.hwnd = msg->hwnd; + hook.s.wHitTestCode = hittest; + hook.s.dwExtraInfo = extra_info; + hook.mouseData = msg->wParam; HOOK_CallHooks( WH_CBT, HCBT_CLICKSKIPPED, message, (LPARAM)&hook, TRUE ); accept_hardware_message( hw_id, TRUE ); return FALSE; diff --git a/include/winuser.h b/include/winuser.h index 74d3cd58292..b5f89c170ed 100644 --- a/include/winuser.h +++ b/include/winuser.h @@ -385,6 +385,17 @@ typedef struct ULONG_PTR dwExtraInfo; } MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT; +typedef struct +{ + struct { /* MOUSEHOOKSTRUCT */ + POINT pt; + HWND hwnd; + UINT wHitTestCode; + ULONG_PTR dwExtraInfo; + } DUMMYSTRUCTNAME; + DWORD mouseData; +} MOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX; + /* Hardware hook structure */