Author: tkreuzer
Date: Mon Oct 27 23:37:05 2014
New Revision: 65055

URL: http://svn.reactos.org/svn/reactos?rev=65055&view=rev
Log:
[GDI32]
- Improve formatting
- Use more consistent variable names
- Remove unnecessary casts
- Add some annotations
- No intended code changes

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=65055&r1=65054&r2=65055&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] Mon Oct 27 
23:37:05 2014
@@ -7,14 +7,15 @@
 
 HDC
 FASTCALL
-IntCreateDICW ( LPCWSTR   lpwszDriver,
-                LPCWSTR   lpwszDevice,
-                LPCWSTR   lpwszOutput,
-                PDEVMODEW lpInitData,
-                ULONG     iType )
+IntCreateDICW(
+    LPCWSTR lpwszDriver,
+    LPCWSTR lpwszDevice,
+    LPCWSTR lpwszOutput,
+    PDEVMODEW lpInitData,
+    ULONG iType)
 {
     UNICODE_STRING Device, Output;
-    HDC hDC = NULL;
+    HDC hdc = NULL;
     BOOL Display = FALSE, Default = FALSE;
     ULONG UMdhpdev = 0;
 
@@ -60,32 +61,32 @@
         DPRINT1("Not a DISPLAY device! %wZ\n", &Device);
     }
 
-    hDC = NtGdiOpenDCW( (Default ? NULL : &Device),
-                        (PDEVMODEW) lpInitData,
-                        (lpwszOutput ? &Output : NULL),
-                        iType,             // DCW 0 and ICW 1.
-                        Display,
-                        hspool,
-                        (PVOID) NULL,       // NULL for now.
-                        (PVOID) &UMdhpdev );
+    hdc = NtGdiOpenDCW((Default ? NULL : &Device),
+                       (PDEVMODEW) lpInitData,
+                       (lpwszOutput ? &Output : NULL),
+                       iType,             // DCW 0 and ICW 1.
+                       Display,
+                       hspool,
+                       (PVOID) NULL,       // NULL for now.
+                       (PVOID) &UMdhpdev );
 #if 0
 // Handle something other than a normal dc object.
-    if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
+    if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
     {
         PDC_ATTR Dc_Attr;
         PLDC pLDC;
 
-        GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr);
+        GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&Dc_Attr);
 
         pLDC = LocalAlloc(LMEM_ZEROINIT, sizeof(LDC));
 
         Dc_Attr->pvLDC = pLDC;
-        pLDC->hDC = hDC;
+        pLDC->hDC = hdc;
         pLDC->iType = LDC_LDC; // 1 (init) local DC, 2 EMF LDC
         DbgPrint("DC_ATTR Allocated -> 0x%x\n",Dc_Attr);
     }
 #endif
-    return hDC;
+    return hdc;
 }
 
 
@@ -94,22 +95,24 @@
  */
 HDC
 WINAPI
-CreateCompatibleDC ( HDC hdc)
-{
-    HDC rhDC;
-// PDC_ATTR Dc_Attr;
-
-    rhDC = NtGdiCreateCompatibleDC(hdc);
+CreateCompatibleDC(
+    _In_ HDC hdc)
+{
+    HDC hdcNew;
+// PDC_ATTR pdcattr;
+
+    hdcNew = NtGdiCreateCompatibleDC(hdc);
 #if 0
-    if ( hdc && rhDC)
-    {
-        if (GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr))
-        {
-            if ( Dc_Attr->pvLIcm ) IcmCompatibleDC(rhDC, hdc, Dc_Attr);
+    if ( hdc && hdcNew)
+    {
+        if (GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+        {
+            if (pdcattr->pvLIcm) IcmCompatibleDC(hdcNew, hdc, pdcattr);
         }
     }
 #endif
-    return rhDC;
+
+    return hdcNew;
 }
 
 /*
@@ -118,64 +121,68 @@
 HDC
 WINAPI
 CreateDCA (
-    LPCSTR             lpszDriver,
-    LPCSTR             lpszDevice,
-    LPCSTR             lpszOutput,
-    CONST DEVMODEA     * lpdvmInit
-)
+    LPCSTR lpszDriver,
+    LPCSTR lpszDevice,
+    LPCSTR lpszOutput,
+    CONST DEVMODEA * lpdvmInit)
 {
     ANSI_STRING DriverA, DeviceA, OutputA;
     UNICODE_STRING DriverU, DeviceU, OutputU;
     LPDEVMODEW dvmInitW = NULL;
-    HDC hDC;
+    HDC hdc;
 
     /*
      * If needed, convert to Unicode
      * any string parameter.
      */
 
-    if (NULL != lpszDriver)
+    if (lpszDriver != NULL)
     {
         RtlInitAnsiString(&DriverA, (LPSTR)lpszDriver);
         RtlAnsiStringToUnicodeString(&DriverU, &DriverA, TRUE);
     }
     else
+    {
         DriverU.Buffer = NULL;
-    if (NULL != lpszDevice)
+    }
+
+    if (lpszDevice != NULL)
     {
         RtlInitAnsiString(&DeviceA, (LPSTR)lpszDevice);
         RtlAnsiStringToUnicodeString(&DeviceU, &DeviceA, TRUE);
     }
     else
+    {
         DeviceU.Buffer = NULL;
-    if (NULL != lpszOutput)
+    }
+
+    if (lpszOutput != NULL)
     {
         RtlInitAnsiString(&OutputA, (LPSTR)lpszOutput);
         RtlAnsiStringToUnicodeString(&OutputU, &OutputA, TRUE);
     }
     else
+    {
         OutputU.Buffer = NULL;
-
-    if ( lpdvmInit )
+    }
+
+    if (lpdvmInit != NULL)
         dvmInitW = GdiConvertToDevmodeW((LPDEVMODEA)lpdvmInit);
 
-    hDC = IntCreateDICW ( DriverU.Buffer,
-                          DeviceU.Buffer,
-                          OutputU.Buffer,
-                          lpdvmInit ? dvmInitW : NULL,
-                          0 );
-    HEAP_free (dvmInitW);
-    /*
-     * Free Unicode parameters.
-     */
+    hdc = IntCreateDICW(DriverU.Buffer,
+                        DeviceU.Buffer,
+                        OutputU.Buffer,
+                        lpdvmInit ? dvmInitW : NULL,
+                        0);
+    HEAP_free(dvmInitW);
+
+    /* Free Unicode parameters. */
     RtlFreeUnicodeString(&DriverU);
     RtlFreeUnicodeString(&DeviceU);
     RtlFreeUnicodeString(&OutputU);
 
-    /*
-     * Return the possible DC handle.
-     */
-    return hDC;
+    /* Return the DC handle. */
+    return hdc;
 }
 
 
@@ -185,18 +192,16 @@
 HDC
 WINAPI
 CreateDCW (
-    LPCWSTR            lpwszDriver,
-    LPCWSTR            lpwszDevice,
-    LPCWSTR            lpwszOutput,
-    CONST DEVMODEW     *lpInitData
-)
-{
-
-    return  IntCreateDICW ( lpwszDriver,
-                            lpwszDevice,
-                            lpwszOutput,
-                            (PDEVMODEW) lpInitData,
-                            0 );
+    LPCWSTR lpwszDriver,
+    LPCWSTR lpwszDevice,
+    LPCWSTR lpwszOutput,
+    CONST DEVMODEW *lpInitData)
+{
+    return IntCreateDICW(lpwszDriver,
+                         lpwszDevice,
+                         lpwszOutput,
+                         (PDEVMODEW)lpInitData,
+                         0);
 }
 
 
@@ -206,17 +211,16 @@
 HDC
 WINAPI
 CreateICW(
-    LPCWSTR            lpszDriver,
-    LPCWSTR            lpszDevice,
-    LPCWSTR            lpszOutput,
-    CONST DEVMODEW *lpdvmInit
-)
-{
-    return IntCreateDICW ( lpszDriver,
-                           lpszDevice,
-                           lpszOutput,
-                           (PDEVMODEW) lpdvmInit,
-                           1 );
+    LPCWSTR lpszDriver,
+    LPCWSTR lpszDevice,
+    LPCWSTR lpszOutput,
+    CONST DEVMODEW *lpdvmInit)
+{
+    return IntCreateDICW(lpszDriver,
+                         lpszDevice,
+                         lpszOutput,
+                         (PDEVMODEW)lpdvmInit,
+                         1);
 }
 
 
@@ -226,48 +230,48 @@
 HDC
 WINAPI
 CreateICA(
-    LPCSTR             lpszDriver,
-    LPCSTR             lpszDevice,
-    LPCSTR             lpszOutput,
-    CONST DEVMODEA *lpdvmInit
-)
+    LPCSTR lpszDriver,
+    LPCSTR lpszDevice,
+    LPCSTR lpszOutput,
+    CONST DEVMODEA *lpdvmInit)
 {
     NTSTATUS Status;
     LPWSTR lpszDriverW, lpszDeviceW, lpszOutputW;
     LPDEVMODEW dvmInitW = NULL;
-    HDC rc = 0;
-
-    Status = HEAP_strdupA2W ( &lpszDriverW, lpszDriver );
-    if (!NT_SUCCESS (Status))
-        SetLastError (RtlNtStatusToDosError(Status));
+    HDC hdc = 0;
+
+    Status = HEAP_strdupA2W(&lpszDriverW, lpszDriver);
+    if (!NT_SUCCESS(Status))
+        SetLastError(RtlNtStatusToDosError(Status));
     else
     {
-        Status = HEAP_strdupA2W ( &lpszDeviceW, lpszDevice );
-        if (!NT_SUCCESS (Status))
-            SetLastError (RtlNtStatusToDosError(Status));
+        Status = HEAP_strdupA2W(&lpszDeviceW, lpszDevice);
+        if (!NT_SUCCESS(Status))
+            SetLastError(RtlNtStatusToDosError(Status));
         else
         {
-            Status = HEAP_strdupA2W ( &lpszOutputW, lpszOutput );
-            if (!NT_SUCCESS (Status))
-                SetLastError (RtlNtStatusToDosError(Status));
+            Status = HEAP_strdupA2W(&lpszOutputW, lpszOutput);
+            if (!NT_SUCCESS(Status))
+                SetLastError(RtlNtStatusToDosError(Status));
             else
             {
-                if ( lpdvmInit )
+                if (lpdvmInit)
                     dvmInitW = GdiConvertToDevmodeW((LPDEVMODEA)lpdvmInit);
 
-                rc = IntCreateDICW ( lpszDriverW,
-                                     lpszDeviceW,
-                                     lpszOutputW,
-                                     lpdvmInit ? dvmInitW : NULL,
-                                     1 );
-                HEAP_free (dvmInitW);
-                HEAP_free ( lpszOutputW );
-            }
-            HEAP_free ( lpszDeviceW );
-        }
-        HEAP_free ( lpszDriverW );
-    }
-    return rc;
+                hdc = IntCreateDICW(lpszDriverW,
+                                    lpszDeviceW,
+                                    lpszOutputW,
+                                    lpdvmInit ? dvmInitW : NULL,
+                                    1 );
+                HEAP_free(dvmInitW);
+                HEAP_free(lpszOutputW);
+            }
+            HEAP_free(lpszDeviceW);
+        }
+        HEAP_free(lpszDriverW);
+    }
+
+    return hdc;
 }
 
 
@@ -276,14 +280,14 @@
  */
 BOOL
 WINAPI
-DeleteDC(HDC hDC)
-{
-    BOOL Ret = TRUE;
+DeleteDC(HDC hdc)
+{
+    BOOL bResult = TRUE;
     PLDC pLDC = NULL;
     HANDLE hPrinter = NULL;
-    ULONG hType = GDI_HANDLE_GET_TYPE(hDC);
-
-    pLDC = GdiGetLDC(hDC);
+    ULONG hType = GDI_HANDLE_GET_TYPE(hdc);
+
+    pLDC = GdiGetLDC(hdc);
 
     if (hType != GDILoObjType_LO_DC_TYPE)
     {
@@ -293,24 +297,27 @@
             SetLastError(ERROR_INVALID_HANDLE);
             return FALSE;
         }
-        if (pLDC->Flags & LDC_INIT_DOCUMENT) AbortDoc(hDC);
+        if (pLDC->Flags & LDC_INIT_DOCUMENT) AbortDoc(hdc);
         if (pLDC->hPrinter)
         {
-            DocumentEventEx(NULL, pLDC->hPrinter, hDC, DOCUMENTEVENT_DELETEDC, 
0, NULL, 0, NULL);
+            DocumentEventEx(NULL, pLDC->hPrinter, hdc, DOCUMENTEVENT_DELETEDC, 
0, NULL, 0, NULL);
             hPrinter = pLDC->hPrinter;
             pLDC->hPrinter = NULL;
         }
     }
 
-    Ret = NtGdiDeleteObjectApp(hDC);
-
-    if (Ret && pLDC )
+    bResult = NtGdiDeleteObjectApp(hdc);
+
+    if (bResult && pLDC)
     {
         DPRINT1("Delete the Local DC structure\n");
         LocalFree( pLDC );
     }
-    if (hPrinter) fpClosePrinter(hPrinter);
-    return Ret;
+
+    if (hPrinter)
+        fpClosePrinter(hPrinter);
+
+    return bResult;
 }
 
 /*
@@ -370,7 +377,7 @@
         PTEB pTeb;
         PGDIBSOBJECT pgO;
 
-        if ((!GdiGetHandleUserData(hObject, dwType, (PVOID) &Brh_Attr)) ||
+        if ((!GdiGetHandleUserData(hObject, dwType, (PVOID*)&Brh_Attr)) ||
             (Brh_Attr == NULL)) break;
 
         pTeb = NtCurrentTeb();
@@ -397,7 +404,8 @@
 
 INT
 WINAPI
-GetArcDirection( HDC hdc )
+GetArcDirection(
+    _In_ HDC hdc)
 {
     return GetDCDWord( hdc, GdiGetArcDirection, 0);
 }
@@ -405,9 +413,11 @@
 
 INT
 WINAPI
-SetArcDirection( HDC hdc, INT nDirection )
-{
-    return GetAndSetDCDWord( hdc, GdiGetSetArcDirection, nDirection, 0, 0, 0 );
+SetArcDirection(
+   _In_ HDC hdc,
+   _In_ INT nDirection)
+{
+    return GetAndSetDCDWord(hdc, GdiGetSetArcDirection, nDirection, 0, 0, 0);
 }
 
 /*
@@ -474,24 +484,25 @@
  */
 int
 WINAPI
-GetDeviceCaps(HDC hDC,
-              int i)
-{
-    PDC_ATTR Dc_Attr;
+GetDeviceCaps(
+    _In_ HDC hdc,
+    _In_ int nIndex)
+{
+    PDC_ATTR pdcattr;
     PLDC pLDC;
     PDEVCAPS pDevCaps = GdiDevCaps; // Primary display device capabilities.
     DPRINT("Device CAPS1\n");
 
-    if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
-    {
-        if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
-        {
-            if ( i == TECHNOLOGY) return DT_METAFILE;
+    if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+    {
+        if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+        {
+            if (nIndex == TECHNOLOGY) return DT_METAFILE;
             return 0;
         }
         else
         {
-            pLDC = GdiGetLDC(hDC);
+            pLDC = GdiGetLDC(hdc);
             if ( !pLDC )
             {
                 SetLastError(ERROR_INVALID_HANDLE);
@@ -499,7 +510,7 @@
             }
             if (!(pLDC->Flags & LDC_DEVCAPS))
             {
-                if (!NtGdiGetDeviceCapsAll(hDC, &pLDC->DevCaps))
+                if (!NtGdiGetDeviceCapsAll(hdc, &pLDC->DevCaps))
                     SetLastError(ERROR_INVALID_PARAMETER);
                 pLDC->Flags |= LDC_DEVCAPS;
             }
@@ -508,14 +519,14 @@
     }
     else
     {
-        if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr))
+        if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
             return 0;
-        if (!(Dc_Attr->ulDirty_ & DC_PRIMARY_DISPLAY) )
-            return NtGdiGetDeviceCaps(hDC,i);
+        if (!(pdcattr->ulDirty_ & DC_PRIMARY_DISPLAY) )
+            return NtGdiGetDeviceCaps(hdc, nIndex);
     }
     DPRINT("Device CAPS2\n");
 
-    switch (i)
+    switch (nIndex)
     {
     case DRIVERVERSION:
         return pDevCaps->ulVersion;
@@ -643,11 +654,10 @@
 DWORD
 WINAPI
 GetRelAbs(
-    HDC  hdc,
-    DWORD dwIgnore
-)
-{
-    return GetDCDWord( hdc, GdiGetRelAbs, 0);
+    _In_ HDC hdc,
+    _In_ DWORD dwIgnore)
+{
+    return GetDCDWord(hdc, GdiGetRelAbs, 0);
 }
 
 
@@ -658,10 +668,9 @@
 WINAPI
 SetRelAbs(
     HDC hdc,
-    INT Mode
-)
-{
-    return GetAndSetDCDWord( hdc, GdiGetSetRelAbs, Mode, 0, 0, 0 );
+    INT Mode)
+{
+    return GetAndSetDCDWord(hdc, GdiGetSetRelAbs, Mode, 0, 0, 0);
 }
 
 
@@ -670,17 +679,25 @@
  */
 DWORD
 WINAPI
-GetAndSetDCDWord( HDC hDC, INT u, DWORD dwIn, DWORD Unk1, DWORD Unk2, DWORD 
Unk3 )
-{
+GetAndSetDCDWord(
+    _In_ HDC hdc,
+    _In_ UINT u,
+    _In_ DWORD dwIn,
+    _In_ ULONG ulMFId,
+    _In_ USHORT usMF16Id,
+    _In_ DWORD dwError)
+{
+    DWORD dwResult;
     BOOL Ret = TRUE;
-// Handle something other than a normal dc object.
-    if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
-    {
-        if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
+
+    /* Handle something other than a normal dc object. */
+    if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+    {
+        if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
             return 0; //call MFDRV
         else
         {
-            PLDC pLDC = GdiGetLDC(hDC);
+            PLDC pLDC = GdiGetLDC(hdc);
             if ( !pLDC )
             {
                 SetLastError(ERROR_INVALID_HANDLE);
@@ -695,12 +712,14 @@
             }
         }
     }
-    Ret = NtGdiGetAndSetDCDword( hDC, u, dwIn, (DWORD*) &u );
-    if (Ret)
-        return u;
-    else
+
+    if (!NtGdiGetAndSetDCDword(hdc, u, dwIn, &dwResult))
+    {
         SetLastError(ERROR_INVALID_HANDLE);
-    return 0;
+        return 0;
+    }
+
+    return dwResult;
 }
 
 
@@ -709,11 +728,19 @@
  */
 DWORD
 WINAPI
-GetDCDWord( HDC hDC, INT u, DWORD Result )
-{
-    BOOL Ret = NtGdiGetDCDword( hDC, u, (DWORD*) &u );
-    if (!Ret) return Result;
-    else return u;
+GetDCDWord(
+    _In_ HDC hdc,
+    _In_ UINT u,
+    _In_ DWORD dwError)
+{
+    DWORD dwResult;
+
+    if (!NtGdiGetDCDword(hdc, u, &dwResult))
+    {
+        return dwError;
+    }
+
+    return dwResult;
 }
 
 
@@ -724,10 +751,9 @@
 WINAPI
 GetAspectRatioFilterEx(
     HDC hdc,
-    LPSIZE lpAspectRatio
-)
-{
-    return NtGdiGetDCPoint( hdc, GdiGetAspectRatioFilter, (PPOINTL) 
lpAspectRatio );
+    LPSIZE lpAspectRatio)
+{
+    return NtGdiGetDCPoint(hdc, GdiGetAspectRatioFilter, 
(PPOINTL)lpAspectRatio );
 }
 
 
@@ -738,8 +764,7 @@
 WINAPI
 GetDCOrgEx(
     HDC hdc,
-    LPPOINT lpPoint
-)
+    LPPOINT lpPoint)
 {
     return NtGdiGetDCPoint( hdc, GdiGetDCOrg, (PPOINTL)lpPoint );
 }
@@ -766,7 +791,10 @@
  */
 int
 WINAPI
-GetObjectW(HGDIOBJ hGdiObj, int cbSize, LPVOID lpBuffer)
+GetObjectW(
+    _In_ HGDIOBJ hGdiObj,
+    _In_ int cbSize,
+    _Out_ LPVOID lpBuffer)
 {
     DWORD dwType;
     INT cbResult = 0;
@@ -858,7 +886,10 @@
 
 ULONG
 WINAPI
-GetFontObjectA(HGDIOBJ hfont, ULONG cbSize, LPVOID lpBuffer)
+GetFontObjectA(
+    _In_ HGDIOBJ hfont,
+    _In_ ULONG cbSize,
+    _Out_ LPVOID lpBuffer)
 {
     ENUMLOGFONTEXDVW elfedvW;
     ENUMLOGFONTEXDVA elfedvA;
@@ -904,7 +935,10 @@
  */
 int
 WINAPI
-GetObjectA(HGDIOBJ hGdiObj, int cbSize, LPVOID lpBuffer)
+GetObjectA(
+    _In_ HGDIOBJ hGdiObj,
+    _In_ int cbSize,
+    _Out_ LPVOID lpBuffer)
 {
     DWORD dwType = GDI_HANDLE_GET_TYPE(hGdiObj);
 
@@ -927,13 +961,15 @@
 COLORREF
 WINAPI
 GetDCBrushColor(
-    HDC hdc
-)
-{
-    PDC_ATTR Dc_Attr;
-
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return CLR_INVALID;
-    return (COLORREF) Dc_Attr->ulBrushClr;
+    _In_ HDC hdc)
+{
+    PDC_ATTR pdcattr;
+
+    /* Get the DC attribute */
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+        return CLR_INVALID;
+
+    return pdcattr->ulBrushClr;
 }
 
 /*
@@ -942,13 +978,14 @@
 COLORREF
 WINAPI
 GetDCPenColor(
-    HDC hdc
-)
-{
-    PDC_ATTR Dc_Attr;
-
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return CLR_INVALID;
-    return (COLORREF) Dc_Attr->ulPenClr;
+    _In_ HDC hdc)
+{
+    PDC_ATTR pdcattr;
+
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+        return CLR_INVALID;
+
+    return pdcattr->ulPenClr;
 }
 
 /*
@@ -957,26 +994,27 @@
 COLORREF
 WINAPI
 SetDCBrushColor(
-    HDC hdc,
-    COLORREF crColor
-)
-{
-    PDC_ATTR Dc_Attr;
-    COLORREF OldColor = CLR_INVALID;
-
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return OldColor;
-    else
-    {
-        OldColor = (COLORREF) Dc_Attr->ulBrushClr;
-        Dc_Attr->ulBrushClr = (ULONG) crColor;
-
-        if ( Dc_Attr->crBrushClr != crColor ) // if same, don't force a copy.
-        {
-            Dc_Attr->ulDirty_ |= DIRTY_FILL;
-            Dc_Attr->crBrushClr = crColor;
-        }
-    }
-    return OldColor;
+    _In_ HDC hdc,
+    _In_ COLORREF crColor)
+{
+    PDC_ATTR pdcattr;
+    COLORREF crOldColor;
+
+    /* Get the DC attribute */
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+        return CLR_INVALID;
+
+    /* Get old color and store the new */
+    crOldColor = pdcattr->ulBrushClr;
+    pdcattr->ulBrushClr = crColor;
+
+    if (pdcattr->crBrushClr != crColor)
+    {
+        pdcattr->ulDirty_ |= DIRTY_FILL;
+        pdcattr->crBrushClr = crColor;
+    }
+
+    return crOldColor;
 }
 
 /*
@@ -989,18 +1027,18 @@
     _In_ COLORREF crColor)
 {
     PDC_ATTR pdcattr;
-    COLORREF OldColor;
-
-    /* Get the dc attribute */
+    COLORREF crOldColor;
+
+    /* Get the DC attribute */
     pdcattr = GdiGetDcAttr(hdc);
-    if (!pdcattr)
+    if (pdcattr == NULL)
     {
         SetLastError(ERROR_INVALID_PARAMETER);
         return CLR_INVALID;
     }
 
     /* Get old color and store the new */
-    OldColor = (COLORREF)pdcattr->ulPenClr;
+    crOldColor = pdcattr->ulPenClr;
     pdcattr->ulPenClr = (ULONG)crColor;
 
     if (pdcattr->crPenClr != crColor)
@@ -1009,7 +1047,7 @@
         pdcattr->crPenClr = crColor;
     }
 
-    return OldColor;
+    return crOldColor;
 }
 
 /*
@@ -1018,11 +1056,16 @@
  */
 COLORREF
 WINAPI
-GetBkColor(HDC hdc)
-{
-    PDC_ATTR Dc_Attr;
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return 0;
-    return Dc_Attr->ulBackgroundClr;
+GetBkColor(
+    _In_ HDC hdc)
+{
+    PDC_ATTR pdcattr;
+
+    /* Get the DC attribute */
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+        return 0;
+
+    return pdcattr->ulBackgroundClr;
 }
 
 /*
@@ -1031,22 +1074,24 @@
 COLORREF
 WINAPI
 SetBkColor(
-    HDC hdc,
-    COLORREF crColor
-)
-{
-    PDC_ATTR Dc_Attr;
-    COLORREF OldColor = CLR_INVALID;
-
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return OldColor;
+    _In_ HDC hdc,
+    _In_ COLORREF crColor)
+{
+    PDC_ATTR pdcattr;
+    COLORREF crOldColor;
+
+    /* Get the DC attribute */
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+        return CLR_INVALID;
+
 #if 0
-    if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
-    {
-        if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
-            return MFDRV_SetBkColor( hDC, crColor );
+    if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+    {
+        if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+            return MFDRV_SetBkColor(hdc, crColor );
         else
         {
-            PLDC pLDC = Dc_Attr->pvLDC;
+            PLDC pLDC = pdcattr->pvLDC;
             if ( !pLDC )
             {
                 SetLastError(ERROR_INVALID_HANDLE);
@@ -1054,20 +1099,23 @@
             }
             if (pLDC->iType == LDC_EMFLDC)
             {
-                return EMFDRV_SetBkColor( hDC, crColor );
+                return EMFDRV_SetBkColor(hdc, crColor );
             }
         }
     }
 #endif
-    OldColor = (COLORREF) Dc_Attr->ulBackgroundClr;
-    Dc_Attr->ulBackgroundClr = (ULONG) crColor;
-
-    if ( Dc_Attr->crBackgroundClr != crColor )
-    {
-        Dc_Attr->ulDirty_ |= (DIRTY_BACKGROUND|DIRTY_LINE|DIRTY_FILL);
-        Dc_Attr->crBackgroundClr = crColor;
-    }
-    return OldColor;
+
+    /* Get old color and store the new */
+    crOldColor = pdcattr->ulBackgroundClr;
+    pdcattr->ulBackgroundClr = crColor;
+
+    if (pdcattr->crBackgroundClr != crColor)
+    {
+        pdcattr->ulDirty_ |= (DIRTY_BACKGROUND|DIRTY_LINE|DIRTY_FILL);
+        pdcattr->crBackgroundClr = crColor;
+    }
+
+    return crOldColor;
 }
 
 /*
@@ -1078,9 +1126,13 @@
 WINAPI
 GetBkMode(HDC hdc)
 {
-    PDC_ATTR Dc_Attr;
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return 0;
-    return Dc_Attr->lBkMode;
+    PDC_ATTR pdcattr;
+
+    /* Get the DC attribute */
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+        return 0;
+
+    return pdcattr->lBkMode;
 }
 
 /*
@@ -1089,37 +1141,42 @@
  */
 int
 WINAPI
-SetBkMode(HDC hdc,
-          int iBkMode)
-{
-    PDC_ATTR Dc_Attr;
-    INT OldMode = 0;
-
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return OldMode;
+SetBkMode(
+    _In_ HDC hdc,
+    _In_ int iBkMode)
+{
+    PDC_ATTR pdcattr;
+    INT iOldMode;
+
+    /* Get the DC attribute */
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+        return 0;
 #if 0
     if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
     {
         if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
             return MFDRV_SetBkMode( hdc, iBkMode )
-                   else
-            {
-                PLDC pLDC = Dc_Attr->pvLDC;
-                if ( !pLDC )
-                {
-                    SetLastError(ERROR_INVALID_HANDLE);
-                    return FALSE;
-                }
-                if (pLDC->iType == LDC_EMFLDC)
-                {
-                    return EMFDRV_SetBkMode( hdc, iBkMode )
-                       }
-                   }
-           }
+        else
+        {
+            PLDC pLDC = pdcattr->pvLDC;
+            if ( !pLDC )
+            {
+                SetLastError(ERROR_INVALID_HANDLE);
+                return FALSE;
+            }
+            if (pLDC->iType == LDC_EMFLDC)
+            {
+                return EMFDRV_SetBkMode(hdc, iBkMode)
+            }
+        }
+    }
 #endif
-           OldMode = Dc_Attr->lBkMode;
-    Dc_Attr->jBkMode = iBkMode; // Processed
-    Dc_Attr->lBkMode = iBkMode; // Raw
-    return OldMode;
+
+    iOldMode = pdcattr->lBkMode;
+    pdcattr->jBkMode = iBkMode; // Processed
+    pdcattr->lBkMode = iBkMode; // Raw
+
+    return iOldMode;
 }
 
 /*
@@ -1130,9 +1187,17 @@
 WINAPI
 GetPolyFillMode(HDC hdc)
 {
-    PDC_ATTR Dc_Attr;
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return 0;
-    return Dc_Attr->lFillMode;
+    PDC_ATTR pdcattr;
+
+    /* Get DC attribute */
+    pdcattr = GdiGetDcAttr(hdc);
+    if (pdcattr == NULL)
+    {
+        return 0;
+    }
+
+    /* Return current fill mode */
+    return pdcattr->lFillMode;
 }
 
 /*
@@ -1140,11 +1205,13 @@
  */
 int
 WINAPI
-SetPolyFillMode(HDC hdc,
-                int iPolyFillMode)
-{
-    INT fmode;
-    PDC_ATTR Dc_Attr;
+SetPolyFillMode(
+    _In_ HDC hdc,
+    _In_ int iPolyFillMode)
+{
+    INT iOldPolyFillMode;
+    PDC_ATTR pdcattr;
+
 #if 0
     if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
     {
@@ -1165,21 +1232,26 @@
                    }
            }
 #endif
-           if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, 
(PVOID) &Dc_Attr)) return 0;
+
+    /* Get DC attribute */
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    {
+        return 0;
+    }
 
     if (NtCurrentTeb()->GdiTebBatch.HDC == hdc)
     {
-        if (Dc_Attr->ulDirty_ & DC_MODE_DIRTY)
-        {
-            NtGdiFlush(); // Sync up Dc_Attr from Kernel space.
-            Dc_Attr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY);
-        }
-    }
-
-    fmode = Dc_Attr->lFillMode;
-    Dc_Attr->lFillMode = iPolyFillMode;
-
-    return fmode;
+        if (pdcattr->ulDirty_ & DC_MODE_DIRTY)
+        {
+            NtGdiFlush(); // Sync up pdcattr from Kernel space.
+            pdcattr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY);
+        }
+    }
+
+    iOldPolyFillMode = pdcattr->lFillMode;
+    pdcattr->lFillMode = iPolyFillMode;
+
+    return iOldPolyFillMode;
 }
 
 /*
@@ -1190,9 +1262,16 @@
 WINAPI
 GetGraphicsMode(HDC hdc)
 {
-    PDC_ATTR Dc_Attr;
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return 0;
-    return Dc_Attr->iGraphicsMode;
+    PDC_ATTR pdcattr;
+
+    /* Get DC attribute */
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    {
+        return 0;
+    }
+
+    /* Return current graphics mode */
+    return pdcattr->iGraphicsMode;
 }
 
 /*
@@ -1200,37 +1279,48 @@
  */
 int
 WINAPI
-SetGraphicsMode(HDC hdc,
-                int iMode)
-{
-    INT oMode;
-    PDC_ATTR Dc_Attr;
+SetGraphicsMode(
+    _In_ HDC hdc,
+    _In_ int iMode)
+{
+    INT iOldMode;
+    PDC_ATTR pdcattr;
+
+    /* Check parameters */
     if ((iMode < GM_COMPATIBLE) || (iMode > GM_ADVANCED))
     {
         SetLastError(ERROR_INVALID_PARAMETER);
         return 0;
     }
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return 0;
-
-    if (iMode == Dc_Attr->iGraphicsMode) return iMode;
+
+    /* Get DC attribute */
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    {
+        return 0;
+    }
+
+    /* Check for trivial case */
+    if (iMode == pdcattr->iGraphicsMode)
+        return iMode;
 
     if (NtCurrentTeb()->GdiTebBatch.HDC == hdc)
     {
-        if (Dc_Attr->ulDirty_ & DC_MODE_DIRTY)
-        {
-            NtGdiFlush(); // Sync up Dc_Attr from Kernel space.
-            Dc_Attr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY);
-        }
-    }
+        if (pdcattr->ulDirty_ & DC_MODE_DIRTY)
+        {
+            NtGdiFlush(); // Sync up pdcattr from Kernel space.
+            pdcattr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY);
+        }
+    }
+
     /* One would think that setting the graphics mode to GM_COMPATIBLE
      * would also reset the world transformation matrix to the unity
      * matrix. However, in Windows, this is not the case. This doesn't
      * make a lot of sense to me, but that's the way it is.
      */
-    oMode = Dc_Attr->iGraphicsMode;
-    Dc_Attr->iGraphicsMode = iMode;
-
-    return oMode;
+    iOldMode = pdcattr->iGraphicsMode;
+    pdcattr->iGraphicsMode = iMode;
+
+    return iOldMode;
 }
 
 /*
@@ -1239,9 +1329,8 @@
 HDC
 WINAPI
 ResetDCW(
-    HDC                hdc,
-    CONST DEVMODEW     *lpInitData
-)
+    _In_ HDC hdc,
+    _In_ CONST DEVMODEW *lpInitData)
 {
     NtGdiResetDC ( hdc, (PDEVMODEW)lpInitData, NULL, NULL, NULL);
     return hdc;
@@ -1254,9 +1343,8 @@
 HDC
 WINAPI
 ResetDCA(
-    HDC                hdc,
-    CONST DEVMODEA     *lpInitData
-)
+    _In_ HDC hdc,
+    _In_ CONST DEVMODEA *lpInitData)
 {
     LPDEVMODEW InitDataW;
 
@@ -1274,12 +1362,11 @@
 DWORD
 WINAPI
 GetObjectType(
-    HGDIOBJ h
-)
+    HGDIOBJ h)
 {
     DWORD Ret = 0;
 
-    if(GdiIsHandleValid(h))
+    if (GdiIsHandleValid(h))
     {
         LONG Type = GDI_HANDLE_GET_TYPE(h);
         switch(Type)
@@ -1324,6 +1411,11 @@
             break;
         case GDI_OBJECT_TYPE_EXTPEN:
             Ret = OBJ_EXTPEN;
+            break;
+
+        case GDILoObjType_LO_ALTDC_TYPE:
+            // FIXME: could be something else?
+            Ret = OBJ_ENHMETADC;
             break;
 
         default:
@@ -1344,23 +1436,27 @@
 HGDIOBJ
 WINAPI
 GetStockObject(
-    INT h
-)
-{
-    HGDIOBJ Ret = NULL;
-    if ((h < 0) || (h >= NB_STOCK_OBJECTS)) return Ret;
-    Ret = stock_objects[h];
-    if (!Ret)
-    {
-        HGDIOBJ Obj = NtGdiGetStockObject( h );
-
-        if (GdiIsHandleValid(Obj))
-        {
-            stock_objects[h] = Obj;
-            return Obj;
-        }// Returns Null anyway.
-    }
-    return Ret;
+    INT fnObject)
+{
+    HGDIOBJ hobj;
+
+    if ((fnObject < 0) || (fnObject >= NB_STOCK_OBJECTS))
+        return NULL;
+
+    hobj = stock_objects[fnObject];
+    if (hobj == NULL)
+    {
+        hobj = NtGdiGetStockObject(fnObject);
+
+        if (!GdiIsHandleValid(hobj))
+        {
+            return NULL;
+        }
+
+        stock_objects[fnObject] = hobj;
+    }
+
+    return hobj;
 }
 
 /* FIXME: include correct header */
@@ -1371,18 +1467,18 @@
 HPALETTE
 WINAPI
 SelectPalette(
-    HDC hDC,
-    HPALETTE hPal,
+    HDC hdc,
+    HPALETTE hpal,
     BOOL bForceBackground)
 {
 #if 0
-    if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
-    {
-        if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
-            return MFDRV_SelectPalette( hDC, hPal, bForceBackground);
+    if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+    {
+        if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+            return MFDRV_SelectPalette(hdc, hpal, bForceBackground);
         else
         {
-            PLDC pLDC = GdiGetLDC(hDC);
+            PLDC pLDC = GdiGetLDC(hdc);
             if ( !pLDC )
             {
                 SetLastError(ERROR_INVALID_HANDLE);
@@ -1390,12 +1486,12 @@
             }
             if (pLDC->iType == LDC_EMFLDC)
             {
-                if return EMFDRV_SelectPalette( hDC, hPal, bForceBackground);
+                if return EMFDRV_SelectPalette(hdc, hpal, bForceBackground);
             }
         }
     }
 #endif
-    return NtUserSelectPalette(hDC, hPal, bForceBackground);
+    return NtUserSelectPalette(hdc, hpal, bForceBackground);
 }
 
 /*
@@ -1406,9 +1502,13 @@
 WINAPI
 GetMapMode(HDC hdc)
 {
-    PDC_ATTR Dc_Attr;
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return 0;
-    return Dc_Attr->iMapMode;
+    PDC_ATTR pdcattr;
+
+    /* Get the DC attribute */
+    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&pdcattr))
+        return 0;
+
+    return pdcattr->iMapMode;
 }
 
 /*
@@ -1422,30 +1522,33 @@
 {
     PDC_ATTR pdcattr;
 
+    /* Get the DC attribute */
     pdcattr = GdiGetDcAttr(hdc);
-    if (!pdcattr)
+    if (pdcattr == NULL)
     {
         SetLastError(ERROR_INVALID_PARAMETER);
         return 0;
     }
 
 #if 0
-    if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
-    {
-        if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
+    if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+    {
+        if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
             return MFDRV_SetMapMode(hdc, iMode);
         else
         {
             SetLastError(ERROR_INVALID_HANDLE);
             return 0;
         }
+    }
 #endif
-    // Force change if Isotropic is set for recompute.
+    /* Force change if Isotropic is set for recompute. */
     if ((iMode != pdcattr->iMapMode) || (iMode == MM_ISOTROPIC))
     {
         pdcattr->ulDirty_ &= ~SLOW_WIDTHS;
         return GetAndSetDCDWord( hdc, GdiGetSetMapMode, iMode, 0, 0, 0 );
     }
+
     return pdcattr->iMapMode;
 }
 
@@ -1457,9 +1560,13 @@
 WINAPI
 GetStretchBltMode(HDC hdc)
 {
-    PDC_ATTR Dc_Attr;
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return 0;
-    return Dc_Attr->lStretchBltMode;
+    PDC_ATTR pdcattr;
+
+    /* Get the DC attribute */
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+        return 0;
+
+    return pdcattr->lStretchBltMode;
 }
 
 /*
@@ -1467,10 +1574,12 @@
  */
 int
 WINAPI
-SetStretchBltMode(HDC hdc, int iStretchMode)
-{
-    INT oSMode;
-    PDC_ATTR Dc_Attr;
+SetStretchBltMode(
+    _In_ HDC hdc,
+    _In_ int iStretchMode)
+{
+    INT iOldMode;
+    PDC_ATTR pdcattr;
 #if 0
     if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
     {
@@ -1491,17 +1600,18 @@
         }
     }
 #endif
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return 0;
-
-    oSMode = Dc_Attr->lStretchBltMode;
-    Dc_Attr->lStretchBltMode = iStretchMode;
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+        return 0;
+
+    iOldMode = pdcattr->lStretchBltMode;
+    pdcattr->lStretchBltMode = iStretchMode;
 
     // Wine returns an error here. We set the default.
     if ((iStretchMode <= 0) || (iStretchMode > MAXSTRETCHBLTMODE)) 
iStretchMode = WHITEONBLACK;
 
-    Dc_Attr->jStretchBltMode = iStretchMode;
-
-    return oSMode;
+    pdcattr->jStretchBltMode = iStretchMode;
+
+    return iOldMode;
 }
 
 /*
@@ -1511,9 +1621,16 @@
 WINAPI
 GetHFONT(HDC hdc)
 {
-    PDC_ATTR Dc_Attr;
-    if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) 
&Dc_Attr)) return NULL;
-    return Dc_Attr->hlfntNew;
+    PDC_ATTR pdcattr;
+
+    /* Get the DC attribute */
+    if (!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
+    {
+        return NULL;
+    }
+
+    /* Return the current font */
+    return pdcattr->hlfntNew;
 }
 
 
@@ -1523,14 +1640,15 @@
  */
 HGDIOBJ
 WINAPI
-SelectObject(HDC hDC,
-             HGDIOBJ hGdiObj)
-{
-    PDC_ATTR pDc_Attr;
+SelectObject(
+    _In_ HDC hdc,
+    _In_ HGDIOBJ hGdiObj)
+{
+    PDC_ATTR pdcattr;
     HGDIOBJ hOldObj = NULL;
     UINT uType;
 
-    if(!GdiGetHandleUserData(hDC, GDI_OBJECT_TYPE_DC, (PVOID)&pDc_Attr))
+    if(!GdiGetHandleUserData(hdc, GDI_OBJECT_TYPE_DC, (PVOID*)&pdcattr))
     {
         SetLastError(ERROR_INVALID_HANDLE);
         return NULL;
@@ -1547,39 +1665,39 @@
     switch (uType)
     {
         case GDI_OBJECT_TYPE_REGION:
-            return (HGDIOBJ)ExtSelectClipRgn(hDC, hGdiObj, RGN_COPY);
+            return (HGDIOBJ)ExtSelectClipRgn(hdc, hGdiObj, RGN_COPY);
 
         case GDI_OBJECT_TYPE_BITMAP:
-            return NtGdiSelectBitmap(hDC, hGdiObj);
+            return NtGdiSelectBitmap(hdc, hGdiObj);
 
         case GDI_OBJECT_TYPE_BRUSH:
-            hOldObj = pDc_Attr->hbrush;
-            pDc_Attr->ulDirty_ |= DC_BRUSH_DIRTY;
-            pDc_Attr->hbrush = hGdiObj;
+            hOldObj = pdcattr->hbrush;
+            pdcattr->ulDirty_ |= DC_BRUSH_DIRTY;
+            pdcattr->hbrush = hGdiObj;
             return hOldObj;
-//            return NtGdiSelectBrush(hDC, hGdiObj);
+//            return NtGdiSelectBrush(hdc, hGdiObj);
 
         case GDI_OBJECT_TYPE_PEN:
         case GDI_OBJECT_TYPE_EXTPEN:
-            hOldObj = pDc_Attr->hpen;
-            pDc_Attr->ulDirty_ |= DC_PEN_DIRTY;
-            pDc_Attr->hpen = hGdiObj;
+            hOldObj = pdcattr->hpen;
+            pdcattr->ulDirty_ |= DC_PEN_DIRTY;
+            pdcattr->hpen = hGdiObj;
             return hOldObj;
-//            return NtGdiSelectPen(hDC, hGdiObj);
+//            return NtGdiSelectPen(hdc, hGdiObj);
 
         case GDI_OBJECT_TYPE_FONT:
-            hOldObj = pDc_Attr->hlfntNew;
+            hOldObj = pdcattr->hlfntNew;
             if (hOldObj == hGdiObj) return hOldObj;
 
-            pDc_Attr->ulDirty_ &= ~SLOW_WIDTHS;
-            pDc_Attr->ulDirty_ |= DIRTY_CHARSET;
-            pDc_Attr->hlfntNew = hGdiObj;
-
-            if (!(pDc_Attr->ulDirty_ & DC_DIBSECTION))
+            pdcattr->ulDirty_ &= ~SLOW_WIDTHS;
+            pdcattr->ulDirty_ |= DIRTY_CHARSET;
+            pdcattr->hlfntNew = hGdiObj;
+
+            if (!(pdcattr->ulDirty_ & DC_DIBSECTION))
             {
                 PGDIBSOBJECT pgO;
 
-                pgO = GdiAllocBatchCommand(hDC, GdiBCSelObj);
+                pgO = GdiAllocBatchCommand(hdc, GdiBCSelObj);
                 if (pgO)
                 {
                     pgO->hgdiobj = hGdiObj;
@@ -1588,18 +1706,18 @@
             }
 
             // default for select object font
-            return NtGdiSelectFont(hDC, hGdiObj);
+            return NtGdiSelectFont(hdc, hGdiObj);
 
 #if 0
         case GDI_OBJECT_TYPE_METADC:
-            return MFDRV_SelectObject( hDC, hGdiObj);
+            return MFDRV_SelectObject(hdc, hGdiObj);
         case GDI_OBJECT_TYPE_EMF:
-            PLDC pLDC = GdiGetLDC(hDC);
-            if ( !pLDC ) return NULL;
-            return EMFDRV_SelectObject( hDC, hGdiObj);
+            PLDC pLDC = GdiGetLDC(hdc);
+            if (!pLDC) return NULL;
+            return EMFDRV_SelectObject(hdc, hGdiObj);
 #endif
         case GDI_OBJECT_TYPE_COLORSPACE:
-            SetColorSpace(hDC, (HCOLORSPACE) hGdiObj);
+            SetColorSpace(hdc, (HCOLORSPACE) hGdiObj);
             return NULL;
 
         case GDI_OBJECT_TYPE_PALETTE:


Reply via email to