[WIN32K] -Get the new value of SPI_SETFLATMENU from pvParam.
[reactos.git] / reactos / win32ss / user / ntuser / sysparams.c
index e5bfde4..6865efd 100644 (file)
@@ -312,6 +312,7 @@ SpiUpdatePerUserSystemParameters(VOID)
     gspv.serialkeys.cbSize = sizeof(SERIALKEYS);
     gspv.soundsentry.cbSize = sizeof(SOUNDSENTRYW);
     gspv.highcontrast.cbSize = sizeof(HIGHCONTRASTW);
+    gspv.animationinfo.cbSize = sizeof(ANIMATIONINFO);
 
     /* Make sure we don't use broken values */
     SpiFixupValues();
@@ -906,14 +907,6 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
 
         case SPI_GETNONCLIENTMETRICS:
         {
-            LPNONCLIENTMETRICSW metrics = (LPNONCLIENTMETRICSW)pvParam;
-
-            if (uiParam != 0 && uiParam != sizeof(NONCLIENTMETRICSW))
-                return 0;
-
-            if (!metrics || metrics->cbSize != sizeof(NONCLIENTMETRICSW))
-                return 0;
-
             return SpiGet(pvParam, &gspv.ncm, sizeof(NONCLIENTMETRICSW), fl);
         }
 
@@ -921,13 +914,10 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
         {
             LPNONCLIENTMETRICSW metrics = (LPNONCLIENTMETRICSW)pvParam;
 
-            if (uiParam != 0 && uiParam != sizeof(NONCLIENTMETRICSW))
-                return 0;
-
-            if (!metrics || metrics->cbSize != sizeof(NONCLIENTMETRICSW))
-                return 0;
-
-            if (!SpiSet(&gspv.ncm, pvParam, sizeof(NONCLIENTMETRICSW), fl))
+            /* Fixup user's structure size */
+            metrics->cbSize = sizeof(NONCLIENTMETRICSW);
+            
+            if (!SpiSet(&gspv.ncm, metrics, sizeof(NONCLIENTMETRICSW), fl))
                 return 0;
 
             if (fl & SPIF_UPDATEINIFILE)
@@ -959,14 +949,6 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
 
         case SPI_GETMINIMIZEDMETRICS:
         {
-            LPMINIMIZEDMETRICS metrics = (LPMINIMIZEDMETRICS)pvParam;
-
-            if (uiParam != 0 && uiParam != sizeof(MINIMIZEDMETRICS))
-                return 0;
-
-            if (!metrics || metrics->cbSize != sizeof(MINIMIZEDMETRICS))
-                return 0;
-
             return SpiGet(pvParam, &gspv.mm, sizeof(MINIMIZEDMETRICS), fl);
         }
 
@@ -974,13 +956,10 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
         {
             LPMINIMIZEDMETRICS metrics = (LPMINIMIZEDMETRICS)pvParam;
 
-            if (uiParam != 0 && uiParam != sizeof(MINIMIZEDMETRICS))
-                return 0;
+            /* Fixup user's structure size */
+            metrics->cbSize = sizeof(MINIMIZEDMETRICS);
 
-            if (!metrics || metrics->cbSize != sizeof(MINIMIZEDMETRICS))
-                return 0;
-
-            if (!SpiSet(&gspv.mm, pvParam, sizeof(MINIMIZEDMETRICS), fl))
+            if (!SpiSet(&gspv.mm, metrics, sizeof(MINIMIZEDMETRICS), fl))
                 return 0;
 
             gspv.mm.iWidth = max(0, gspv.mm.iWidth);
@@ -1001,28 +980,17 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
 
         case SPI_GETICONMETRICS:
         {
-            LPICONMETRICSW IconMetrics = (LPICONMETRICSW)pvParam;
-
-            if (uiParam != 0 && uiParam != sizeof(ICONMETRICSW))
-                return 0;
-
-            if (!IconMetrics || IconMetrics->cbSize != sizeof(ICONMETRICSW))
-                return 0;
-
             return SpiGet(pvParam, &gspv.im, sizeof(ICONMETRICSW), fl);
         }
 
         case SPI_SETICONMETRICS:
         {
-            LPICONMETRICSW IconMetrics = (LPICONMETRICSW)pvParam;
+            LPICONMETRICSW metrics = (LPICONMETRICSW)pvParam;
 
-            if (uiParam != 0 && uiParam != sizeof(ICONMETRICSW))
-                return 0;
-
-            if (!IconMetrics || IconMetrics->cbSize != sizeof(ICONMETRICSW))
-                return 0;
+            /* Fixup user's structure size */
+            metrics->cbSize = sizeof(ICONMETRICSW);
 
-            if (!SpiSet(&gspv.im, pvParam, sizeof(ICONMETRICSW), fl))
+            if (!SpiSet(&gspv.im, metrics, sizeof(ICONMETRICSW), fl))
                 return 0;
 
             if (fl & SPIF_UPDATEINIFILE)
@@ -1659,7 +1627,7 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
             return SpiGetInt(pvParam, &gspv.bFlatMenu, fl);
 
         case SPI_SETFLATMENU:
-            return SpiSetBool(&gspv.bFlatMenu, uiParam, KEY_MOUSE, L"", fl);
+            return SpiSetBool(&gspv.bFlatMenu, (BOOL)pvParam, KEY_MOUSE, L"", fl);
 
         case SPI_GETDROPSHADOW:
             return SpiGetInt(pvParam, &gspv.bDropShadow, fl);