From: Sven Baars sbaars@codeweavers.com
--- dlls/wow64win/user.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/wow64win/user.c b/dlls/wow64win/user.c index 602ccfa79b9..0c2a02e694b 100644 --- a/dlls/wow64win/user.c +++ b/dlls/wow64win/user.c @@ -580,11 +580,14 @@ static UINT hook_lparam_64to32( struct win_hook_params *params, const void *lp, { const CREATESTRUCTW *cs = lp; CREATESTRUCT32 *cs32 = lp32; + UINT size = params->lparam_size - sizeof(*cs); + createstruct_64to32( cs, cs32 ); cs32->lpszName = PtrToUlong( cs->lpszName ); cs32->lpszClass = PtrToUlong( cs->lpszClass ); + if (size) memcpy( cs32 + 1, cs + 1, size ); } - return sizeof(CREATESTRUCT32); + return params->lparam_size - sizeof(CREATESTRUCTW) + sizeof(CREATESTRUCT32);
case HCBT_ACTIVATE: if (lp)