From a4b7ce555ce53ee828d1e90343de4dd451f456db Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Sat, 15 Nov 2003 15:18:06 +0000 Subject: [PATCH] moved metafile functions into objects/metafile.c svn path=/trunk/; revision=6652 --- reactos/lib/gdi32/makefile | 3 +- reactos/lib/gdi32/misc/stubsa.c | 224 +----------------- reactos/lib/gdi32/misc/stubsw.c | 100 +------- reactos/lib/gdi32/objects/metafile.c | 330 +++++++++++++++++++++++++++ 4 files changed, 334 insertions(+), 323 deletions(-) create mode 100644 reactos/lib/gdi32/objects/metafile.c diff --git a/reactos/lib/gdi32/makefile b/reactos/lib/gdi32/makefile index edd22dca3f5..db2bee3b387 100644 --- a/reactos/lib/gdi32/makefile +++ b/reactos/lib/gdi32/makefile @@ -1,4 +1,4 @@ -# $Id: makefile,v 1.33 2003/09/06 16:50:10 jimtabor Exp $ +# $Id: makefile,v 1.34 2003/11/15 15:18:05 weiden Exp $ PATH_TO_TOP = ../.. @@ -39,6 +39,7 @@ OBJECTS_OBJECTS = \ objects/dc.o \ objects/fillshap.o \ objects/line.o \ + objects/metafile.o \ objects/pen.o \ objects/region.o \ objects/text.o diff --git a/reactos/lib/gdi32/misc/stubsa.c b/reactos/lib/gdi32/misc/stubsa.c index 379a6db4f54..ea348b4354b 100644 --- a/reactos/lib/gdi32/misc/stubsa.c +++ b/reactos/lib/gdi32/misc/stubsa.c @@ -1,4 +1,4 @@ -/* $Id: stubsa.c,v 1.24 2003/08/19 11:48:49 weiden Exp $ +/* $Id: stubsa.c,v 1.25 2003/11/15 15:18:06 weiden Exp $ * * reactos/lib/gdi32/misc/stubs.c * @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include @@ -56,34 +55,6 @@ AddFontResourceA ( LPCSTR lpszFilename ) } -/* - * @implemented - */ -HMETAFILE -STDCALL -CopyMetaFileA( - HMETAFILE Src, - LPCSTR lpszFile - ) -{ - NTSTATUS Status; - PWSTR lpszFileW; - HMETAFILE rc = 0; - - Status = HEAP_strdupA2W ( &lpszFileW, lpszFile ); - if (!NT_SUCCESS (Status)) - SetLastError (RtlNtStatusToDosError(Status)); - else - { - rc = NtGdiCopyMetaFile ( Src, lpszFileW ); - - HEAP_free ( lpszFileW ); - } - - return rc; -} - - /* * @implemented */ @@ -134,32 +105,6 @@ CreateICA( } -/* - * @implemented - */ -HDC -STDCALL -CreateMetaFileA( - LPCSTR lpszFile - ) -{ - NTSTATUS Status; - PWSTR lpszFileW; - HDC rc = 0; - - Status = HEAP_strdupA2W ( &lpszFileW, lpszFile ); - if (!NT_SUCCESS (Status)) - SetLastError (RtlNtStatusToDosError(Status)); - else - { - rc = NtGdiCreateMetaFile ( lpszFileW ); - - HEAP_free ( lpszFileW ); - } - return rc; -} - - /* * @implemented */ @@ -423,33 +368,6 @@ GetGlyphOutlineA( } -/* - * @implemented - */ -HMETAFILE -STDCALL -GetMetaFileA( - LPCSTR lpszMetaFile - ) -{ - NTSTATUS Status; - LPWSTR lpszMetaFileW; - HMETAFILE rc = 0; - - Status = HEAP_strdupA2W ( &lpszMetaFileW, lpszMetaFile ); - if (!NT_SUCCESS (Status)) - SetLastError (RtlNtStatusToDosError(Status)); - else - { - rc = NtGdiGetMetaFile ( lpszMetaFileW ); - - HEAP_free ( lpszMetaFileW ); - } - - return rc; -} - - /* * @unimplemented */ @@ -564,146 +482,6 @@ RemoveFontResourceA( } -/* - * @implemented - */ -HENHMETAFILE -STDCALL -CopyEnhMetaFileA( - HENHMETAFILE hemfSrc, - LPCSTR lpszFile - ) -{ - NTSTATUS Status; - LPWSTR lpszFileW; - HENHMETAFILE rc = 0; - - Status = HEAP_strdupA2W ( &lpszFileW, lpszFile ); - if (!NT_SUCCESS (Status)) - SetLastError (RtlNtStatusToDosError(Status)); - else - { - rc = NtGdiCopyEnhMetaFile ( hemfSrc, lpszFileW ); - - HEAP_free ( lpszFileW ); - } - return rc; -} - - -/* - * @implemented - */ -HDC -STDCALL -CreateEnhMetaFileA( - HDC hdc, - LPCSTR lpFileName, - CONST RECT *lpRect, - LPCSTR lpDescription - ) -{ - NTSTATUS Status; - LPWSTR lpFileNameW, lpDescriptionW; - HDC rc = 0; - - Status = HEAP_strdupA2W ( &lpFileNameW, lpFileName ); - if (!NT_SUCCESS (Status)) - SetLastError (RtlNtStatusToDosError(Status)); - else - { - Status = HEAP_strdupA2W ( &lpDescriptionW, lpDescription ); - if (!NT_SUCCESS (Status)) - SetLastError (RtlNtStatusToDosError(Status)); - else - { - rc = NtGdiCreateEnhMetaFile ( - hdc, lpFileNameW, (CONST LPRECT)lpRect, lpDescriptionW ); - - HEAP_free ( lpDescriptionW ); - } - HEAP_free ( lpFileNameW ); - } - - return rc; -} - - -/* - * @implemented - */ -HENHMETAFILE -STDCALL -GetEnhMetaFileA( - LPCSTR lpszMetaFile - ) -{ - NTSTATUS Status; - LPWSTR lpszMetaFileW; - HENHMETAFILE rc = 0; - - Status = HEAP_strdupA2W ( &lpszMetaFileW, lpszMetaFile ); - if (!NT_SUCCESS (Status)) - SetLastError (RtlNtStatusToDosError(Status)); - else - { - rc = NtGdiGetEnhMetaFile ( lpszMetaFileW ); - - HEAP_free ( lpszMetaFileW ); - } - - return rc; -} - - -/* - * @implemented - */ -UINT -STDCALL -GetEnhMetaFileDescriptionA( - HENHMETAFILE hemf, - UINT cchBuffer, - LPSTR lpszDescription - ) -{ - NTSTATUS Status; - LPWSTR lpszDescriptionW; - UINT rc; - - if ( lpszDescription && cchBuffer ) - { - lpszDescriptionW = (LPWSTR)HEAP_alloc ( cchBuffer*sizeof(WCHAR) ); - if ( !lpszDescriptionW ) - { - SetLastError (RtlNtStatusToDosError(STATUS_NO_MEMORY)); - return 0; - } - } - else - lpszDescriptionW = NULL; - - rc = NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescriptionW ); - - if ( lpszDescription && cchBuffer ) - { - Status = RtlUnicodeToMultiByteN ( lpszDescription, - cchBuffer, - NULL, - lpszDescriptionW, - cchBuffer ); - HEAP_free ( lpszDescriptionW ); - if ( !NT_SUCCESS(Status) ) - { - SetLastError (RtlNtStatusToDosError(Status)); - return 0; - } - } - - return rc; -} - - /* * @unimplemented */ diff --git a/reactos/lib/gdi32/misc/stubsw.c b/reactos/lib/gdi32/misc/stubsw.c index ddd3793a0d7..cbfda725a99 100644 --- a/reactos/lib/gdi32/misc/stubsw.c +++ b/reactos/lib/gdi32/misc/stubsw.c @@ -1,4 +1,4 @@ -/* $Id: stubsw.c,v 1.20 2003/08/19 11:48:49 weiden Exp $ +/* $Id: stubsw.c,v 1.21 2003/11/15 15:18:06 weiden Exp $ * * reactos/lib/gdi32/misc/stubs.c * @@ -36,20 +36,6 @@ AddFontResourceW ( LPCWSTR lpszFilename ) } -/* - * @implemented - */ -HMETAFILE -STDCALL -CopyMetaFileW( - HMETAFILE Src, - LPCWSTR File - ) -{ - return NtGdiCopyMetaFile ( Src, File ); -} - - /* * @implemented */ @@ -69,19 +55,6 @@ CreateICW( } -/* - * @implemented - */ -HDC -STDCALL -CreateMetaFileW( - LPCWSTR lpszFile - ) -{ - return NtGdiCreateMetaFile ( lpszFile ); -} - - /* * @implemented */ @@ -291,19 +264,6 @@ GetGlyphOutlineW( } -/* - * @implemented - */ -HMETAFILE -STDCALL -GetMetaFileW( - LPCWSTR lpszMetaFile - ) -{ - return NtGdiGetMetaFile ( lpszMetaFile ); -} - - /* * @unimplemented */ @@ -386,64 +346,6 @@ RemoveFontResourceW( } -/* - * @implemented - */ -HENHMETAFILE -STDCALL -CopyEnhMetaFileW( - HENHMETAFILE hemfSrc, - LPCWSTR lpszFile - ) -{ - return NtGdiCopyEnhMetaFile ( hemfSrc, lpszFile ); -} - - -/* - * @implemented - */ -HDC -STDCALL -CreateEnhMetaFileW( - HDC hdc, - LPCWSTR lpFileName, - CONST RECT *lpRect, - LPCWSTR lpDescription - ) -{ - return NtGdiCreateEnhMetaFile ( hdc, lpFileName, (CONST LPRECT)lpRect, lpDescription ); -} - - -/* - * @implemented - */ -HENHMETAFILE -STDCALL -GetEnhMetaFileW( - LPCWSTR lpszMetaFile - ) -{ - return NtGdiGetEnhMetaFile ( lpszMetaFile ); -} - - -/* - * @implemented - */ -UINT -STDCALL -GetEnhMetaFileDescriptionW( - HENHMETAFILE hemf, - UINT cchBuffer, - LPWSTR lpszDescription - ) -{ - return NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescription ); -} - - /* * @implemented */ diff --git a/reactos/lib/gdi32/objects/metafile.c b/reactos/lib/gdi32/objects/metafile.c new file mode 100644 index 00000000000..c664232c0da --- /dev/null +++ b/reactos/lib/gdi32/objects/metafile.c @@ -0,0 +1,330 @@ +#ifdef UNICODE +#undef UNICODE +#endif + +#undef WIN32_LEAN_AND_MEAN +#include +#include +#include +#include +#include +#include + + +/* + * @implemented + */ +HMETAFILE +STDCALL +CopyMetaFileW( + HMETAFILE Src, + LPCWSTR File + ) +{ + return NtGdiCopyMetaFile ( Src, File ); +} + + +/* + * @implemented + */ +HMETAFILE +STDCALL +CopyMetaFileA( + HMETAFILE Src, + LPCSTR lpszFile + ) +{ + NTSTATUS Status; + PWSTR lpszFileW; + HMETAFILE rc = 0; + + Status = HEAP_strdupA2W ( &lpszFileW, lpszFile ); + if (!NT_SUCCESS (Status)) + SetLastError (RtlNtStatusToDosError(Status)); + else + { + rc = NtGdiCopyMetaFile ( Src, lpszFileW ); + + HEAP_free ( lpszFileW ); + } + + return rc; +} + + +/* + * @implemented + */ +HDC +STDCALL +CreateMetaFileW( + LPCWSTR lpszFile + ) +{ + return NtGdiCreateMetaFile ( lpszFile ); +} + + +/* + * @implemented + */ +HDC +STDCALL +CreateMetaFileA( + LPCSTR lpszFile + ) +{ + NTSTATUS Status; + PWSTR lpszFileW; + HDC rc = 0; + + Status = HEAP_strdupA2W ( &lpszFileW, lpszFile ); + if (!NT_SUCCESS (Status)) + SetLastError (RtlNtStatusToDosError(Status)); + else + { + rc = NtGdiCreateMetaFile ( lpszFileW ); + + HEAP_free ( lpszFileW ); + } + return rc; +} + + +/* + * @implemented + */ +HMETAFILE +STDCALL +GetMetaFileW( + LPCWSTR lpszMetaFile + ) +{ + return NtGdiGetMetaFile ( lpszMetaFile ); +} + + +/* + * @implemented + */ +HMETAFILE +STDCALL +GetMetaFileA( + LPCSTR lpszMetaFile + ) +{ + NTSTATUS Status; + LPWSTR lpszMetaFileW; + HMETAFILE rc = 0; + + Status = HEAP_strdupA2W ( &lpszMetaFileW, lpszMetaFile ); + if (!NT_SUCCESS (Status)) + SetLastError (RtlNtStatusToDosError(Status)); + else + { + rc = NtGdiGetMetaFile ( lpszMetaFileW ); + + HEAP_free ( lpszMetaFileW ); + } + + return rc; +} + + +/* + * @implemented + */ +HENHMETAFILE +STDCALL +CopyEnhMetaFileW( + HENHMETAFILE hemfSrc, + LPCWSTR lpszFile + ) +{ + return NtGdiCopyEnhMetaFile ( hemfSrc, lpszFile ); +} + + +/* + * @implemented + */ +HENHMETAFILE +STDCALL +CopyEnhMetaFileA( + HENHMETAFILE hemfSrc, + LPCSTR lpszFile + ) +{ + NTSTATUS Status; + LPWSTR lpszFileW; + HENHMETAFILE rc = 0; + + Status = HEAP_strdupA2W ( &lpszFileW, lpszFile ); + if (!NT_SUCCESS (Status)) + SetLastError (RtlNtStatusToDosError(Status)); + else + { + rc = NtGdiCopyEnhMetaFile ( hemfSrc, lpszFileW ); + + HEAP_free ( lpszFileW ); + } + return rc; +} + + +/* + * @implemented + */ +HDC +STDCALL +CreateEnhMetaFileW( + HDC hdc, + LPCWSTR lpFileName, + CONST RECT *lpRect, + LPCWSTR lpDescription + ) +{ + return NtGdiCreateEnhMetaFile ( hdc, lpFileName, (CONST LPRECT)lpRect, lpDescription ); +} + + +/* + * @implemented + */ +HDC +STDCALL +CreateEnhMetaFileA( + HDC hdc, + LPCSTR lpFileName, + CONST RECT *lpRect, + LPCSTR lpDescription + ) +{ + NTSTATUS Status; + LPWSTR lpFileNameW, lpDescriptionW; + HDC rc = 0; + + Status = HEAP_strdupA2W ( &lpFileNameW, lpFileName ); + if (!NT_SUCCESS (Status)) + SetLastError (RtlNtStatusToDosError(Status)); + else + { + Status = HEAP_strdupA2W ( &lpDescriptionW, lpDescription ); + if (!NT_SUCCESS (Status)) + SetLastError (RtlNtStatusToDosError(Status)); + else + { + rc = NtGdiCreateEnhMetaFile ( + hdc, lpFileNameW, (CONST LPRECT)lpRect, lpDescriptionW ); + + HEAP_free ( lpDescriptionW ); + } + HEAP_free ( lpFileNameW ); + } + + return rc; +} + +/* + * @implemented + */ +HENHMETAFILE +STDCALL +GetEnhMetaFileW( + LPCWSTR lpszMetaFile + ) +{ + return NtGdiGetEnhMetaFile ( lpszMetaFile ); +} + + +/* + * @implemented + */ +HENHMETAFILE +STDCALL +GetEnhMetaFileA( + LPCSTR lpszMetaFile + ) +{ + NTSTATUS Status; + LPWSTR lpszMetaFileW; + HENHMETAFILE rc = 0; + + Status = HEAP_strdupA2W ( &lpszMetaFileW, lpszMetaFile ); + if (!NT_SUCCESS (Status)) + SetLastError (RtlNtStatusToDosError(Status)); + else + { + rc = NtGdiGetEnhMetaFile ( lpszMetaFileW ); + + HEAP_free ( lpszMetaFileW ); + } + + return rc; +} + + +/* + * @implemented + */ +UINT +STDCALL +GetEnhMetaFileDescriptionW( + HENHMETAFILE hemf, + UINT cchBuffer, + LPWSTR lpszDescription + ) +{ + return NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescription ); +} + + +/* + * @implemented + */ +UINT +STDCALL +GetEnhMetaFileDescriptionA( + HENHMETAFILE hemf, + UINT cchBuffer, + LPSTR lpszDescription + ) +{ + NTSTATUS Status; + LPWSTR lpszDescriptionW; + UINT rc; + + if ( lpszDescription && cchBuffer ) + { + lpszDescriptionW = (LPWSTR)HEAP_alloc ( cchBuffer*sizeof(WCHAR) ); + if ( !lpszDescriptionW ) + { + SetLastError (RtlNtStatusToDosError(STATUS_NO_MEMORY)); + return 0; + } + } + else + lpszDescriptionW = NULL; + + rc = NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescriptionW ); + + if ( lpszDescription && cchBuffer ) + { + Status = RtlUnicodeToMultiByteN ( lpszDescription, + cchBuffer, + NULL, + lpszDescriptionW, + cchBuffer ); + HEAP_free ( lpszDescriptionW ); + if ( !NT_SUCCESS(Status) ) + { + SetLastError (RtlNtStatusToDosError(Status)); + return 0; + } + } + + return rc; +} +