Author: tkreuzer
Date: Tue Oct 28 00:55:22 2014
New Revision: 65063

URL: http://svn.reactos.org/svn/reactos?rev=65063&view=rev
Log:
[GDI32]
- Use GdiGetDcAttr instead of GdiGetHandleUserData where appropriate
- Add a few missing SetLastError()
- Fix return failure return value of GetBkColor()
- Improve order of operations in SelectObject (needs more fixing)

Modified:
    trunk/reactos/win32ss/gdi/gdi32/objects/dc.c

Modified: trunk/reactos/win32ss/gdi/gdi32/objects/dc.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/dc.c?rev=65063&r1=65062&r2=65063&view=diff
==============================================================================
--- trunk/reactos/win32ss/gdi/gdi32/objects/dc.c        [iso-8859-1] (original)
+++ trunk/reactos/win32ss/gdi/gdi32/objects/dc.c        [iso-8859-1] Tue Oct 28 
00:55:22 2014
@@ -438,9 +438,12 @@
         (uObjectType == OBJ_BRUSH) ||
         (uObjectType == OBJ_COLORSPACE))
     {
-        /* Get the dc attribute */
+        /* Get the DC attribute */
         pdcattr = GdiGetDcAttr(hdc);
-        if (!pdcattr) return NULL;
+        if (pdcattr == NULL)
+        {
+            return NULL;
+        }
     }
 
     /* Check what object was requested */
@@ -519,8 +522,14 @@
     }
     else
     {
-        if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+        /* Get the DC attribute */
+        pdcattr = GdiGetDcAttr(hdc);
+        if (pdcattr == NULL)
+        {
+            SetLastError(ERROR_INVALID_PARAMETER);
             return 0;
+        }
+
         if (!(pdcattr->ulDirty_ & DC_PRIMARY_DISPLAY) )
             return NtGdiGetDeviceCaps(hdc, nIndex);
     }
@@ -966,8 +975,12 @@
     PDC_ATTR pdcattr;
 
     /* Get the DC attribute */
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
         return CLR_INVALID;
+    }
 
     return pdcattr->ulBrushClr;
 }
@@ -982,8 +995,13 @@
 {
     PDC_ATTR pdcattr;
 
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    /* Get the DC attribute */
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
         return CLR_INVALID;
+    }
 
     return pdcattr->ulPenClr;
 }
@@ -1001,8 +1019,12 @@
     COLORREF crOldColor;
 
     /* Get the DC attribute */
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
         return CLR_INVALID;
+    }
 
     /* Get old color and store the new */
     crOldColor = pdcattr->ulBrushClr;
@@ -1062,8 +1084,12 @@
     PDC_ATTR pdcattr;
 
     /* Get the DC attribute */
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
-        return 0;
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        /* Don't set LastError here! */
+        return CLR_INVALID;
+    }
 
     return pdcattr->ulBackgroundClr;
 }
@@ -1081,8 +1107,12 @@
     COLORREF crOldColor;
 
     /* Get the DC attribute */
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
         return CLR_INVALID;
+    }
 
 #if 0
     if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
@@ -1129,8 +1159,12 @@
     PDC_ATTR pdcattr;
 
     /* Get the DC attribute */
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        /* Don't set LastError here! */
         return 0;
+    }
 
     return pdcattr->lBkMode;
 }
@@ -1149,8 +1183,13 @@
     INT iOldMode;
 
     /* Get the DC attribute */
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
         return 0;
+    }
+
 #if 0
     if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
     {
@@ -1193,6 +1232,7 @@
     pdcattr = GdiGetDcAttr(hdc);
     if (pdcattr == NULL)
     {
+        /* Don't set LastError here! */
         return 0;
     }
 
@@ -1233,9 +1273,11 @@
            }
 #endif
 
-    /* Get DC attribute */
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
-    {
+    /* Get the DC attribute */
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
         return 0;
     }
 
@@ -1264,9 +1306,11 @@
 {
     PDC_ATTR pdcattr;
 
-    /* Get DC attribute */
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
-    {
+    /* Get the DC attribute */
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        /* Don't set LastError here! */
         return 0;
     }
 
@@ -1293,9 +1337,11 @@
         return 0;
     }
 
-    /* Get DC attribute */
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
-    {
+    /* Get the DC attribute */
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
         return 0;
     }
 
@@ -1505,8 +1551,12 @@
     PDC_ATTR pdcattr;
 
     /* Get the DC attribute */
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&pdcattr))
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
         return 0;
+    }
 
     return pdcattr->iMapMode;
 }
@@ -1563,8 +1613,12 @@
     PDC_ATTR pdcattr;
 
     /* Get the DC attribute */
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        /* Don't set LastError here! */
         return 0;
+    }
 
     return pdcattr->lStretchBltMode;
 }
@@ -1600,8 +1654,13 @@
         }
     }
 #endif
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    /* Get the DC attribute */
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
         return 0;
+    }
 
     iOldMode = pdcattr->lStretchBltMode;
     pdcattr->lStretchBltMode = iStretchMode;
@@ -1624,8 +1683,10 @@
     PDC_ATTR pdcattr;
 
     /* Get the DC attribute */
-    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
-    {
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        /* Don't set LastError here! */
         return NULL;
     }
 
@@ -1648,15 +1709,18 @@
     HGDIOBJ hOldObj = NULL;
     UINT uType;
 
-    if(!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
-    {
-        SetLastError(ERROR_INVALID_HANDLE);
-        return NULL;
-    }
-
+    /* Fix up 16 bit handles */
     hGdiObj = GdiFixUpHandle(hGdiObj);
     if (!GdiIsHandleValid(hGdiObj))
     {
+        return NULL;
+    }
+
+    /* Get the DC attribute */
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
         return NULL;
     }
 


Reply via email to