From 6d83ec90e4312e13fc1577e1af209161d2c015f2 Mon Sep 17 00:00:00 2001 From: James Tabor Date: Sun, 13 Apr 2014 11:41:19 +0000 Subject: [PATCH] [Win32k] - Add two more Gdi32 counterparts for Win32k and fix the others. svn path=/trunk/; revision=62735 --- reactos/win32ss/gdi/ntgdi/coord.h | 3 +- reactos/win32ss/gdi/ntgdi/dcutil.c | 51 ++++++++++++++++++++++++++---- 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/reactos/win32ss/gdi/ntgdi/coord.h b/reactos/win32ss/gdi/ntgdi/coord.h index 2f3386b2410..6b80232f9ac 100644 --- a/reactos/win32ss/gdi/ntgdi/coord.h +++ b/reactos/win32ss/gdi/ntgdi/coord.h @@ -150,4 +150,5 @@ GreModifyWorldTransform( VOID FASTCALL IntMirrorWindowOrg(PDC); int APIENTRY IntGdiSetMapMode(PDC, int); - +BOOL FASTCALL GreLPtoDP(HDC, LPPOINT, INT); +BOOL FASTCALL GreDPtoLP(HDC, LPPOINT, INT); diff --git a/reactos/win32ss/gdi/ntgdi/dcutil.c b/reactos/win32ss/gdi/ntgdi/dcutil.c index 2fb9cb3e0c8..e4a6f40bb19 100644 --- a/reactos/win32ss/gdi/ntgdi/dcutil.c +++ b/reactos/win32ss/gdi/ntgdi/dcutil.c @@ -3,40 +3,77 @@ #define NDEBUG #include -int FASTCALL -GreGetBkMode(HDC hdc) +BOOL FASTCALL +GreDPtoLP(HDC hdc, LPPOINT lpPoints, INT nCount) { PDC dc; if (!(dc = DC_LockDc(hdc))) + { + EngSetLastError(ERROR_INVALID_HANDLE); + return FALSE; + } + IntDPtoLP(dc, lpPoints, nCount); + DC_UnlockDc(dc); + return TRUE; +} + +BOOL FASTCALL +GreLPtoDP(HDC hdc, LPPOINT lpPoints, INT nCount) +{ + PDC dc; + if (!(dc = DC_LockDc(hdc))) + { + EngSetLastError(ERROR_INVALID_HANDLE); + return FALSE; + } + IntLPtoDP(dc, lpPoints, nCount); + DC_UnlockDc(dc); + return TRUE; +} + +int FASTCALL +GreGetBkMode(HDC hdc) +{ + PDC dc; + LONG lBkMode; + if (!(dc = DC_LockDc(hdc))) { EngSetLastError(ERROR_INVALID_HANDLE); return CLR_INVALID; } - return dc->pdcattr->lBkMode; + lBkMode = dc->pdcattr->lBkMode; + DC_UnlockDc(dc); + return lBkMode; } int FASTCALL GreGetMapMode(HDC hdc) { PDC dc; + INT iMapMode; if (!(dc = DC_LockDc(hdc))) { EngSetLastError(ERROR_INVALID_HANDLE); return CLR_INVALID; } - return dc->pdcattr->iMapMode; + iMapMode = dc->pdcattr->iMapMode; + DC_UnlockDc(dc); + return iMapMode; } COLORREF FASTCALL GreGetTextColor(HDC hdc) { PDC dc; + ULONG ulForegroundClr; if (!(dc = DC_LockDc(hdc))) { EngSetLastError(ERROR_INVALID_HANDLE); return CLR_INVALID; } - return dc->pdcattr->ulForegroundClr; + ulForegroundClr = dc->pdcattr->ulForegroundClr; + DC_UnlockDc(dc); + return ulForegroundClr; } COLORREF FASTCALL @@ -153,6 +190,7 @@ IntSetDCBrushColor(HDC hdc, COLORREF crColor) dc->pdcattr->crBrushClr = crColor; } } + DC_UnlockDc(dc); return OldColor; } @@ -175,7 +213,7 @@ IntSetDCPenColor(HDC hdc, COLORREF crColor) dc->pdcattr->ulDirty_ |= DIRTY_LINE; dc->pdcattr->crPenClr = crColor; } - + DC_UnlockDc(dc); return OldColor; } @@ -199,6 +237,7 @@ GreSetStretchBltMode(HDC hDC, int iStretchMode) pdcattr->jStretchBltMode = iStretchMode; } + DC_UnlockDc(pdc); return oSMode; }