win32u: Use user message packing for WM_GETMINMAXINFO.

This commit is contained in:
Jacek Caban 2023-07-18 00:06:13 +02:00 committed by Alexandre Julliard
parent 4777bd62ae
commit f104be399b
4 changed files with 18 additions and 5 deletions

View file

@ -840,9 +840,7 @@ BOOL unpack_message( HWND hwnd, UINT message, WPARAM *wparam, LPARAM *lparam,
case LB_DIR:
case LB_ADDFILE:
case EM_REPLACESEL:
break;
case WM_GETMINMAXINFO:
minsize = sizeof(MINMAXINFO);
break;
case WM_DRAWITEM:
{
@ -1187,6 +1185,7 @@ BOOL WINAPI User32CallWindowProc( struct win_proc_params *params, ULONG size )
case LB_DIR:
case LB_ADDFILE:
case EM_REPLACESEL:
case WM_GETMINMAXINFO:
{
LRESULT *result_ptr = (LRESULT *)buffer - 1;
*result_ptr = result;

View file

@ -430,6 +430,9 @@ static BOOL unpack_message( HWND hwnd, UINT message, WPARAM *wparam, LPARAM *lpa
case LB_ADDFILE:
case EM_REPLACESEL:
break;
case WM_GETMINMAXINFO:
minsize = sizeof(MINMAXINFO);
break;
case WM_WINE_SETWINDOWPOS:
{
WINDOWPOS wp;
@ -1214,6 +1217,9 @@ size_t user_message_size( UINT message, WPARAM wparam, LPARAM lparam, BOOL other
case EM_REPLACESEL:
if (other_process && lparam) size = string_size( lparam_ptr, ansi );
break;
case WM_GETMINMAXINFO:
size = sizeof(MINMAXINFO);
break;
}
return size;
@ -1325,6 +1331,9 @@ static void copy_user_result( void *buffer, size_t size, LRESULT result, UINT me
case WM_ASKCBFORMATNAME:
copy_size = string_size( buffer, ansi );
break;
case WM_GETMINMAXINFO:
copy_size = sizeof(MINMAXINFO);
break;
default:
return;
}
@ -1349,9 +1358,6 @@ static void copy_reply( LRESULT result, HWND hwnd, UINT message, WPARAM wparam,
case LB_GETTEXT:
copy_size = (result + 1) * sizeof(WCHAR);
break;
case WM_GETMINMAXINFO:
copy_size = sizeof(MINMAXINFO);
break;
case WM_MEASUREITEM:
copy_size = sizeof(MEASUREITEMSTRUCT);
break;

View file

@ -1608,6 +1608,8 @@ static void test_wndproc_hook(void)
static const WCHAR strbuf4W[8] = L"abc\0\xcccc\xcccc\xcccc\xcccc";
static const RECT rect_in = { 1, 2, 100, 200 };
static const RECT rect_out = { 3, 4, 110, 220 };
static const MINMAXINFO minmax_in = { .ptMinTrackSize.x = 1 };
static const MINMAXINFO minmax_out = { .ptMinTrackSize.x = 2 };
static const struct lparam_hook_test lparam_hook_tests[] =
{
@ -1692,6 +1694,11 @@ static void test_wndproc_hook(void)
.lparam_size = sizeof(BOOL), .change_lparam = &false_lparam,
.todo = TRUE
},
{
"WM_GETMINMAXINFO", WM_GETMINMAXINFO,
.lparam_size = sizeof(minmax_in), .lparam = &minmax_in, .change_lparam = &minmax_out,
.check_size = sizeof(minmax_in)
},
/* messages that don't change lparam */
{ "WM_USER", WM_USER },
{ "WM_NOTIFY", WM_NOTIFY },

View file

@ -697,6 +697,7 @@ static size_t packed_result_32to64( UINT message, WPARAM wparam, const void *par
case WM_GETTEXT:
case WM_ASKCBFORMATNAME:
case WM_GETMINMAXINFO:
break;
default: