diff --git a/objects/dcvalues.c b/objects/dcvalues.c index 3b249976360..a25c01cadd8 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 ); +}