From 0bbd5c592b6607447e6236653815b2f2999f5bd9 Mon Sep 17 00:00:00 2001 From: Dmitry Chapyshev Date: Sat, 10 Sep 2016 18:39:40 +0000 Subject: [PATCH] [NtUser] Fix 3 new tests for GET/SET NONCLIENTMETRICS, MINIMIZEDMETRICS, ICONMETRICS svn path=/trunk/; revision=72648 --- reactos/win32ss/user/ntuser/sysparams.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/reactos/win32ss/user/ntuser/sysparams.c b/reactos/win32ss/user/ntuser/sysparams.c index 6b2a76e7cb9..97a7b02ef2f 100644 --- a/reactos/win32ss/user/ntuser/sysparams.c +++ b/reactos/win32ss/user/ntuser/sysparams.c @@ -912,7 +912,12 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl) case SPI_SETNONCLIENTMETRICS: { - if (!SpiSet(&gspv.ncm, pvParam, sizeof(NONCLIENTMETRICSW), fl)) + LPNONCLIENTMETRICSW metrics = (LPNONCLIENTMETRICSW)pvParam; + + /* Fixup user's structure size */ + metrics->cbSize = sizeof(NONCLIENTMETRICSW); + + if (!SpiSet(&gspv.ncm, metrics, sizeof(NONCLIENTMETRICSW), fl)) return 0; if (fl & SPIF_UPDATEINIFILE) @@ -949,7 +954,12 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl) case SPI_SETMINIMIZEDMETRICS: { - if (!SpiSet(&gspv.mm, pvParam, sizeof(MINIMIZEDMETRICS), fl)) + LPMINIMIZEDMETRICS metrics = (LPMINIMIZEDMETRICS)pvParam; + + /* Fixup user's structure size */ + metrics->cbSize = sizeof(MINIMIZEDMETRICS); + + if (!SpiSet(&gspv.mm, metrics, sizeof(MINIMIZEDMETRICS), fl)) return 0; gspv.mm.iWidth = max(0, gspv.mm.iWidth); @@ -975,7 +985,12 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl) case SPI_SETICONMETRICS: { - if (!SpiSet(&gspv.im, pvParam, sizeof(ICONMETRICSW), fl)) + LPICONMETRICSW metrics = (LPICONMETRICSW)pvParam; + + /* Fixup user's structure size */ + metrics->cbSize = sizeof(ICONMETRICSW); + + if (!SpiSet(&gspv.im, metrics, sizeof(ICONMETRICSW), fl)) return 0; if (fl & SPIF_UPDATEINIFILE)