From 671f7f131525c9e61e520e3286517d5372ce0df5 Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Sun, 8 Feb 2004 16:16:24 +0000 Subject: [PATCH] - Very basic implementation of ExtEscape svn path=/trunk/; revision=8092 --- reactos/lib/gdi32/misc/stubs.c | 21 +------------- reactos/lib/gdi32/objects/dc.c | 17 ++++++++++++ reactos/subsys/win32k/objects/print.c | 40 ++++++++++++++++++++------- 3 files changed, 48 insertions(+), 30 deletions(-) diff --git a/reactos/lib/gdi32/misc/stubs.c b/reactos/lib/gdi32/misc/stubs.c index e89cfd476a4..d2a17d9ecd8 100644 --- a/reactos/lib/gdi32/misc/stubs.c +++ b/reactos/lib/gdi32/misc/stubs.c @@ -1,4 +1,4 @@ -/* $Id: stubs.c,v 1.46 2004/01/24 08:23:12 ekohl Exp $ +/* $Id: stubs.c,v 1.47 2004/02/08 16:16:24 navaraf Exp $ * * reactos/lib/gdi32/misc/stubs.c * @@ -162,25 +162,6 @@ Escape( } -/* - * @unimplemented - */ -int -STDCALL -ExtEscape( - HDC a0, - int a1, - int a2, - LPCSTR a3, - int a4, - LPSTR a5 - ) -{ - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return 0; -} - - /* * @unimplemented */ diff --git a/reactos/lib/gdi32/objects/dc.c b/reactos/lib/gdi32/objects/dc.c index 233fe449a46..ca923b6bb5b 100644 --- a/reactos/lib/gdi32/objects/dc.c +++ b/reactos/lib/gdi32/objects/dc.c @@ -907,3 +907,20 @@ RectVisible( { return NtGdiRectVisible(a0,(RECT *)a1); } + +/* + * @implemented + */ +int +STDCALL +ExtEscape( + HDC a0, + int a1, + int a2, + LPCSTR a3, + int a4, + LPSTR a5 + ) +{ + return NtGdiExtEscape(a0, a1, a2, a3, a4, a5); +} diff --git a/reactos/subsys/win32k/objects/print.c b/reactos/subsys/win32k/objects/print.c index bb0e767b246..e7d1d7f19ff 100644 --- a/reactos/subsys/win32k/objects/print.c +++ b/reactos/subsys/win32k/objects/print.c @@ -16,11 +16,13 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: print.c,v 1.11 2003/08/19 11:48:50 weiden Exp $ */ +/* $Id: print.c,v 1.12 2004/02/08 16:16:24 navaraf Exp $ */ + #undef WIN32_LEAN_AND_MEAN #include #include #include +#include #define NDEBUG #include @@ -57,16 +59,34 @@ NtGdiEscape(HDC hDC, UNIMPLEMENTED; } -INT -STDCALL -NtGdiExtEscape(HDC hDC, - INT Escape, - INT InSize, - LPCSTR InData, - INT OutSize, - LPSTR OutData) +INT STDCALL +NtGdiExtEscape( + HDC hDC, + INT Escape, + INT InSize, + LPCSTR InData, + INT OutSize, + LPSTR OutData) { - UNIMPLEMENTED; + PDC pDC = DC_LockDc(hDC); + INT Result; + + if (pDC == NULL) + { + return -1; + } + + Result = pDC->DriverFunctions.Escape( + pDC->Surface, + Escape, + InSize, + (PVOID)InData, + OutSize, + (PVOID)OutData); + + DC_UnlockDc(hDC); + + return Result; } INT