win32u: Use user message packing for WM_MOVING and WM_SIZING.

This commit is contained in:
Jacek Caban 2023-07-18 22:30:08 +02:00 committed by Alexandre Julliard
parent 347e392799
commit de26401c02
4 changed files with 19 additions and 9 deletions

View file

@ -871,11 +871,8 @@ BOOL unpack_message( HWND hwnd, UINT message, WPARAM *wparam, LPARAM *lparam,
case LB_GETTEXT: case LB_GETTEXT:
case LB_GETSELITEMS: case LB_GETSELITEMS:
case WM_NEXTMENU: case WM_NEXTMENU:
break;
case WM_SIZING: case WM_SIZING:
case WM_MOVING: case WM_MOVING:
minsize = sizeof(RECT);
if (!get_buffer_space( buffer, sizeof(RECT), size )) return FALSE;
break; break;
case WM_MDICREATE: case WM_MDICREATE:
{ {
@ -1048,6 +1045,8 @@ BOOL WINAPI User32CallWindowProc( struct win_proc_params *params, ULONG size )
case LB_GETTEXT: case LB_GETTEXT:
case LB_GETSELITEMS: case LB_GETSELITEMS:
case WM_NEXTMENU: case WM_NEXTMENU:
case WM_SIZING:
case WM_MOVING:
{ {
LRESULT *result_ptr = (LRESULT *)buffer - 1; LRESULT *result_ptr = (LRESULT *)buffer - 1;
*result_ptr = result; *result_ptr = result;

View file

@ -644,6 +644,11 @@ static BOOL unpack_message( HWND hwnd, UINT message, WPARAM *wparam, LPARAM *lpa
memcpy( *buffer, &mnm, sizeof(mnm) ); memcpy( *buffer, &mnm, sizeof(mnm) );
break; break;
} }
case WM_SIZING:
case WM_MOVING:
minsize = sizeof(RECT);
if (!get_buffer_space( buffer, sizeof(RECT), size )) return FALSE;
break;
case WM_WINE_SETWINDOWPOS: case WM_WINE_SETWINDOWPOS:
{ {
WINDOWPOS wp; WINDOWPOS wp;
@ -1461,6 +1466,8 @@ size_t user_message_size( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam,
case CB_GETEDITSEL: case CB_GETEDITSEL:
size = 2 * sizeof(DWORD); size = 2 * sizeof(DWORD);
break; break;
case WM_SIZING:
case WM_MOVING:
case EM_GETRECT: case EM_GETRECT:
case LB_GETITEMRECT: case LB_GETITEMRECT:
case CB_GETDROPPEDCONTROLRECT: case CB_GETDROPPEDCONTROLRECT:
@ -1649,6 +1656,8 @@ static void copy_user_result( void *buffer, size_t size, LRESULT result, UINT me
if (lparam) *(DWORD *)lparam = ptr[1]; if (lparam) *(DWORD *)lparam = ptr[1];
break; break;
} }
case WM_SIZING:
case WM_MOVING:
case EM_GETRECT: case EM_GETRECT:
case EM_SETRECT: case EM_SETRECT:
case EM_SETRECTNP: case EM_SETRECTNP:
@ -1688,10 +1697,6 @@ static void copy_reply( LRESULT result, HWND hwnd, UINT message, WPARAM wparam,
case CB_GETCOMBOBOXINFO: case CB_GETCOMBOBOXINFO:
copy_size = sizeof(COMBOBOXINFO); copy_size = sizeof(COMBOBOXINFO);
break; break;
case WM_SIZING:
case WM_MOVING:
copy_size = sizeof(RECT);
break;
case WM_MDIGETACTIVE: case WM_MDIGETACTIVE:
if (lparam) copy_size = sizeof(BOOL); if (lparam) copy_size = sizeof(BOOL);
break; break;

View file

@ -1694,9 +1694,13 @@ static void test_wndproc_hook(void)
}, },
{ {
"WM_MOVING", WM_MOVING, "WM_MOVING", WM_MOVING,
.lparam = &rect_in, .lparam_size = sizeof(RECT), .lparam = &rect_in, .lparam_size = sizeof(RECT), .change_lparam = &rect_out,
.check_size = sizeof(RECT),
},
{
"WM_SIZING", WM_SIZING,
.lparam = &rect_in, .lparam_size = sizeof(RECT), .change_lparam = &rect_out,
.check_size = sizeof(RECT), .check_size = sizeof(RECT),
.todo = TRUE
}, },
{ {
"EM_GETRECT", EM_GETRECT, "EM_GETRECT", EM_GETRECT,

View file

@ -869,6 +869,8 @@ static size_t packed_result_32to64( UINT message, WPARAM wparam, const void *par
case CB_GETLBTEXT: case CB_GETLBTEXT:
case LB_GETTEXT: case LB_GETTEXT:
case LB_GETSELITEMS: case LB_GETSELITEMS:
case WM_SIZING:
case WM_MOVING:
break; break;
default: default: