Got rid of all the ugly macros.
This commit is contained in:
parent
4bc1ebb5ed
commit
f925f81667
|
@ -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 );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue