user: Copy back the 16-bit MDICREATESTRUCT.
Otherwise lpCreateParams is overwitten by CREATESTRUCT32Ato16(). Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52356 Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
691c7775d1
commit
8e5774eaa6
|
@ -610,6 +610,7 @@ LRESULT WINPROC_CallProc16To32A( winproc_callback_t callback, HWND16 hwnd, UINT1
|
|||
CREATESTRUCT16 *cs16 = MapSL(lParam);
|
||||
CREATESTRUCTA cs;
|
||||
MDICREATESTRUCTA mdi_cs;
|
||||
SEGPTR mdi_cs_segptr = 0;
|
||||
|
||||
CREATESTRUCT16to32A( cs16, &cs );
|
||||
if (GetWindowLongW(hwnd32, GWL_EXSTYLE) & WS_EX_MDICHILD)
|
||||
|
@ -617,9 +618,15 @@ LRESULT WINPROC_CallProc16To32A( winproc_callback_t callback, HWND16 hwnd, UINT1
|
|||
MDICREATESTRUCT16 *mdi_cs16 = MapSL(cs16->lpCreateParams);
|
||||
MDICREATESTRUCT16to32A(mdi_cs16, &mdi_cs);
|
||||
cs.lpCreateParams = &mdi_cs;
|
||||
mdi_cs_segptr = cs16->lpCreateParams;
|
||||
}
|
||||
ret = callback( hwnd32, msg, wParam, (LPARAM)&cs, result, arg );
|
||||
CREATESTRUCT32Ato16( &cs, cs16 );
|
||||
if (mdi_cs_segptr)
|
||||
{
|
||||
MDICREATESTRUCT32Ato16( &mdi_cs, MapSL( mdi_cs_segptr ) );
|
||||
cs16->lpCreateParams = mdi_cs_segptr;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WM_MDICREATE:
|
||||
|
|
Loading…
Reference in New Issue