Got rid of all the ugly macros.

diff --git a/objects/dcvalues.c b/objects/dcvalues.c
index 3b24997..a25c01c 100644
--- a/objects/dcvalues.c
+++ b/objects/dcvalues.c
@@ -12,358 +12,673 @@
 
 #include "gdi.h"
 
-/* Define pseudo types */
-#define COLORREF16 COLORREF
-#define DWORD16    DWORD
-
-#define DC_GET_VAL_16( func_type, func_name, dc_field ) \
-func_type##16 WINAPI func_name##16( HDC16 hdc ) \
-{ \
-    func_type ret = 0; \
-    DC * dc = DC_GetDCPtr( hdc ); \
-    if (dc) \
-    { \
-        ret = dc->dc_field; \
-        GDI_ReleaseObj( hdc ); \
-    } \
-    return ret; \
-}
-
-#define DC_GET_VAL_32( func_type, func_name, dc_field ) \
-func_type WINAPI func_name( HDC hdc ) \
-{ \
-    func_type ret = 0; \
-    DC * dc = DC_GetDCPtr( hdc ); \
-    if (dc) \
-    { \
-        ret = dc->dc_field; \
-        GDI_ReleaseObj( hdc ); \
-    } \
-    return ret; \
-}
-
-#define DC_GET_X_Y_16( func_type, func_name, ret_x, ret_y ) \
-func_type##16 WINAPI func_name##16( HDC16 hdc ) \
-{ \
-    func_type ret = 0; \
-    DC * dc = DC_GetDCPtr( hdc ); \
-    if (dc) \
-    { \
-        ret = MAKELONG( dc->ret_x, dc->ret_y ); \
-        GDI_ReleaseObj( hdc ); \
-    } \
-    return ret; \
-}
-
-/* DC_GET_VAL_EX is used to define functions returning a POINT or a SIZE. It is 
- * important that the function has the right signature, for the implementation 
- * we can do whatever we want.
- */
-#define DC_GET_VAL_EX_16( func_name, ret_x, ret_y, type ) \
-BOOL16 WINAPI func_name##16( HDC16 hdc, LP##type##16 pt ) \
-{ \
-    DC * dc = DC_GetDCPtr( hdc ); \
-    if (!dc) return FALSE; \
-    ((LPPOINT16)pt)->x = dc->ret_x; \
-    ((LPPOINT16)pt)->y = dc->ret_y; \
-    GDI_ReleaseObj( hdc ); \
-    return TRUE; \
-}
-
-#define DC_GET_VAL_EX_32( func_name, ret_x, ret_y, type ) \
-BOOL WINAPI func_name( HDC hdc, LP##type pt ) \
-{ \
-    DC * dc = DC_GetDCPtr( hdc ); \
-    if (!dc) return FALSE; \
-    ((LPPOINT)pt)->x = dc->ret_x; \
-    ((LPPOINT)pt)->y = dc->ret_y; \
-    GDI_ReleaseObj( hdc ); \
-    return TRUE; \
-}
-
-#define DC_SET_MODE_16( func_name, dc_field, min_val, max_val ) \
-INT16 WINAPI func_name##16( HDC16 hdc, INT16 mode ) \
-{ \
-    return func_name( hdc, mode ); \
-} \
-
-#define DC_SET_MODE_32( func_name, dc_field, min_val, max_val ) \
-INT WINAPI func_name( HDC hdc, INT mode ) \
-{ \
-    INT prevMode; \
-    DC *dc; \
-    if ((mode < min_val) || (mode > max_val)) { \
-        SetLastError(ERROR_INVALID_PARAMETER); \
-        return 0; \
-    } \
-    if (!(dc = DC_GetDCPtr( hdc ))) return 0; \
-    if (dc->funcs->p##func_name) { \
-	prevMode = dc->funcs->p##func_name( dc, mode ); \
-    } else { \
-        prevMode = dc->dc_field; \
-        dc->dc_field = mode; \
-    } \
-    GDI_ReleaseObj( hdc ); \
-    return prevMode; \
-}
-
-/***********************************************************************
- *		SetBkMode (GDI.2)
- */
-DC_SET_MODE_16( SetBkMode, backgroundMode, TRANSPARENT, OPAQUE ) 
 
 /***********************************************************************
  *		SetBkMode (GDI32.@)
  */
-DC_SET_MODE_32( SetBkMode, backgroundMode, TRANSPARENT, OPAQUE ) 
+INT WINAPI SetBkMode( HDC hdc, INT mode )
+{
+    INT ret;
+    DC *dc;
+    if ((mode <= 0) || (mode > BKMODE_LAST))
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return 0;
+    }
+    if (!(dc = DC_GetDCPtr( hdc ))) return 0;
+    if (dc->funcs->pSetBkMode)
+        ret = dc->funcs->pSetBkMode( dc, mode );
+    else
+    {
+        ret = dc->backgroundMode;
+        dc->backgroundMode = mode;
+    }
+    GDI_ReleaseObj( hdc );
+    return ret;
+}
 
-/***********************************************************************
- *		SetROP2	(GDI.4)
- */
-DC_SET_MODE_16( SetROP2, ROPmode, R2_BLACK, R2_WHITE )
 
 /***********************************************************************
  *		SetROP2 (GDI32.@)
  */
-DC_SET_MODE_32( SetROP2, ROPmode, R2_BLACK, R2_WHITE )
+INT WINAPI SetROP2( HDC hdc, INT mode )
+{
+    INT ret;
+    DC *dc;
+    if ((mode < R2_BLACK) || (mode > R2_WHITE))
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return 0;
+    }
+    if (!(dc = DC_GetDCPtr( hdc ))) return 0;
+    if (dc->funcs->pSetROP2)
+        ret = dc->funcs->pSetROP2( dc, mode );
+    else
+    {
+        ret = dc->ROPmode;
+        dc->ROPmode = mode;
+    }
+    GDI_ReleaseObj( hdc );
+    return ret;
+}
 
-/***********************************************************************
- *		SetRelAbs (GDI.5)
- */
-DC_SET_MODE_16( SetRelAbs, relAbsMode, ABSOLUTE, RELATIVE )
 
 /***********************************************************************
  *		SetRelAbs (GDI32.@)
  */
-DC_SET_MODE_32( SetRelAbs, relAbsMode, ABSOLUTE, RELATIVE )
+INT WINAPI SetRelAbs( HDC hdc, INT mode )
+{
+    INT ret;
+    DC *dc;
+    if ((mode != ABSOLUTE) && (mode != RELATIVE))
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return 0;
+    }
+    if (!(dc = DC_GetDCPtr( hdc ))) return 0;
+    if (dc->funcs->pSetRelAbs)
+        ret = dc->funcs->pSetRelAbs( dc, mode );
+    else
+    {
+        ret = dc->relAbsMode;
+        dc->relAbsMode = mode;
+    }
+    GDI_ReleaseObj( hdc );
+    return ret;
+}
 
-/***********************************************************************
- *		SetPolyFillMode	(GDI.6)
- */
-DC_SET_MODE_16( SetPolyFillMode, polyFillMode, ALTERNATE, WINDING )
 
 /***********************************************************************
  *		SetPolyFillMode (GDI32.@)
  */
-DC_SET_MODE_32( SetPolyFillMode, polyFillMode, ALTERNATE, WINDING )
+INT WINAPI SetPolyFillMode( HDC hdc, INT mode )
+{
+    INT ret;
+    DC *dc;
+    if ((mode <= 0) || (mode > POLYFILL_LAST))
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return 0;
+    }
+    if (!(dc = DC_GetDCPtr( hdc ))) return 0;
+    if (dc->funcs->pSetPolyFillMode)
+        ret = dc->funcs->pSetPolyFillMode( dc, mode );
+    else
+    {
+        ret = dc->polyFillMode;
+        dc->polyFillMode = mode;
+    }
+    GDI_ReleaseObj( hdc );
+    return ret;
+}
 
-/***********************************************************************
- *		SetStretchBltMode (GDI.7)
- */
-DC_SET_MODE_16( SetStretchBltMode, stretchBltMode, BLACKONWHITE, HALFTONE )
 
 /***********************************************************************
  *		SetStretchBltMode (GDI32.@)
  */
-DC_SET_MODE_32( SetStretchBltMode, stretchBltMode, BLACKONWHITE, HALFTONE )
+INT WINAPI SetStretchBltMode( HDC hdc, INT mode )
+{
+    INT ret;
+    DC *dc;
+    if ((mode <= 0) || (mode > MAXSTRETCHBLTMODE))
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return 0;
+    }
+    if (!(dc = DC_GetDCPtr( hdc ))) return 0;
+    if (dc->funcs->pSetStretchBltMode)
+        ret = dc->funcs->pSetStretchBltMode( dc, mode );
+    else
+    {
+        ret = dc->stretchBltMode;
+        dc->stretchBltMode = mode;
+    }
+    GDI_ReleaseObj( hdc );
+    return ret;
+}
 
-/***********************************************************************
- *		GetBkColor (GDI.75)
- */
-DC_GET_VAL_16( COLORREF, GetBkColor, backgroundColor )
 
 /***********************************************************************
  *		GetBkColor (GDI32.@)
  */
-DC_GET_VAL_32( COLORREF, GetBkColor, backgroundColor )
+COLORREF WINAPI GetBkColor( HDC hdc )
+{
+    COLORREF ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->backgroundColor;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
 
-/***********************************************************************
- *		GetBkMode (GDI.76)
- */
-DC_GET_VAL_16( INT, GetBkMode, backgroundMode )
 
 /***********************************************************************
  *		GetBkMode (GDI32.@)
  */
-DC_GET_VAL_32( INT, GetBkMode, backgroundMode )
+INT WINAPI GetBkMode( HDC hdc )
+{
+    INT ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->backgroundMode;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
 
-/***********************************************************************
- *		GetCurrentPosition (GDI.78)
- */
-DC_GET_X_Y_16( DWORD, GetCurrentPosition, CursPosX, CursPosY )
-
-/***********************************************************************
- *		GetMapMode (GDI.81)
- */
-DC_GET_VAL_16( INT, GetMapMode, MapMode )
 
 /***********************************************************************
  *		GetMapMode (GDI32.@)
  */
-DC_GET_VAL_32( INT, GetMapMode, MapMode )
+INT WINAPI GetMapMode( HDC hdc )
+{
+    INT ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->MapMode;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
 
-/***********************************************************************
- *		GetPolyFillMode (GDI.84)
- */
-DC_GET_VAL_16( INT, GetPolyFillMode, polyFillMode )
 
 /***********************************************************************
  *		GetPolyFillMode (GDI32.@)
  */
-DC_GET_VAL_32( INT, GetPolyFillMode, polyFillMode )
+INT WINAPI GetPolyFillMode( HDC hdc )
+{
+    INT ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->polyFillMode;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
 
-/***********************************************************************
- *		GetROP2 (GDI.85)
- */
-DC_GET_VAL_16( INT, GetROP2, ROPmode )
 
 /***********************************************************************
  *		GetROP2 (GDI32.@)
  */
-DC_GET_VAL_32( INT, GetROP2, ROPmode )
+INT WINAPI GetROP2( HDC hdc )
+{
+    INT ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->ROPmode;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
 
-/***********************************************************************
- *		GetRelAbs  (GDI.86)
- */
-DC_GET_VAL_16( INT, GetRelAbs, relAbsMode )
-
-/***********************************************************************
- *		GetStretchBltMode (GDI.88)
- */
-
-DC_GET_VAL_16( INT, GetStretchBltMode, stretchBltMode )
 
 /***********************************************************************
  *		GetStretchBltMode (GDI32.@)
  */
-DC_GET_VAL_32( INT, GetStretchBltMode, stretchBltMode )
+INT WINAPI GetStretchBltMode( HDC hdc )
+{
+    INT ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->stretchBltMode;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
 
-/***********************************************************************
- *		GetTextColor (GDI.90)
- */
-DC_GET_VAL_16( COLORREF, GetTextColor, textColor )
 
 /***********************************************************************
  *		GetTextColor (GDI32.@)
  */
-DC_GET_VAL_32( COLORREF, GetTextColor, textColor )
+COLORREF WINAPI GetTextColor( HDC hdc )
+{
+    COLORREF ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->textColor;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
 
-/***********************************************************************
- *		GetViewportExt (GDI.94)
- */
-DC_GET_X_Y_16( DWORD, GetViewportExt, vportExtX, vportExtY )
-
-/***********************************************************************
- *		GetViewportOrg (GDI.95)
- */
-DC_GET_X_Y_16( DWORD, GetViewportOrg, vportOrgX, vportOrgY )
-
-/***********************************************************************
- *		GetWindowExt (GDI.96)
- */
-DC_GET_X_Y_16( DWORD, GetWindowExt, wndExtX, wndExtY )
-
-/***********************************************************************
- *		GetWindowOrg (GDI.97)
- */
-DC_GET_X_Y_16( DWORD, GetWindowOrg, wndOrgX, wndOrgY )
-
-/***********************************************************************
- *		InquireVisRgn (GDI.131)
- */
-DC_GET_VAL_16( HRGN, InquireVisRgn, hVisRgn )
-
-/***********************************************************************
- *		GetClipRgn (GDI.173)
- */
-DC_GET_VAL_16( HRGN, GetClipRgn, hClipRgn )
-
-/***********************************************************************
- *		GetBrushOrg (GDI.149)
- */
-DC_GET_X_Y_16( DWORD, GetBrushOrg, brushOrgX, brushOrgY )
-
-/***********************************************************************
- *		GetTextAlign (GDI.345)
- */
-DC_GET_VAL_16( UINT, GetTextAlign, textAlign )
 
 /***********************************************************************
  *		GetTextAlign (GDI32.@)
  */
-DC_GET_VAL_32( UINT, GetTextAlign, textAlign )
+UINT WINAPI GetTextAlign( HDC hdc )
+{
+    UINT ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->textAlign;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
 
-/***********************************************************************
- *		GetCurLogFont (GDI.411)
- */
-DC_GET_VAL_16( HFONT, GetCurLogFont, hFont )
-
-/***********************************************************************
- *		GetArcDirection (GDI.524)
- */
-DC_GET_VAL_16( INT, GetArcDirection, ArcDirection )
 
 /***********************************************************************
  *		GetArcDirection (GDI32.@)
  */
-DC_GET_VAL_32( INT, GetArcDirection, ArcDirection )
+INT WINAPI GetArcDirection( HDC hdc )
+{
+    INT ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->ArcDirection;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
+
 
 /***********************************************************************
  *		GetGraphicsMode (GDI32.@)
  */
-DC_GET_VAL_16( INT, GetGraphicsMode, GraphicsMode)
+INT WINAPI GetGraphicsMode( HDC hdc )
+{
+    INT ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->GraphicsMode;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
 
-/***********************************************************************
- *		GetGraphicsMode (GDI32.@)
- */
-DC_GET_VAL_32( INT, GetGraphicsMode, GraphicsMode)
-
-/***********************************************************************
- *		GetBrushOrgEx (GDI.469)
- */
-DC_GET_VAL_EX_16( GetBrushOrgEx, brushOrgX, brushOrgY, POINT ) /*  */
 
 /***********************************************************************
  *		GetBrushOrgEx (GDI32.@)
  */
-DC_GET_VAL_EX_32( GetBrushOrgEx, brushOrgX, brushOrgY, POINT ) /*  */
+BOOL WINAPI GetBrushOrgEx( HDC hdc, LPPOINT pt )
+{
+    DC * dc = DC_GetDCPtr( hdc );
+    if (!dc) return FALSE;
+    pt->x = dc->brushOrgX;
+    pt->y = dc->brushOrgY;
+    GDI_ReleaseObj( hdc );
+    return TRUE;
+}
 
-/***********************************************************************
- *		GetCurrentPositionEx (GDI.470)
- */
-DC_GET_VAL_EX_16( GetCurrentPositionEx, CursPosX, CursPosY, POINT )
 
 /***********************************************************************
  *		GetCurrentPositionEx (GDI32.@)
  */
-DC_GET_VAL_EX_32( GetCurrentPositionEx, CursPosX, CursPosY, POINT )
+BOOL WINAPI GetCurrentPositionEx( HDC hdc, LPPOINT pt )
+{
+    DC * dc = DC_GetDCPtr( hdc );
+    if (!dc) return FALSE;
+    pt->x = dc->CursPosX;
+    pt->y = dc->CursPosY;
+    GDI_ReleaseObj( hdc );
+    return TRUE;
+}
 
-/***********************************************************************
- *		GetViewportExtEx (GDI.472)
- */
-DC_GET_VAL_EX_16( GetViewportExtEx, vportExtX, vportExtY, SIZE )
 
 /***********************************************************************
  *		GetViewportExtEx (GDI32.@)
  */
-DC_GET_VAL_EX_32( GetViewportExtEx, vportExtX, vportExtY, SIZE )
+BOOL WINAPI GetViewportExtEx( HDC hdc, LPSIZE size )
+{
+    DC * dc = DC_GetDCPtr( hdc );
+    if (!dc) return FALSE;
+    size->cx = dc->vportExtX;
+    size->cy = dc->vportExtY;
+    GDI_ReleaseObj( hdc );
+    return TRUE;
+}
 
-/***********************************************************************
- *		GetViewportOrgEx (GDI.473)
- */
-DC_GET_VAL_EX_16( GetViewportOrgEx, vportOrgX, vportOrgY, POINT )
 
 /***********************************************************************
  *		GetViewportOrgEx (GDI32.@)
  */
-DC_GET_VAL_EX_32( GetViewportOrgEx, vportOrgX, vportOrgY, POINT )
+BOOL WINAPI GetViewportOrgEx( HDC hdc, LPPOINT pt )
+{
+    DC * dc = DC_GetDCPtr( hdc );
+    if (!dc) return FALSE;
+    pt->x = dc->vportOrgX;
+    pt->y = dc->vportOrgY;
+    GDI_ReleaseObj( hdc );
+    return TRUE;
+}
 
-/***********************************************************************
- *		GetWindowExtEx (GDI.474)
- */
-DC_GET_VAL_EX_16( GetWindowExtEx, wndExtX, wndExtY, SIZE )
 
 /***********************************************************************
  *		GetWindowExtEx (GDI32.@)
  */
-DC_GET_VAL_EX_32( GetWindowExtEx, wndExtX, wndExtY, SIZE )
+BOOL WINAPI GetWindowExtEx( HDC hdc, LPSIZE size )
+{
+    DC * dc = DC_GetDCPtr( hdc );
+    if (!dc) return FALSE;
+    size->cx = dc->wndExtX;
+    size->cy = dc->wndExtY;
+    GDI_ReleaseObj( hdc );
+    return TRUE;
+}
 
-/***********************************************************************
- *		GetWindowOrgEx (GDI.475)
- */
-DC_GET_VAL_EX_16( GetWindowOrgEx, wndOrgX, wndOrgY, POINT )
 
 /***********************************************************************
  *		GetWindowOrgEx (GDI32.@)
  */
-DC_GET_VAL_EX_32( GetWindowOrgEx, wndOrgX, wndOrgY, POINT )
+BOOL WINAPI GetWindowOrgEx( HDC hdc, LPPOINT pt )
+{
+    DC * dc = DC_GetDCPtr( hdc );
+    if (!dc) return FALSE;
+    pt->x = dc->wndOrgX;
+    pt->y = dc->wndOrgY;
+    GDI_ReleaseObj( hdc );
+    return TRUE;
+}
+
+
+/**** 16-bit functions ****/
+
+
+/***********************************************************************
+ *		SetBkMode (GDI.2)
+ */
+INT16 WINAPI SetBkMode16( HDC16 hdc, INT16 mode )
+{
+    return SetBkMode( hdc, mode );
+}
+
+/***********************************************************************
+ *		SetROP2	(GDI.4)
+ */
+INT16 WINAPI SetROP216( HDC16 hdc, INT16 mode )
+{
+    return SetROP2( hdc, mode );
+}
+
+/***********************************************************************
+ *		SetRelAbs (GDI.5)
+ */
+INT16 WINAPI SetRelAbs16( HDC16 hdc, INT16 mode )
+{
+    return SetRelAbs( hdc, mode );
+}
+
+/***********************************************************************
+ *		SetPolyFillMode	(GDI.6)
+ */
+INT16 WINAPI SetPolyFillMode16( HDC16 hdc, INT16 mode )
+{
+    return SetPolyFillMode( hdc, mode );
+}
+
+/***********************************************************************
+ *		SetStretchBltMode (GDI.7)
+ */
+INT16 WINAPI SetStretchBltMode16( HDC16 hdc, INT16 mode )
+{
+    return SetStretchBltMode( hdc, mode );
+}
+
+/***********************************************************************
+ *		GetBkColor (GDI.75)
+ */
+COLORREF WINAPI GetBkColor16( HDC16 hdc )
+{
+    return GetBkColor( hdc );
+}
+
+/***********************************************************************
+ *		GetBkMode (GDI.76)
+ */
+INT16 WINAPI GetBkMode16( HDC16 hdc )
+{
+    return GetBkMode( hdc );
+}
+
+/***********************************************************************
+ *		GetCurrentPosition (GDI.78)
+ */
+DWORD WINAPI GetCurrentPosition16( HDC16 hdc )
+{
+    POINT pt32;
+    if (!GetCurrentPositionEx( hdc, &pt32 )) return 0;
+    return MAKELONG( pt32.x, pt32.y );
+}
+
+/***********************************************************************
+ *		GetMapMode (GDI.81)
+ */
+INT16 WINAPI GetMapMode16( HDC16 hdc )
+{
+    return GetMapMode( hdc );
+}
+
+/***********************************************************************
+ *		GetPolyFillMode (GDI.84)
+ */
+INT16 WINAPI GetPolyFillMode16( HDC16 hdc )
+{
+    return GetPolyFillMode( hdc );
+}
+
+/***********************************************************************
+ *		GetROP2 (GDI.85)
+ */
+INT16 WINAPI GetROP216( HDC16 hdc )
+{
+    return GetROP2( hdc );
+}
+
+/***********************************************************************
+ *		GetRelAbs (GDI.86)
+ */
+INT16 WINAPI GetRelAbs16( HDC16 hdc )
+{
+    return GetRelAbs( hdc, 0 );
+}
+
+/***********************************************************************
+ *		GetStretchBltMode (GDI.88)
+ */
+INT16 WINAPI GetStretchBltMode16( HDC16 hdc )
+{
+    return GetStretchBltMode( hdc );
+}
+
+/***********************************************************************
+ *		GetTextColor (GDI.90)
+ */
+COLORREF WINAPI GetTextColor16( HDC16 hdc )
+{
+    return GetTextColor( hdc );
+}
+
+/***********************************************************************
+ *		GetViewportExt (GDI.94)
+ */
+DWORD WINAPI GetViewportExt16( HDC16 hdc )
+{
+    SIZE size;
+    if (!GetViewportExtEx( hdc, &size )) return 0;
+    return MAKELONG( size.cx, size.cy );
+}
+
+/***********************************************************************
+ *		GetViewportOrg (GDI.95)
+ */
+DWORD WINAPI GetViewportOrg16( HDC16 hdc )
+{
+    POINT pt;
+    if (!GetViewportOrgEx( hdc, &pt )) return 0;
+    return MAKELONG( pt.x, pt.y );
+}
+
+
+/***********************************************************************
+ *		GetWindowExt (GDI.96)
+ */
+DWORD WINAPI GetWindowExt16( HDC16 hdc )
+{
+    SIZE size;
+    if (!GetWindowExtEx( hdc, &size )) return 0;
+    return MAKELONG( size.cx, size.cy );
+}
+
+/***********************************************************************
+ *		GetWindowOrg (GDI.97)
+ */
+DWORD WINAPI GetWindowOrg16( HDC16 hdc )
+{
+    POINT pt;
+    if (!GetWindowOrgEx( hdc, &pt )) return 0;
+    return MAKELONG( pt.x, pt.y );
+}
+
+/***********************************************************************
+ *		InquireVisRgn (GDI.131)
+ */
+HRGN16 WINAPI InquireVisRgn16( HDC16 hdc )
+{
+    HRGN16 ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->hVisRgn;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
+
+/***********************************************************************
+ *		GetBrushOrg (GDI.149)
+ */
+DWORD WINAPI GetBrushOrg16( HDC16 hdc )
+{
+    POINT pt;
+    if (!GetBrushOrgEx( hdc, &pt )) return 0;
+    return MAKELONG( pt.x, pt.y );
+}
+
+/***********************************************************************
+ *		GetClipRgn (GDI.173)
+ */
+HRGN16 WINAPI GetClipRgn16( HDC16 hdc )
+{
+    HRGN16 ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->hClipRgn;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
+
+/***********************************************************************
+ *		GetTextAlign (GDI.345)
+ */
+UINT16 WINAPI GetTextAlign16( HDC16 hdc )
+{
+    return GetTextAlign( hdc );
+}
+
+/***********************************************************************
+ *		GetCurLogFont (GDI.411)
+ */
+HFONT16 WINAPI GetCurLogFont16( HDC16 hdc )
+{
+    HFONT16 ret = 0;
+    DC * dc = DC_GetDCPtr( hdc );
+    if (dc)
+    {
+        ret = dc->hFont;
+        GDI_ReleaseObj( hdc );
+    }
+    return ret;
+}
+
+/***********************************************************************
+ *		GetBrushOrgEx (GDI.469)
+ */
+BOOL16 WINAPI GetBrushOrgEx16( HDC16 hdc, LPPOINT16 pt )
+{
+    POINT pt32;
+    if (!GetBrushOrgEx( hdc, &pt32 )) return FALSE;
+    pt->x = pt32.x;
+    pt->y = pt32.y;
+    return TRUE;
+}
+
+/***********************************************************************
+ *		GetCurrentPositionEx (GDI.470)
+ */
+BOOL16 WINAPI GetCurrentPositionEx16( HDC16 hdc, LPPOINT16 pt )
+{
+    POINT pt32;
+    if (!GetCurrentPositionEx( hdc, &pt32 )) return FALSE;
+    pt->x = pt32.x;
+    pt->y = pt32.y;
+    return TRUE;
+}
+
+/***********************************************************************
+ *		GetViewportExtEx (GDI.472)
+ */
+BOOL16 WINAPI GetViewportExtEx16( HDC16 hdc, LPSIZE16 size )
+{
+    SIZE size32;
+    if (!GetViewportExtEx( hdc, &size32 )) return FALSE;
+    size->cx = size32.cx;
+    size->cy = size32.cy;
+    return TRUE;
+}
+
+/***********************************************************************
+ *		GetViewportOrgEx (GDI.473)
+ */
+BOOL16 WINAPI GetViewportOrgEx16( HDC16 hdc, LPPOINT16 pt )
+{
+    POINT pt32;
+    if (!GetViewportOrgEx( hdc, &pt32 )) return FALSE;
+    pt->x = pt32.x;
+    pt->y = pt32.y;
+    return TRUE;
+}
+
+/***********************************************************************
+ *		GetWindowExtEx (GDI.474)
+ */
+BOOL16 WINAPI GetWindowExtEx16( HDC16 hdc, LPSIZE16 size )
+{
+    SIZE size32;
+    if (!GetWindowExtEx( hdc, &size32 )) return FALSE;
+    size->cx = size32.cx;
+    size->cy = size32.cy;
+    return TRUE;
+}
+
+/***********************************************************************
+ *		GetWindowOrgEx (GDI.475)
+ */
+BOOL16 WINAPI GetWindowOrgEx16( HDC16 hdc, LPPOINT16 pt )
+{
+    POINT pt32;
+    if (!GetWindowOrgEx( hdc, &pt32 )) return FALSE;
+    pt->x = pt32.x;
+    pt->y = pt32.y;
+    return TRUE;
+}
+
+/***********************************************************************
+ *		GetArcDirection (GDI.524)
+ */
+INT16 WINAPI GetArcDirection16( HDC16 hdc )
+{
+    return GetArcDirection( hdc );
+}