2010-07-08 Markus Koenig <basilo@users.sourceforge.net>
* include/gdiplus.h: New file.
        * include/gdiplus/gdiplus.h: New file.
        * include/gdiplus/gdiplusbase.h: New file.
        * include/gdiplus/gdiplusbrush.h: New file.
        * include/gdiplus/gdipluscolor.h: New file.
        * include/gdiplus/gdipluscolormatrix.h: New file.
        * include/gdiplus/gdipluseffects.h: New file.
        * include/gdiplus/gdiplusenums.h: New file.
        * include/gdiplus/gdiplusflat.h: New file.
        * include/gdiplus/gdiplusgpstubs.h: New file.
        * include/gdiplus/gdiplusgraphics.h: New file.
        * include/gdiplus/gdiplusheaders.h: New file.
        * include/gdiplus/gdiplusimageattributes.h: New file.
        * include/gdiplus/gdiplusimagecodec.h: New file.
        * include/gdiplus/gdiplusimaging.h: New file.
        * include/gdiplus/gdiplusimpl.h: New file.
        * include/gdiplus/gdiplusinit.h: New file.
        * include/gdiplus/gdipluslinecaps.h: New file.
        * include/gdiplus/gdiplusmatrix.h: New file.
        * include/gdiplus/gdiplusmem.h: New file.
        * include/gdiplus/gdiplusmetafile.h: New file.
        * include/gdiplus/gdiplusmetaheader.h: New file.
        * include/gdiplus/gdipluspath.h: New file.
        * include/gdiplus/gdipluspen.h: New file.
        * include/gdiplus/gdipluspixelformats.h: New file.
        * include/gdiplus/gdiplusstringformat.h: New file.
        * include/gdiplus/gdiplustypes.h: New file.
        * lib/gdiplus.c: New file containing GDI+ variable definitions
        and GUIDs.
        * lib/gdiplus.def: New file.
        * lib/Makefile.in: Add gdiplus.o to EXTRA_OBJS,
        add gdiplus.c to SOURCES.
        * lib/test.c: Include gdiplus.h.
			
			
This commit is contained in:
		| @@ -1,3 +1,39 @@ | |||||||
|  | 2010-07-08  Markus Koenig  <basilo@users.sourceforge.net> | ||||||
|  |  | ||||||
|  | 	* include/gdiplus.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplus.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusbase.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusbrush.h: New file. | ||||||
|  | 	* include/gdiplus/gdipluscolor.h: New file. | ||||||
|  | 	* include/gdiplus/gdipluscolormatrix.h: New file. | ||||||
|  | 	* include/gdiplus/gdipluseffects.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusenums.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusflat.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusgpstubs.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusgraphics.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusheaders.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusimageattributes.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusimagecodec.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusimaging.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusimpl.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusinit.h: New file. | ||||||
|  | 	* include/gdiplus/gdipluslinecaps.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusmatrix.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusmem.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusmetafile.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusmetaheader.h: New file. | ||||||
|  | 	* include/gdiplus/gdipluspath.h: New file. | ||||||
|  | 	* include/gdiplus/gdipluspen.h: New file. | ||||||
|  | 	* include/gdiplus/gdipluspixelformats.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplusstringformat.h: New file. | ||||||
|  | 	* include/gdiplus/gdiplustypes.h: New file. | ||||||
|  | 	* lib/gdiplus.c: New file containing GDI+ variable definitions | ||||||
|  | 	and GUIDs. | ||||||
|  | 	* lib/gdiplus.def: New file. | ||||||
|  | 	* lib/Makefile.in: Add gdiplus.o to EXTRA_OBJS, | ||||||
|  | 	add gdiplus.c to SOURCES. | ||||||
|  | 	* lib/test.c: Include gdiplus.h. | ||||||
|  |  | ||||||
| 2010-06-28 Rick Rankin <rrankin1424-mingw@yahoo.com> | 2010-06-28 Rick Rankin <rrankin1424-mingw@yahoo.com> | ||||||
|  |  | ||||||
| 	* include/psapi.h (PROCESS_MEMORY_COUNTERS_EX, PERFORMANCE_INFORMATION, | 	* include/psapi.h (PROCESS_MEMORY_COUNTERS_EX, PERFORMANCE_INFORMATION, | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								winsup/w32api/include/gdiplus.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								winsup/w32api/include/gdiplus.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | #include "gdiplus/gdiplus.h" | ||||||
							
								
								
									
										81
									
								
								winsup/w32api/include/gdiplus/gdiplus.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										81
									
								
								winsup/w32api/include/gdiplus/gdiplus.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,81 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplus.h | ||||||
|  |  * | ||||||
|  |  * GDI+ main header | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_H | ||||||
|  | #define __GDIPLUS_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef RC_INVOKED | ||||||
|  |  | ||||||
|  | #include <stddef.h> | ||||||
|  | #include <math.h> | ||||||
|  | #include <windef.h> | ||||||
|  | #include <wingdi.h> | ||||||
|  |  | ||||||
|  | #include <basetyps.h> | ||||||
|  | typedef _COM_interface IStream IStream; | ||||||
|  | typedef _COM_interface IDirectDrawSurface7 IDirectDrawSurface7; | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | namespace Gdiplus { | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef float REAL; | ||||||
|  | typedef SHORT INT16; | ||||||
|  | typedef WORD UINT16; | ||||||
|  |  | ||||||
|  | #include "gdiplusenums.h" | ||||||
|  | #include "gdiplustypes.h" | ||||||
|  | #include "gdiplusgpstubs.h" | ||||||
|  | #include "gdiplusimaging.h" | ||||||
|  | #include "gdiplusinit.h" | ||||||
|  | #include "gdiplusmem.h" | ||||||
|  | #include "gdiplusmetaheader.h" | ||||||
|  | #include "gdipluspixelformats.h" | ||||||
|  | #include "gdipluscolor.h" | ||||||
|  | #include "gdipluscolormatrix.h" | ||||||
|  | #include "gdiplusflat.h" | ||||||
|  | #include "gdipluseffects.h" | ||||||
|  | #include "gdiplusimagecodec.h" | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | #include "gdiplusbase.h" | ||||||
|  | #include "gdiplusheaders.h" | ||||||
|  | #include "gdiplusimageattributes.h" | ||||||
|  | #include "gdiplusmatrix.h" | ||||||
|  | #include "gdiplusbrush.h" | ||||||
|  | #include "gdiplusmetafile.h" | ||||||
|  | #include "gdipluspen.h" | ||||||
|  | #include "gdiplusstringformat.h" | ||||||
|  | #include "gdipluspath.h" | ||||||
|  | #include "gdiplusgraphics.h" | ||||||
|  | #include "gdipluslinecaps.h" | ||||||
|  | #include "gdiplusimpl.h" | ||||||
|  |  | ||||||
|  | }  /* namespace Gdiplus */ | ||||||
|  | #endif /* __cplusplus */ | ||||||
|  |  | ||||||
|  | #endif /* !RC_INVOKED */ | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_H */ | ||||||
							
								
								
									
										54
									
								
								winsup/w32api/include/gdiplus/gdiplusbase.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										54
									
								
								winsup/w32api/include/gdiplus/gdiplusbase.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,54 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusbase.h | ||||||
|  |  * | ||||||
|  |  * GDI+ base class | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_BASE_H | ||||||
|  | #define __GDIPLUS_BASE_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef __cplusplus | ||||||
|  | #error "A C++ compiler is required to include gdiplusbase.h." | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | class GdiplusBase | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	static void* operator new(size_t in_size) | ||||||
|  | 	{ | ||||||
|  | 		return DllExports::GdipAlloc(in_size); | ||||||
|  | 	} | ||||||
|  | 	static void* operator new[](size_t in_size) | ||||||
|  | 	{ | ||||||
|  | 		return DllExports::GdipAlloc(in_size); | ||||||
|  | 	} | ||||||
|  | 	static void operator delete(void *in_pVoid) | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipFree(in_pVoid); | ||||||
|  | 	} | ||||||
|  | 	static void operator delete[](void *in_pVoid) | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipFree(in_pVoid); | ||||||
|  | 	} | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_BASE_H */ | ||||||
							
								
								
									
										606
									
								
								winsup/w32api/include/gdiplus/gdiplusbrush.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										606
									
								
								winsup/w32api/include/gdiplus/gdiplusbrush.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,606 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusbrush.h | ||||||
|  |  * | ||||||
|  |  * GDI+ brush classes | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_BRUSH_H | ||||||
|  | #define __GDIPLUS_BRUSH_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef __cplusplus | ||||||
|  | #error "A C++ compiler is required to include gdiplusbrush.h." | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | class Brush: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class HatchBrush; | ||||||
|  | 	friend class LinearGradientBrush; | ||||||
|  | 	friend class PathGradientBrush; | ||||||
|  | 	friend class SolidBrush; | ||||||
|  | 	friend class TextureBrush; | ||||||
|  | 	friend class Graphics; | ||||||
|  | 	friend class Pen; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	virtual ~Brush() | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipDeleteBrush(nativeBrush); | ||||||
|  | 	} | ||||||
|  | 	virtual Brush* Clone() const  // each subclass must implement this | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = NotImplemented; | ||||||
|  | 		return NULL; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		Status result = lastStatus; | ||||||
|  | 		lastStatus = Ok; | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	BrushType GetType() const | ||||||
|  | 	{ | ||||||
|  | 		BrushType result = BrushTypeSolidColor; | ||||||
|  | 		updateStatus(DllExports::GdipGetBrushType(nativeBrush, &result)); | ||||||
|  | 		return result;   | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	Brush(): nativeBrush(NULL), lastStatus(Ok) {} | ||||||
|  | 	Brush(GpBrush *brush, Status status): | ||||||
|  | 		nativeBrush(brush), lastStatus(status) {} | ||||||
|  | 	Brush(const Brush& brush); | ||||||
|  | 	Brush& operator=(const Brush&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpBrush *nativeBrush; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class HatchBrush: public Brush | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	HatchBrush(HatchStyle hatchStyle, | ||||||
|  | 			const Color& foreColor, | ||||||
|  | 			const Color& backColor = Color()) | ||||||
|  | 	{ | ||||||
|  | 		GpHatch *nativeHatch = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateHatchBrush(hatchStyle, | ||||||
|  | 				foreColor.GetValue(), backColor.GetValue(), | ||||||
|  | 				&nativeHatch); | ||||||
|  | 		nativeBrush = nativeHatch;  | ||||||
|  | 	} | ||||||
|  | 	virtual HatchBrush* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpBrush *cloneBrush = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneBrush( | ||||||
|  | 				nativeBrush, &cloneBrush)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			HatchBrush *result = | ||||||
|  | 				new HatchBrush(cloneBrush, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDeleteBrush(cloneBrush); | ||||||
|  | 				updateStatus(OutOfMemory); | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	Status GetBackgroundColor(Color *color) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetHatchBackgroundColor( | ||||||
|  | 				(GpHatch*) nativeBrush, | ||||||
|  | 				color ? &color->Value : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status GetForegroundColor(Color *color) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetHatchForegroundColor( | ||||||
|  | 				(GpHatch*) nativeBrush, | ||||||
|  | 				color ? &color->Value : NULL)); | ||||||
|  | 	} | ||||||
|  | 	HatchStyle GetHatchStyle() const | ||||||
|  | 	{ | ||||||
|  | 		HatchStyle result; | ||||||
|  | 		updateStatus(DllExports::GdipGetHatchStyle( | ||||||
|  | 				(GpHatch*) nativeBrush, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	HatchBrush(GpBrush *brush, Status status): Brush(brush, status) {} | ||||||
|  | 	HatchBrush(const HatchBrush& brush); | ||||||
|  | 	HatchBrush& operator=(const HatchBrush&); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class LinearGradientBrush: public Brush | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	LinearGradientBrush(const PointF& point1, const PointF& point2, | ||||||
|  | 			const Color& color1, const Color& color2) | ||||||
|  | 	{ | ||||||
|  | 		GpLineGradient *nativeLineGradient = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateLineBrush( | ||||||
|  | 				&point1, &point2, | ||||||
|  | 				color1.GetValue(), color2.GetValue(), | ||||||
|  | 				WrapModeTile, &nativeLineGradient); | ||||||
|  | 		nativeBrush = nativeLineGradient; | ||||||
|  | 	} | ||||||
|  | 	LinearGradientBrush(const Point& point1, const Point& point2, | ||||||
|  | 			const Color& color1, const Color& color2) | ||||||
|  | 	{ | ||||||
|  | 		GpLineGradient *nativeLineGradient = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateLineBrushI( | ||||||
|  | 				&point1, &point2, | ||||||
|  | 				color1.GetValue(), color2.GetValue(), | ||||||
|  | 				WrapModeTile, &nativeLineGradient); | ||||||
|  | 		nativeBrush = nativeLineGradient; | ||||||
|  | 	} | ||||||
|  | 	LinearGradientBrush(const RectF& rect, const Color& color1, | ||||||
|  | 			const Color& color2, LinearGradientMode mode) | ||||||
|  | 	{ | ||||||
|  | 		GpLineGradient *nativeLineGradient = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateLineBrushFromRect( | ||||||
|  | 				&rect, color1.GetValue(), color2.GetValue(), | ||||||
|  | 				mode, WrapModeTile, &nativeLineGradient); | ||||||
|  | 		nativeBrush = nativeLineGradient; | ||||||
|  | 	} | ||||||
|  | 	LinearGradientBrush(const Rect& rect, const Color& color1, | ||||||
|  | 			const Color& color2, LinearGradientMode mode) | ||||||
|  | 	{ | ||||||
|  | 		GpLineGradient *nativeLineGradient = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateLineBrushFromRectI( | ||||||
|  | 				&rect, color1.GetValue(), color2.GetValue(), | ||||||
|  | 				mode, WrapModeTile, &nativeLineGradient); | ||||||
|  | 		nativeBrush = nativeLineGradient; | ||||||
|  | 	} | ||||||
|  | 	LinearGradientBrush(const RectF& rect, const Color& color1, | ||||||
|  | 			const Color& color2, REAL angle, | ||||||
|  | 			BOOL isAngleScalable = FALSE) | ||||||
|  | 	{ | ||||||
|  | 		GpLineGradient *nativeLineGradient = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateLineBrushFromRectWithAngle( | ||||||
|  | 				&rect, color1.GetValue(), color2.GetValue(), | ||||||
|  | 				angle, isAngleScalable, WrapModeTile, | ||||||
|  | 				&nativeLineGradient); | ||||||
|  | 		nativeBrush = nativeLineGradient; | ||||||
|  | 	} | ||||||
|  | 	LinearGradientBrush(const Rect& rect, const Color& color1, | ||||||
|  | 			const Color& color2, REAL angle, | ||||||
|  | 			BOOL isAngleScalable = FALSE) | ||||||
|  | 	{ | ||||||
|  | 		GpLineGradient *nativeLineGradient = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateLineBrushFromRectWithAngleI( | ||||||
|  | 				&rect, color1.GetValue(), color2.GetValue(), | ||||||
|  | 				angle, isAngleScalable, WrapModeTile, | ||||||
|  | 				&nativeLineGradient); | ||||||
|  | 		nativeBrush = nativeLineGradient; | ||||||
|  | 	} | ||||||
|  | 	virtual LinearGradientBrush* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpBrush *cloneBrush = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneBrush( | ||||||
|  | 				nativeBrush, &cloneBrush)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			LinearGradientBrush *result = | ||||||
|  | 				new LinearGradientBrush(cloneBrush, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDeleteBrush(cloneBrush); | ||||||
|  | 				updateStatus(OutOfMemory); | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	Status GetBlend(REAL *blendFactors, REAL *blendPositions, | ||||||
|  | 			INT count) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetLineBlend( | ||||||
|  | 				(GpLineGradient*) nativeBrush, | ||||||
|  | 				blendFactors, blendPositions, count)); | ||||||
|  | 	} | ||||||
|  | 	INT GetBlendCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetLineBlendCount( | ||||||
|  | 				(GpLineGradient*) nativeBrush, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	BOOL GetGammaCorrection() const | ||||||
|  | 	{ | ||||||
|  | 		BOOL result = FALSE; | ||||||
|  | 		updateStatus(DllExports::GdipGetLineGammaCorrection( | ||||||
|  | 				(GpLineGradient*) nativeBrush, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT GetInterpolationColorCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetLinePresetBlendCount( | ||||||
|  | 				(GpLineGradient*) nativeBrush, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetInterpolationColors(Color *presetColors, | ||||||
|  | 			REAL *blendPositions, INT count) const | ||||||
|  | 	{ | ||||||
|  | 		if (!presetColors || count <= 0) | ||||||
|  | 			return lastStatus = InvalidParameter; | ||||||
|  |  | ||||||
|  | 		ARGB *presetArgb = | ||||||
|  | 			(ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); | ||||||
|  | 		if (!presetArgb) | ||||||
|  | 			return lastStatus = OutOfMemory; | ||||||
|  |  | ||||||
|  | 		Status status = updateStatus(DllExports::GdipGetLinePresetBlend( | ||||||
|  | 				(GpLineGradient*) nativeBrush, presetArgb, | ||||||
|  | 				blendPositions, count)); | ||||||
|  | 		for (INT i = 0; i < count; ++i) { | ||||||
|  | 			presetColors[i].SetValue(presetArgb[i]); | ||||||
|  | 		} | ||||||
|  | 		DllExports::GdipFree((void*) presetArgb); | ||||||
|  | 		return status; | ||||||
|  | 	} | ||||||
|  | 	Status GetLinearColors(Color *colors) const | ||||||
|  | 	{ | ||||||
|  | 		if (!colors) return lastStatus = InvalidParameter; | ||||||
|  |  | ||||||
|  | 		ARGB colorsArgb[2]; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipGetLineColors( | ||||||
|  | 				(GpLineGradient*) nativeBrush, colorsArgb)); | ||||||
|  | 		colors[0].SetValue(colorsArgb[0]); | ||||||
|  | 		colors[1].SetValue(colorsArgb[1]); | ||||||
|  | 		return status; | ||||||
|  | 	} | ||||||
|  | 	Status GetRectangle(RectF *rect) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetLineRect( | ||||||
|  | 				(GpLineGradient*) nativeBrush, rect)); | ||||||
|  | 	} | ||||||
|  | 	Status GetRectangle(Rect *rect) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetLineRectI( | ||||||
|  | 				(GpLineGradient*) nativeBrush, rect)); | ||||||
|  | 	} | ||||||
|  | 	Status GetTransform(Matrix *matrix) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetLineTransform( | ||||||
|  | 				(GpLineGradient*) nativeBrush, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL)); | ||||||
|  | 	} | ||||||
|  | 	WrapMode GetWrapMode() const | ||||||
|  | 	{ | ||||||
|  | 		WrapMode wrapMode = WrapModeTile; | ||||||
|  | 		updateStatus(DllExports::GdipGetLineWrapMode( | ||||||
|  | 				(GpLineGradient*) nativeBrush, &wrapMode)); | ||||||
|  | 		return wrapMode; | ||||||
|  | 	} | ||||||
|  | 	Status MultiplyTransform(const Matrix *matrix, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipMultiplyLineTransform( | ||||||
|  | 				(GpLineGradient*) nativeBrush, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, order)); | ||||||
|  | 	} | ||||||
|  | 	Status ResetTransform() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipResetLineTransform( | ||||||
|  | 				(GpLineGradient*) nativeBrush)); | ||||||
|  | 	} | ||||||
|  | 	Status RotateTranform(REAL angle, MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipRotateLineTransform( | ||||||
|  | 				(GpLineGradient*) nativeBrush, angle, order)); | ||||||
|  | 	} | ||||||
|  | 	Status ScaleTransform(REAL sx, REAL sy, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipScaleLineTransform( | ||||||
|  | 				(GpLineGradient*) nativeBrush, sx, sy, order)); | ||||||
|  | 	} | ||||||
|  | 	Status SetBlend(const REAL *blendFactors, | ||||||
|  | 			const REAL *blendPositions, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetLineBlend( | ||||||
|  | 				(GpLineGradient*) nativeBrush, | ||||||
|  | 				blendFactors, blendPositions, count)); | ||||||
|  | 	} | ||||||
|  | 	Status SetBlendBellShape(REAL focus, REAL scale = 1.0f) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetLineSigmaBlend( | ||||||
|  | 				(GpLineGradient*) nativeBrush, | ||||||
|  | 				focus, scale)); | ||||||
|  | 	} | ||||||
|  | 	Status SetBlendTriangularShape(REAL focus, REAL scale = 1.0f) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetLineLinearBlend( | ||||||
|  | 				(GpLineGradient*) nativeBrush, | ||||||
|  | 				focus, scale)); | ||||||
|  | 	} | ||||||
|  | 	Status SetGammaCorrection(BOOL useGammaCorrection) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetLineGammaCorrection( | ||||||
|  | 				(GpLineGradient*) nativeBrush, | ||||||
|  | 				useGammaCorrection)); | ||||||
|  | 	} | ||||||
|  | 	Status SetInterpolationColors(const Color *presetColors, | ||||||
|  | 			const REAL *blendPositions, INT count) | ||||||
|  | 	{ | ||||||
|  | 		if (!presetColors || count < 0) | ||||||
|  | 			return lastStatus = InvalidParameter; | ||||||
|  |  | ||||||
|  | 		ARGB *presetArgb = | ||||||
|  | 			(ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); | ||||||
|  | 		if (!presetArgb) | ||||||
|  | 			return lastStatus = OutOfMemory; | ||||||
|  | 		for (INT i = 0; i < count; ++i) { | ||||||
|  | 			presetArgb[i] = presetColors[i].GetValue(); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		Status status = updateStatus(DllExports::GdipSetLinePresetBlend( | ||||||
|  | 				(GpLineGradient*) nativeBrush, | ||||||
|  | 				presetArgb, blendPositions, count)); | ||||||
|  | 		DllExports::GdipFree((void*) presetArgb); | ||||||
|  | 		return status; | ||||||
|  | 	} | ||||||
|  | 	Status SetLinearColors(const Color& color1, const Color& color2) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetLineColors( | ||||||
|  | 				(GpLineGradient*) nativeBrush, | ||||||
|  | 				color1.GetValue(), color2.GetValue())); | ||||||
|  | 	} | ||||||
|  | 	Status SetTransform(const Matrix *matrix) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetLineTransform( | ||||||
|  | 				(GpLineGradient*) nativeBrush, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status SetWrapMode(WrapMode wrapMode) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetLineWrapMode( | ||||||
|  | 				(GpLineGradient*) nativeBrush, wrapMode)); | ||||||
|  | 	} | ||||||
|  | 	Status TranslateTransform(REAL dx, REAL dy, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipTranslateLineTransform( | ||||||
|  | 				(GpLineGradient*) nativeBrush, dx, dy, order)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	LinearGradientBrush(GpBrush *brush, Status status): Brush(brush, status) {} | ||||||
|  | 	LinearGradientBrush(const LinearGradientBrush& brush); | ||||||
|  | 	LinearGradientBrush& operator=(const LinearGradientBrush&); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class SolidBrush: public Brush | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	SolidBrush(const Color& color) | ||||||
|  | 	{ | ||||||
|  | 		GpSolidFill *nativeSolidFill = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateSolidFill( | ||||||
|  | 				color.GetValue(), &nativeSolidFill); | ||||||
|  | 		nativeBrush = nativeSolidFill;  | ||||||
|  | 	} | ||||||
|  | 	virtual SolidBrush* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpBrush *cloneBrush = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneBrush( | ||||||
|  | 				nativeBrush, &cloneBrush)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			SolidBrush *result = | ||||||
|  | 				new SolidBrush(cloneBrush, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDeleteBrush(cloneBrush); | ||||||
|  | 				updateStatus(OutOfMemory); | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	Status GetColor(Color *color) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetSolidFillColor( | ||||||
|  | 				(GpSolidFill*) nativeBrush, | ||||||
|  | 				color ? &color->Value : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status SetColor(const Color& color) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetSolidFillColor( | ||||||
|  | 				(GpSolidFill*) nativeBrush, color.GetValue())); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	SolidBrush(GpBrush *brush, Status status): Brush(brush, status) {} | ||||||
|  | 	SolidBrush(const SolidBrush&); | ||||||
|  | 	SolidBrush& operator=(const SolidBrush&); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class TextureBrush: public Brush | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	TextureBrush(Image *image, WrapMode wrapMode = WrapModeTile) | ||||||
|  | 	{ | ||||||
|  | 		GpTexture *nativeTexture = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateTexture( | ||||||
|  | 				image ? image->nativeImage : NULL, | ||||||
|  | 				wrapMode, &nativeTexture); | ||||||
|  | 		nativeBrush = nativeTexture; | ||||||
|  | 	} | ||||||
|  | 	TextureBrush(Image *image, WrapMode wrapMode, | ||||||
|  | 			REAL dstX, REAL dstY, REAL dstWidth, REAL dstHeight) | ||||||
|  | 	{ | ||||||
|  | 		GpTexture *nativeTexture = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateTexture2( | ||||||
|  | 				image ? image->nativeImage : NULL, | ||||||
|  | 				wrapMode, dstX, dstY, dstWidth, dstHeight, | ||||||
|  | 				&nativeTexture); | ||||||
|  | 		nativeBrush = nativeTexture; | ||||||
|  | 	} | ||||||
|  | 	TextureBrush(Image *image, WrapMode wrapMode, | ||||||
|  | 			INT dstX, INT dstY, INT dstWidth, INT dstHeight) | ||||||
|  | 	{ | ||||||
|  | 		GpTexture *nativeTexture = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateTexture2I( | ||||||
|  | 				image ? image->nativeImage : NULL, | ||||||
|  | 				wrapMode, dstX, dstY, dstWidth, dstHeight, | ||||||
|  | 				&nativeTexture); | ||||||
|  | 		nativeBrush = nativeTexture; | ||||||
|  | 	} | ||||||
|  | 	TextureBrush(Image *image, WrapMode wrapMode, const RectF& dstRect) | ||||||
|  | 	{ | ||||||
|  | 		GpTexture *nativeTexture = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateTexture2( | ||||||
|  | 				image ? image->nativeImage : NULL, wrapMode, | ||||||
|  | 				dstRect.X, dstRect.Y, | ||||||
|  | 				dstRect.Width, dstRect.Height, &nativeTexture); | ||||||
|  | 		nativeBrush = nativeTexture; | ||||||
|  | 	} | ||||||
|  | 	TextureBrush(Image *image, WrapMode wrapMode, const Rect& dstRect) | ||||||
|  | 	{ | ||||||
|  | 		GpTexture *nativeTexture = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateTexture2I( | ||||||
|  | 				image ? image->nativeImage : NULL, wrapMode, | ||||||
|  | 				dstRect.X, dstRect.Y, | ||||||
|  | 				dstRect.Width, dstRect.Height, &nativeTexture); | ||||||
|  | 		nativeBrush = nativeTexture; | ||||||
|  | 	} | ||||||
|  | 	TextureBrush(Image *image, const RectF& dstRect, | ||||||
|  | 			ImageAttributes *imageAttributes = NULL) | ||||||
|  | 	{ | ||||||
|  | 		GpTexture *nativeTexture = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateTextureIA( | ||||||
|  | 				image ? image->nativeImage : NULL, | ||||||
|  | 				imageAttributes ? imageAttributes->nativeImageAttributes : NULL, | ||||||
|  | 				dstRect.X, dstRect.Y, | ||||||
|  | 				dstRect.Width, dstRect.Height, &nativeTexture); | ||||||
|  | 		nativeBrush = nativeTexture; | ||||||
|  | 	} | ||||||
|  | 	TextureBrush(Image *image, const Rect& dstRect, | ||||||
|  | 			ImageAttributes *imageAttributes = NULL) | ||||||
|  | 	{ | ||||||
|  | 		GpTexture *nativeTexture = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateTextureIAI( | ||||||
|  | 				image ? image->nativeImage : NULL, | ||||||
|  | 				imageAttributes ? imageAttributes->nativeImageAttributes : NULL, | ||||||
|  | 				dstRect.X, dstRect.Y, | ||||||
|  | 				dstRect.Width, dstRect.Height, &nativeTexture); | ||||||
|  | 		nativeBrush = nativeTexture; | ||||||
|  | 	} | ||||||
|  | 	virtual TextureBrush* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpBrush *cloneBrush = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneBrush( | ||||||
|  | 				nativeBrush, &cloneBrush)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			TextureBrush *result = | ||||||
|  | 				new TextureBrush(cloneBrush, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDeleteBrush(cloneBrush); | ||||||
|  | 				updateStatus(OutOfMemory); | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	//TODO: implement TextureBrush::GetImage() | ||||||
|  | 	//Image *GetImage() const | ||||||
|  | 	//{ | ||||||
|  | 	//	// where is the Image allocated (static,member,new,other)? | ||||||
|  | 	//	// GdipGetTextureImage just returns a GpImage* | ||||||
|  | 	//	updateStatus(NotImplemented); | ||||||
|  | 	//	return NULL; | ||||||
|  | 	//} | ||||||
|  | 	Status GetTransfrom(Matrix *matrix) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetTextureTransform( | ||||||
|  | 				(GpTexture*) nativeBrush, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL)); | ||||||
|  | 	} | ||||||
|  | 	WrapMode GetWrapMode() const | ||||||
|  | 	{ | ||||||
|  | 		WrapMode result = WrapModeTile; | ||||||
|  | 		updateStatus(DllExports::GdipGetTextureWrapMode( | ||||||
|  | 				(GpTexture*) nativeBrush, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status MultiplyTransform(const Matrix *matrix, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipMultiplyTextureTransform( | ||||||
|  | 				(GpTexture*) nativeBrush, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, order)); | ||||||
|  | 	} | ||||||
|  | 	Status ResetTransform() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipResetTextureTransform( | ||||||
|  | 				(GpTexture*) nativeBrush)); | ||||||
|  | 	} | ||||||
|  | 	Status RotateTransform(REAL angle, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipRotateTextureTransform( | ||||||
|  | 				(GpTexture*) nativeBrush, angle, order)); | ||||||
|  | 	} | ||||||
|  | 	Status ScaleTransform(REAL sx, REAL sy, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipScaleTextureTransform( | ||||||
|  | 				(GpTexture*) nativeBrush, sx, sy, order)); | ||||||
|  | 	} | ||||||
|  | 	Status SetTransform(const Matrix *matrix) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetTextureTransform( | ||||||
|  | 				(GpTexture*) nativeBrush, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status SetWrapMode(WrapMode wrapMode) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetTextureWrapMode( | ||||||
|  | 				(GpTexture*) nativeBrush, wrapMode)); | ||||||
|  | 	} | ||||||
|  | 	Status TranslateTransform(REAL dx, REAL dy, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipTranslateTextureTransform( | ||||||
|  | 				(GpTexture*) nativeBrush, dx, dy, order)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	TextureBrush(GpBrush *brush, Status status): Brush(brush, status) {} | ||||||
|  | 	TextureBrush(const TextureBrush&); | ||||||
|  | 	TextureBrush& operator=(const TextureBrush&); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_BRUSH_H */ | ||||||
							
								
								
									
										262
									
								
								winsup/w32api/include/gdiplus/gdipluscolor.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										262
									
								
								winsup/w32api/include/gdiplus/gdipluscolor.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,262 @@ | |||||||
|  | /* | ||||||
|  |  * gdipluscolor.h | ||||||
|  |  * | ||||||
|  |  * GDI+ color | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_COLOR_H | ||||||
|  | #define __GDIPLUS_COLOR_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef enum ColorChannelFlags { | ||||||
|  | 	ColorChannelFlagsC = 0, | ||||||
|  | 	ColorChannelFlagsM = 1, | ||||||
|  | 	ColorChannelFlagsY = 2, | ||||||
|  | 	ColorChannelFlagsK = 3, | ||||||
|  | 	ColorChannelFlagsLast = 4 | ||||||
|  | } ColorChannelFlags; | ||||||
|  |  | ||||||
|  | typedef struct Color | ||||||
|  | { | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	private: | ||||||
|  | 	#endif | ||||||
|  | 	ARGB Value; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	public: | ||||||
|  | 	friend class Bitmap; | ||||||
|  | 	friend class Graphics; | ||||||
|  | 	friend class HatchBrush; | ||||||
|  | 	friend class PathGradientBrush; | ||||||
|  | 	friend class Pen; | ||||||
|  | 	friend class SolidBrush; | ||||||
|  |  | ||||||
|  | 	static ARGB MakeARGB(BYTE a, BYTE r, BYTE g, BYTE b) | ||||||
|  | 	{ | ||||||
|  | 		return (ARGB) ((((DWORD) a) << 24) | (((DWORD) r) << 16) | ||||||
|  | 		             | (((DWORD) g) << 8) | ((DWORD) b)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	static const ARGB AlphaMask            = 0xFF000000UL; | ||||||
|  |  | ||||||
|  | 	static const ARGB AliceBlue            = 0xFFF0F8FFUL; | ||||||
|  | 	static const ARGB AntiqueWhite         = 0xFFFAEBD7UL; | ||||||
|  | 	static const ARGB Aqua                 = 0xFF00FFFFUL; | ||||||
|  | 	static const ARGB Aquamarine           = 0xFF7FFFD4UL; | ||||||
|  | 	static const ARGB Azure                = 0xFFF0FFFFUL; | ||||||
|  | 	static const ARGB Beige                = 0xFFF5F5DCUL; | ||||||
|  | 	static const ARGB Bisque               = 0xFFFFE4C4UL; | ||||||
|  | 	static const ARGB Black                = 0xFF000000UL; | ||||||
|  | 	static const ARGB BlanchedAlmond       = 0xFFFFEBCDUL; | ||||||
|  | 	static const ARGB Blue                 = 0xFF0000FFUL; | ||||||
|  | 	static const ARGB BlueViolet           = 0xFF8A2BE2UL; | ||||||
|  | 	static const ARGB Brown                = 0xFFA52A2AUL; | ||||||
|  | 	static const ARGB BurlyWood            = 0xFFDEB887UL; | ||||||
|  | 	static const ARGB CadetBlue            = 0xFF5F9EA0UL; | ||||||
|  | 	static const ARGB Chartreuse           = 0xFF7FFF00UL; | ||||||
|  | 	static const ARGB Chocolate            = 0xFFD2691EUL; | ||||||
|  | 	static const ARGB Coral                = 0xFFFF7F50UL; | ||||||
|  | 	static const ARGB CornflowerBlue       = 0xFF6495EDUL; | ||||||
|  | 	static const ARGB Cornsilk             = 0xFFFFF8DCUL; | ||||||
|  | 	static const ARGB Crimson              = 0xFFDC143CUL; | ||||||
|  | 	static const ARGB Cyan                 = 0xFF00FFFFUL; | ||||||
|  | 	static const ARGB DarkBlue             = 0xFF00008BUL; | ||||||
|  | 	static const ARGB DarkCyan             = 0xFF008B8BUL; | ||||||
|  | 	static const ARGB DarkGoldenrod        = 0xFFB8860BUL; | ||||||
|  | 	static const ARGB DarkGray             = 0xFFA9A9A9UL; | ||||||
|  | 	static const ARGB DarkGreen            = 0xFF006400UL; | ||||||
|  | 	static const ARGB DarkKhaki            = 0xFFBDB76BUL; | ||||||
|  | 	static const ARGB DarkMagenta          = 0xFF8B008BUL; | ||||||
|  | 	static const ARGB DarkOliveGreen       = 0xFF556B2FUL; | ||||||
|  | 	static const ARGB DarkOrange           = 0xFFFF8C00UL; | ||||||
|  | 	static const ARGB DarkOrchid           = 0xFF9932CCUL; | ||||||
|  | 	static const ARGB DarkRed              = 0xFF8B0000UL; | ||||||
|  | 	static const ARGB DarkSalmon           = 0xFFE9967AUL; | ||||||
|  | 	static const ARGB DarkSeaGreen         = 0xFF8FBC8FUL; | ||||||
|  | 	static const ARGB DarkSlateBlue        = 0xFF483D8BUL; | ||||||
|  | 	static const ARGB DarkSlateGray        = 0xFF2F4F4FUL; | ||||||
|  | 	static const ARGB DarkTurquoise        = 0xFF00CED1UL; | ||||||
|  | 	static const ARGB DarkViolet           = 0xFF9400D3UL; | ||||||
|  | 	static const ARGB DeepPink             = 0xFFFF1493UL; | ||||||
|  | 	static const ARGB DeepSkyBlue          = 0xFF00BFFFUL; | ||||||
|  | 	static const ARGB DimGray              = 0xFF696969UL; | ||||||
|  | 	static const ARGB DodgerBlue           = 0xFF1E90FFUL; | ||||||
|  | 	static const ARGB Firebrick            = 0xFFB22222UL; | ||||||
|  | 	static const ARGB FloralWhite          = 0xFFFFFAF0UL; | ||||||
|  | 	static const ARGB ForestGreen          = 0xFF228B22UL; | ||||||
|  | 	static const ARGB Fuchsia              = 0xFFFF00FFUL; | ||||||
|  | 	static const ARGB Gainsboro            = 0xFFDCDCDCUL; | ||||||
|  | 	static const ARGB GhostWhite           = 0xFFF8F8FFUL; | ||||||
|  | 	static const ARGB Gold                 = 0xFFFFD700UL; | ||||||
|  | 	static const ARGB Goldenrod            = 0xFFDAA520UL; | ||||||
|  | 	static const ARGB Gray                 = 0xFF808080UL; | ||||||
|  | 	static const ARGB Green                = 0xFF008000UL; | ||||||
|  | 	static const ARGB GreenYellow          = 0xFFADFF2FUL; | ||||||
|  | 	static const ARGB Honeydew             = 0xFFF0FFF0UL; | ||||||
|  | 	static const ARGB HotPink              = 0xFFFF69B4UL; | ||||||
|  | 	static const ARGB IndianRed            = 0xFFCD5C5CUL; | ||||||
|  | 	static const ARGB Indigo               = 0xFF4B0082UL; | ||||||
|  | 	static const ARGB Ivory                = 0xFFFFFFF0UL; | ||||||
|  | 	static const ARGB Khaki                = 0xFFF0E68CUL; | ||||||
|  | 	static const ARGB Lavender             = 0xFFE6E6FAUL; | ||||||
|  | 	static const ARGB LavenderBlush        = 0xFFFFF0F5UL; | ||||||
|  | 	static const ARGB LawnGreen            = 0xFF7CFC00UL; | ||||||
|  | 	static const ARGB LemonChiffon         = 0xFFFFFACDUL; | ||||||
|  | 	static const ARGB LightBlue            = 0xFFADD8E6UL; | ||||||
|  | 	static const ARGB LightCoral           = 0xFFF08080UL; | ||||||
|  | 	static const ARGB LightCyan            = 0xFFE0FFFFUL; | ||||||
|  | 	static const ARGB LightGoldenrodYellow = 0xFFFAFAD2UL; | ||||||
|  | 	static const ARGB LightGray            = 0xFFD3D3D3UL; | ||||||
|  | 	static const ARGB LightGreen           = 0xFF90EE90UL; | ||||||
|  | 	static const ARGB LightPink            = 0xFFFFB6C1UL; | ||||||
|  | 	static const ARGB LightSalmon          = 0xFFFFA07AUL; | ||||||
|  | 	static const ARGB LightSeaGreen        = 0xFF20B2AAUL; | ||||||
|  | 	static const ARGB LightSkyBlue         = 0xFF87CEFAUL; | ||||||
|  | 	static const ARGB LightSlateGray       = 0xFF778899UL; | ||||||
|  | 	static const ARGB LightSteelBlue       = 0xFFB0C4DEUL; | ||||||
|  | 	static const ARGB LightYellow          = 0xFFFFFFE0UL; | ||||||
|  | 	static const ARGB Lime                 = 0xFF00FF00UL; | ||||||
|  | 	static const ARGB LimeGreen            = 0xFF32CD32UL; | ||||||
|  | 	static const ARGB Linen                = 0xFFFAF0E6UL; | ||||||
|  | 	static const ARGB Magenta              = 0xFFFF00FFUL; | ||||||
|  | 	static const ARGB Maroon               = 0xFF800000UL; | ||||||
|  | 	static const ARGB MediumAquamarine     = 0xFF66CDAAUL; | ||||||
|  | 	static const ARGB MediumBlue           = 0xFF0000CDUL; | ||||||
|  | 	static const ARGB MediumOrchid         = 0xFFBA55D3UL; | ||||||
|  | 	static const ARGB MediumPurple         = 0xFF9370DBUL; | ||||||
|  | 	static const ARGB MediumSeaGreen       = 0xFF3CB371UL; | ||||||
|  | 	static const ARGB MediumSlateBlue      = 0xFF7B68EEUL; | ||||||
|  | 	static const ARGB MediumSpringGreen    = 0xFF00FA9AUL; | ||||||
|  | 	static const ARGB MediumTurquoise      = 0xFF48D1CCUL; | ||||||
|  | 	static const ARGB MediumVioletRed      = 0xFFC71585UL; | ||||||
|  | 	static const ARGB MidnightBlue         = 0xFF191970UL; | ||||||
|  | 	static const ARGB MintCream            = 0xFFF5FFFAUL; | ||||||
|  | 	static const ARGB MistyRose            = 0xFFFFE4E1UL; | ||||||
|  | 	static const ARGB Moccasin             = 0xFFFFE4B5UL; | ||||||
|  | 	static const ARGB NavajoWhite          = 0xFFFFDEADUL; | ||||||
|  | 	static const ARGB Navy                 = 0xFF000080UL; | ||||||
|  | 	static const ARGB OldLace              = 0xFFFDF5E6UL; | ||||||
|  | 	static const ARGB Olive                = 0xFF808000UL; | ||||||
|  | 	static const ARGB OliveDrab            = 0xFF6B8E23UL; | ||||||
|  | 	static const ARGB Orange               = 0xFFFFA500UL; | ||||||
|  | 	static const ARGB OrangeRed            = 0xFFFF4500UL; | ||||||
|  | 	static const ARGB Orchid               = 0xFFDA70D6UL; | ||||||
|  | 	static const ARGB PaleGoldenrod        = 0xFFEEE8AAUL; | ||||||
|  | 	static const ARGB PaleGreen            = 0xFF98FB98UL; | ||||||
|  | 	static const ARGB PaleTurquoise        = 0xFFAFEEEEUL; | ||||||
|  | 	static const ARGB PaleVioletRed        = 0xFFDB7093UL; | ||||||
|  | 	static const ARGB PapayaWhip           = 0xFFFFEFD5UL; | ||||||
|  | 	static const ARGB PeachPuff            = 0xFFFFDAB9UL; | ||||||
|  | 	static const ARGB Peru                 = 0xFFCD853FUL; | ||||||
|  | 	static const ARGB Pink                 = 0xFFFFC0CBUL; | ||||||
|  | 	static const ARGB Plum                 = 0xFFDDA0DDUL; | ||||||
|  | 	static const ARGB PowderBlue           = 0xFFB0E0E6UL; | ||||||
|  | 	static const ARGB Purple               = 0xFF800080UL; | ||||||
|  | 	static const ARGB Red                  = 0xFFFF0000UL; | ||||||
|  | 	static const ARGB RosyBrown            = 0xFFBC8F8FUL; | ||||||
|  | 	static const ARGB RoyalBlue            = 0xFF4169E1UL; | ||||||
|  | 	static const ARGB SaddleBrown          = 0xFF8B4513UL; | ||||||
|  | 	static const ARGB Salmon               = 0xFFFA8072UL; | ||||||
|  | 	static const ARGB SandyBrown           = 0xFFF4A460UL; | ||||||
|  | 	static const ARGB SeaGreen             = 0xFF2E8B57UL; | ||||||
|  | 	static const ARGB SeaShell             = 0xFFFFF5EEUL; | ||||||
|  | 	static const ARGB Sienna               = 0xFFA0522DUL; | ||||||
|  | 	static const ARGB Silver               = 0xFFC0C0C0UL; | ||||||
|  | 	static const ARGB SkyBlue              = 0xFF87CEEBUL; | ||||||
|  | 	static const ARGB SlateBlue            = 0xFF6A5ACDUL; | ||||||
|  | 	static const ARGB SlateGray            = 0xFF708090UL; | ||||||
|  | 	static const ARGB Snow                 = 0xFFFFFAFAUL; | ||||||
|  | 	static const ARGB SpringGreen          = 0xFF00FF7FUL; | ||||||
|  | 	static const ARGB SteelBlue            = 0xFF4682B4UL; | ||||||
|  | 	static const ARGB Tan                  = 0xFFD2B48CUL; | ||||||
|  | 	static const ARGB Teal                 = 0xFF008080UL; | ||||||
|  | 	static const ARGB Thistle              = 0xFFD8BFD8UL; | ||||||
|  | 	static const ARGB Tomato               = 0xFFFF6347UL; | ||||||
|  | 	static const ARGB Transparent          = 0x00FFFFFFUL; | ||||||
|  | 	static const ARGB Turquoise            = 0xFF40E0D0UL; | ||||||
|  | 	static const ARGB Violet               = 0xFFEE82EEUL; | ||||||
|  | 	static const ARGB Wheat                = 0xFFF5DEB3UL; | ||||||
|  | 	static const ARGB White                = 0xFFFFFFFFUL; | ||||||
|  | 	static const ARGB WhiteSmoke           = 0xFFF5F5F5UL; | ||||||
|  | 	static const ARGB Yellow               = 0xFFFFFF00UL; | ||||||
|  | 	static const ARGB YellowGreen          = 0xFF9ACD32UL; | ||||||
|  |  | ||||||
|  | 	Color(): Value(0xFF000000) {} | ||||||
|  | 	Color(ARGB argb): Value(argb) {} | ||||||
|  | 	Color(BYTE r, BYTE g, BYTE b): Value(MakeARGB(0xFF, r, g, b)) {} | ||||||
|  | 	Color(BYTE a, BYTE r, BYTE g, BYTE b): Value(MakeARGB(a, r, g, b)) {} | ||||||
|  |  | ||||||
|  | 	BYTE GetA() const | ||||||
|  | 	{ | ||||||
|  | 		return (BYTE) (Value >> 24); | ||||||
|  | 	} | ||||||
|  | 	BYTE GetAlpha() const | ||||||
|  | 	{ | ||||||
|  | 		return (BYTE) (Value >> 24); | ||||||
|  | 	} | ||||||
|  | 	BYTE GetB() const | ||||||
|  | 	{ | ||||||
|  | 		return (BYTE) Value; | ||||||
|  | 	} | ||||||
|  | 	BYTE GetBlue() const | ||||||
|  | 	{ | ||||||
|  | 		return (BYTE) Value; | ||||||
|  | 	} | ||||||
|  | 	BYTE GetG() const | ||||||
|  | 	{ | ||||||
|  | 		return (BYTE) (Value >> 8); | ||||||
|  | 	} | ||||||
|  | 	BYTE GetGreen() const | ||||||
|  | 	{ | ||||||
|  | 		return (BYTE) (Value >> 8); | ||||||
|  | 	} | ||||||
|  | 	BYTE GetR() const | ||||||
|  | 	{ | ||||||
|  | 		return (BYTE) (Value >> 16); | ||||||
|  | 	} | ||||||
|  | 	BYTE GetRed() const | ||||||
|  | 	{ | ||||||
|  | 		return (BYTE) (Value >> 16); | ||||||
|  | 	} | ||||||
|  | 	ARGB GetValue() const | ||||||
|  | 	{ | ||||||
|  | 		return Value; | ||||||
|  | 	} | ||||||
|  | 	VOID SetFromCOLORREF(COLORREF rgb) | ||||||
|  | 	{ | ||||||
|  | 		BYTE r = (BYTE) rgb; | ||||||
|  | 		BYTE g = (BYTE) (rgb >> 8); | ||||||
|  | 		BYTE b = (BYTE) (rgb >> 16); | ||||||
|  | 		Value = MakeARGB(0xFF, r, g, b); | ||||||
|  | 	} | ||||||
|  | 	VOID SetValue(ARGB argb) | ||||||
|  | 	{ | ||||||
|  | 		Value = argb; | ||||||
|  | 	} | ||||||
|  | 	COLORREF ToCOLORREF() const | ||||||
|  | 	{ | ||||||
|  | 		return RGB(GetRed(), GetGreen(), GetBlue()); | ||||||
|  | 	} | ||||||
|  | 	#endif /* __cplusplus */ | ||||||
|  | } Color; | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_COLOR_H */ | ||||||
							
								
								
									
										67
									
								
								winsup/w32api/include/gdiplus/gdipluscolormatrix.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										67
									
								
								winsup/w32api/include/gdiplus/gdipluscolormatrix.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,67 @@ | |||||||
|  | /* | ||||||
|  |  * gdipluscolormatrix.h | ||||||
|  |  * | ||||||
|  |  * GDI+ color mappings | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_COLORMATRIX_H | ||||||
|  | #define __GDIPLUS_COLORMATRIX_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef enum ColorAdjustType { | ||||||
|  | 	ColorAdjustTypeDefault = 0, | ||||||
|  | 	ColorAdjustTypeBitmap = 1, | ||||||
|  | 	ColorAdjustTypeBrush = 2, | ||||||
|  | 	ColorAdjustTypePen = 3, | ||||||
|  | 	ColorAdjustTypeText = 4, | ||||||
|  | 	ColorAdjustTypeCount = 5, | ||||||
|  | 	ColorAdjustTypeAny = 6 | ||||||
|  | } ColorAdjustType; | ||||||
|  |  | ||||||
|  | typedef enum ColorMatrixFlags { | ||||||
|  | 	ColorMatrixFlagsDefault = 0, | ||||||
|  | 	ColorMatrixFlagsSkipGrays = 1, | ||||||
|  | 	ColorMatrixFlagsAltGray = 2 | ||||||
|  | } ColorMatrixFlags; | ||||||
|  |  | ||||||
|  | typedef enum HistogramFormat { | ||||||
|  | 	HistogramFormatARGB = 0, | ||||||
|  | 	HistogramFormatPARGB = 1, | ||||||
|  | 	HistogramFormatRGB = 2, | ||||||
|  | 	HistogramFormatGray = 3, | ||||||
|  | 	HistogramFormatB = 4, | ||||||
|  | 	HistogramFormatG = 5, | ||||||
|  | 	HistogramFormatR = 6, | ||||||
|  | 	HistogramFormatA = 7 | ||||||
|  | } HistogramFormat; | ||||||
|  |  | ||||||
|  | typedef struct ColorMap { | ||||||
|  | 	Color oldColor; | ||||||
|  | 	Color newColor; | ||||||
|  | } ColorMap; | ||||||
|  |  | ||||||
|  | typedef struct ColorMatrix { | ||||||
|  | 	REAL m[5][5]; | ||||||
|  | } ColorMatrix; | ||||||
|  |  | ||||||
|  | typedef BYTE ColorChannelLUT[256]; | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_COLORMATRIX_H */ | ||||||
							
								
								
									
										116
									
								
								winsup/w32api/include/gdiplus/gdipluseffects.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										116
									
								
								winsup/w32api/include/gdiplus/gdipluseffects.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,116 @@ | |||||||
|  | /* | ||||||
|  |  * gdipluseffects.h | ||||||
|  |  * | ||||||
|  |  * GDI+ filters and effects | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_EFFECTS_H | ||||||
|  | #define __GDIPLUS_EFFECTS_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef enum CurveAdjustments { | ||||||
|  | 	AdjustExposure = 0, | ||||||
|  | 	AdjustDensity = 1, | ||||||
|  | 	AdjustContrast = 2, | ||||||
|  | 	AdjustHighlight = 3, | ||||||
|  | 	AdjustShadow = 4, | ||||||
|  | 	AdjustMidtone = 5, | ||||||
|  | 	AdjustWhiteSaturation = 6, | ||||||
|  | 	AdjustBlackSaturation = 7 | ||||||
|  | } CurveAdjustments; | ||||||
|  |  | ||||||
|  | typedef enum CurveChannel { | ||||||
|  | 	CurveChannelAll = 0, | ||||||
|  | 	CurveChannelRed = 1, | ||||||
|  | 	CurveChannelGreen = 2, | ||||||
|  | 	CurveChannelBlue = 3 | ||||||
|  | } CurveChannel; | ||||||
|  |  | ||||||
|  | typedef struct BlurParams { | ||||||
|  | 	REAL radius; | ||||||
|  | 	BOOL expandEdge; | ||||||
|  | } BlurParams; | ||||||
|  |  | ||||||
|  | typedef struct BrightnessContrastParams { | ||||||
|  | 	INT brightnessLevel; | ||||||
|  | 	INT contrastLevel; | ||||||
|  | } BrightnessContrastParams; | ||||||
|  |  | ||||||
|  | typedef struct ColorBalanceParams { | ||||||
|  | 	INT cyanRed; | ||||||
|  | 	INT magentaGreen; | ||||||
|  | 	INT yellowBlue; | ||||||
|  | } ColorBalanceParams; | ||||||
|  |  | ||||||
|  | typedef struct ColorCurveParams { | ||||||
|  | 	CurveAdjustments adjustment; | ||||||
|  | 	CurveChannel channel; | ||||||
|  | 	INT adjustValue; | ||||||
|  | } ColorCurveParams; | ||||||
|  |  | ||||||
|  | typedef struct ColorLUTParams { | ||||||
|  | 	ColorChannelLUT lutB; | ||||||
|  | 	ColorChannelLUT lutG; | ||||||
|  | 	ColorChannelLUT lutR; | ||||||
|  | 	ColorChannelLUT lutA; | ||||||
|  | } ColorLUTParams; | ||||||
|  |  | ||||||
|  | typedef struct HueSaturationLightnessParams { | ||||||
|  | 	INT hueLevel; | ||||||
|  | 	INT saturationLevel; | ||||||
|  | 	INT lightnessLevel; | ||||||
|  | } HueSaturationLightnessParams; | ||||||
|  |  | ||||||
|  | typedef struct LevelsParams { | ||||||
|  | 	INT highlight; | ||||||
|  | 	INT midtone; | ||||||
|  | 	INT shadow; | ||||||
|  | } LevelsParams; | ||||||
|  |  | ||||||
|  | typedef struct RedEyeCorrectionParams { | ||||||
|  | 	UINT numberOfAreas; | ||||||
|  | 	RECT *areas; | ||||||
|  | } RedEyeCorrectionParams; | ||||||
|  |  | ||||||
|  | typedef struct SharpenParams { | ||||||
|  | 	REAL radius; | ||||||
|  | 	REAL amount; | ||||||
|  | } SharpenParams; | ||||||
|  |  | ||||||
|  | typedef struct TintParams { | ||||||
|  | 	INT hue; | ||||||
|  | 	INT amount; | ||||||
|  | } TintParams; | ||||||
|  |  | ||||||
|  | extern const GUID BlurEffectGuid;                    /* ? */ | ||||||
|  | extern const GUID BrightnessContrastEffectGuid;      /* ? */ | ||||||
|  | extern const GUID ColorBalanceEffectGuid;            /* ? */ | ||||||
|  | extern const GUID ColorCurveEffectGuid;              /* ? */ | ||||||
|  | extern const GUID ColorLUTEffectGuid;                /* ? */ | ||||||
|  | extern const GUID ColorMatrixEffectGuid;             /* ? */ | ||||||
|  | extern const GUID HueSaturationLightnessEffectGuid;  /* ? */ | ||||||
|  | extern const GUID LevelsEffectGuid;                  /* ? */ | ||||||
|  | extern const GUID RedEyeCorrectionEffectGuid;        /* ? */ | ||||||
|  | extern const GUID SharpenEffectGuid;                 /* ? */ | ||||||
|  | extern const GUID TintEffectGuid;                    /* ? */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_EFFECTS_H */ | ||||||
							
								
								
									
										755
									
								
								winsup/w32api/include/gdiplus/gdiplusenums.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										755
									
								
								winsup/w32api/include/gdiplus/gdiplusenums.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,755 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusenums.h | ||||||
|  |  * | ||||||
|  |  * GDI+ enumerations | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_ENUMS_H | ||||||
|  | #define __GDIPLUS_ENUMS_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef enum BrushType { | ||||||
|  | 	BrushTypeSolidColor = 0, | ||||||
|  | 	BrushTypeHatchFill = 1, | ||||||
|  | 	BrushTypeTextureFill = 2, | ||||||
|  | 	BrushTypePathGradient = 3, | ||||||
|  | 	BrushTypeLinearGradient = 4 | ||||||
|  | } BrushType; | ||||||
|  |  | ||||||
|  | typedef enum CombineMode { | ||||||
|  | 	CombineModeReplace = 0, | ||||||
|  | 	CombineModeIntersect = 1, | ||||||
|  | 	CombineModeUnion = 2, | ||||||
|  | 	CombineModeXor = 3, | ||||||
|  | 	CombineModeExclude = 4, | ||||||
|  | 	CombineModeComplement = 5 | ||||||
|  | } CombineMode; | ||||||
|  |  | ||||||
|  | typedef enum CompositingMode { | ||||||
|  | 	CompositingModeSourceOver = 0, | ||||||
|  | 	CompositingModeSourceCopy = 1 | ||||||
|  | } CompositingMode; | ||||||
|  |  | ||||||
|  | typedef enum CompositingQuality { | ||||||
|  | 	CompositingQualityDefault = 0, | ||||||
|  | 	CompositingQualityHighSpeed = 1, | ||||||
|  | 	CompositingQualityHighQuality = 2, | ||||||
|  | 	CompositingQualityGammaCorrected = 3, | ||||||
|  | 	CompositingQualityAssumeLinear = 4 | ||||||
|  | } CompositingQuality; | ||||||
|  |  | ||||||
|  | typedef enum CoordinateSpace { | ||||||
|  | 	CoordinateSpaceWorld = 0, | ||||||
|  | 	CoordinateSpacePage = 1, | ||||||
|  | 	CoordinateSpaceDevice = 2 | ||||||
|  | } CoordinateSpace; | ||||||
|  |  | ||||||
|  | typedef enum CustomLineCapType { | ||||||
|  | 	CustomLineCapTypeDefault = 0, | ||||||
|  | 	CustomLineCapTypeAdjustableArrow = 1 | ||||||
|  | } CustomLineCapType; | ||||||
|  |  | ||||||
|  | typedef enum DashCap { | ||||||
|  | 	DashCapFlat = 0, | ||||||
|  | 	DashCapRound = 2, | ||||||
|  | 	DashCapTriangle = 3 | ||||||
|  | } DashCap; | ||||||
|  |  | ||||||
|  | typedef enum DashStyle { | ||||||
|  | 	DashStyleSolid = 0, | ||||||
|  | 	DashStyleDash = 1, | ||||||
|  | 	DashStyleDot = 2, | ||||||
|  | 	DashStyleDashDot = 3, | ||||||
|  | 	DashStyleDashDotDot = 4, | ||||||
|  | 	DashStyleCustom = 5 | ||||||
|  | } DashStyle; | ||||||
|  |  | ||||||
|  | typedef enum DitherType { | ||||||
|  | 	DitherTypeNone = 0, | ||||||
|  | 	DitherTypeSolid = 1, | ||||||
|  | 	DitherTypeOrdered4x4 = 2, | ||||||
|  | 	DitherTypeOrdered8x8 = 3, | ||||||
|  | 	DitherTypeOrdered16x16 = 4, | ||||||
|  | 	DitherTypeOrdered91x91 = 5, | ||||||
|  | 	DitherTypeSpiral4x4 = 6, | ||||||
|  | 	DitherTypeSpiral8x8 = 7, | ||||||
|  | 	DitherTypeDualSpiral4x4 = 8, | ||||||
|  | 	DitherTypeDualSpiral8x8 = 9, | ||||||
|  | 	DitherTypeErrorDiffusion = 10 | ||||||
|  | } DitherType; | ||||||
|  |  | ||||||
|  | typedef enum DriverStringOptions { | ||||||
|  | 	DriverStringOptionsCmapLookup = 1, | ||||||
|  | 	DriverStringOptionsVertical = 2, | ||||||
|  | 	DriverStringOptionsRealizedAdvance = 4, | ||||||
|  | 	DriverStringOptionsLimitSubpixel = 8 | ||||||
|  | } DriverStringOptions; | ||||||
|  |  | ||||||
|  | #define GDIP_WMF_RECORD_TO_EMFPLUS(meta) ((meta) | 0x10000) | ||||||
|  | #define GDIP_EMFPLUS_RECORD_BASE (0x4000) | ||||||
|  | typedef enum EmfPlusRecordType { | ||||||
|  | 	WmfRecordTypeSetBkColor                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR), | ||||||
|  | 	WmfRecordTypeSetBkMode                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE), | ||||||
|  | 	WmfRecordTypeSetMapMode                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPMODE), | ||||||
|  | 	WmfRecordTypeSetROP2                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETROP2), | ||||||
|  | 	WmfRecordTypeSetRelAbs                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETRELABS), | ||||||
|  | 	WmfRecordTypeSetPolyFillMode               = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPOLYFILLMODE), | ||||||
|  | 	WmfRecordTypeSetStretchBltMode             = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE), | ||||||
|  | 	WmfRecordTypeSetTextCharExtra              = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA), | ||||||
|  | 	WmfRecordTypeSetTextColor                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR), | ||||||
|  | 	WmfRecordTypeSetTextJustification          = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION), | ||||||
|  | 	WmfRecordTypeSetWindowOrg                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG), | ||||||
|  | 	WmfRecordTypeSetWindowExt                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT), | ||||||
|  | 	WmfRecordTypeSetViewportOrg                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG), | ||||||
|  | 	WmfRecordTypeSetViewportExt                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTEXT), | ||||||
|  | 	WmfRecordTypeOffsetWindowOrg               = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETWINDOWORG), | ||||||
|  | 	WmfRecordTypeScaleWindowExt                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEWINDOWEXT), | ||||||
|  | 	WmfRecordTypeOffsetViewportOrg             = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETVIEWPORTORG), | ||||||
|  | 	WmfRecordTypeScaleViewportExt              = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEVIEWPORTEXT), | ||||||
|  | 	WmfRecordTypeLineTo                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_LINETO), | ||||||
|  | 	WmfRecordTypeMoveTo                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_MOVETO), | ||||||
|  | 	WmfRecordTypeExcludeClipRect               = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXCLUDECLIPRECT), | ||||||
|  | 	WmfRecordTypeIntersectClipRect             = GDIP_WMF_RECORD_TO_EMFPLUS(META_INTERSECTCLIPRECT), | ||||||
|  | 	WmfRecordTypeArc                           = GDIP_WMF_RECORD_TO_EMFPLUS(META_ARC), | ||||||
|  | 	WmfRecordTypeEllipse                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_ELLIPSE), | ||||||
|  | 	WmfRecordTypeFloodFill                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_FLOODFILL), | ||||||
|  | 	WmfRecordTypePie                           = GDIP_WMF_RECORD_TO_EMFPLUS(META_PIE), | ||||||
|  | 	WmfRecordTypeRectangle                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_RECTANGLE), | ||||||
|  | 	WmfRecordTypeRoundRect                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_ROUNDRECT), | ||||||
|  | 	WmfRecordTypePatBlt                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_PATBLT), | ||||||
|  | 	WmfRecordTypeSaveDC                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_SAVEDC), | ||||||
|  | 	WmfRecordTypeSetPixel                      = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPIXEL), | ||||||
|  | 	WmfRecordTypeOffsetClipRgn                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETCLIPRGN), | ||||||
|  | 	WmfRecordTypeTextOut                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_TEXTOUT), | ||||||
|  | 	WmfRecordTypeBitBlt                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_BITBLT), | ||||||
|  | 	WmfRecordTypeStretchBlt                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHBLT), | ||||||
|  | 	WmfRecordTypePolygon                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYGON), | ||||||
|  | 	WmfRecordTypePolyline                      = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYLINE), | ||||||
|  | 	WmfRecordTypeEscape                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_ESCAPE), | ||||||
|  | 	WmfRecordTypeRestoreDC                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESTOREDC), | ||||||
|  | 	WmfRecordTypeFillRegion                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_FILLREGION), | ||||||
|  | 	WmfRecordTypeFrameRegion                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_FRAMEREGION), | ||||||
|  | 	WmfRecordTypeInvertRegion                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_INVERTREGION), | ||||||
|  | 	WmfRecordTypePaintRegion                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_PAINTREGION), | ||||||
|  | 	WmfRecordTypeSelectClipRegion              = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTCLIPREGION), | ||||||
|  | 	WmfRecordTypeSelectObject                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTOBJECT), | ||||||
|  | 	WmfRecordTypeSetTextAlign                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTALIGN), | ||||||
|  | 	WmfRecordTypeDrawText                      = GDIP_WMF_RECORD_TO_EMFPLUS(0x062F), | ||||||
|  | 	WmfRecordTypeChord                         = GDIP_WMF_RECORD_TO_EMFPLUS(META_CHORD), | ||||||
|  | 	WmfRecordTypeSetMapperFlags                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPPERFLAGS), | ||||||
|  | 	WmfRecordTypeExtTextOut                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTTEXTOUT), | ||||||
|  | 	WmfRecordTypeSetDIBToDev                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETDIBTODEV), | ||||||
|  | 	WmfRecordTypeSelectPalette                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTPALETTE), | ||||||
|  | 	WmfRecordTypeRealizePalette                = GDIP_WMF_RECORD_TO_EMFPLUS(META_REALIZEPALETTE), | ||||||
|  | 	WmfRecordTypeAnimatePalette                = GDIP_WMF_RECORD_TO_EMFPLUS(META_ANIMATEPALETTE), | ||||||
|  | 	WmfRecordTypeSetPalEntries                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPALENTRIES), | ||||||
|  | 	WmfRecordTypePolyPolygon                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYPOLYGON), | ||||||
|  | 	WmfRecordTypeResizePalette                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE), | ||||||
|  | 	WmfRecordTypeDIBBitBlt                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT), | ||||||
|  | 	WmfRecordTypeDIBStretchBlt                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT), | ||||||
|  | 	WmfRecordTypeDIBCreatePatternBrush         = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH), | ||||||
|  | 	WmfRecordTypeStretchDIB                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB), | ||||||
|  | 	WmfRecordTypeExtFloodFill                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL), | ||||||
|  | 	WmfRecordTypeSetLayout                     = GDIP_WMF_RECORD_TO_EMFPLUS(0x0149), | ||||||
|  | 	WmfRecordTypeResetDC                       = GDIP_WMF_RECORD_TO_EMFPLUS(0x014C), | ||||||
|  | 	WmfRecordTypeStartDoc                      = GDIP_WMF_RECORD_TO_EMFPLUS(0x014D), | ||||||
|  | 	WmfRecordTypeStartPage                     = GDIP_WMF_RECORD_TO_EMFPLUS(0x004F), | ||||||
|  | 	WmfRecordTypeEndPage                       = GDIP_WMF_RECORD_TO_EMFPLUS(0x0050), | ||||||
|  | 	WmfRecordTypeAbortDoc                      = GDIP_WMF_RECORD_TO_EMFPLUS(0x0052), | ||||||
|  | 	WmfRecordTypeEndDoc                        = GDIP_WMF_RECORD_TO_EMFPLUS(0x005E), | ||||||
|  | 	WmfRecordTypeDeleteObject                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT), | ||||||
|  | 	WmfRecordTypeCreatePalette                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE), | ||||||
|  | 	WmfRecordTypeCreateBrush                   = GDIP_WMF_RECORD_TO_EMFPLUS(0x00F8), | ||||||
|  | 	WmfRecordTypeCreatePatternBrush            = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH), | ||||||
|  | 	WmfRecordTypeCreatePenIndirect             = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT), | ||||||
|  | 	WmfRecordTypeCreateFontIndirect            = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT), | ||||||
|  | 	WmfRecordTypeCreateBrushIndirect           = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT), | ||||||
|  | 	WmfRecordTypeCreateBitmapIndirect          = GDIP_WMF_RECORD_TO_EMFPLUS(0x02FD), | ||||||
|  | 	WmfRecordTypeCreateBitmap                  = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE), | ||||||
|  | 	WmfRecordTypeCreateRegion                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION), | ||||||
|  | 	EmfRecordTypeHeader                        = EMR_HEADER, | ||||||
|  | 	EmfRecordTypePolyBezier                    = EMR_POLYBEZIER, | ||||||
|  | 	EmfRecordTypePolygon                       = EMR_POLYGON, | ||||||
|  | 	EmfRecordTypePolyline                      = EMR_POLYLINE, | ||||||
|  | 	EmfRecordTypePolyBezierTo                  = EMR_POLYBEZIERTO, | ||||||
|  | 	EmfRecordTypePolyLineTo                    = EMR_POLYLINETO, | ||||||
|  | 	EmfRecordTypePolyPolyline                  = EMR_POLYPOLYLINE, | ||||||
|  | 	EmfRecordTypePolyPolygon                   = EMR_POLYPOLYGON, | ||||||
|  | 	EmfRecordTypeSetWindowExtEx                = EMR_SETWINDOWEXTEX, | ||||||
|  | 	EmfRecordTypeSetWindowOrgEx                = EMR_SETWINDOWORGEX, | ||||||
|  | 	EmfRecordTypeSetViewportExtEx              = EMR_SETVIEWPORTEXTEX, | ||||||
|  | 	EmfRecordTypeSetViewportOrgEx              = EMR_SETVIEWPORTORGEX, | ||||||
|  | 	EmfRecordTypeSetBrushOrgEx                 = EMR_SETBRUSHORGEX, | ||||||
|  | 	EmfRecordTypeEOF                           = EMR_EOF, | ||||||
|  | 	EmfRecordTypeSetPixelV                     = EMR_SETPIXELV, | ||||||
|  | 	EmfRecordTypeSetMapperFlags                = EMR_SETMAPPERFLAGS, | ||||||
|  | 	EmfRecordTypeSetMapMode                    = EMR_SETMAPMODE, | ||||||
|  | 	EmfRecordTypeSetBkMode                     = EMR_SETBKMODE, | ||||||
|  | 	EmfRecordTypeSetPolyFillMode               = EMR_SETPOLYFILLMODE, | ||||||
|  | 	EmfRecordTypeSetROP2                       = EMR_SETROP2, | ||||||
|  | 	EmfRecordTypeSetStretchBltMode             = EMR_SETSTRETCHBLTMODE, | ||||||
|  | 	EmfRecordTypeSetTextAlign                  = EMR_SETTEXTALIGN, | ||||||
|  | 	EmfRecordTypeSetColorAdjustment            = EMR_SETCOLORADJUSTMENT, | ||||||
|  | 	EmfRecordTypeSetTextColor                  = EMR_SETTEXTCOLOR, | ||||||
|  | 	EmfRecordTypeSetBkColor                    = EMR_SETBKCOLOR, | ||||||
|  | 	EmfRecordTypeOffsetClipRgn                 = EMR_OFFSETCLIPRGN, | ||||||
|  | 	EmfRecordTypeMoveToEx                      = EMR_MOVETOEX, | ||||||
|  | 	EmfRecordTypeSetMetaRgn                    = EMR_SETMETARGN, | ||||||
|  | 	EmfRecordTypeExcludeClipRect               = EMR_EXCLUDECLIPRECT, | ||||||
|  | 	EmfRecordTypeIntersectClipRect             = EMR_INTERSECTCLIPRECT, | ||||||
|  | 	EmfRecordTypeScaleViewportExtEx            = EMR_SCALEVIEWPORTEXTEX, | ||||||
|  | 	EmfRecordTypeScaleWindowExtEx              = EMR_SCALEWINDOWEXTEX, | ||||||
|  | 	EmfRecordTypeSaveDC                        = EMR_SAVEDC, | ||||||
|  | 	EmfRecordTypeRestoreDC                     = EMR_RESTOREDC, | ||||||
|  | 	EmfRecordTypeSetWorldTransform             = EMR_SETWORLDTRANSFORM, | ||||||
|  | 	EmfRecordTypeModifyWorldTransform          = EMR_MODIFYWORLDTRANSFORM, | ||||||
|  | 	EmfRecordTypeSelectObject                  = EMR_SELECTOBJECT, | ||||||
|  | 	EmfRecordTypeCreatePen                     = EMR_CREATEPEN, | ||||||
|  | 	EmfRecordTypeCreateBrushIndirect           = EMR_CREATEBRUSHINDIRECT, | ||||||
|  | 	EmfRecordTypeDeleteObject                  = EMR_DELETEOBJECT, | ||||||
|  | 	EmfRecordTypeAngleArc                      = EMR_ANGLEARC, | ||||||
|  | 	EmfRecordTypeEllipse                       = EMR_ELLIPSE, | ||||||
|  | 	EmfRecordTypeRectangle                     = EMR_RECTANGLE, | ||||||
|  | 	EmfRecordTypeRoundRect                     = EMR_ROUNDRECT, | ||||||
|  | 	EmfRecordTypeArc                           = EMR_ARC, | ||||||
|  | 	EmfRecordTypeChord                         = EMR_CHORD, | ||||||
|  | 	EmfRecordTypePie                           = EMR_PIE, | ||||||
|  | 	EmfRecordTypeSelectPalette                 = EMR_SELECTPALETTE, | ||||||
|  | 	EmfRecordTypeCreatePalette                 = EMR_CREATEPALETTE, | ||||||
|  | 	EmfRecordTypeSetPaletteEntries             = EMR_SETPALETTEENTRIES, | ||||||
|  | 	EmfRecordTypeResizePalette                 = EMR_RESIZEPALETTE, | ||||||
|  | 	EmfRecordTypeRealizePalette                = EMR_REALIZEPALETTE, | ||||||
|  | 	EmfRecordTypeExtFloodFill                  = EMR_EXTFLOODFILL, | ||||||
|  | 	EmfRecordTypeLineTo                        = EMR_LINETO, | ||||||
|  | 	EmfRecordTypeArcTo                         = EMR_ARCTO, | ||||||
|  | 	EmfRecordTypePolyDraw                      = EMR_POLYDRAW, | ||||||
|  | 	EmfRecordTypeSetArcDirection               = EMR_SETARCDIRECTION, | ||||||
|  | 	EmfRecordTypeSetMiterLimit                 = EMR_SETMITERLIMIT, | ||||||
|  | 	EmfRecordTypeBeginPath                     = EMR_BEGINPATH, | ||||||
|  | 	EmfRecordTypeEndPath                       = EMR_ENDPATH, | ||||||
|  | 	EmfRecordTypeCloseFigure                   = EMR_CLOSEFIGURE, | ||||||
|  | 	EmfRecordTypeFillPath                      = EMR_FILLPATH, | ||||||
|  | 	EmfRecordTypeStrokeAndFillPath             = EMR_STROKEANDFILLPATH, | ||||||
|  | 	EmfRecordTypeStrokePath                    = EMR_STROKEPATH, | ||||||
|  | 	EmfRecordTypeFlattenPath                   = EMR_FLATTENPATH, | ||||||
|  | 	EmfRecordTypeWidenPath                     = EMR_WIDENPATH, | ||||||
|  | 	EmfRecordTypeSelectClipPath                = EMR_SELECTCLIPPATH, | ||||||
|  | 	EmfRecordTypeAbortPath                     = EMR_ABORTPATH, | ||||||
|  | 	EmfRecordTypeReserved_069                  = 69, | ||||||
|  | 	EmfRecordTypeGdiComment                    = EMR_GDICOMMENT, | ||||||
|  | 	EmfRecordTypeFillRgn                       = EMR_FILLRGN, | ||||||
|  | 	EmfRecordTypeFrameRgn                      = EMR_FRAMERGN, | ||||||
|  | 	EmfRecordTypeInvertRgn                     = EMR_INVERTRGN, | ||||||
|  | 	EmfRecordTypePaintRgn                      = EMR_PAINTRGN, | ||||||
|  | 	EmfRecordTypeExtSelectClipRgn              = EMR_EXTSELECTCLIPRGN, | ||||||
|  | 	EmfRecordTypeBitBlt                        = EMR_BITBLT, | ||||||
|  | 	EmfRecordTypeStretchBlt                    = EMR_STRETCHBLT, | ||||||
|  | 	EmfRecordTypeMaskBlt                       = EMR_MASKBLT, | ||||||
|  | 	EmfRecordTypePlgBlt                        = EMR_PLGBLT, | ||||||
|  | 	EmfRecordTypeSetDIBitsToDevice             = EMR_SETDIBITSTODEVICE, | ||||||
|  | 	EmfRecordTypeStretchDIBits                 = EMR_STRETCHDIBITS, | ||||||
|  | 	EmfRecordTypeExtCreateFontIndirect         = EMR_EXTCREATEFONTINDIRECTW, | ||||||
|  | 	EmfRecordTypeExtTextOutA                   = EMR_EXTTEXTOUTA, | ||||||
|  | 	EmfRecordTypeExtTextOutW                   = EMR_EXTTEXTOUTW, | ||||||
|  | 	EmfRecordTypePolyBezier16                  = EMR_POLYBEZIER16, | ||||||
|  | 	EmfRecordTypePolygon16                     = EMR_POLYGON16, | ||||||
|  | 	EmfRecordTypePolyline16                    = EMR_POLYLINE16, | ||||||
|  | 	EmfRecordTypePolyBezierTo16                = EMR_POLYBEZIERTO16, | ||||||
|  | 	EmfRecordTypePolylineTo16                  = EMR_POLYLINETO16, | ||||||
|  | 	EmfRecordTypePolyPolyline16                = EMR_POLYPOLYLINE16, | ||||||
|  | 	EmfRecordTypePolyPolygon16                 = EMR_POLYPOLYGON16, | ||||||
|  | 	EmfRecordTypePolyDraw16                    = EMR_POLYDRAW16, | ||||||
|  | 	EmfRecordTypeCreateMonoBrush               = EMR_CREATEMONOBRUSH, | ||||||
|  | 	EmfRecordTypeCreateDIBPatternBrushPt       = EMR_CREATEDIBPATTERNBRUSHPT, | ||||||
|  | 	EmfRecordTypeExtCreatePen                  = EMR_EXTCREATEPEN, | ||||||
|  | 	EmfRecordTypePolyTextOutA                  = EMR_POLYTEXTOUTA, | ||||||
|  | 	EmfRecordTypePolyTextOutW                  = EMR_POLYTEXTOUTW, | ||||||
|  | 	EmfRecordTypeSetICMMode                    = 98, | ||||||
|  | 	EmfRecordTypeCreateColorSpace              = 99, | ||||||
|  | 	EmfRecordTypeSetColorSpace                 = 100, | ||||||
|  | 	EmfRecordTypeDeleteColorSpace              = 101, | ||||||
|  | 	EmfRecordTypeGLSRecord                     = 102, | ||||||
|  | 	EmfRecordTypeGLSBoundedRecord              = 103, | ||||||
|  | 	EmfRecordTypePixelFormat                   = 104, | ||||||
|  | 	EmfRecordTypeDrawEscape                    = 105, | ||||||
|  | 	EmfRecordTypeExtEscape                     = 106, | ||||||
|  | 	EmfRecordTypeStartDoc                      = 107, | ||||||
|  | 	EmfRecordTypeSmallTextOut                  = 108, | ||||||
|  | 	EmfRecordTypeForceUFIMapping               = 109, | ||||||
|  | 	EmfRecordTypeNamedEscape                   = 110, | ||||||
|  | 	EmfRecordTypeColorCorrectPalette           = 111, | ||||||
|  | 	EmfRecordTypeSetICMProfileA                = 112, | ||||||
|  | 	EmfRecordTypeSetICMProfileW                = 113, | ||||||
|  | 	EmfRecordTypeAlphaBlend                    = 114, | ||||||
|  | 	EmfRecordTypeSetLayout                     = 115, | ||||||
|  | 	EmfRecordTypeTransparentBlt                = 116, | ||||||
|  | 	EmfRecordTypeReserved_117                  = 117, | ||||||
|  | 	EmfRecordTypeGradientFill                  = 118, | ||||||
|  | 	EmfRecordTypeSetLinkedUFIs                 = 119, | ||||||
|  | 	EmfRecordTypeSetTextJustification          = 120, | ||||||
|  | 	EmfRecordTypeColorMatchToTargetW           = 121, | ||||||
|  | 	EmfRecordTypeCreateColorSpaceW             = 122, | ||||||
|  | 	EmfRecordTypeMax                           = 122, | ||||||
|  | 	EmfRecordTypeMin                           = 1, | ||||||
|  | 	EmfPlusRecordTypeInvalid                   = GDIP_EMFPLUS_RECORD_BASE, | ||||||
|  | 	EmfPlusRecordTypeHeader, | ||||||
|  | 	EmfPlusRecordTypeEndOfFile, | ||||||
|  | 	EmfPlusRecordTypeComment, | ||||||
|  | 	EmfPlusRecordTypeGetDC, | ||||||
|  | 	EmfPlusRecordTypeMultiFormatStart, | ||||||
|  | 	EmfPlusRecordTypeMultiFormatSection, | ||||||
|  | 	EmfPlusRecordTypeMultiFormatEnd, | ||||||
|  | 	EmfPlusRecordTypeObject, | ||||||
|  | 	EmfPlusRecordTypeClear, | ||||||
|  | 	EmfPlusRecordTypeFillRects, | ||||||
|  | 	EmfPlusRecordTypeDrawRects, | ||||||
|  | 	EmfPlusRecordTypeFillPolygon, | ||||||
|  | 	EmfPlusRecordTypeDrawLines, | ||||||
|  | 	EmfPlusRecordTypeFillEllipse, | ||||||
|  | 	EmfPlusRecordTypeDrawEllipse, | ||||||
|  | 	EmfPlusRecordTypeFillPie, | ||||||
|  | 	EmfPlusRecordTypeDrawPie, | ||||||
|  | 	EmfPlusRecordTypeDrawArc, | ||||||
|  | 	EmfPlusRecordTypeFillRegion, | ||||||
|  | 	EmfPlusRecordTypeFillPath, | ||||||
|  | 	EmfPlusRecordTypeDrawPath, | ||||||
|  | 	EmfPlusRecordTypeFillClosedCurve, | ||||||
|  | 	EmfPlusRecordTypeDrawClosedCurve, | ||||||
|  | 	EmfPlusRecordTypeDrawCurve, | ||||||
|  | 	EmfPlusRecordTypeDrawBeziers, | ||||||
|  | 	EmfPlusRecordTypeDrawImage, | ||||||
|  | 	EmfPlusRecordTypeDrawImagePoints, | ||||||
|  | 	EmfPlusRecordTypeDrawString, | ||||||
|  | 	EmfPlusRecordTypeSetRenderingOrigin, | ||||||
|  | 	EmfPlusRecordTypeSetAntiAliasMode, | ||||||
|  | 	EmfPlusRecordTypeSetTextRenderingHint, | ||||||
|  | 	EmfPlusRecordTypeSetTextContrast, | ||||||
|  | 	EmfPlusRecordTypeSetGammaValue, | ||||||
|  | 	EmfPlusRecordTypeSetInterpolationMode, | ||||||
|  | 	EmfPlusRecordTypeSetPixelOffsetMode, | ||||||
|  | 	EmfPlusRecordTypeSetCompositingMode, | ||||||
|  | 	EmfPlusRecordTypeSetCompositingQuality, | ||||||
|  | 	EmfPlusRecordTypeSave, | ||||||
|  | 	EmfPlusRecordTypeRestore, | ||||||
|  | 	EmfPlusRecordTypeBeginContainer, | ||||||
|  | 	EmfPlusRecordTypeBeginContainerNoParams, | ||||||
|  | 	EmfPlusRecordTypeEndContainer, | ||||||
|  | 	EmfPlusRecordTypeSetWorldTransform, | ||||||
|  | 	EmfPlusRecordTypeResetWorldTransform, | ||||||
|  | 	EmfPlusRecordTypeMultiplyWorldTransform, | ||||||
|  | 	EmfPlusRecordTypeTranslateWorldTransform, | ||||||
|  | 	EmfPlusRecordTypeScaleWorldTransform, | ||||||
|  | 	EmfPlusRecordTypeRotateWorldTransform, | ||||||
|  | 	EmfPlusRecordTypeSetPageTransform, | ||||||
|  | 	EmfPlusRecordTypeResetClip, | ||||||
|  | 	EmfPlusRecordTypeSetClipRect, | ||||||
|  | 	EmfPlusRecordTypeSetClipPath, | ||||||
|  | 	EmfPlusRecordTypeSetClipRegion, | ||||||
|  | 	EmfPlusRecordTypeOffsetClip, | ||||||
|  | 	EmfPlusRecordTypeDrawDriverString, | ||||||
|  | 	EmfPlusRecordTypeStrokeFillPath, | ||||||
|  | 	EmfPlusRecordTypeSerializableObject, | ||||||
|  | 	EmfPlusRecordTypeSetTSGraphics, | ||||||
|  | 	EmfPlusRecordTypeSetTSClip, | ||||||
|  | 	EmfPlusRecordTotal, | ||||||
|  | 	EmfPlusRecordTypeMax = EmfPlusRecordTotal-1, | ||||||
|  | 	EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader | ||||||
|  | } EmfPlusRecordType; | ||||||
|  |  | ||||||
|  | typedef enum EmfToWmfBitsFlags { | ||||||
|  | 	EmfToWmfBitsFlagsDefault = 0, | ||||||
|  | 	EmfToWmfBitsFlagsEmbedEmf = 1, | ||||||
|  | 	EmfToWmfBitsFlagsIncludePlaceable = 2, | ||||||
|  | 	EmfToWmfBitsFlagsNoXORClip = 4 | ||||||
|  | } EmfToWmfBitsFlags; | ||||||
|  |  | ||||||
|  | typedef enum EmfType { | ||||||
|  | 	EmfTypeEmfOnly = 3, | ||||||
|  | 	EmfTypeEmfPlusOnly = 4, | ||||||
|  | 	EmfTypeEmfPlusDual = 5 | ||||||
|  | } EmfType; | ||||||
|  |  | ||||||
|  | typedef enum EncoderParameterValueType { | ||||||
|  | 	EncoderParameterValueTypeByte = 1, | ||||||
|  | 	EncoderParameterValueTypeASCII = 2, | ||||||
|  | 	EncoderParameterValueTypeShort = 3, | ||||||
|  | 	EncoderParameterValueTypeLong = 4, | ||||||
|  | 	EncoderParameterValueTypeRational = 5, | ||||||
|  | 	EncoderParameterValueTypeLongRange = 6, | ||||||
|  | 	EncoderParameterValueTypeUndefined = 7, | ||||||
|  | 	EncoderParameterValueTypeRationalRange = 8, | ||||||
|  | 	EncoderParameterValueTypePointer = 9 | ||||||
|  | } EncoderParameterValueType; | ||||||
|  |  | ||||||
|  | typedef enum EncoderValue { | ||||||
|  | 	EncoderValueColorTypeCMYK = 0, | ||||||
|  | 	EncoderValueColorTypeYCCK = 1, | ||||||
|  | 	EncoderValueCompressionLZW = 2, | ||||||
|  | 	EncoderValueCompressionCCITT3 = 3, | ||||||
|  | 	EncoderValueCompressionCCITT4 = 4, | ||||||
|  | 	EncoderValueCompressionRle = 5, | ||||||
|  | 	EncoderValueCompressionNone = 6, | ||||||
|  | 	EncoderValueScanMethodInterlaced = 7, | ||||||
|  | 	EncoderValueScanMethodNonInterlaced = 8, | ||||||
|  | 	EncoderValueVersionGif87 = 9, | ||||||
|  | 	EncoderValueVersionGif89 = 10, | ||||||
|  | 	EncoderValueRenderProgressive = 11, | ||||||
|  | 	EncoderValueRenderNonProgressive = 12, | ||||||
|  | 	EncoderValueTransformRotate90 = 13, | ||||||
|  | 	EncoderValueTransformRotate180 = 14, | ||||||
|  | 	EncoderValueTransformRotate270 = 15, | ||||||
|  | 	EncoderValueTransformFlipHorizontal = 16, | ||||||
|  | 	EncoderValueTransformFlipVertical = 17, | ||||||
|  | 	EncoderValueMultiFrame = 18, | ||||||
|  | 	EncoderValueLastFrame = 19, | ||||||
|  | 	EncoderValueFlush = 20, | ||||||
|  | 	EncoderValueFrameDimensionTime = 21, | ||||||
|  | 	EncoderValueFrameDimensionResolution = 22, | ||||||
|  | 	EncoderValueFrameDimensionPage = 23 | ||||||
|  | } EncoderValue; | ||||||
|  |  | ||||||
|  | typedef enum FillMode { | ||||||
|  | 	FillModeAlternate = 0, | ||||||
|  | 	FillModeWinding = 1 | ||||||
|  | } FillMode; | ||||||
|  |  | ||||||
|  | typedef enum FlushIntention { | ||||||
|  | 	FlushIntentionFlush = 0, | ||||||
|  | 	FlushIntentionSync = 1 | ||||||
|  | } FlushIntention; | ||||||
|  |  | ||||||
|  | typedef enum FontStyle { | ||||||
|  | 	FontStyleRegular = 0, | ||||||
|  | 	FontStyleBold = 1, | ||||||
|  | 	FontStyleItalic = 2, | ||||||
|  | 	FontStyleBoldItalic = 3, | ||||||
|  | 	FontStyleUnderline = 4, | ||||||
|  | 	FontStyleStrikeout = 8 | ||||||
|  | } FontStyle; | ||||||
|  |  | ||||||
|  | typedef enum HatchStyle { | ||||||
|  | 	HatchStyleHorizontal = 0, | ||||||
|  | 	HatchStyleVertical = 1, | ||||||
|  | 	HatchStyleForwardDiagonal = 2, | ||||||
|  | 	HatchStyleBackwardDiagonal = 3, | ||||||
|  | 	HatchStyleCross = 4, | ||||||
|  | 	HatchStyleLargeGrid = 4, | ||||||
|  | 	HatchStyleDiagonalCross = 5, | ||||||
|  | 	HatchStyle05Percent = 6, | ||||||
|  | 	HatchStyle10Percent = 7, | ||||||
|  | 	HatchStyle20Percent = 8, | ||||||
|  | 	HatchStyle25Percent = 9, | ||||||
|  | 	HatchStyle30Percent = 10, | ||||||
|  | 	HatchStyle40Percent = 11, | ||||||
|  | 	HatchStyle50Percent = 12, | ||||||
|  | 	HatchStyle60Percent = 13, | ||||||
|  | 	HatchStyle70Percent = 14, | ||||||
|  | 	HatchStyle75Percent = 15, | ||||||
|  | 	HatchStyle80Percent = 16, | ||||||
|  | 	HatchStyle90Percent = 17, | ||||||
|  | 	HatchStyleLightDownwardDiagonal = 18, | ||||||
|  | 	HatchStyleLightUpwardDiagonal = 19, | ||||||
|  | 	HatchStyleDarkDownwardDiagonal = 20, | ||||||
|  | 	HatchStyleDarkUpwardDiagonal = 21, | ||||||
|  | 	HatchStyleWideDownwardDiagonal = 22, | ||||||
|  | 	HatchStyleWideUpwardDiagonal = 23, | ||||||
|  | 	HatchStyleLightVertical = 24, | ||||||
|  | 	HatchStyleLightHorizontal = 25, | ||||||
|  | 	HatchStyleNarrowVertical = 26, | ||||||
|  | 	HatchStyleNarrowHorizontal = 27, | ||||||
|  | 	HatchStyleDarkVertical = 28, | ||||||
|  | 	HatchStyleDarkHorizontal = 29, | ||||||
|  | 	HatchStyleDashedDownwardDiagonal = 30, | ||||||
|  | 	HatchStyleDashedUpwardDiagonal = 31, | ||||||
|  | 	HatchStyleDashedHorizontal = 32, | ||||||
|  | 	HatchStyleDashedVertical = 33, | ||||||
|  | 	HatchStyleSmallConfetti = 34, | ||||||
|  | 	HatchStyleLargeConfetti = 35, | ||||||
|  | 	HatchStyleZigZag = 36, | ||||||
|  | 	HatchStyleWave = 37, | ||||||
|  | 	HatchStyleDiagonalBrick = 38, | ||||||
|  | 	HatchStyleHorizontalBrick = 39, | ||||||
|  | 	HatchStyleWeave = 40, | ||||||
|  | 	HatchStylePlaid = 41, | ||||||
|  | 	HatchStyleDivot = 42, | ||||||
|  | 	HatchStyleDottedGrid = 43, | ||||||
|  | 	HatchStyleDottedDiamond = 44, | ||||||
|  | 	HatchStyleShingle = 45, | ||||||
|  | 	HatchStyleTrellis = 46, | ||||||
|  | 	HatchStyleSphere = 47, | ||||||
|  | 	HatchStyleSmallGrid = 48, | ||||||
|  | 	HatchStyleSmallCheckerBoard = 49, | ||||||
|  | 	HatchStyleLargeCheckerBoard = 50, | ||||||
|  | 	HatchStyleOutlinedDiamond = 51, | ||||||
|  | 	HatchStyleSolidDiamond = 52, | ||||||
|  | 	HatchStyleTotal = 53, | ||||||
|  | 	HatchStyleMin = HatchStyleHorizontal, | ||||||
|  | 	HatchStyleMax = HatchStyleTotal - 1 | ||||||
|  | } HatchStyle; | ||||||
|  |  | ||||||
|  | typedef enum HotkeyPrefix { | ||||||
|  | 	HotkeyPrefixNone = 0, | ||||||
|  | 	HotkeyPrefixShow = 1, | ||||||
|  | 	HotkeyPrefixHide = 2 | ||||||
|  | } HotkeyPrefix; | ||||||
|  |  | ||||||
|  | typedef enum ImageType { | ||||||
|  | 	ImageTypeUnknown = 0, | ||||||
|  | 	ImageTypeBitmap = 1, | ||||||
|  | 	ImageTypeMetafile = 2 | ||||||
|  | } ImageType; | ||||||
|  |  | ||||||
|  | /* TODO: InterpolationMode */ | ||||||
|  | typedef enum InterpolationMode { | ||||||
|  | 	/*InterpolationModeInvalid = QualityModeInvalid,*/ | ||||||
|  | 	InterpolationModeDefault = 0, | ||||||
|  | 	InterpolationModeLowQuality = 1, | ||||||
|  | 	InterpolationModeHighQuality = 2, | ||||||
|  | 	InterpolationModeBilinear = 3, | ||||||
|  | 	InterpolationModeBicubic = 4, | ||||||
|  | 	InterpolationModeNearestNeighbor = 5, | ||||||
|  | 	InterpolationModeHighQualityBilinear = 6, | ||||||
|  | 	InterpolationModeHighQualityBicubic = 7 | ||||||
|  | } InterpolationMode; | ||||||
|  |  | ||||||
|  | typedef enum LinearGradientMode { | ||||||
|  | 	LinearGradientModeHorizontal = 0, | ||||||
|  | 	LinearGradientModeVertical = 1, | ||||||
|  | 	LinearGradientModeForwardDiagonal = 2, | ||||||
|  | 	LinearGradientModeBackwardDiagonal = 3  | ||||||
|  | } LinearGradientMode; | ||||||
|  |  | ||||||
|  | typedef enum LineCap { | ||||||
|  | 	LineCapFlat = 0, | ||||||
|  | 	LineCapSquare = 1, | ||||||
|  | 	LineCapRound = 2, | ||||||
|  | 	LineCapTriangle = 3, | ||||||
|  | 	LineCapNoAnchor = 16, | ||||||
|  | 	LineCapSquareAnchor = 17, | ||||||
|  | 	LineCapRoundAnchor = 18, | ||||||
|  | 	LineCapDiamondAnchor = 19, | ||||||
|  | 	LineCapArrowAnchor = 20, | ||||||
|  | 	LineCapCustom = 255 | ||||||
|  | } LineCap; | ||||||
|  |  | ||||||
|  | typedef enum LineJoin { | ||||||
|  | 	LineJoinMiter = 0, | ||||||
|  | 	LineJoinBevel = 1, | ||||||
|  | 	LineJoinRound = 2, | ||||||
|  | 	LineJoinMiterClipped = 3 | ||||||
|  | } LineJoin; | ||||||
|  |  | ||||||
|  | typedef enum MatrixOrder { | ||||||
|  | 	MatrixOrderPrepend = 0, | ||||||
|  | 	MatrixOrderAppend = 1 | ||||||
|  | } MatrixOrder; | ||||||
|  |  | ||||||
|  | typedef enum MetafileFrameUnit { | ||||||
|  | 	MetafileFrameUnitPixel = 2, | ||||||
|  | 	MetafileFrameUnitPoint = 3, | ||||||
|  | 	MetafileFrameUnitInch = 4, | ||||||
|  | 	MetafileFrameUnitDocument = 5, | ||||||
|  | 	MetafileFrameUnitMillimeter = 6, | ||||||
|  | 	MetafileFrameUnitGdi = 7 | ||||||
|  | } MetafileFrameUnit; | ||||||
|  |  | ||||||
|  | typedef enum MetafileType { | ||||||
|  | 	MetafileTypeInvalid = 0, | ||||||
|  | 	MetafileTypeWmf = 1, | ||||||
|  | 	MetafileTypeWmfPlaceable = 2, | ||||||
|  | 	MetafileTypeEmf = 3, | ||||||
|  | 	MetafileTypeEmfPlusOnly = 4, | ||||||
|  | 	MetafileTypeEmfPlusDual = 5 | ||||||
|  | } MetafileType; | ||||||
|  |  | ||||||
|  | typedef enum ObjectType { | ||||||
|  | 	ObjectTypeInvalid = 0, | ||||||
|  | 	ObjectTypeBrush = 1, | ||||||
|  | 	ObjectTypePen = 2, | ||||||
|  | 	ObjectTypePath = 3, | ||||||
|  | 	ObjectTypeRegion = 4, | ||||||
|  | 	ObjectTypeFont = 5, | ||||||
|  | 	ObjectTypeStringFormat = 6, | ||||||
|  | 	ObjectTypeImageAttributes = 7, | ||||||
|  | 	ObjectTypeCustomLineCap = 8, | ||||||
|  | 	ObjectTypeGraphics = 9, | ||||||
|  | 	ObjectTypeMin = ObjectTypeBrush, | ||||||
|  | 	ObjectTypeMax = ObjectTypeGraphics | ||||||
|  | } ObjectType; | ||||||
|  |  | ||||||
|  | typedef enum PathPointType { | ||||||
|  | 	PathPointTypeStart = 0x00, | ||||||
|  | 	PathPointTypeLine = 0x01, | ||||||
|  | 	PathPointTypeBezier = 0x03, | ||||||
|  | 	PathPointTypeBezier3 = 0x03, | ||||||
|  | 	PathPointTypePathTypeMask = 0x07, | ||||||
|  | 	PathPointTypePathDashMode = 0x10, | ||||||
|  | 	PathPointTypePathMarker = 0x20, | ||||||
|  | 	PathPointTypeCloseSubpath = 0x80 | ||||||
|  | } PathPointType; | ||||||
|  |  | ||||||
|  | typedef enum PenAlignment { | ||||||
|  | 	PenAlignmentCenter = 0, | ||||||
|  | 	PenAlignmentInset = 1 | ||||||
|  | } PenAlignment; | ||||||
|  |  | ||||||
|  | typedef enum PenType { | ||||||
|  | 	PenTypeUnknown = -1,  | ||||||
|  | 	PenTypeSolidColor = 0, | ||||||
|  | 	PenTypeHatchFill = 1, | ||||||
|  | 	PenTypeTextureFill = 2, | ||||||
|  | 	PenTypePathGradient = 3, | ||||||
|  | 	PenTypeLinearGradient = 4 | ||||||
|  | } PenType; | ||||||
|  |  | ||||||
|  | /* TODO: PixelOffsetMode */ | ||||||
|  | typedef enum PixelOffsetMode { | ||||||
|  | 	/*PixelOffsetModeInvalid = QualityModeInvalid,*/ | ||||||
|  | 	PixelOffsetModeDefault = 0, | ||||||
|  | 	PixelOffsetModeHighSpeed = 1, | ||||||
|  | 	PixelOffsetModeHighQuality = 2, | ||||||
|  | 	PixelOffsetModeNone = 3, | ||||||
|  | 	PixelOffsetModeHalf = 4 | ||||||
|  | } PixelOffsetMode; | ||||||
|  |  | ||||||
|  | /* TODO: QualityMode */ | ||||||
|  | typedef enum QualityMode { | ||||||
|  | 	/*QualityModeInvalid = ?,*/ | ||||||
|  | 	QualityModeDefault = 0, | ||||||
|  | 	QualityModeLow = 1, | ||||||
|  | 	QualityModeHigh = 2 | ||||||
|  | } QualityMode; | ||||||
|  |  | ||||||
|  | /* TODO: SmoothingMode */ | ||||||
|  | typedef enum SmoothingMode { | ||||||
|  | 	/*SmoothingModeInvalid = QualityModeInvalid,*/ | ||||||
|  | 	SmoothingModeDefault = 0, | ||||||
|  | 	SmoothingModeHighSpeed = 1, | ||||||
|  | 	SmoothingModeHighQuality = 2, | ||||||
|  | 	SmoothingModeNone = 3, | ||||||
|  | 	SmoothingModeAntiAlias8x4 = 4, | ||||||
|  | 	SmoothingModeAntiAlias = 4, | ||||||
|  | 	SmoothingModeAntiAlias8x8 = 5 | ||||||
|  | } SmoothingMode; | ||||||
|  |  | ||||||
|  | typedef enum StringAlignment { | ||||||
|  | 	StringAlignmentNear = 0, | ||||||
|  | 	StringAlignmentCenter = 1, | ||||||
|  | 	StringAlignmentFar = 2 | ||||||
|  | } StringAlignment; | ||||||
|  |  | ||||||
|  | typedef enum StringDigitSubstitute { | ||||||
|  | 	StringDigitSubstituteUser = 0, | ||||||
|  | 	StringDigitSubstituteNone = 1, | ||||||
|  | 	StringDigitSubstituteNational = 2, | ||||||
|  | 	StringDigitSubstituteTraditional = 3 | ||||||
|  | } StringDigitSubstitute; | ||||||
|  |  | ||||||
|  | typedef enum StringFormatFlags { | ||||||
|  | 	StringFormatFlagsDirectionRightToLeft = 0x00000001, | ||||||
|  | 	StringFormatFlagsDirectionVertical = 0x00000002, | ||||||
|  | 	StringFormatFlagsNoFitBlackBox = 0x00000004, | ||||||
|  | 	StringFormatFlagsDisplayFormatControl = 0x00000020, | ||||||
|  | 	StringFormatFlagsNoFontFallback = 0x00000400, | ||||||
|  | 	StringFormatFlagsMeasureTrailingSpaces = 0x00000800, | ||||||
|  | 	StringFormatFlagsNoWrap = 0x00001000, | ||||||
|  | 	StringFormatFlagsLineLimit = 0x00002000, | ||||||
|  | 	StringFormatFlagsNoClip = 0x00004000 | ||||||
|  | } StringFormatFlags; | ||||||
|  |  | ||||||
|  | typedef enum StringTrimming { | ||||||
|  | 	StringTrimmingNone = 0, | ||||||
|  | 	StringTrimmingCharacter = 1, | ||||||
|  | 	StringTrimmingWord = 2, | ||||||
|  | 	StringTrimmingEllipsisCharacter = 3, | ||||||
|  | 	StringTrimmingEllipsisWord = 4, | ||||||
|  | 	StringTrimmingEllipsisPath = 5 | ||||||
|  | } StringTrimming; | ||||||
|  |  | ||||||
|  | typedef enum TextRenderingHint { | ||||||
|  | 	TextRenderingHintSystemDefault = 0, | ||||||
|  | 	TextRenderingHintSingleBitPerPixelGridFit = 1, | ||||||
|  | 	TextRenderingHintSingleBitPerPixel = 2, | ||||||
|  | 	TextRenderingHintAntiAliasGridFit = 3, | ||||||
|  | 	TextRenderingHintAntiAlias = 4, | ||||||
|  | 	TextRenderingHintClearTypeGridFit = 5 | ||||||
|  | } TextRenderingHint; | ||||||
|  |  | ||||||
|  | typedef enum Unit { | ||||||
|  | 	UnitWorld = 0, | ||||||
|  | 	UnitDisplay = 1, | ||||||
|  | 	UnitPixel = 2, | ||||||
|  | 	UnitPoint = 3, | ||||||
|  | 	UnitInch = 4, | ||||||
|  | 	UnitDocument = 5, | ||||||
|  | 	UnitMillimeter = 6 | ||||||
|  | } Unit; | ||||||
|  |  | ||||||
|  | typedef enum WarpMode { | ||||||
|  | 	WarpModePerspective = 0, | ||||||
|  | 	WarpModeBilinear = 1 | ||||||
|  | } WarpMode; | ||||||
|  |  | ||||||
|  | typedef enum WrapMode { | ||||||
|  | 	WrapModeTile = 0, | ||||||
|  | 	WrapModeTileFlipX = 1, | ||||||
|  | 	WrapModeTileFlipY = 2, | ||||||
|  | 	WrapModeTileFlipXY = 3, | ||||||
|  | 	WrapModeClamp = 4 | ||||||
|  | } WrapMode; | ||||||
|  |  | ||||||
|  | typedef enum GpTestControlEnum { | ||||||
|  | 	TestControlForceBilinear = 0, | ||||||
|  | 	TestControlForceNoICM = 1, | ||||||
|  | 	TestControlGetBuildNumber = 2 | ||||||
|  | } GpTestControlEnum; | ||||||
|  |  | ||||||
|  | /* Opaque handles to information blocks on an internal GDI+ stack. */ | ||||||
|  | typedef DWORD GraphicsContainer; | ||||||
|  | typedef DWORD GraphicsState; | ||||||
|  |  | ||||||
|  | /* Default flatness for GraphicsPath methods Flatten, Outline, Warp, Widen */ | ||||||
|  | /* FIXME: Is FlatnessDefault = 0.25f correct? */ | ||||||
|  | #ifdef __cplusplus | ||||||
|  | const REAL FlatnessDefault = 0.25f; | ||||||
|  | #else | ||||||
|  | #define FlatnessDefault ((REAL) 0.25f) | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | static __inline__ BOOL ObjectTypeIsValid(ObjectType type) | ||||||
|  | { | ||||||
|  | 	switch (type) { | ||||||
|  | 		case ObjectTypeBrush: | ||||||
|  | 		case ObjectTypePen: | ||||||
|  | 		case ObjectTypePath: | ||||||
|  | 		case ObjectTypeRegion: | ||||||
|  | 		case ObjectTypeFont: | ||||||
|  | 		case ObjectTypeStringFormat: | ||||||
|  | 		case ObjectTypeImageAttributes: | ||||||
|  | 		case ObjectTypeCustomLineCap: | ||||||
|  | 		case ObjectTypeGraphics: | ||||||
|  | 			return TRUE; | ||||||
|  | 		default: | ||||||
|  | 			return FALSE; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_ENUMS_H */ | ||||||
							
								
								
									
										722
									
								
								winsup/w32api/include/gdiplus/gdiplusflat.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										722
									
								
								winsup/w32api/include/gdiplus/gdiplusflat.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,722 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusflat.h | ||||||
|  |  * | ||||||
|  |  * GDI+ Flat API | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_FLAT_H | ||||||
|  | #define __GDIPLUS_FLAT_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | namespace DllExports { | ||||||
|  | extern "C" { | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | /* AdjustableArrowCap functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateAdjustableArrowCap(REAL,REAL,BOOL,GpAdjustableArrowCap**); | ||||||
|  | GpStatus WINGDIPAPI GdipSetAdjustableArrowCapHeight(GpAdjustableArrowCap*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetAdjustableArrowCapHeight(GpAdjustableArrowCap*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetAdjustableArrowCapWidth(GpAdjustableArrowCap*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetAdjustableArrowCapWidth(GpAdjustableArrowCap*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetAdjustableArrowCapMiddleInset(GpAdjustableArrowCap*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetAdjustableArrowCapFillState(GpAdjustableArrowCap*,BOOL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetAdjustableArrowCapFillState(GpAdjustableArrowCap*,BOOL*); | ||||||
|  |  | ||||||
|  | /* Bitmap functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateBitmapFromStream(IStream*,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateBitmapFromFile(GDIPCONST WCHAR*,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateBitmapFromStreamICM(IStream*,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateBitmapFromFileICM(GDIPCONST WCHAR*,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT,INT,INT,PixelFormat,BYTE*,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT,INT,GpGraphics*,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateBitmapFromDirectDrawSurface(IDirectDrawSurface7*,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO*,VOID*,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateBitmapFromHBITMAP(HBITMAP,HPALETTE,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateHBITMAPFromBitmap(GpBitmap*,HBITMAP*,ARGB); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateBitmapFromHICON(HICON,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateHICONFromBitmap(GpBitmap*,HICON*); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateBitmapFromResource(HINSTANCE,GDIPCONST WCHAR*,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCloneBitmapArea(REAL,REAL,REAL,REAL,PixelFormat,GpBitmap*,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipCloneBitmapAreaI(INT,INT,INT,INT,PixelFormat,GpBitmap*,GpBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap*,GDIPCONST GpRect*,UINT,PixelFormat,BitmapData*); | ||||||
|  | GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap*,BitmapData*); | ||||||
|  | GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap*,INT,INT,ARGB*); | ||||||
|  | GpStatus WINGDIPAPI GdipBitmapSetPixel(GpBitmap*,INT,INT,ARGB); | ||||||
|  | GpStatus WINGDIPAPI GdipBitmapSetResolution(GpBitmap*,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipBitmapConvertFormat(GpBitmap*,PixelFormat,DitherType,PaletteType,ColorPalette*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipInitializePalette(ColorPalette*,PaletteType,INT,BOOL,GpBitmap*); | ||||||
|  | GpStatus WINGDIPAPI GdipBitmapApplyEffect(GpBitmap*,CGpEffect*,RECT*,BOOL,VOID**,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipBitmapCreateApplyEffect(GpBitmap**,INT,CGpEffect*,RECT*,RECT*,GpBitmap**,BOOL,VOID**,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipBitmapGetHistogram(GpBitmap*,HistogramFormat,UINT,UINT*,UINT*,UINT*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipBitmapGetHistogramSize(HistogramFormat,UINT*); | ||||||
|  |  | ||||||
|  | /* Brush functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCloneBrush(GpBrush*,GpBrush**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetBrushType(GpBrush*,GpBrushType*); | ||||||
|  |  | ||||||
|  | /* CachedBitmap functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateCachedBitmap(GpBitmap*,GpGraphics*,GpCachedBitmap**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeleteCachedBitmap(GpCachedBitmap*); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawCachedBitmap(GpGraphics*,GpCachedBitmap*,INT,INT); | ||||||
|  |  | ||||||
|  | /* CustomLineCap functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateCustomLineCap(GpPath*,GpPath*,GpLineCap,REAL,GpCustomLineCap**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeleteCustomLineCap(GpCustomLineCap*); | ||||||
|  | GpStatus WINGDIPAPI GdipCloneCustomLineCap(GpCustomLineCap*,GpCustomLineCap**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetCustomLineCapType(GpCustomLineCap*,CustomLineCapType*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeCaps(GpCustomLineCap*,GpLineCap,GpLineCap); | ||||||
|  | GpStatus WINGDIPAPI GdipGetCustomLineCapStrokeCaps(GpCustomLineCap*,GpLineCap*,GpLineCap*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin); | ||||||
|  | GpStatus WINGDIPAPI GdipGetCustomLineCapStrokeJoin(GpCustomLineCap*,GpLineJoin*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetCustomLineCapBaseCap(GpCustomLineCap*,GpLineCap); | ||||||
|  | GpStatus WINGDIPAPI GdipGetCustomLineCapBaseCap(GpCustomLineCap*,GpLineCap*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetCustomLineCapBaseInset(GpCustomLineCap*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetCustomLineCapBaseInset(GpCustomLineCap*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetCustomLineCapWidthScale(GpCustomLineCap*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetCustomLineCapWidthScale(GpCustomLineCap*,REAL*); | ||||||
|  |  | ||||||
|  | /* Effect functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateEffect(GDIPCONST GUID,CGpEffect**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeleteEffect(CGpEffect*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetEffectParameterSize(CGpEffect*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetEffectParameters(CGpEffect*,GDIPCONST VOID*,UINT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetEffectParameters(CGpEffect*,UINT*,VOID*); | ||||||
|  |  | ||||||
|  | /* Font functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateFontFromDC(HDC,GpFont**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateFontFromLogfontA(HDC,GDIPCONST LOGFONTA*,GpFont**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateFontFromLogfontW(HDC,GDIPCONST LOGFONTW*,GpFont**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily*,REAL,INT,Unit,GpFont**); | ||||||
|  | GpStatus WINGDIPAPI GdipCloneFont(GpFont*,GpFont**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeleteFont(GpFont*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetFamily(GpFont*,GpFontFamily**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetFontStyle(GpFont*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetFontSize(GpFont*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetFontUnit(GpFont*,Unit*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetFontHeight(GDIPCONST GpFont*,GDIPCONST GpGraphics*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetFontHeightGivenDPI(GDIPCONST GpFont*,REAL,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLogFontA(GpFont*,GpGraphics*,LOGFONTA*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLogFontW(GpFont*,GpGraphics*,LOGFONTW*); | ||||||
|  | GpStatus WINGDIPAPI GdipNewInstalledFontCollection(GpFontCollection**); | ||||||
|  | GpStatus WINGDIPAPI GdipNewPrivateFontCollection(GpFontCollection**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeletePrivateFontCollection(GpFontCollection**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetFontCollectionFamilyCount(GpFontCollection*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetFontCollectionFamilyList(GpFontCollection*,INT,GpFontFamily**,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipPrivateAddFontFile(GpFontCollection*,GDIPCONST WCHAR*); | ||||||
|  | GpStatus WINGDIPAPI GdipPrivateAddMemoryFont(GpFontCollection*,GDIPCONST void*,INT); | ||||||
|  |  | ||||||
|  | /* FontFamily functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateFontFamilyFromName(GDIPCONST WCHAR*,GpFontCollection*,GpFontFamily**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeleteFontFamily(GpFontFamily*); | ||||||
|  | GpStatus WINGDIPAPI GdipCloneFontFamily(GpFontFamily*,GpFontFamily**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetGenericFontFamilySansSerif(GpFontFamily**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetGenericFontFamilySerif(GpFontFamily**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetGenericFontFamilyMonospace(GpFontFamily**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetFamilyName(GDIPCONST GpFontFamily*,WCHAR[LF_FACESIZE],LANGID); | ||||||
|  | GpStatus WINGDIPAPI GdipIsStyleAvailable(GDIPCONST GpFontFamily*,INT,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipFontCollectionEnumerable(GpFontCollection*,GpGraphics*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipFontCollectionEnumerate(GpFontCollection*,INT,GpFontFamily**,INT*,GpGraphics*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetEmHeight(GDIPCONST GpFontFamily*,INT,UINT16*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetCellAscent(GDIPCONST GpFontFamily*,INT,UINT16*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetCellDescent(GDIPCONST GpFontFamily*,INT,UINT16*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLineSpacing(GDIPCONST GpFontFamily*,INT,UINT16*); | ||||||
|  |  | ||||||
|  | /* Graphics functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipFlush(GpGraphics*,GpFlushIntention); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateFromHDC(HDC,GpGraphics**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateFromHDC2(HDC,HANDLE,GpGraphics**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateFromHWND(HWND,GpGraphics**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateFromHWNDICM(HWND,GpGraphics**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetDC(GpGraphics*,HDC*); | ||||||
|  | GpStatus WINGDIPAPI GdipReleaseDC(GpGraphics*,HDC); | ||||||
|  | GpStatus WINGDIPAPI GdipSetCompositingMode(GpGraphics*,CompositingMode); | ||||||
|  | GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics*,CompositingMode*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetRenderingOrigin(GpGraphics*,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetRenderingOrigin(GpGraphics*,INT*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics*,CompositingQuality); | ||||||
|  | GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics*,CompositingQuality*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics*,SmoothingMode); | ||||||
|  | GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics*,SmoothingMode*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics*,PixelOffsetMode); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics*,PixelOffsetMode*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetTextRenderingHint(GpGraphics*,TextRenderingHint); | ||||||
|  | GpStatus WINGDIPAPI GdipGetTextRenderingHint(GpGraphics*,TextRenderingHint*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetTextContrast(GpGraphics*,UINT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetTextContrast(GpGraphics*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics*,InterpolationMode); | ||||||
|  | GpStatus WINGDIPAPI GdipGraphicsSetAbort(GpGraphics*,GdiplusAbort*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics*,InterpolationMode*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetWorldTransform(GpGraphics*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipResetWorldTransform(GpGraphics*); | ||||||
|  | GpStatus WINGDIPAPI GdipMultiplyWorldTransform(GpGraphics*,GDIPCONST GpMatrix*,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipTranslateWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipScaleWorldTransform(GpGraphics*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipRotateWorldTransform(GpGraphics*,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipGetWorldTransform(GpGraphics*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipResetPageTransform(GpGraphics*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPageUnit(GpGraphics*,GpUnit*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPageScale(GpGraphics*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics*,GpUnit); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetDpiX(GpGraphics*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetDpiY(GpGraphics*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipTransformPoints(GpGraphics*,GpCoordinateSpace,GpCoordinateSpace,GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipTransformPointsI(GpGraphics*,GpCoordinateSpace,GpCoordinateSpace,GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetNearestColor(GpGraphics*,ARGB*); | ||||||
|  | HPALETTE WINGDIPAPI GdipCreateHalftonePalette(void); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawLine(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics*,GpPen*,INT,INT,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawLines(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawLinesI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawArc(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawArcI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawBezierI(GpGraphics*,GpPen*,INT,INT,INT,INT,INT,INT,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawBeziers(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawBeziersI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawRectangle(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics*,GpPen*,INT,INT,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawRectangles(GpGraphics*,GpPen*,GDIPCONST GpRectF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawRectanglesI(GpGraphics*,GpPen*,GDIPCONST GpRect*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawEllipse(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawEllipseI(GpGraphics*,GpPen*,INT,INT,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawPie(GpGraphics*,GpPen*,REAL,REAL,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawPieI(GpGraphics*,GpPen*,INT,INT,INT,INT,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawPolygon(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawPolygonI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawPath(GpGraphics*,GpPen*,GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawCurve(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawCurveI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawCurve2I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawCurve3(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,INT,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawCurve3I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,INT,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawClosedCurve(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawClosedCurveI(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawClosedCurve2(GpGraphics*,GpPen*,GDIPCONST GpPointF*,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawClosedCurve2I(GpGraphics*,GpPen*,GDIPCONST GpPoint*,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipGraphicsClear(GpGraphics*,ARGB); | ||||||
|  | GpStatus WINGDIPAPI GdipFillRectangle(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics*,GpBrush*,INT,INT,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipFillRectangles(GpGraphics*,GpBrush*,GDIPCONST GpRectF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipFillRectanglesI(GpGraphics*,GpBrush*,GDIPCONST GpRect*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipFillPolygon(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT,GpFillMode); | ||||||
|  | GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT,GpFillMode); | ||||||
|  | GpStatus WINGDIPAPI GdipFillPolygon2(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipFillPolygon2I(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipFillEllipse(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipFillEllipseI(GpGraphics*,GpBrush*,INT,INT,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipFillPie(GpGraphics*,GpBrush*,REAL,REAL,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipFillPieI(GpGraphics*,GpBrush*,INT,INT,INT,INT,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipFillPath(GpGraphics*,GpBrush*,GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipFillClosedCurve(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipFillClosedCurveI(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipFillClosedCurve2(GpGraphics*,GpBrush*,GDIPCONST GpPointF*,INT,REAL,GpFillMode); | ||||||
|  | GpStatus WINGDIPAPI GdipFillClosedCurve2I(GpGraphics*,GpBrush*,GDIPCONST GpPoint*,INT,REAL,GpFillMode); | ||||||
|  | GpStatus WINGDIPAPI GdipFillRegion(GpGraphics*,GpBrush*,GpRegion*); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImage(GpGraphics*,GpImage*,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImageI(GpGraphics*,GpImage*,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImageRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImageRectI(GpGraphics*,GpImage*,INT,INT,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImagePoints(GpGraphics*,GpImage*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImagePointsI(GpGraphics*,GpImage*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImagePointRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL,REAL,REAL,GpUnit); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImagePointRectI(GpGraphics*,GpImage*,INT,INT,INT,INT,INT,INT,GpUnit); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImageRectRect(GpGraphics*,GpImage*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImageRectRectI(GpGraphics*,GpImage*,INT,INT,INT,INT,INT,INT,INT,INT,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics*,GpImage*,GDIPCONST GpPointF*,INT,REAL,REAL,REAL,REAL,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImagePointsRectI(GpGraphics*,GpImage*,GDIPCONST GpPoint*,INT,INT,INT,INT,INT,GpUnit,GDIPCONST GpImageAttributes*,DrawImageAbort,VOID*); | ||||||
|  | GpStatus WINGDIPAPI GdipDrawImageFX(GpGraphics*,GpImage*,GpRectF*,GpMatrix*,CGpEffect*,GpImageAttributes*,GpUnit); | ||||||
|  | #ifdef __cplusplus | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoint(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileDestRect(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST RectF&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileDestRectI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Rect&,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | #endif | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileDestPoints(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF*,INT,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileDestPointsI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point*,INT,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | #ifdef __cplusplus | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPoint(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF&,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPointI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point&,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestRect(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST RectF&,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestRectI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Rect&,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPoints(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST PointF*,INT,GDIPCONST RectF&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | GpStatus WINGDIPAPI GdipEnumerateMetafileSrcRectDestPointsI(GpGraphics*,GDIPCONST GpMetafile*,GDIPCONST Point*,INT,GDIPCONST Rect&,Unit,EnumerateMetafileProc,VOID*,GDIPCONST GpImageAttributes*); | ||||||
|  | #endif | ||||||
|  | GpStatus WINGDIPAPI GdipSetClipGraphics(GpGraphics*,GpGraphics*,CombineMode); | ||||||
|  | GpStatus WINGDIPAPI GdipSetClipRect(GpGraphics*,REAL,REAL,REAL,REAL,CombineMode); | ||||||
|  | GpStatus WINGDIPAPI GdipSetClipRectI(GpGraphics*,INT,INT,INT,INT,CombineMode); | ||||||
|  | GpStatus WINGDIPAPI GdipSetClipPath(GpGraphics*,GpPath*,CombineMode); | ||||||
|  | GpStatus WINGDIPAPI GdipSetClipRegion(GpGraphics*,GpRegion*,CombineMode); | ||||||
|  | GpStatus WINGDIPAPI GdipSetClipHrgn(GpGraphics*,HRGN,CombineMode); | ||||||
|  | GpStatus WINGDIPAPI GdipResetClip(GpGraphics*); | ||||||
|  | GpStatus WINGDIPAPI GdipTranslateClip(GpGraphics*,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipTranslateClipI(GpGraphics*,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetClip(GpGraphics*,GpRegion*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetClipBounds(GpGraphics*,GpRectF*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetClipBoundsI(GpGraphics*,GpRect*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsClipEmpty(GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetVisibleClipBounds(GpGraphics*,GpRectF*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetVisibleClipBoundsI(GpGraphics*,GpRect*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsVisibleClipEmpty(GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsVisiblePoint(GpGraphics*,REAL,REAL,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsVisiblePointI(GpGraphics*,INT,INT,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsVisibleRect(GpGraphics*,REAL,REAL,REAL,REAL,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsVisibleRectI(GpGraphics*,INT,INT,INT,INT,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipSaveGraphics(GpGraphics*,GraphicsState*); | ||||||
|  | GpStatus WINGDIPAPI GdipRestoreGraphics(GpGraphics*,GraphicsState); | ||||||
|  | GpStatus WINGDIPAPI GdipBeginContainer(GpGraphics*,GDIPCONST GpRectF*,GDIPCONST GpRectF*,GpUnit,GraphicsContainer*); | ||||||
|  | GpStatus WINGDIPAPI GdipBeginContainerI(GpGraphics*,GDIPCONST GpRect*,GDIPCONST GpRect*,GpUnit,GraphicsContainer*); | ||||||
|  | GpStatus WINGDIPAPI GdipBeginContainer2(GpGraphics*,GraphicsContainer*); | ||||||
|  | GpStatus WINGDIPAPI GdipEndContainer(GpGraphics*,GraphicsContainer); | ||||||
|  | GpStatus WINGDIPAPI GdipComment(GpGraphics*,UINT,GDIPCONST BYTE*); | ||||||
|  |  | ||||||
|  | /* GraphicsPath functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreatePath(GpFillMode,GpPath**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreatePath2(GDIPCONST GpPointF*,GDIPCONST BYTE*,INT,GpFillMode,GpPath**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreatePath2I(GDIPCONST GpPoint*,GDIPCONST BYTE*,INT,GpFillMode,GpPath**); | ||||||
|  | GpStatus WINGDIPAPI GdipClonePath(GpPath*,GpPath**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeletePath(GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipResetPath(GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPointCount(GpPath*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathTypes(GpPath*,BYTE*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathPoints(GpPath*,GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathPointsI(GpPath*,GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathFillMode(GpPath*,GpFillMode*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathFillMode(GpPath*,GpFillMode); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathData(GpPath*,GpPathData*); | ||||||
|  | GpStatus WINGDIPAPI GdipStartPathFigure(GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipClosePathFigure(GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipClosePathFigures(GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathMarker(GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipClearPathMarkers(GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipReversePath(GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathLastPoint(GpPath*,GpPointF*); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathLine(GpPath*,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathLine2(GpPath*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathArc(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathBezier(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathBeziers(GpPath*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathCurve(GpPath*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathCurve2(GpPath*,GDIPCONST GpPointF*,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathCurve3(GpPath*,GDIPCONST GpPointF*,INT,INT,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathClosedCurve(GpPath*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathClosedCurve2(GpPath*,GDIPCONST GpPointF*,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathRectangle(GpPath*,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathRectangles(GpPath*,GDIPCONST GpRectF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath*,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathPie(GpPath*,REAL,REAL,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathPolygon(GpPath*,GDIPCONST GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathPath(GpPath*,GDIPCONST GpPath*,BOOL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathString(GpPath*,GDIPCONST WCHAR*,INT,GDIPCONST GpFontFamily*,INT,REAL,GDIPCONST RectF*,GDIPCONST GpStringFormat*); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathStringI(GpPath*,GDIPCONST WCHAR*,INT,GDIPCONST GpFontFamily*,INT,REAL,GDIPCONST Rect*,GDIPCONST GpStringFormat*); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathLineI(GpPath*,INT,INT,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathLine2I(GpPath*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathArcI(GpPath*,INT,INT,INT,INT,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathBezierI(GpPath*,INT,INT,INT,INT,INT,INT,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathBeziersI(GpPath*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathCurveI(GpPath*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathCurve2I(GpPath*,GDIPCONST GpPoint*,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathCurve3I(GpPath*,GDIPCONST GpPoint*,INT,INT,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathClosedCurveI(GpPath*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathClosedCurve2I(GpPath*,GDIPCONST GpPoint*,INT,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathRectangleI(GpPath*,INT,INT,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathRectanglesI(GpPath*,GDIPCONST GpRect*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathEllipseI(GpPath*,INT,INT,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathPieI(GpPath*,INT,INT,INT,INT,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipAddPathPolygonI(GpPath*,GDIPCONST GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipFlattenPath(GpPath*,GpMatrix*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipWindingModeOutline(GpPath*,GpMatrix*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipWidenPath(GpPath*,GpPen*,GpMatrix*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipWarpPath(GpPath*,GpMatrix*,GDIPCONST GpPointF*,INT,REAL,REAL,REAL,REAL,WarpMode,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipTransformPath(GpPath*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathWorldBounds(GpPath*,GpRectF*,GDIPCONST GpMatrix*,GDIPCONST GpPen*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathWorldBoundsI(GpPath*,GpRect*,GDIPCONST GpMatrix*,GDIPCONST GpPen*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsVisiblePathPoint(GpPath*,REAL,REAL,GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsVisiblePathPointI(GpPath*,INT,INT,GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPoint(GpPath*,REAL,REAL,GpPen*,GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPointI(GpPath*,INT,INT,GpPen*,GpGraphics*,BOOL*); | ||||||
|  |  | ||||||
|  | /* HatchBrush functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateHatchBrush(GpHatchStyle,ARGB,ARGB,GpHatch**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetHatchStyle(GpHatch*,GpHatchStyle*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetHatchForegroundColor(GpHatch*,ARGB*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetHatchBackgroundColor(GpHatch*,ARGB*); | ||||||
|  |  | ||||||
|  | /* Image functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipLoadImageFromStream(IStream*,GpImage**); | ||||||
|  | GpStatus WINGDIPAPI GdipLoadImageFromFile(GDIPCONST WCHAR*,GpImage**); | ||||||
|  | GpStatus WINGDIPAPI GdipLoadImageFromStreamICM(IStream*,GpImage**); | ||||||
|  | GpStatus WINGDIPAPI GdipLoadImageFromFileICM(GDIPCONST WCHAR*,GpImage**); | ||||||
|  | GpStatus WINGDIPAPI GdipCloneImage(GpImage*,GpImage**); | ||||||
|  | GpStatus WINGDIPAPI GdipDisposeImage(GpImage*); | ||||||
|  | GpStatus WINGDIPAPI GdipSaveImageToFile(GpImage*,GDIPCONST WCHAR*,GDIPCONST CLSID*,GDIPCONST EncoderParameters*); | ||||||
|  | GpStatus WINGDIPAPI GdipSaveImageToStream(GpImage*,IStream*,GDIPCONST CLSID*,GDIPCONST EncoderParameters*); | ||||||
|  | GpStatus WINGDIPAPI GdipSaveAdd(GpImage*,GDIPCONST EncoderParameters*); | ||||||
|  | GpStatus WINGDIPAPI GdipSaveAddImage(GpImage*,GpImage*,GDIPCONST EncoderParameters*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageGraphicsContext(GpImage*,GpGraphics**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageBounds(GpImage*,GpRectF*,GpUnit*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageDimension(GpImage*,REAL*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageType(GpImage*,ImageType*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageWidth(GpImage*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageHeight(GpImage*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageHorizontalResolution(GpImage*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageVerticalResolution(GpImage*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageFlags(GpImage*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageRawFormat(GpImage*,GUID*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImagePixelFormat(GpImage*,PixelFormat*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageThumbnail(GpImage*,UINT,UINT,GpImage**,GetThumbnailImageAbort,VOID*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetEncoderParameterListSize(GpImage*,GDIPCONST CLSID*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetEncoderParameterList(GpImage*,GDIPCONST CLSID*,UINT,EncoderParameters*); | ||||||
|  | GpStatus WINGDIPAPI GdipImageGetFrameDimensionsCount(GpImage*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipImageGetFrameDimensionsList(GpImage*,GUID*,UINT); | ||||||
|  | GpStatus WINGDIPAPI GdipImageGetFrameCount(GpImage*,GDIPCONST GUID*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipImageSelectActiveFrame(GpImage*,GDIPCONST GUID*,UINT); | ||||||
|  | GpStatus WINGDIPAPI GdipImageRotateFlip(GpImage*,RotateFlipType); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImagePalette(GpImage*,ColorPalette*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImagePalette(GpImage*,GDIPCONST ColorPalette*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImagePaletteSize(GpImage*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPropertyCount(GpImage*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPropertyIdList(GpImage*,UINT,PROPID*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPropertyItemSize(GpImage*,PROPID,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPropertyItem(GpImage*,PROPID,UINT,PropertyItem*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPropertySize(GpImage*,UINT*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetAllPropertyItems(GpImage*,UINT,UINT,PropertyItem*); | ||||||
|  | GpStatus WINGDIPAPI GdipRemovePropertyItem(GpImage*,PROPID); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPropertyItem(GpImage*,GDIPCONST PropertyItem*); | ||||||
|  | GpStatus WINGDIPAPI GdipFindFirstImageItem(GpImage*,ImageItemData*); | ||||||
|  | GpStatus WINGDIPAPI GdipFindNextImageItem(GpImage*,ImageItemData*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageItemData(GpImage*,ImageItemData*); | ||||||
|  | GpStatus WINGDIPAPI GdipImageSetAbort(GpImage*,GdiplusAbort*); | ||||||
|  | GpStatus WINGDIPAPI GdipImageForceValidation(GpImage*); | ||||||
|  |  | ||||||
|  | /* Image codec functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageDecodersSize(UINT*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageDecoders(UINT,UINT,ImageCodecInfo*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageEncodersSize(UINT*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageEncoders(UINT,UINT,ImageCodecInfo*); | ||||||
|  |  | ||||||
|  | /* ImageAttributes functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateImageAttributes(GpImageAttributes**); | ||||||
|  | GpStatus WINGDIPAPI GdipCloneImageAttributes(GDIPCONST GpImageAttributes*,GpImageAttributes**); | ||||||
|  | GpStatus WINGDIPAPI GdipDisposeImageAttributes(GpImageAttributes*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesToIdentity(GpImageAttributes*,ColorAdjustType); | ||||||
|  | GpStatus WINGDIPAPI GdipResetImageAttributes(GpImageAttributes*,ColorAdjustType); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesColorMatrix(GpImageAttributes*,ColorAdjustType,BOOL,GDIPCONST ColorMatrix*,GDIPCONST ColorMatrix*,ColorMatrixFlags); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesThreshold(GpImageAttributes*,ColorAdjustType,BOOL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesGamma(GpImageAttributes*,ColorAdjustType,BOOL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesNoOp(GpImageAttributes*,ColorAdjustType,BOOL); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesColorKeys(GpImageAttributes*,ColorAdjustType,BOOL,ARGB,ARGB); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesOutputChannel(GpImageAttributes*,ColorAdjustType,BOOL,ColorChannelFlags); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesOutputChannelColorProfile(GpImageAttributes*,ColorAdjustType,BOOL,GDIPCONST WCHAR*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesRemapTable(GpImageAttributes*,ColorAdjustType,BOOL,UINT,GDIPCONST ColorMap*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesWrapMode(GpImageAttributes*,WrapMode,ARGB,BOOL); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesICMMode(GpImageAttributes*,BOOL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetImageAttributesAdjustedPalette(GpImageAttributes*,ColorPalette*,ColorAdjustType); | ||||||
|  | GpStatus WINGDIPAPI GdipSetImageAttributesCachedBackground(GpImageAttributes*,BOOL); | ||||||
|  |  | ||||||
|  | /* LinearGradientBrush functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateLineBrush(GDIPCONST GpPointF*,GDIPCONST GpPointF*,ARGB,ARGB,GpWrapMode,GpLineGradient**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateLineBrushI(GDIPCONST GpPoint*,GDIPCONST GpPoint*,ARGB,ARGB,GpWrapMode,GpLineGradient**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateLineBrushFromRect(GDIPCONST GpRectF*,ARGB,ARGB,LinearGradientMode,GpWrapMode,GpLineGradient**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateLineBrushFromRectI(GDIPCONST GpRect*,ARGB,ARGB,LinearGradientMode,GpWrapMode,GpLineGradient**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateLineBrushFromRectWithAngle(GDIPCONST GpRectF*,ARGB,ARGB,REAL,BOOL,GpWrapMode,GpLineGradient**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateLineBrushFromRectWithAngleI(GDIPCONST GpRect*,ARGB,ARGB,REAL,BOOL,GpWrapMode,GpLineGradient**); | ||||||
|  | GpStatus WINGDIPAPI GdipSetLineColors(GpLineGradient*,ARGB,ARGB); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLineColors(GpLineGradient*,ARGB*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLineRect(GpLineGradient*,GpRectF*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLineRectI(GpLineGradient*,GpRect*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetLineGammaCorrection(GpLineGradient*,BOOL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLineGammaCorrection(GpLineGradient*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLineBlendCount(GpLineGradient*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLineBlend(GpLineGradient*,REAL*,REAL*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipSetLineBlend(GpLineGradient*,GDIPCONST REAL*,GDIPCONST REAL*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLinePresetBlendCount(GpLineGradient*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLinePresetBlend(GpLineGradient*,ARGB*,REAL*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipSetLinePresetBlend(GpLineGradient*,GDIPCONST ARGB*,GDIPCONST REAL*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipSetLineSigmaBlend(GpLineGradient*,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipSetLineLinearBlend(GpLineGradient*,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipSetLineWrapMode(GpLineGradient*,GpWrapMode); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLineWrapMode(GpLineGradient*,GpWrapMode*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetLineTransform(GpLineGradient*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetLineTransform(GpLineGradient*,GDIPCONST GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipResetLineTransform(GpLineGradient*); | ||||||
|  | GpStatus WINGDIPAPI GdipMultiplyLineTransform(GpLineGradient*,GDIPCONST GpMatrix*,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipTranslateLineTransform(GpLineGradient*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipScaleLineTransform(GpLineGradient*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipRotateLineTransform(GpLineGradient*,REAL,GpMatrixOrder); | ||||||
|  |  | ||||||
|  | /* Matrix functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateMatrix2(REAL,REAL,REAL,REAL,REAL,REAL,GpMatrix**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateMatrix3(GDIPCONST GpRectF*,GDIPCONST GpPointF*,GpMatrix**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateMatrix3I(GDIPCONST GpRect*,GDIPCONST GpPoint*,GpMatrix**); | ||||||
|  | GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix*,GpMatrix**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetMatrixElements(GpMatrix*,REAL,REAL,REAL,REAL,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipMultiplyMatrix(GpMatrix*,GpMatrix*,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipTranslateMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix*,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipShearMatrix(GpMatrix*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipInvertMatrix(GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipTransformMatrixPoints(GpMatrix*,GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipTransformMatrixPointsI(GpMatrix*,GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipVectorTransformMatrixPoints(GpMatrix*,GpPointF*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipVectorTransformMatrixPointsI(GpMatrix*,GpPoint*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsMatrixInvertible(GDIPCONST GpMatrix*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsMatrixIdentity(GDIPCONST GpMatrix*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsMatrixEqual(GDIPCONST GpMatrix*,GDIPCONST GpMatrix*,BOOL*); | ||||||
|  |  | ||||||
|  | /* Metafile functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipGetMetafileHeaderFromEmf(HENHMETAFILE,MetafileHeader*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetMetafileHeaderFromFile(GDIPCONST WCHAR*,MetafileHeader*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetMetafileHeaderFromStream(IStream*,MetafileHeader*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetMetafileHeaderFromMetafile(GpMetafile*,MetafileHeader*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetHemfFromMetafile(GpMetafile*,HENHMETAFILE*); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateStreamOnFile(GDIPCONST WCHAR*,UINT,IStream**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateMetafileFromWmf(HMETAFILE,BOOL,GDIPCONST WmfPlaceableFileHeader*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateMetafileFromEmf(HENHMETAFILE,BOOL,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateMetafileFromFile(GDIPCONST WCHAR*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateMetafileFromWmfFile(GDIPCONST WCHAR*,GDIPCONST WmfPlaceableFileHeader*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateMetafileFromStream(IStream*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipRecordMetafile(HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipRecordMetafileI(HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipRecordMetafileFileName(GDIPCONST WCHAR*,HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipRecordMetafileFileNameI(GDIPCONST WCHAR*,HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipRecordMetafileStream(IStream*,HDC,EmfType,GDIPCONST GpRectF*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipRecordMetafileStreamI(IStream*,HDC,EmfType,GDIPCONST GpRect*,MetafileFrameUnit,GDIPCONST WCHAR*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipPlayMetafileRecord(GDIPCONST GpMetafile*,EmfPlusRecordType,UINT,UINT,GDIPCONST BYTE*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetMetafileDownLevelRasterizationLimit(GpMetafile*,UINT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetMetafileDownLevelRasterizationLimit(GDIPCONST GpMetafile*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipConvertToEmfPlus(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,EmfType,GDIPCONST WCHAR*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipConvertToEmfPlusToFile(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,GDIPCONST WCHAR*,EmfType,GDIPCONST WCHAR*,GpMetafile**); | ||||||
|  | GpStatus WINGDIPAPI GdipConvertToEmfPlusToStream(GDIPCONST GpGraphics*,GpMetafile*,BOOL*,IStream*,EmfType,GDIPCONST WCHAR*,GpMetafile**); | ||||||
|  | UINT WINGDIPAPI GdipEmfToWmfBits(HENHMETAFILE,UINT,LPBYTE,INT,INT); | ||||||
|  |  | ||||||
|  | /* PathGradientBrush functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreatePathGradient(GDIPCONST GpPointF*,INT,GpWrapMode,GpPathGradient**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreatePathGradientI(GDIPCONST GpPoint*,INT,GpWrapMode,GpPathGradient**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreatePathGradientFromPath(GDIPCONST GpPath*,GpPathGradient**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientCenterColor(GpPathGradient*,ARGB*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientCenterColor(GpPathGradient*,ARGB); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorsWithCount(GpPathGradient*,ARGB*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientSurroundColorsWithCount(GpPathGradient*,GDIPCONST ARGB*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientPath(GpPathGradient*,GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientPath(GpPathGradient*,GDIPCONST GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientCenterPoint(GpPathGradient*,GpPointF*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientCenterPointI(GpPathGradient*,GpPoint*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientCenterPoint(GpPathGradient*,GDIPCONST GpPointF*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientCenterPointI(GpPathGradient*,GDIPCONST GpPoint*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientRect(GpPathGradient*,GpRectF*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientRectI(GpPathGradient*,GpRect*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientPointCount(GpPathGradient*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientSurroundColorCount(GpPathGradient*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientGammaCorrection(GpPathGradient*,BOOL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientGammaCorrection(GpPathGradient*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientBlendCount(GpPathGradient*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientBlend(GpPathGradient*,REAL*,REAL*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientBlend(GpPathGradient*,GDIPCONST REAL*,GDIPCONST REAL*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientPresetBlendCount(GpPathGradient*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientPresetBlend(GpPathGradient*,ARGB*,REAL*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientPresetBlend(GpPathGradient*,GDIPCONST ARGB*,GDIPCONST REAL*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientSigmaBlend(GpPathGradient*,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientLinearBlend(GpPathGradient*,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientWrapMode(GpPathGradient*,GpWrapMode*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientWrapMode(GpPathGradient*,GpWrapMode); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientTransform(GpPathGradient*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientTransform(GpPathGradient*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipResetPathGradientTransform(GpPathGradient*); | ||||||
|  | GpStatus WINGDIPAPI GdipMultiplyPathGradientTransform(GpPathGradient*,GDIPCONST GpMatrix*,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipTranslatePathGradientTransform(GpPathGradient*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipScalePathGradientTransform(GpPathGradient*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipRotatePathGradientTransform(GpPathGradient*,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPathGradientFocusScales(GpPathGradient*,REAL*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPathGradientFocusScales(GpPathGradient*,REAL,REAL); | ||||||
|  |  | ||||||
|  | /* PathIterator functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreatePathIter(GpPathIterator**,GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipDeletePathIter(GpPathIterator*); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterNextSubpath(GpPathIterator*,INT*,INT*,INT*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterNextSubpathPath(GpPathIterator*,INT*,GpPath*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterNextPathType(GpPathIterator*,INT*,BYTE*,INT*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterNextMarker(GpPathIterator*,INT*,INT*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterNextMarkerPath(GpPathIterator*,INT*,GpPath*); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterGetCount(GpPathIterator*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterGetSubpathCount(GpPathIterator*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterIsValid(GpPathIterator*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterHasCurve(GpPathIterator*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterRewind(GpPathIterator*); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterEnumerate(GpPathIterator*,INT*,GpPointF*,BYTE*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipPathIterCopyData(GpPathIterator*,INT*,GpPointF*,BYTE*,INT,INT); | ||||||
|  |  | ||||||
|  | /* Pen functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreatePen1(ARGB,REAL,GpUnit,GpPen**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreatePen2(GpBrush*,REAL,GpUnit,GpPen**); | ||||||
|  | GpStatus WINGDIPAPI GdipClonePen(GpPen*,GpPen**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeletePen(GpPen*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenWidth(GpPen*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenWidth(GpPen*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenUnit(GpPen*,GpUnit); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenUnit(GpPen*,GpUnit*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenLineCap197819(GpPen*,GpLineCap,GpLineCap,GpDashCap); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenStartCap(GpPen*,GpLineCap); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenEndCap(GpPen*,GpLineCap); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenDashCap197819(GpPen*,GpDashCap); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenStartCap(GpPen*,GpLineCap*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenEndCap(GpPen*,GpLineCap*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenDashCap197819(GpPen*,GpDashCap*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenLineJoin(GpPen*,GpLineJoin); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenLineJoin(GpPen*,GpLineJoin*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenCustomStartCap(GpPen*,GpCustomLineCap*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenCustomStartCap(GpPen*,GpCustomLineCap**); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenCustomEndCap(GpPen*,GpCustomLineCap*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenCustomEndCap(GpPen*,GpCustomLineCap**); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenMiterLimit(GpPen*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenMiterLimit(GpPen*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenMode(GpPen*,GpPenAlignment); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenMode(GpPen*,GpPenAlignment*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenTransform(GpPen*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenTransform(GpPen*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipResetPenTransform(GpPen*); | ||||||
|  | GpStatus WINGDIPAPI GdipMultiplyPenTransform(GpPen*,GDIPCONST GpMatrix*,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipTranslatePenTransform(GpPen*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipScalePenTransform(GpPen*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipRotatePenTransform(GpPen*,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenColor(GpPen*,ARGB); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenColor(GpPen*,ARGB*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenBrushFill(GpPen*,GpBrush*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenBrushFill(GpPen*,GpBrush**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenFillType(GpPen*,GpPenType*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenDashStyle(GpPen*,GpDashStyle*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenDashStyle(GpPen*,GpDashStyle); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenDashOffset(GpPen*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenDashOffset(GpPen*,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenDashCount(GpPen*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenDashArray(GpPen*,GDIPCONST REAL*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenDashArray(GpPen*,REAL*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenCompoundCount(GpPen*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen*,GDIPCONST REAL*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetPenCompoundArray(GpPen*,REAL*,INT); | ||||||
|  |  | ||||||
|  | /* Region functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateRegion(GpRegion**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF*,GpRegion**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect*,GpRegion**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath*,GpRegion**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateRegionRgnData(GDIPCONST BYTE*,INT,GpRegion**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateRegionHrgn(HRGN,GpRegion**); | ||||||
|  | GpStatus WINGDIPAPI GdipCloneRegion(GpRegion*,GpRegion**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetInfinite(GpRegion*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetEmpty(GpRegion*); | ||||||
|  | GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion*,GDIPCONST GpRectF*,CombineMode); | ||||||
|  | GpStatus WINGDIPAPI GdipCombineRegionRectI(GpRegion*,GDIPCONST GpRect*,CombineMode); | ||||||
|  | GpStatus WINGDIPAPI GdipCombineRegionPath(GpRegion*,GpPath*,CombineMode); | ||||||
|  | GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion*,GpRegion*,CombineMode); | ||||||
|  | GpStatus WINGDIPAPI GdipTranslateRegion(GpRegion*,REAL,REAL); | ||||||
|  | GpStatus WINGDIPAPI GdipTranslateRegionI(GpRegion*,INT,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipTransformRegion(GpRegion*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetRegionBounds(GpRegion*,GpGraphics*,GpRectF*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetRegionBoundsI(GpRegion*,GpGraphics*,GpRect*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetRegionHRgn(GpRegion*,GpGraphics*,HRGN*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsEmptyRegion(GpRegion*,GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsInfiniteRegion(GpRegion*,GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsEqualRegion(GpRegion*,GpRegion*,GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetRegionDataSize(GpRegion*,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetRegionData(GpRegion*,BYTE*,UINT,UINT*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsVisibleRegionPoint(GpRegion*,REAL,REAL,GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsVisibleRegionPointI(GpRegion*,INT,INT,GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsVisibleRegionRect(GpRegion*,REAL,REAL,REAL,REAL,GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipIsVisibleRegionRectI(GpRegion*,INT,INT,INT,INT,GpGraphics*,BOOL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetRegionScansCount(GpRegion*,UINT*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetRegionScans(GpRegion*,GpRectF*,INT*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetRegionScansI(GpRegion*,GpRect*,INT*,GpMatrix*); | ||||||
|  |  | ||||||
|  | /* SolidBrush functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB,GpSolidFill**); | ||||||
|  | GpStatus WINGDIPAPI GdipSetSolidFillColor(GpSolidFill*,ARGB); | ||||||
|  | GpStatus WINGDIPAPI GdipGetSolidFillColor(GpSolidFill*,ARGB*); | ||||||
|  |  | ||||||
|  | /* StringFormat functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateStringFormat(INT,LANGID,GpStringFormat**); | ||||||
|  | GpStatus WINGDIPAPI GdipStringFormatGetGenericDefault(GpStringFormat**); | ||||||
|  | GpStatus WINGDIPAPI GdipStringFormatGetGenericTypographic(GpStringFormat**); | ||||||
|  | GpStatus WINGDIPAPI GdipDeleteStringFormat(GpStringFormat*); | ||||||
|  | GpStatus WINGDIPAPI GdipCloneStringFormat(GDIPCONST GpStringFormat*,GpStringFormat**); | ||||||
|  | GpStatus WINGDIPAPI GdipSetStringFormatFlags(GpStringFormat*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetStringFormatFlags(GDIPCONST GpStringFormat*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetStringFormatAlign(GpStringFormat*,StringAlignment); | ||||||
|  | GpStatus WINGDIPAPI GdipGetStringFormatAlign(GDIPCONST GpStringFormat*,StringAlignment*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetStringFormatLineAlign(GpStringFormat*,StringAlignment); | ||||||
|  | GpStatus WINGDIPAPI GdipGetStringFormatLineAlign(GDIPCONST GpStringFormat*,StringAlignment*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetStringFormatTrimming(GpStringFormat*,StringTrimming); | ||||||
|  | GpStatus WINGDIPAPI GdipGetStringFormatTrimming(GDIPCONST GpStringFormat*,StringTrimming*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetStringFormatHotkeyPrefix(GpStringFormat*,INT); | ||||||
|  | GpStatus WINGDIPAPI GdipGetStringFormatHotkeyPrefix(GDIPCONST GpStringFormat*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetStringFormatTabStops(GpStringFormat*,REAL,INT,GDIPCONST REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetStringFormatTabStops(GDIPCONST GpStringFormat*,INT,REAL*,REAL*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetStringFormatTabStopCount(GDIPCONST GpStringFormat*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetStringFormatDigitSubstitution(GpStringFormat*,LANGID,StringDigitSubstitute); | ||||||
|  | GpStatus WINGDIPAPI GdipGetStringFormatDigitSubstitution(GDIPCONST GpStringFormat*,LANGID*,StringDigitSubstitute*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetStringFormatMeasurableCharacterRangeCount(GDIPCONST GpStringFormat*,INT*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetStringFormatMeasurableCharacterRanges(GpStringFormat*,INT,GDIPCONST CharacterRange*); | ||||||
|  |  | ||||||
|  | /* Text functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipDrawString(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF*,GDIPCONST GpStringFormat*,GDIPCONST GpBrush*); | ||||||
|  | GpStatus WINGDIPAPI GdipMeasureString(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF*,GDIPCONST GpStringFormat*,RectF*,INT*,INT*); | ||||||
|  | #ifdef __cplusplus | ||||||
|  | GpStatus WINGDIPAPI GdipMeasureCharacterRanges(GpGraphics*,GDIPCONST WCHAR*,INT,GDIPCONST GpFont*,GDIPCONST RectF&,GDIPCONST GpStringFormat*,INT,GpRegion**); | ||||||
|  | #endif | ||||||
|  | GpStatus WINGDIPAPI GdipDrawDriverString(GpGraphics*,GDIPCONST UINT16*,INT,GDIPCONST GpFont*,GDIPCONST GpBrush*,GDIPCONST PointF*,INT,GDIPCONST GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipMeasureDriverString(GpGraphics*,GDIPCONST UINT16*,INT,GDIPCONST GpFont*,GDIPCONST PointF*,INT,GDIPCONST GpMatrix*,RectF*); | ||||||
|  |  | ||||||
|  | /* TextureBrush functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipCreateTexture(GpImage*,GpWrapMode,GpTexture**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateTexture2(GpImage*,GpWrapMode,REAL,REAL,REAL,REAL,GpTexture**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateTexture2I(GpImage*,GpWrapMode,INT,INT,INT,INT,GpTexture**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateTextureIA(GpImage*,GDIPCONST GpImageAttributes*,REAL,REAL,REAL,REAL,GpTexture**); | ||||||
|  | GpStatus WINGDIPAPI GdipCreateTextureIAI(GpImage*,GDIPCONST GpImageAttributes*,INT,INT,INT,INT,GpTexture**); | ||||||
|  | GpStatus WINGDIPAPI GdipGetTextureTransform(GpTexture*,GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipSetTextureTransform(GpTexture*,GDIPCONST GpMatrix*); | ||||||
|  | GpStatus WINGDIPAPI GdipResetTextureTransform(GpTexture*); | ||||||
|  | GpStatus WINGDIPAPI GdipMultiplyTextureTransform(GpTexture*,GDIPCONST GpMatrix*,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipTranslateTextureTransform(GpTexture*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipScaleTextureTransform(GpTexture*,REAL,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipRotateTextureTransform(GpTexture*,REAL,GpMatrixOrder); | ||||||
|  | GpStatus WINGDIPAPI GdipSetTextureWrapMode(GpTexture*,GpWrapMode); | ||||||
|  | GpStatus WINGDIPAPI GdipGetTextureWrapMode(GpTexture*,GpWrapMode*); | ||||||
|  | GpStatus WINGDIPAPI GdipGetTextureImage(GpTexture*,GpImage**); | ||||||
|  |  | ||||||
|  | /* uncategorized functions */ | ||||||
|  | GpStatus WINGDIPAPI GdipTestControl(GpTestControlEnum,void*); | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | }  /* extern "C" */ | ||||||
|  | }  /* namespace DllExports */ | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_FLAT_H */ | ||||||
							
								
								
									
										139
									
								
								winsup/w32api/include/gdiplus/gdiplusgpstubs.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										139
									
								
								winsup/w32api/include/gdiplus/gdiplusgpstubs.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,139 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusgpstubs.h | ||||||
|  |  * | ||||||
|  |  * GDI+ Gp* type declarations | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_GPSTUBS_H | ||||||
|  | #define __GDIPLUS_GPSTUBS_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef Point GpPoint; | ||||||
|  | typedef PointF GpPointF; | ||||||
|  | typedef Rect GpRect; | ||||||
|  | typedef RectF GpRectF; | ||||||
|  | typedef Size GpSize; | ||||||
|  | typedef SizeF GpSizeF; | ||||||
|  |  | ||||||
|  | typedef enum BrushType GpBrushType; | ||||||
|  | typedef enum CombineMode GpCombineMode; | ||||||
|  | typedef enum CompositingMode GpCompositingMode; | ||||||
|  | typedef enum CompositingQuality GpCompositingQuality; | ||||||
|  | typedef enum CoordinateSpace GpCoordinateSpace; | ||||||
|  | typedef enum CustomLineCapType GpCustomLineCapType; | ||||||
|  | typedef enum DashCap GpDashCap; | ||||||
|  | typedef enum DashStyle GpDashStyle; | ||||||
|  | typedef enum DitherType GpDitherType; | ||||||
|  | typedef enum DriverStringOptions GpDriverStringOptions; | ||||||
|  | typedef enum EmfPlusRecordType GpEmfPlusRecordType; | ||||||
|  | typedef enum EmfToWmfBitsFlags GpEmfToWmfBitsFlags; | ||||||
|  | typedef enum EmfType GpEmfType; | ||||||
|  | typedef enum EncoderParameterValueType GpEncoderParameterValueType; | ||||||
|  | typedef enum EncoderValue GpEncoderValue; | ||||||
|  | typedef enum FillMode GpFillMode; | ||||||
|  | typedef enum FlushIntention GpFlushIntention; | ||||||
|  | typedef enum FontStyle GpFontStyle; | ||||||
|  | typedef enum HatchStyle GpHatchStyle; | ||||||
|  | typedef enum HotkeyPrefix GpHotkeyPrefix; | ||||||
|  | typedef enum ImageType GpImageType; | ||||||
|  | typedef enum InterpolationMode GpInterpolationMode; | ||||||
|  | typedef enum LinearGradientMode GpLinearGradientMode; | ||||||
|  | typedef enum LineCap GpLineCap; | ||||||
|  | typedef enum LineJoin GpLineJoin; | ||||||
|  | typedef enum MatrixOrder GpMatrixOrder; | ||||||
|  | typedef enum MetafileFrameUnit GpMetafileFrameUnit; | ||||||
|  | typedef enum MetafileType GpMetafileType; | ||||||
|  | typedef enum ObjectType GpObjectType; | ||||||
|  | typedef enum PathPointType GpPathPointType; | ||||||
|  | typedef enum PenAlignment GpPenAlignment; | ||||||
|  | typedef enum PenType GpPenType; | ||||||
|  | typedef enum PixelOffsetMode GpPixelOffsetMode; | ||||||
|  | typedef enum QualityMode GpQualityMode; | ||||||
|  | typedef enum SmoothingMode GpSmoothingMode; | ||||||
|  | typedef enum StringAlignment GpStringAlignment; | ||||||
|  | typedef enum StringDigitSubstitute GpStringDigitSubstitute; | ||||||
|  | typedef enum StringFormatFlags GpStringFormatFlags; | ||||||
|  | typedef enum StringTrimming GpStringTrimming; | ||||||
|  | typedef enum TextRenderingHint GpTextRenderingHint; | ||||||
|  | typedef enum Unit GpUnit; | ||||||
|  | typedef enum WarpMode GpWarpMode; | ||||||
|  | typedef enum WrapMode GpWrapMode; | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  |  | ||||||
|  | class CGpEffect {};  | ||||||
|  | class GpCustomLineCap {}; | ||||||
|  | class GpImage {}; | ||||||
|  |  | ||||||
|  | class GpAdjustableArrowCap: public GpCustomLineCap {}; | ||||||
|  | class GpBitmap: public GpImage {}; | ||||||
|  | class GpBrush {}; | ||||||
|  | class GpCachedBitmap {}; | ||||||
|  | class GpFont {}; | ||||||
|  | class GpFontCollection {}; | ||||||
|  | class GpFontFamily {}; | ||||||
|  | class GpGraphics {}; | ||||||
|  | class GpHatch: public GpBrush {};         /* HatchBrush */ | ||||||
|  | class GpImageAttributes {}; | ||||||
|  | class GpLineGradient: public GpBrush {};  /* LinearGradientBrush */ | ||||||
|  | class GpMatrix {}; | ||||||
|  | class GpMetafile: public GpImage {}; | ||||||
|  | class GpPath {};                          /* GraphicsPath */ | ||||||
|  | class GpPathData {}; | ||||||
|  | class GpPathGradient: public GpBrush {};  /* PathGradientBrush */ | ||||||
|  | class GpPathIterator {};                  /* GraphicsPathIterator */ | ||||||
|  | class GpPen {}; | ||||||
|  | class GpRegion {}; | ||||||
|  | class GpSolidFill: public GpBrush {};     /* SolidBrush */ | ||||||
|  | class GpStringFormat {}; | ||||||
|  | class GpTexture: public GpBrush {};       /* TextureBrush */ | ||||||
|  |  | ||||||
|  | #else /* !__cplusplus */ | ||||||
|  |  | ||||||
|  | typedef void CGpEffect; | ||||||
|  | typedef void GpAdjustableArrowCap; | ||||||
|  | typedef void GpBitmap; | ||||||
|  | typedef void GpBrush; | ||||||
|  | typedef void GpCachedBitmap; | ||||||
|  | typedef void GpCustomLineCap; | ||||||
|  | typedef void GpFont; | ||||||
|  | typedef void GpFontFamily; | ||||||
|  | typedef void GpFontCollection; | ||||||
|  | typedef void GpGraphics; | ||||||
|  | typedef void GpHatch; | ||||||
|  | typedef void GpImage; | ||||||
|  | typedef void GpImageAttributes; | ||||||
|  | typedef void GpLineGradient; | ||||||
|  | typedef void GpMatrix; | ||||||
|  | typedef void GpMetafile; | ||||||
|  | typedef void GpPath; | ||||||
|  | typedef void GpPathData; | ||||||
|  | typedef void GpPathGradient; | ||||||
|  | typedef void GpPathIterator; | ||||||
|  | typedef void GpPen; | ||||||
|  | typedef void GpRegion; | ||||||
|  | typedef void GpSolidFill; | ||||||
|  | typedef void GpStringFormat; | ||||||
|  | typedef void GpTexture; | ||||||
|  |  | ||||||
|  | #endif /* !__cplusplus */ | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_GPSTUBS_H */ | ||||||
							
								
								
									
										1540
									
								
								winsup/w32api/include/gdiplus/gdiplusgraphics.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1540
									
								
								winsup/w32api/include/gdiplus/gdiplusgraphics.h
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										581
									
								
								winsup/w32api/include/gdiplus/gdiplusheaders.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										581
									
								
								winsup/w32api/include/gdiplus/gdiplusheaders.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,581 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusheaders.h | ||||||
|  |  * | ||||||
|  |  * GDI+ Bitmap, CachedBitmap, CustomLineCap, Font, FontCollection, | ||||||
|  |  *      FontFamily, Image, InstalledFontCollection, PrivateFontCollection, | ||||||
|  |  *      Region class definitions. | ||||||
|  |  *      Implementation of these classes is in gdiplusimpl.h. | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_HEADERS_H | ||||||
|  | #define __GDIPLUS_HEADERS_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef __cplusplus | ||||||
|  | #error "A C++ compiler is required to include gdiplusheaders.h." | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Note: Virtual inline functions (dtors, Clone()) are implemented here: If | ||||||
|  |  * these were defined outside class scope, the compiler would always generate | ||||||
|  |  * code for them (and the vtable), even if these classes were never used. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | class Bitmap; | ||||||
|  | class Effect; | ||||||
|  | class FontCollection; | ||||||
|  | class FontFamily; | ||||||
|  | class Graphics; | ||||||
|  | class GraphicsPath; | ||||||
|  | class Matrix; | ||||||
|  | class Pen; | ||||||
|  |  | ||||||
|  | class Image: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class Bitmap; | ||||||
|  | 	friend class Metafile; | ||||||
|  | 	friend class CachedBitmap; | ||||||
|  | 	friend class Graphics; | ||||||
|  | 	friend class TextureBrush; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	static Image* FromFile(const WCHAR *filename, | ||||||
|  | 			BOOL useEmbeddedColorManagement = FALSE); | ||||||
|  | 	static Image* FromStream(IStream *stream, | ||||||
|  | 			BOOL useEmbeddedColorManagement = FALSE); | ||||||
|  |  | ||||||
|  | 	Image(const WCHAR *filename, BOOL useEmbeddedColorManagement = FALSE); | ||||||
|  | 	Image(IStream *stream, BOOL useEmbeddedColorManagement = FALSE); | ||||||
|  |  | ||||||
|  | 	virtual ~Image() | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipDisposeImage(nativeImage); | ||||||
|  | 	} | ||||||
|  | 	virtual Image* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpImage *cloneImage = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneImage( | ||||||
|  | 				nativeImage, &cloneImage)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			Image *result = new Image(cloneImage, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDisposeImage(cloneImage); | ||||||
|  | 				lastStatus = OutOfMemory; | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	Status FindFirstItem(ImageItemData *item); | ||||||
|  | 	Status FindNextItem(ImageItemData *item); | ||||||
|  | 	Status GetAllPropertyItems(UINT totalBufferSize, | ||||||
|  | 			UINT numProperties, PropertyItem *allItems); | ||||||
|  | 	Status GetBounds(RectF *srcRect, Unit *srcUnit); | ||||||
|  | 	Status GetEncoderParameterList(const CLSID *clsidEncoder, | ||||||
|  | 			UINT size, EncoderParameters *buffer); | ||||||
|  | 	UINT GetEncoderParameterListSize(const CLSID *clsidEncoder); | ||||||
|  | 	UINT GetFlags(); | ||||||
|  | 	UINT GetFrameCount(const GUID *dimensionID); | ||||||
|  | 	UINT GetFrameDimensionsCount(); | ||||||
|  | 	Status GetFrameDimensionsList(GUID *dimensionIDs, UINT count); | ||||||
|  | 	UINT GetHeight(); | ||||||
|  | 	REAL GetHorizontalResolution(); | ||||||
|  | 	Status GetItemData(ImageItemData *item); | ||||||
|  | 	Status GetPalette(ColorPalette *palette, INT size); | ||||||
|  | 	INT GetPaletteSize(); | ||||||
|  | 	Status GetPhysicalDimension(SizeF *size); | ||||||
|  | 	PixelFormat GetPixelFormat(); | ||||||
|  | 	UINT GetPropertyCount(); | ||||||
|  | 	Status GetPropertyIdList(UINT numOfProperty, PROPID *list); | ||||||
|  | 	Status GetPropertyItem(PROPID propId, UINT propSize, | ||||||
|  | 			PropertyItem *buffer); | ||||||
|  | 	UINT GetPropertyItemSize(PROPID propId); | ||||||
|  | 	Status GetPropertySize(UINT *totalBufferSize, UINT *numProperties); | ||||||
|  | 	Status GetRawFormat(GUID *format); | ||||||
|  | 	Image* GetThumbnailImage(UINT thumbWidth, UINT thumbHeight, | ||||||
|  | 			GetThumbnailImageAbort callback, VOID *callbackData); | ||||||
|  | 	ImageType GetType() const; | ||||||
|  | 	REAL GetVerticalResolution(); | ||||||
|  | 	UINT GetWidth(); | ||||||
|  | 	Status RemovePropertyItem(PROPID propId); | ||||||
|  | 	Status RotateFlip(RotateFlipType rotateFlipType); | ||||||
|  | 	Status Save(IStream *stream, const CLSID *clsidEncoder, | ||||||
|  | 			const EncoderParameters *encoderParams); | ||||||
|  | 	Status Save(const WCHAR *filename, const CLSID *clsidEncoder, | ||||||
|  | 			const EncoderParameters *encoderParams); | ||||||
|  | 	Status SaveAdd(const EncoderParameters *encoderParams); | ||||||
|  | 	Status SaveAdd(Image *newImage, const EncoderParameters *encoderParams); | ||||||
|  | 	Status SelectActiveFrame(const GUID *dimensionID, UINT frameIndex); | ||||||
|  | 	Status SetAbort(GdiplusAbort *pIAbort); | ||||||
|  | 	Status SetPalette(const ColorPalette *palette); | ||||||
|  | 	Status SetPropertyItem(const PropertyItem *item); | ||||||
|  |  | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		Status result = lastStatus; | ||||||
|  | 		lastStatus = Ok; | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	Image(GpImage *image, Status status): | ||||||
|  | 		nativeImage(image), lastStatus(status) {} | ||||||
|  | 	Image(const Image&); | ||||||
|  | 	Image& operator=(const Image&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpImage *nativeImage; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class Bitmap: public Image | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	static Bitmap* FromBITMAPINFO(const BITMAPINFO *gdiBitmapInfo, | ||||||
|  | 			VOID *gdiBitmapData); | ||||||
|  | 	static Bitmap* FromDirectDrawSurface7(IDirectDrawSurface7 *surface); | ||||||
|  | 	static Bitmap* FromFile(const WCHAR *filename, | ||||||
|  | 			BOOL useEmbeddedColorManagement = FALSE); | ||||||
|  | 	static Bitmap* FromHBITMAP(HBITMAP hbm, HPALETTE hpal); | ||||||
|  | 	static Bitmap* FromHICON(HICON icon); | ||||||
|  | 	static Bitmap* FromResource(HINSTANCE hInstance, | ||||||
|  | 			const WCHAR *bitmapName); | ||||||
|  | 	static Bitmap* FromStream(IStream *stream, | ||||||
|  | 			BOOL useEmbeddedColorManagement = FALSE); | ||||||
|  | 	static Status ApplyEffect(Bitmap **inputs, INT numInputs, | ||||||
|  | 			Effect *effect, RECT *ROI, | ||||||
|  | 			RECT *outputRect, Bitmap **output); | ||||||
|  | 	static Status InitializePalette(ColorPalette *palette, | ||||||
|  | 			PaletteType paletteType, INT optimalColors, | ||||||
|  | 			BOOL useTransparentColor, Bitmap *bitmap); | ||||||
|  |  | ||||||
|  | 	Bitmap(const BITMAPINFO *gdiBitmapInfo, VOID *gdiBitmapData); | ||||||
|  | 	Bitmap(IDirectDrawSurface7 *surface); | ||||||
|  | 	Bitmap(const WCHAR *filename, BOOL useEmbeddedColorManagement = FALSE); | ||||||
|  | 	Bitmap(HBITMAP hbm, HPALETTE hpal); | ||||||
|  | 	Bitmap(HICON hicon); | ||||||
|  | 	Bitmap(HINSTANCE hInstance, const WCHAR *bitmapName); | ||||||
|  | 	Bitmap(IStream *stream, BOOL useEmbeddedColorManagement = FALSE); | ||||||
|  | 	Bitmap(INT width, INT height, Graphics *target); | ||||||
|  | 	Bitmap(INT width, INT height, PixelFormat format = PixelFormat32bppARGB); | ||||||
|  | 	Bitmap(INT width, INT height, INT stride, PixelFormat format, BYTE *scan0); | ||||||
|  |  | ||||||
|  | 	virtual ~Bitmap() | ||||||
|  | 	{ | ||||||
|  | 	} | ||||||
|  | 	virtual Bitmap* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpImage *cloneImage = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneImage( | ||||||
|  | 				nativeImage, &cloneImage)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			Bitmap *result = new Bitmap(cloneImage, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDisposeImage(cloneImage); | ||||||
|  | 				lastStatus = OutOfMemory; | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	Bitmap* Clone(const RectF& rect, PixelFormat format) const; | ||||||
|  | 	Bitmap* Clone(const Rect& rect, PixelFormat format) const; | ||||||
|  | 	Bitmap* Clone(REAL x, REAL y, REAL width, REAL height, | ||||||
|  | 			PixelFormat format) const; | ||||||
|  | 	Bitmap* Clone(INT x, INT y, INT width, INT height, | ||||||
|  | 			PixelFormat format) const; | ||||||
|  |  | ||||||
|  | 	Status ApplyEffect(Effect *effect, RECT *ROI); | ||||||
|  | 	Status ConvertFormat(PixelFormat format, DitherType ditherType, | ||||||
|  | 			PaletteType paletteType, ColorPalette *palette, | ||||||
|  | 			REAL alphaThresholdPercent); | ||||||
|  | 	Status GetHBITMAP(const Color& colorBackground, HBITMAP *hbmReturn) const; | ||||||
|  | 	Status GetHICON(HICON *icon) const; | ||||||
|  | 	Status GetHistogram(HistogramFormat format, UINT numberOfEntries, | ||||||
|  | 			UINT *channel0, UINT *channel1, | ||||||
|  | 			UINT *channel2, UINT *channel3) const; | ||||||
|  | 	Status GetHistogramSize(HistogramFormat format, | ||||||
|  | 			UINT *numberOfEntries) const; | ||||||
|  | 	Status GetPixel(INT x, INT y, Color *color) const; | ||||||
|  | 	Status LockBits(const Rect *rect, UINT flags, PixelFormat format, | ||||||
|  | 			BitmapData *lockedBitmapData); | ||||||
|  | 	Status SetPixel(INT x, INT y, const Color& color); | ||||||
|  | 	Status SetResolution(REAL xdpi, REAL ydpi); | ||||||
|  | 	Status UnlockBits(BitmapData *lcokedBitmapData); | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	Bitmap(GpImage *image, Status status): Image(image, status) {} | ||||||
|  | 	Bitmap(const Bitmap&); | ||||||
|  | 	Bitmap& operator=(const Bitmap&); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class CachedBitmap: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class Graphics; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	CachedBitmap(Bitmap *bitmap, Graphics *graphics); | ||||||
|  | 	~CachedBitmap(); | ||||||
|  |  | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		return lastStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	CachedBitmap(const CachedBitmap&); | ||||||
|  | 	CachedBitmap& operator=(const CachedBitmap&); | ||||||
|  |  | ||||||
|  | 	GpCachedBitmap *nativeCachedBitmap; | ||||||
|  | 	Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class CustomLineCap: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class AdjustableArrowCap; | ||||||
|  | 	friend class Pen; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	CustomLineCap(const GraphicsPath *fillPath, | ||||||
|  | 			const GraphicsPath *strokePath, | ||||||
|  | 			LineCap baseCap = LineCapFlat, | ||||||
|  | 			REAL baseInset = 0.0f); | ||||||
|  |  | ||||||
|  | 	virtual ~CustomLineCap() | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipDeleteCustomLineCap(nativeCustomLineCap); | ||||||
|  | 	} | ||||||
|  | 	virtual CustomLineCap* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpCustomLineCap *cloneCustomLineCap = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneCustomLineCap( | ||||||
|  | 				nativeCustomLineCap, &cloneCustomLineCap)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			CustomLineCap *result = new CustomLineCap( | ||||||
|  | 					cloneCustomLineCap, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDeleteCustomLineCap(cloneCustomLineCap); | ||||||
|  | 				lastStatus = OutOfMemory; | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	LineCap GetBaseCap() const; | ||||||
|  | 	REAL GetBaseInset() const; | ||||||
|  | 	Status GetStrokeCaps(LineCap *startCap, LineCap *endCap) const; | ||||||
|  | 	LineJoin GetStrokeJoin() const; | ||||||
|  | 	REAL GetWidthScale() const; | ||||||
|  | 	Status SetBaseCap(LineCap baseCap); | ||||||
|  | 	Status SetBaseInset(REAL inset); | ||||||
|  | 	Status SetStrokeCap(LineCap strokeCap); | ||||||
|  | 	Status SetStrokeCaps(LineCap startCap, LineCap endCap); | ||||||
|  | 	Status SetStrokeJoin(LineJoin lineJoin); | ||||||
|  | 	Status SetWidthScale(REAL widthScale); | ||||||
|  |  | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		Status result = lastStatus; | ||||||
|  | 		lastStatus = Ok; | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	CustomLineCap(GpCustomLineCap *customLineCap, Status status): | ||||||
|  | 		nativeCustomLineCap(customLineCap), lastStatus(status) {} | ||||||
|  | 	CustomLineCap(const CustomLineCap&); | ||||||
|  | 	CustomLineCap& operator=(const CustomLineCap&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpCustomLineCap *nativeCustomLineCap; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class Font: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class Graphics; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	Font(const FontFamily *family, REAL emSize, | ||||||
|  | 			INT style = FontStyleRegular, | ||||||
|  | 			Unit unit = UnitPoint); | ||||||
|  | 	Font(HDC hdc, HFONT hfont); | ||||||
|  | 	Font(HDC hdc, const LOGFONTA *logfont); | ||||||
|  | 	Font(HDC hdc, const LOGFONTW *logfont); | ||||||
|  | 	Font(HDC hdc); | ||||||
|  | 	Font(const WCHAR *familyName, REAL emSize, | ||||||
|  | 			INT style = FontStyleRegular, | ||||||
|  | 			Unit unit = UnitPoint, | ||||||
|  | 			const FontCollection *fontCollection = NULL); | ||||||
|  | 	~Font(); | ||||||
|  | 	Font* Clone() const; | ||||||
|  |  | ||||||
|  | 	Status GetFamily(FontFamily *family) const; | ||||||
|  | 	REAL GetHeight(const Graphics *graphics) const; | ||||||
|  | 	REAL GetHeight(REAL dpi) const; | ||||||
|  | 	Status GetLogFontA(const Graphics *graphics, LOGFONTA *logfontA) const; | ||||||
|  | 	Status GetLogFontW(const Graphics *graphics, LOGFONTW *logfontW) const; | ||||||
|  | 	REAL GetSize() const; | ||||||
|  | 	INT GetStyle() const; | ||||||
|  | 	Unit GetUnit() const; | ||||||
|  |  | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		return lastStatus; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsAvailable() const | ||||||
|  | 	{ | ||||||
|  | 		return nativeFont != NULL; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	Font(GpFont *font, Status status): | ||||||
|  | 		nativeFont(font), lastStatus(status) {} | ||||||
|  | 	Font(const Font&); | ||||||
|  | 	Font& operator=(const Font&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpFont *nativeFont; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class FontCollection: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class InstalledFontCollection; | ||||||
|  | 	friend class PrivateFontCollection; | ||||||
|  | 	friend class Font; | ||||||
|  | 	friend class FontFamily; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	FontCollection(); | ||||||
|  | 	virtual ~FontCollection() {} | ||||||
|  |  | ||||||
|  | 	Status GetFamilies(INT numSought, FontFamily *families, | ||||||
|  | 			INT *numFound) const; | ||||||
|  | 	INT GetFamilyCount() const; | ||||||
|  |  | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		return lastStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	FontCollection(const FontCollection&); | ||||||
|  | 	FontCollection& operator=(const FontCollection&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		return lastStatus = newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpFontCollection *nativeFontCollection; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class FontFamily: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class Font; | ||||||
|  | 	friend class FontCollection; | ||||||
|  | 	friend class GraphicsPath; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	static const FontFamily* GenericMonospace(); | ||||||
|  | 	static const FontFamily* GenericSansSerif(); | ||||||
|  | 	static const FontFamily* GenericSerif(); | ||||||
|  |  | ||||||
|  | 	FontFamily(); | ||||||
|  | 	FontFamily(const WCHAR *name, | ||||||
|  | 			const FontCollection *fontCollection = NULL); | ||||||
|  | 	~FontFamily(); | ||||||
|  | 	FontFamily* Clone() const; | ||||||
|  |  | ||||||
|  | 	UINT16 GetCellAscent(INT style) const; | ||||||
|  | 	UINT16 GetCellDescent(INT style) const; | ||||||
|  | 	UINT16 GetEmHeight(INT style) const; | ||||||
|  | 	Status GetFamilyName(WCHAR name[LF_FACESIZE], | ||||||
|  | 			LANGID language = LANG_NEUTRAL) const; | ||||||
|  | 	UINT16 GetLineSpacing(INT style) const; | ||||||
|  | 	BOOL IsStyleAvailable(INT style) const; | ||||||
|  |  | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		Status result = lastStatus; | ||||||
|  | 		lastStatus = Ok; | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsAvailable() const | ||||||
|  | 	{ | ||||||
|  | 		return nativeFontFamily != NULL; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	FontFamily(GpFontFamily *fontFamily, Status status): | ||||||
|  | 		nativeFontFamily(fontFamily), lastStatus(status) {} | ||||||
|  | 	FontFamily(const FontFamily&); | ||||||
|  | 	FontFamily& operator=(const FontFamily&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpFontFamily *nativeFontFamily; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class InstalledFontCollection: public FontCollection | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	InstalledFontCollection(); | ||||||
|  | 	virtual ~InstalledFontCollection() {} | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class PrivateFontCollection: public FontCollection | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	PrivateFontCollection(); | ||||||
|  |  | ||||||
|  | 	virtual ~PrivateFontCollection() | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipDeletePrivateFontCollection(&nativeFontCollection); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	Status AddFontFile(const WCHAR *filename); | ||||||
|  | 	Status AddMemoryFont(const VOID *memory, INT length); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class Region: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class Graphics; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	static Region* FromHRGN(HRGN hrgn); | ||||||
|  |  | ||||||
|  | 	Region(); | ||||||
|  | 	Region(const RectF& rect); | ||||||
|  | 	Region(const Rect& rect); | ||||||
|  | 	Region(const GraphicsPath *path); | ||||||
|  | 	Region(const BYTE *regionData, INT size); | ||||||
|  | 	Region(HRGN hrgn); | ||||||
|  | 	~Region(); | ||||||
|  | 	Region* Clone() const; | ||||||
|  |  | ||||||
|  | 	Status Complement(const RectF& rect); | ||||||
|  | 	Status Complement(const Rect& rect); | ||||||
|  | 	Status Complement(const Region *region); | ||||||
|  | 	Status Complement(const GraphicsPath *path); | ||||||
|  | 	BOOL Equals(const Region *region, const Graphics *graphics) const; | ||||||
|  | 	Status Exclude(const RectF& rect); | ||||||
|  | 	Status Exclude(const Rect& rect); | ||||||
|  | 	Status Exclude(const Region *region); | ||||||
|  | 	Status Exclude(const GraphicsPath *path); | ||||||
|  | 	Status GetBounds(RectF *rect, const Graphics *graphics) const; | ||||||
|  | 	Status GetBounds(Rect *rect, const Graphics *graphics) const; | ||||||
|  | 	Status GetData(BYTE *buffer, UINT bufferSize, UINT *sizeFilled) const; | ||||||
|  | 	UINT GetDataSize() const; | ||||||
|  | 	HRGN GetHRGN(const Graphics *graphics) const; | ||||||
|  | 	Status GetRegionScans(const Matrix *matrix, | ||||||
|  | 			RectF *rects, INT *count) const; | ||||||
|  | 	Status GetRegionScans(const Matrix *matrix, | ||||||
|  | 			Rect *rects, INT *count) const; | ||||||
|  | 	UINT GetRegionScansCount(const Matrix *matrix) const; | ||||||
|  | 	Status Intersect(const RectF& rect); | ||||||
|  | 	Status Intersect(const Rect& rect); | ||||||
|  | 	Status Intersect(const Region *region); | ||||||
|  | 	Status Intersect(const GraphicsPath *path); | ||||||
|  | 	BOOL IsEmpty(const Graphics *graphics) const; | ||||||
|  | 	BOOL IsInfinite(const Graphics *graphics) const; | ||||||
|  | 	BOOL IsVisible(REAL x, REAL y, | ||||||
|  | 			const Graphics *graphics = NULL) const; | ||||||
|  | 	BOOL IsVisible(INT x, INT y, | ||||||
|  | 			const Graphics *graphics = NULL) const; | ||||||
|  | 	BOOL IsVisible(const PointF& point, | ||||||
|  | 			const Graphics *graphics = NULL) const; | ||||||
|  | 	BOOL IsVisible(const Point& point, | ||||||
|  | 			const Graphics *graphics = NULL) const; | ||||||
|  | 	BOOL IsVisible(REAL x, REAL y, REAL width, REAL height, | ||||||
|  | 			const Graphics *graphics = NULL) const; | ||||||
|  | 	BOOL IsVisible(INT x, INT y, INT width, INT height, | ||||||
|  | 			const Graphics *graphics = NULL) const; | ||||||
|  | 	BOOL IsVisible(const RectF& rect, | ||||||
|  | 			const Graphics *graphics = NULL) const; | ||||||
|  | 	BOOL IsVisible(const Rect& rect, | ||||||
|  | 			const Graphics *graphics = NULL) const; | ||||||
|  | 	Status MakeEmpty(); | ||||||
|  | 	Status MakeInfinite(); | ||||||
|  | 	Status Transform(const Matrix *matrix); | ||||||
|  | 	Status Translate(REAL dx, REAL dy); | ||||||
|  | 	Status Translate(INT dx, INT dy); | ||||||
|  | 	Status Union(const RectF& rect); | ||||||
|  | 	Status Union(const Rect& rect); | ||||||
|  | 	Status Union(const Region *region); | ||||||
|  | 	Status Union(const GraphicsPath *path); | ||||||
|  | 	Status Xor(const RectF& rect); | ||||||
|  | 	Status Xor(const Rect& rect); | ||||||
|  | 	Status Xor(const Region *region); | ||||||
|  | 	Status Xor(const GraphicsPath *path); | ||||||
|  |  | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		Status result = lastStatus; | ||||||
|  | 		lastStatus = Ok; | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	Region(GpRegion *region, Status status): | ||||||
|  | 		nativeRegion(region), lastStatus(status) {} | ||||||
|  | 	Region(const Region&); | ||||||
|  | 	Region& operator=(const Region&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpRegion *nativeRegion; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_HEADERS_H */ | ||||||
							
								
								
									
										236
									
								
								winsup/w32api/include/gdiplus/gdiplusimageattributes.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										236
									
								
								winsup/w32api/include/gdiplus/gdiplusimageattributes.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,236 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusimageattributes.h | ||||||
|  |  * | ||||||
|  |  * GDI+ ImageAttributes class | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_IMAGEATTRIBUTES_H | ||||||
|  | #define __GDIPLUS_IMAGEATTRIBUTES_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef __cplusplus | ||||||
|  | #error "A C++ compiler is required to include gdiplusimageattributes.h." | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | class ImageAttributes: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class Graphics; | ||||||
|  | 	friend class TextureBrush; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	ImageAttributes(): nativeImageAttributes(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreateImageAttributes( | ||||||
|  | 				&nativeImageAttributes); | ||||||
|  | 	} | ||||||
|  | 	~ImageAttributes() | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipDisposeImageAttributes(nativeImageAttributes); | ||||||
|  | 	} | ||||||
|  | 	ImageAttributes* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpImageAttributes *cloneImageAttributes = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneImageAttributes( | ||||||
|  | 				nativeImageAttributes, &cloneImageAttributes)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			ImageAttributes *result = new ImageAttributes( | ||||||
|  | 					cloneImageAttributes, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDisposeImageAttributes(cloneImageAttributes); | ||||||
|  | 				lastStatus = OutOfMemory; | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	Status ClearBrushRemapTable() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesRemapTable( | ||||||
|  | 				nativeImageAttributes, ColorAdjustTypeBrush, | ||||||
|  | 				FALSE, 0, NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status ClearColorKey(ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesColorKeys( | ||||||
|  | 				nativeImageAttributes, type, FALSE, 0, 0)); | ||||||
|  | 	} | ||||||
|  | 	Status ClearColorMatrices(ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( | ||||||
|  | 				nativeImageAttributes, type, FALSE, | ||||||
|  | 				NULL, NULL, ColorMatrixFlagsDefault)); | ||||||
|  | 	} | ||||||
|  | 	Status ClearColorMatrix(ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( | ||||||
|  | 				nativeImageAttributes, type, FALSE, | ||||||
|  | 				NULL, NULL, ColorMatrixFlagsDefault)); | ||||||
|  | 	} | ||||||
|  | 	Status ClearGamma(ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesGamma( | ||||||
|  | 				nativeImageAttributes, type, FALSE, 1.0f)); | ||||||
|  | 	} | ||||||
|  | 	Status ClearNoOp(ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesNoOp( | ||||||
|  | 				nativeImageAttributes, type, FALSE)); | ||||||
|  | 	} | ||||||
|  | 	Status ClearOutputChannel(ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesOutputChannel( | ||||||
|  | 				nativeImageAttributes, type, FALSE, | ||||||
|  | 				ColorChannelFlagsC)); | ||||||
|  | 	} | ||||||
|  | 	Status ClearOutputChannelColorProfile( | ||||||
|  | 			ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesOutputChannelColorProfile( | ||||||
|  | 				nativeImageAttributes, type, FALSE, NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status ClearRemapTable(ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesRemapTable( | ||||||
|  | 				nativeImageAttributes, type, FALSE, 0, NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status ClearThreshold(ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesThreshold( | ||||||
|  | 				nativeImageAttributes, type, FALSE, 0.0)); | ||||||
|  | 	} | ||||||
|  | 	Status GetAdjustedPalette(ColorPalette *colorPalette, | ||||||
|  | 			ColorAdjustType type) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetImageAttributesAdjustedPalette( | ||||||
|  | 				nativeImageAttributes, colorPalette, type)); | ||||||
|  | 	} | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		Status result = lastStatus; | ||||||
|  | 		lastStatus = Ok; | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status Reset(ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipResetImageAttributes( | ||||||
|  | 				nativeImageAttributes, type)); | ||||||
|  | 	} | ||||||
|  | 	Status SetBrushRemapTable(UINT mapSize, ColorMap *map) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesRemapTable( | ||||||
|  | 				nativeImageAttributes, ColorAdjustTypeBrush, | ||||||
|  | 				TRUE, mapSize, map)); | ||||||
|  | 	} | ||||||
|  | 	Status SetColorKey(const Color& colorLow, const Color& colorHigh, | ||||||
|  | 			ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesColorKeys( | ||||||
|  | 				nativeImageAttributes, type, TRUE, | ||||||
|  | 				colorLow.GetValue(), colorHigh.GetValue())); | ||||||
|  | 	} | ||||||
|  | 	Status SetColorMatrices(const ColorMatrix *colorMatrix, | ||||||
|  | 			const ColorMatrix *grayMatrix, | ||||||
|  | 			ColorMatrixFlags mode = ColorMatrixFlagsDefault, | ||||||
|  | 			ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( | ||||||
|  | 				nativeImageAttributes, type, TRUE, | ||||||
|  | 				colorMatrix, grayMatrix, mode)); | ||||||
|  | 	} | ||||||
|  | 	Status SetColorMatrix(const ColorMatrix *colorMatrix, | ||||||
|  | 			ColorMatrixFlags mode = ColorMatrixFlagsDefault, | ||||||
|  | 			ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesColorMatrix( | ||||||
|  | 				nativeImageAttributes, type, TRUE, | ||||||
|  | 				colorMatrix, NULL, mode)); | ||||||
|  | 	} | ||||||
|  | 	Status SetGamma(REAL gamma, | ||||||
|  | 			ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesGamma( | ||||||
|  | 				nativeImageAttributes, type, TRUE, gamma)); | ||||||
|  | 	} | ||||||
|  | 	Status SetNoOp(ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesNoOp( | ||||||
|  | 				nativeImageAttributes, type, TRUE)); | ||||||
|  | 	} | ||||||
|  | 	Status SetOutputChannel(ColorChannelFlags channelFlags, | ||||||
|  | 			ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesOutputChannel( | ||||||
|  | 				nativeImageAttributes, type, TRUE, | ||||||
|  | 				channelFlags)); | ||||||
|  | 	} | ||||||
|  | 	Status SetOutputChannelColorProfile(const WCHAR *colorProfileFilename, | ||||||
|  | 			ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesOutputChannelColorProfile( | ||||||
|  | 				nativeImageAttributes, type, TRUE, | ||||||
|  | 				colorProfileFilename)); | ||||||
|  | 	} | ||||||
|  | 	Status SetRemapTable(UINT mapSize, const ColorMap *map, | ||||||
|  | 			ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesRemapTable( | ||||||
|  | 				nativeImageAttributes, type, TRUE, | ||||||
|  | 				mapSize, map)); | ||||||
|  | 	} | ||||||
|  | 	Status SetThreshold(REAL threshold, | ||||||
|  | 			ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesThreshold( | ||||||
|  | 				nativeImageAttributes, type, TRUE, threshold)); | ||||||
|  | 	} | ||||||
|  | 	Status SetToIdentity(ColorAdjustType type = ColorAdjustTypeDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesToIdentity( | ||||||
|  | 				nativeImageAttributes, type)); | ||||||
|  | 	} | ||||||
|  | 	Status SetWrapMode(WrapMode wrap, const Color& color = Color(), | ||||||
|  | 			BOOL clamp = FALSE) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetImageAttributesWrapMode( | ||||||
|  | 				nativeImageAttributes, wrap, | ||||||
|  | 				color.GetValue(), clamp)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	ImageAttributes(GpImageAttributes *imageAttributes, Status status): | ||||||
|  | 		nativeImageAttributes(imageAttributes), lastStatus(status) {} | ||||||
|  | 	ImageAttributes(const ImageAttributes&); | ||||||
|  | 	ImageAttributes& operator=(const ImageAttributes&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpImageAttributes *nativeImageAttributes; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_IMAGEATTRIBUTES_H */ | ||||||
							
								
								
									
										67
									
								
								winsup/w32api/include/gdiplus/gdiplusimagecodec.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										67
									
								
								winsup/w32api/include/gdiplus/gdiplusimagecodec.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,67 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusimagecodec.h | ||||||
|  |  * | ||||||
|  |  * GDI+ image decoders and encoders | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_IMAGECODEC_H | ||||||
|  | #define __GDIPLUS_IMAGECODEC_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | static __inline__ GpStatus GetImageDecoders(UINT numDecoders, UINT size, | ||||||
|  | 		ImageCodecInfo *decoders) | ||||||
|  | { | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	return DllExports::GdipGetImageDecoders(numDecoders, size, decoders); | ||||||
|  | 	#else | ||||||
|  | 	return GdipGetImageDecoders(numDecoders, size, decoders); | ||||||
|  | 	#endif | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static __inline__ GpStatus GetImageDecodersSize(UINT *numDecoders, UINT *size) | ||||||
|  | { | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	return DllExports::GdipGetImageDecodersSize(numDecoders, size); | ||||||
|  | 	#else | ||||||
|  | 	return GdipGetImageDecodersSize(numDecoders, size); | ||||||
|  | 	#endif | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static __inline__ GpStatus GetImageEncoders(UINT numEncoders, UINT size, | ||||||
|  | 		ImageCodecInfo *encoders) | ||||||
|  | { | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	return DllExports::GdipGetImageEncoders(numEncoders, size, encoders); | ||||||
|  | 	#else | ||||||
|  | 	return GdipGetImageEncoders(numEncoders, size, encoders); | ||||||
|  | 	#endif | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static __inline__ GpStatus GetImageEncodersSize(UINT *numEncoders, UINT *size) | ||||||
|  | { | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	return DllExports::GdipGetImageEncodersSize(numEncoders, size); | ||||||
|  | 	#else | ||||||
|  | 	return GdipGetImageEncodersSize(numEncoders, size); | ||||||
|  | 	#endif | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_IMAGECODEC_H */ | ||||||
							
								
								
									
										411
									
								
								winsup/w32api/include/gdiplus/gdiplusimaging.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										411
									
								
								winsup/w32api/include/gdiplus/gdiplusimaging.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,411 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusimaging.h | ||||||
|  |  * | ||||||
|  |  * GDI+ Imaging and image metadata | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_IMAGING_H | ||||||
|  | #define __GDIPLUS_IMAGING_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef enum ImageCodecFlags { | ||||||
|  | 	ImageCodecFlagsEncoder = 0x00000001, | ||||||
|  | 	ImageCodecFlagsDecoder = 0x00000002, | ||||||
|  | 	ImageCodecFlagsSupportBitmap = 0x00000004, | ||||||
|  | 	ImageCodecFlagsSupportVector = 0x00000008, | ||||||
|  | 	ImageCodecFlagsSeekableEncode = 0x00000010, | ||||||
|  | 	ImageCodecFlagsBlockingDecode = 0x00000020, | ||||||
|  | 	ImageCodecFlagsBuiltin = 0x00010000, | ||||||
|  | 	ImageCodecFlagsSystem = 0x00020000, | ||||||
|  | 	ImageCodecFlagsUser = 0x00040000 | ||||||
|  | } ImageCodecFlags; | ||||||
|  |  | ||||||
|  | typedef enum ImageFlags { | ||||||
|  | 	ImageFlagsNone = 0, | ||||||
|  | 	ImageFlagsScalable = 0x00000001, | ||||||
|  | 	ImageFlagsHasAlpha = 0x00000002, | ||||||
|  | 	ImageFlagsHasTranslucent = 0x00000004, | ||||||
|  | 	ImageFlagsPartiallyScalable = 0x00000008, | ||||||
|  | 	ImageFlagsColorSpaceRGB = 0x00000010, | ||||||
|  | 	ImageFlagsColorSpaceCMYK = 0x00000020, | ||||||
|  | 	ImageFlagsColorSpaceGRAY = 0x00000040, | ||||||
|  | 	ImageFlagsColorSpaceYCBCR = 0x00000080, | ||||||
|  | 	ImageFlagsColorSpaceYCCK = 0x00000100, | ||||||
|  | 	ImageFlagsHasRealDPI = 0x00001000, | ||||||
|  | 	ImageFlagsHasRealPixelSize = 0x00002000, | ||||||
|  | 	ImageFlagsReadOnly = 0x00010000, | ||||||
|  | 	ImageFlagsCaching = 0x00020000 | ||||||
|  | } ImageFlags; | ||||||
|  |  | ||||||
|  | typedef enum ImageLockMode { | ||||||
|  | 	ImageLockModeRead = 1, | ||||||
|  | 	ImageLockModeWrite = 2, | ||||||
|  | 	ImageLockModeUserInputBuf = 4 | ||||||
|  | } ImageLockMode; | ||||||
|  |  | ||||||
|  | typedef enum ItemDataPosition { | ||||||
|  | 	ItemDataPositionAfterHeader = 0, | ||||||
|  | 	ItemDataPositionAfterPalette = 1, | ||||||
|  | 	ItemDataPositionAfterBits = 2 | ||||||
|  | } ItemDataPosition; | ||||||
|  |  | ||||||
|  | typedef enum RotateFlipType { | ||||||
|  | 	RotateNoneFlipNone = 0, | ||||||
|  | 	Rotate90FlipNone = 1, | ||||||
|  | 	Rotate180FlipNone = 2, | ||||||
|  | 	Rotate270FlipNone = 3, | ||||||
|  | 	RotateNoneFlipX = 4, | ||||||
|  | 	Rotate90FlipX = 5, | ||||||
|  | 	Rotate180FlipX = 6, | ||||||
|  | 	Rotate270FlipX = 7, | ||||||
|  | 	Rotate180FlipXY = 0, | ||||||
|  | 	Rotate270FlipXY = 1,  | ||||||
|  | 	RotateNoneFlipXY = 2, | ||||||
|  | 	Rotate90FlipXY = 3, | ||||||
|  | 	Rotate180FlipY = 4, | ||||||
|  | 	Rotate270FlipY = 5, | ||||||
|  | 	RotateNoneFlipY = 6, | ||||||
|  | 	Rotate90FlipY = 7 | ||||||
|  | } RotateFlipType; | ||||||
|  |  | ||||||
|  | typedef struct BitmapData { | ||||||
|  | 	UINT Width; | ||||||
|  | 	UINT Height; | ||||||
|  | 	INT Stride; | ||||||
|  | 	INT PixelFormat;  /* MSDN: "PixelFormat PixelFormat;" */ | ||||||
|  | 	VOID *Scan0; | ||||||
|  | 	UINT_PTR Reserved; | ||||||
|  | } BitmapData; | ||||||
|  |  | ||||||
|  | typedef struct EncoderParameter { | ||||||
|  | 	GUID Guid; | ||||||
|  | 	ULONG NumberOfValues; | ||||||
|  | 	ULONG Type; | ||||||
|  | 	VOID *Value; | ||||||
|  | } EncoderParameter; | ||||||
|  |  | ||||||
|  | typedef struct EncoderParameters { | ||||||
|  | 	UINT Count; | ||||||
|  | 	EncoderParameter Parameter[1]; | ||||||
|  | } EncoderParameters; | ||||||
|  |  | ||||||
|  | typedef struct ImageCodecInfo { | ||||||
|  | 	CLSID Clsid; | ||||||
|  | 	GUID FormatID; | ||||||
|  | 	WCHAR *CodecName; | ||||||
|  | 	WCHAR *DllName; | ||||||
|  | 	WCHAR *FormatDescription; | ||||||
|  | 	WCHAR *FilenameExtension; | ||||||
|  | 	WCHAR *MimeType; | ||||||
|  | 	DWORD Flags; | ||||||
|  | 	DWORD Version; | ||||||
|  | 	DWORD SigCount; | ||||||
|  | 	DWORD SigSize; | ||||||
|  | 	BYTE *SigPattern; | ||||||
|  | 	BYTE *SigMask; | ||||||
|  | } ImageCodecInfo; | ||||||
|  |  | ||||||
|  | /* FIXME: The order of fields is probably wrong. Please don't use this | ||||||
|  |  * structure until this problem is resolved!  Can't test because | ||||||
|  |  * ImageItemData is not supported by the redistributable GDI+ 1.0 DLL. */ | ||||||
|  | typedef struct ImageItemData { | ||||||
|  | 	UINT Size; | ||||||
|  | 	UINT Position; | ||||||
|  | 	VOID *Desc; | ||||||
|  | 	UINT DescSize; | ||||||
|  | 	UINT *Data; | ||||||
|  | 	UINT DataSize; | ||||||
|  | 	UINT Cookie; | ||||||
|  | } ImageItemData; | ||||||
|  |  | ||||||
|  | typedef struct PropertyItem { | ||||||
|  | 	PROPID id; | ||||||
|  | 	ULONG length; | ||||||
|  | 	WORD type; | ||||||
|  | 	VOID *value; | ||||||
|  | } PropertyItem; | ||||||
|  |  | ||||||
|  | #define PropertyTagGpsVer ((PROPID) 0x0000) | ||||||
|  | #define PropertyTagGpsLatitudeRef ((PROPID) 0x0001) | ||||||
|  | #define PropertyTagGpsLatitude ((PROPID) 0x0002) | ||||||
|  | #define PropertyTagGpsLongitudeRef ((PROPID) 0x0003) | ||||||
|  | #define PropertyTagGpsLongitude ((PROPID) 0x0004) | ||||||
|  | #define PropertyTagGpsAltitudeRef ((PROPID) 0x0005) | ||||||
|  | #define PropertyTagGpsAltitude ((PROPID) 0x0006) | ||||||
|  | #define PropertyTagGpsGpsTime ((PROPID) 0x0007) | ||||||
|  | #define PropertyTagGpsGpsSatellites ((PROPID) 0x0008) | ||||||
|  | #define PropertyTagGpsGpsStatus ((PROPID) 0x0009) | ||||||
|  | #define PropertyTagGpsGpsMeasureMode ((PROPID) 0x000A) | ||||||
|  | #define PropertyTagGpsGpsDop ((PROPID) 0x000B) | ||||||
|  | #define PropertyTagGpsSpeedRef ((PROPID) 0x000C) | ||||||
|  | #define PropertyTagGpsSpeed ((PROPID) 0x000D) | ||||||
|  | #define PropertyTagGpsTrackRef ((PROPID) 0x000E) | ||||||
|  | #define PropertyTagGpsTrack ((PROPID) 0x000F) | ||||||
|  | #define PropertyTagGpsImgDirRef ((PROPID) 0x0010) | ||||||
|  | #define PropertyTagGpsImgDir ((PROPID) 0x0011) | ||||||
|  | #define PropertyTagGpsMapDatum ((PROPID) 0x0012) | ||||||
|  | #define PropertyTagGpsDestLatRef ((PROPID) 0x0013) | ||||||
|  | #define PropertyTagGpsDestLat ((PROPID) 0x0014) | ||||||
|  | #define PropertyTagGpsDestLongRef ((PROPID) 0x0015) | ||||||
|  | #define PropertyTagGpsDestLong ((PROPID) 0x0016) | ||||||
|  | #define PropertyTagGpsDestBearRef ((PROPID) 0x0017) | ||||||
|  | #define PropertyTagGpsDestBear ((PROPID) 0x0018) | ||||||
|  | #define PropertyTagGpsDestDistRef ((PROPID) 0x0019) | ||||||
|  | #define PropertyTagGpsDestDist ((PROPID) 0x001A) | ||||||
|  | #define PropertyTagNewSubfileType ((PROPID) 0x00FE) | ||||||
|  | #define PropertyTagSubfileType ((PROPID) 0x00FF) | ||||||
|  | #define PropertyTagImageWidth ((PROPID) 0x0100) | ||||||
|  | #define PropertyTagImageHeight ((PROPID) 0x0101) | ||||||
|  | #define PropertyTagBitsPerSample ((PROPID) 0x0102) | ||||||
|  | #define PropertyTagCompression ((PROPID) 0x0103) | ||||||
|  | #define PropertyTagPhotometricInterp ((PROPID) 0x0106) | ||||||
|  | #define PropertyTagThreshHolding ((PROPID) 0x0107) | ||||||
|  | #define PropertyTagCellWidth ((PROPID) 0x0108) | ||||||
|  | #define PropertyTagCellHeight ((PROPID) 0x0109) | ||||||
|  | #define PropertyTagFillOrder ((PROPID) 0x010A) | ||||||
|  | #define PropertyTagDocumentName ((PROPID) 0x010D) | ||||||
|  | #define PropertyTagImageDescription ((PROPID) 0x010E) | ||||||
|  | #define PropertyTagEquipMake ((PROPID) 0x010F) | ||||||
|  | #define PropertyTagEquipModel ((PROPID) 0x0110) | ||||||
|  | #define PropertyTagStripOffsets ((PROPID) 0x0111) | ||||||
|  | #define PropertyTagOrientation ((PROPID) 0x0112) | ||||||
|  | #define PropertyTagSamplesPerPixel ((PROPID) 0x0115) | ||||||
|  | #define PropertyTagRowsPerStrip ((PROPID) 0x0116) | ||||||
|  | #define PropertyTagStripBytesCount ((PROPID) 0x0117) | ||||||
|  | #define PropertyTagMinSampleValue ((PROPID) 0x0118) | ||||||
|  | #define PropertyTagMaxSampleValue ((PROPID) 0x0119) | ||||||
|  | #define PropertyTagXResolution ((PROPID) 0x011A) | ||||||
|  | #define PropertyTagYResolution ((PROPID) 0x011B) | ||||||
|  | #define PropertyTagPlanarConfig ((PROPID) 0x011C) | ||||||
|  | #define PropertyTagPageName ((PROPID) 0x011D) | ||||||
|  | #define PropertyTagXPosition ((PROPID) 0x011E) | ||||||
|  | #define PropertyTagYPosition ((PROPID) 0x011F) | ||||||
|  | #define PropertyTagFreeOffset ((PROPID) 0x0120) | ||||||
|  | #define PropertyTagFreeByteCounts ((PROPID) 0x0121) | ||||||
|  | #define PropertyTagGrayResponseUnit ((PROPID) 0x0122) | ||||||
|  | #define PropertyTagGrayResponseCurve ((PROPID) 0x0123) | ||||||
|  | #define PropertyTagT4Option ((PROPID) 0x0124) | ||||||
|  | #define PropertyTagT6Option ((PROPID) 0x0125) | ||||||
|  | #define PropertyTagResolutionUnit ((PROPID) 0x0128) | ||||||
|  | #define PropertyTagPageNumber ((PROPID) 0x0129) | ||||||
|  | #define PropertyTagTransferFunction ((PROPID) 0x012D) | ||||||
|  | #define PropertyTagSoftwareUsed ((PROPID) 0x0131) | ||||||
|  | #define PropertyTagDateTime ((PROPID) 0x0132) | ||||||
|  | #define PropertyTagArtist ((PROPID) 0x013B) | ||||||
|  | #define PropertyTagHostComputer ((PROPID) 0x013C) | ||||||
|  | #define PropertyTagPredictor ((PROPID) 0x013D) | ||||||
|  | #define PropertyTagWhitePoint ((PROPID) 0x013E) | ||||||
|  | #define PropertyTagPrimaryChromaticities ((PROPID) 0x013F) | ||||||
|  | #define PropertyTagColorMap ((PROPID) 0x0140) | ||||||
|  | #define PropertyTagHalftoneHints ((PROPID) 0x0141) | ||||||
|  | #define PropertyTagTileWidth ((PROPID) 0x0142) | ||||||
|  | #define PropertyTagTileLength ((PROPID) 0x0143) | ||||||
|  | #define PropertyTagTileOffset ((PROPID) 0x0144) | ||||||
|  | #define PropertyTagTileByteCounts ((PROPID) 0x0145) | ||||||
|  | #define PropertyTagInkSet ((PROPID) 0x014C) | ||||||
|  | #define PropertyTagInkNames ((PROPID) 0x014D) | ||||||
|  | #define PropertyTagNumberOfInks ((PROPID) 0x014E) | ||||||
|  | #define PropertyTagDotRange ((PROPID) 0x0150) | ||||||
|  | #define PropertyTagTargetPrinter ((PROPID) 0x0151) | ||||||
|  | #define PropertyTagExtraSamples ((PROPID) 0x0152) | ||||||
|  | #define PropertyTagSampleFormat ((PROPID) 0x0153) | ||||||
|  | #define PropertyTagSMinSampleValue ((PROPID) 0x0154) | ||||||
|  | #define PropertyTagSMaxSampleValue ((PROPID) 0x0155) | ||||||
|  | #define PropertyTagTransferRange ((PROPID) 0x0156) | ||||||
|  | #define PropertyTagJPEGProc ((PROPID) 0x0200) | ||||||
|  | #define PropertyTagJPEGInterFormat ((PROPID) 0x0201) | ||||||
|  | #define PropertyTagJPEGInterLength ((PROPID) 0x0202) | ||||||
|  | #define PropertyTagJPEGRestartInterval ((PROPID) 0x0203) | ||||||
|  | #define PropertyTagJPEGLosslessPredictors ((PROPID) 0x0205) | ||||||
|  | #define PropertyTagJPEGPointTransforms ((PROPID) 0x0206) | ||||||
|  | #define PropertyTagJPEGQTables ((PROPID) 0x0207) | ||||||
|  | #define PropertyTagJPEGDCTables ((PROPID) 0x0208) | ||||||
|  | #define PropertyTagJPEGACTables ((PROPID) 0x0209) | ||||||
|  | #define PropertyTagYCbCrCoefficients ((PROPID) 0x0211) | ||||||
|  | #define PropertyTagYCbCrSubsampling ((PROPID) 0x0212) | ||||||
|  | #define PropertyTagYCbCrPositioning ((PROPID) 0x0213) | ||||||
|  | #define PropertyTagREFBlackWhite ((PROPID) 0x0214) | ||||||
|  | #define PropertyTagGamma ((PROPID) 0x0301) | ||||||
|  | #define PropertyTagICCProfileDescriptor ((PROPID) 0x0302) | ||||||
|  | #define PropertyTagSRGBRenderingIntent ((PROPID) 0x0303) | ||||||
|  | #define PropertyTagImageTitle ((PROPID) 0x0320) | ||||||
|  | #define PropertyTagResolutionXUnit ((PROPID) 0x5001) | ||||||
|  | #define PropertyTagResolutionYUnit ((PROPID) 0x5002) | ||||||
|  | #define PropertyTagResolutionXLengthUnit ((PROPID) 0x5003) | ||||||
|  | #define PropertyTagResolutionYLengthUnit ((PROPID) 0x5004) | ||||||
|  | #define PropertyTagPrintFlags ((PROPID) 0x5005) | ||||||
|  | #define PropertyTagPrintFlagsVersion ((PROPID) 0x5006) | ||||||
|  | #define PropertyTagPrintFlagsCrop ((PROPID) 0x5007) | ||||||
|  | #define PropertyTagPrintFlagsBleedWidth ((PROPID) 0x5008) | ||||||
|  | #define PropertyTagPrintFlagsBleedWidthScale ((PROPID) 0x5009) | ||||||
|  | #define PropertyTagHalftoneLPI ((PROPID) 0x500A) | ||||||
|  | #define PropertyTagHalftoneLPIUnit ((PROPID) 0x500B) | ||||||
|  | #define PropertyTagHalftoneDegree ((PROPID) 0x500C) | ||||||
|  | #define PropertyTagHalftoneShape ((PROPID) 0x500D) | ||||||
|  | #define PropertyTagHalftoneMisc ((PROPID) 0x500E) | ||||||
|  | #define PropertyTagHalftoneScreen ((PROPID) 0x500F) | ||||||
|  | #define PropertyTagJPEGQuality ((PROPID) 0x5010) | ||||||
|  | #define PropertyTagGridSize ((PROPID) 0x5011) | ||||||
|  | #define PropertyTagThumbnailFormat ((PROPID) 0x5012) | ||||||
|  | #define PropertyTagThumbnailWidth ((PROPID) 0x5013) | ||||||
|  | #define PropertyTagThumbnailHeight ((PROPID) 0x5014) | ||||||
|  | #define PropertyTagThumbnailColorDepth ((PROPID) 0x5015) | ||||||
|  | #define PropertyTagThumbnailPlanes ((PROPID) 0x5016) | ||||||
|  | #define PropertyTagThumbnailRawBytes ((PROPID) 0x5017) | ||||||
|  | #define PropertyTagThumbnailSize ((PROPID) 0x5018) | ||||||
|  | #define PropertyTagThumbnailCompressedSize ((PROPID) 0x5019) | ||||||
|  | #define PropertyTagColorTransferFunction ((PROPID) 0x501A) | ||||||
|  | #define PropertyTagThumbnailData ((PROPID) 0x501B) | ||||||
|  | #define PropertyTagThumbnailImageWidth ((PROPID) 0x5020) | ||||||
|  | #define PropertyTagThumbnailImageHeight ((PROPID) 0x5021) | ||||||
|  | #define PropertyTagThumbnailBitsPerSample ((PROPID) 0x5022) | ||||||
|  | #define PropertyTagThumbnailCompression ((PROPID) 0x5023) | ||||||
|  | #define PropertyTagThumbnailPhotometricInterp ((PROPID) 0x5024) | ||||||
|  | #define PropertyTagThumbnailImageDescription ((PROPID) 0x5025) | ||||||
|  | #define PropertyTagThumbnailEquipMake ((PROPID) 0x5026) | ||||||
|  | #define PropertyTagThumbnailEquipModel ((PROPID) 0x5027) | ||||||
|  | #define PropertyTagThumbnailStripOffsets ((PROPID) 0x5028) | ||||||
|  | #define PropertyTagThumbnailOrientation ((PROPID) 0x5029) | ||||||
|  | #define PropertyTagThumbnailSamplesPerPixel ((PROPID) 0x502A) | ||||||
|  | #define PropertyTagThumbnailRowsPerStrip ((PROPID) 0x502B) | ||||||
|  | #define PropertyTagThumbnailStripBytesCount ((PROPID) 0x502C) | ||||||
|  | #define PropertyTagThumbnailResolutionX ((PROPID) 0x502D) | ||||||
|  | #define PropertyTagThumbnailResolutionY ((PROPID) 0x502E) | ||||||
|  | #define PropertyTagThumbnailPlanarConfig ((PROPID) 0x502F) | ||||||
|  | #define PropertyTagThumbnailResolutionUnit ((PROPID) 0x5030) | ||||||
|  | #define PropertyTagThumbnailTransferFunction ((PROPID) 0x5031) | ||||||
|  | #define PropertyTagThumbnailSoftwareUsed ((PROPID) 0x5032) | ||||||
|  | #define PropertyTagThumbnailDateTime ((PROPID) 0x5033) | ||||||
|  | #define PropertyTagThumbnailArtist ((PROPID) 0x5034) | ||||||
|  | #define PropertyTagThumbnailWhitePoint ((PROPID) 0x5035) | ||||||
|  | #define PropertyTagThumbnailPrimaryChromaticities ((PROPID) 0x5036) | ||||||
|  | #define PropertyTagThumbnailYCbCrCoefficients ((PROPID) 0x5037) | ||||||
|  | #define PropertyTagThumbnailYCbCrSubsampling ((PROPID) 0x5038) | ||||||
|  | #define PropertyTagThumbnailYCbCrPositioning ((PROPID) 0x5039) | ||||||
|  | #define PropertyTagThumbnailRefBlackWhite ((PROPID) 0x503A) | ||||||
|  | #define PropertyTagThumbnailCopyRight ((PROPID) 0x503B) | ||||||
|  | #define PropertyTagLuminanceTable ((PROPID) 0x5090) | ||||||
|  | #define PropertyTagChrominanceTable ((PROPID) 0x5091) | ||||||
|  | #define PropertyTagFrameDelay ((PROPID) 0x5100) | ||||||
|  | #define PropertyTagLoopCount ((PROPID) 0x5101) | ||||||
|  | #define PropertyTagGlobalPalette ((PROPID) 0x5102) | ||||||
|  | #define PropertyTagIndexBackground ((PROPID) 0x5103) | ||||||
|  | #define PropertyTagIndexTransparent ((PROPID) 0x5104) | ||||||
|  | #define PropertyTagPixelUnit ((PROPID) 0x5110) | ||||||
|  | #define PropertyTagPixelPerUnitX ((PROPID) 0x5111) | ||||||
|  | #define PropertyTagPixelPerUnitY ((PROPID) 0x5112) | ||||||
|  | #define PropertyTagPaletteHistogram ((PROPID) 0x5113) | ||||||
|  | #define PropertyTagCopyright ((PROPID) 0x8298) | ||||||
|  | #define PropertyTagExifExposureTime ((PROPID) 0x829A) | ||||||
|  | #define PropertyTagExifFNumber ((PROPID) 0x829D) | ||||||
|  | #define PropertyTagExifIFD ((PROPID) 0x8769) | ||||||
|  | #define PropertyTagICCProfile ((PROPID) 0x8773) | ||||||
|  | #define PropertyTagExifExposureProg ((PROPID) 0x8822) | ||||||
|  | #define PropertyTagExifSpectralSense ((PROPID) 0x8824) | ||||||
|  | #define PropertyTagGpsIFD ((PROPID) 0x8825) | ||||||
|  | #define PropertyTagExifISOSpeed ((PROPID) 0x8827) | ||||||
|  | #define PropertyTagExifOECF ((PROPID) 0x8828) | ||||||
|  | #define PropertyTagExifVer ((PROPID) 0x9000) | ||||||
|  | #define PropertyTagExifDTOrig ((PROPID) 0x9003) | ||||||
|  | #define PropertyTagExifDTDigitized ((PROPID) 0x9004) | ||||||
|  | #define PropertyTagExifCompConfig ((PROPID) 0x9101) | ||||||
|  | #define PropertyTagExifCompBPP ((PROPID) 0x9102) | ||||||
|  | #define PropertyTagExifShutterSpeed ((PROPID) 0x9201) | ||||||
|  | #define PropertyTagExifAperture ((PROPID) 0x9202) | ||||||
|  | #define PropertyTagExifBrightness ((PROPID) 0x9203) | ||||||
|  | #define PropertyTagExifExposureBias ((PROPID) 0x9204) | ||||||
|  | #define PropertyTagExifMaxAperture ((PROPID) 0x9205) | ||||||
|  | #define PropertyTagExifSubjectDist ((PROPID) 0x9206) | ||||||
|  | #define PropertyTagExifMeteringMode ((PROPID) 0x9207) | ||||||
|  | #define PropertyTagExifLightSource ((PROPID) 0x9208) | ||||||
|  | #define PropertyTagExifFlash ((PROPID) 0x9209) | ||||||
|  | #define PropertyTagExifFocalLength ((PROPID) 0x920A) | ||||||
|  | #define PropertyTagExifMakerNote ((PROPID) 0x927C) | ||||||
|  | #define PropertyTagExifUserComment ((PROPID) 0x9286) | ||||||
|  | #define PropertyTagExifDTSubsec ((PROPID) 0x9290) | ||||||
|  | #define PropertyTagExifDTOrigSS ((PROPID) 0x9291) | ||||||
|  | #define PropertyTagExifDTDigSS ((PROPID) 0x9292) | ||||||
|  | #define PropertyTagExifFPXVer ((PROPID) 0xA000) | ||||||
|  | #define PropertyTagExifColorSpace ((PROPID) 0xA001) | ||||||
|  | #define PropertyTagExifPixXDim ((PROPID) 0xA002) | ||||||
|  | #define PropertyTagExifPixYDim ((PROPID) 0xA003) | ||||||
|  | #define PropertyTagExifRelatedWav ((PROPID) 0xA004) | ||||||
|  | #define PropertyTagExifInterop ((PROPID) 0xA005) | ||||||
|  | #define PropertyTagExifFlashEnergy ((PROPID) 0xA20B) | ||||||
|  | #define PropertyTagExifSpatialFR ((PROPID) 0xA20C) | ||||||
|  | #define PropertyTagExifFocalXRes ((PROPID) 0xA20E) | ||||||
|  | #define PropertyTagExifFocalYRes ((PROPID) 0xA20F) | ||||||
|  | #define PropertyTagExifFocalResUnit ((PROPID) 0xA210) | ||||||
|  | #define PropertyTagExifSubjectLoc ((PROPID) 0xA214) | ||||||
|  | #define PropertyTagExifExposureIndex ((PROPID) 0xA215) | ||||||
|  | #define PropertyTagExifSensingMethod ((PROPID) 0xA217) | ||||||
|  | #define PropertyTagExifFileSource ((PROPID) 0xA300) | ||||||
|  | #define PropertyTagExifSceneType ((PROPID) 0xA301) | ||||||
|  | #define PropertyTagExifCfaPattern ((PROPID) 0xA302) | ||||||
|  |  | ||||||
|  | #define PropertyTagTypeByte ((WORD) 1) | ||||||
|  | #define PropertyTagTypeASCII ((WORD) 2) | ||||||
|  | #define PropertyTagTypeShort ((WORD) 3) | ||||||
|  | #define PropertyTagTypeLong ((WORD) 4) | ||||||
|  | #define PropertyTagTypeRational ((WORD) 5) | ||||||
|  | #define PropertyTagTypeUndefined ((WORD) 7) | ||||||
|  | #define PropertyTagTypeSLONG ((WORD) 9) | ||||||
|  | #define PropertyTagTypeSRational ((WORD) 10) | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | extern "C" { | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | extern const GUID EncoderChrominanceTable;   /* f2e455dc-09b3-4316-8260-676ada32481c */ | ||||||
|  | extern const GUID EncoderColorDepth;         /* 66087055-ad66-4c7c-9a18-38a2310b8337 */ | ||||||
|  | extern const GUID EncoderColorSpace;         /* ? */ | ||||||
|  | extern const GUID EncoderCompression;        /* e09d739d-ccd4-44ee-8eba-3fbf8be4fc58 */ | ||||||
|  | extern const GUID EncoderImageItems;         /* ? */ | ||||||
|  | extern const GUID EncoderLuminanceTable;     /* edb33bce-0266-4a77-b904-27216099e717 */ | ||||||
|  | extern const GUID EncoderQuality;            /* 1d5be4b5-fa4a-452d-9cdd-5db35105e7eb */ | ||||||
|  | extern const GUID EncoderRenderMethod;       /* 6d42c53a-229a-4825-8bb7-5c99e2b9a8b8 */ | ||||||
|  | extern const GUID EncoderSaveAsCMYK;         /* ? */ | ||||||
|  | extern const GUID EncoderSaveFlag;           /* 292266fc-ac40-47bf-8cfc-a85b89a655de */ | ||||||
|  | extern const GUID EncoderScanMethod;         /* 3a4e2661-3109-4e56-8536-42c156e7dcfa */ | ||||||
|  | extern const GUID EncoderTransformation;     /* 8d0eb2d1-a58e-4ea8-aa14-108074b7b6f9 */ | ||||||
|  | extern const GUID EncoderVersion;            /* 24d18c76-814a-41a4-bf53-1c219cccf797 */ | ||||||
|  |  | ||||||
|  | extern const GUID ImageFormatBMP;            /* b96b3cab-0728-11d3-9d7b-0000f81ef32e */ | ||||||
|  | extern const GUID ImageFormatEMF;            /* b96b3cac-0728-11d3-9d7b-0000f81ef32e */ | ||||||
|  | extern const GUID ImageFormatEXIF;           /* ? */ | ||||||
|  | extern const GUID ImageFormatGIF;            /* b96b3cb0-0728-11d3-9d7b-0000f81ef32e */ | ||||||
|  | extern const GUID ImageFormatIcon;           /* b96b3cb5-0728-11d3-9d7b-0000f81ef32e */ | ||||||
|  | extern const GUID ImageFormatJPEG;           /* b96b3cae-0728-11d3-9d7b-0000f81ef32e */ | ||||||
|  | extern const GUID ImageFormatMemoryBMP;      /* b96b3caa-0728-11d3-9d7b-0000f81ef32e */ | ||||||
|  | extern const GUID ImageFormatPNG;            /* b96b3caf-0728-11d3-9d7b-0000f81ef32e */ | ||||||
|  | extern const GUID ImageFormatTIFF;           /* b96b3cb1-0728-11d3-9d7b-0000f81ef32e */ | ||||||
|  | extern const GUID ImageFormatUndefined;      /* ? */ | ||||||
|  | extern const GUID ImageFormatWMF;            /* b96b3cad-0728-11d3-9d7b-0000f81ef32e */ | ||||||
|  |  | ||||||
|  | extern const GUID FrameDimensionPage;        /* 7462dc86-6180-4c7e-8e3f-ee7333a7a483 */ | ||||||
|  | extern const GUID FrameDimensionResolution;  /* ? */ | ||||||
|  | extern const GUID FrameDimensionTime;        /* 6aedbd6d-3fb5-418a-83a6-7f45229dc872 */ | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | }  /* extern "C" */ | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_IMAGING_H */ | ||||||
							
								
								
									
										1613
									
								
								winsup/w32api/include/gdiplus/gdiplusimpl.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1613
									
								
								winsup/w32api/include/gdiplus/gdiplusimpl.h
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										74
									
								
								winsup/w32api/include/gdiplus/gdiplusinit.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								winsup/w32api/include/gdiplus/gdiplusinit.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,74 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusinit.h | ||||||
|  |  * | ||||||
|  |  * GDI+ Initialization | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_INIT_H | ||||||
|  | #define __GDIPLUS_INIT_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef struct GdiplusStartupInput { | ||||||
|  | 	UINT32 GdiplusVersion; | ||||||
|  | 	DebugEventProc DebugEventCallback; | ||||||
|  | 	BOOL SuppressBackgroundThread; | ||||||
|  | 	BOOL SuppressExternalCodecs; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	GdiplusStartupInput(DebugEventProc debugEventCallback = NULL, | ||||||
|  | 	                    BOOL suppressBackgroundThread = FALSE, | ||||||
|  | 	                    BOOL suppressExternalCodecs = FALSE): | ||||||
|  | 		GdiplusVersion(1), | ||||||
|  | 		DebugEventCallback(debugEventCallback), | ||||||
|  | 		SuppressBackgroundThread(suppressBackgroundThread), | ||||||
|  | 		SuppressExternalCodecs(suppressExternalCodecs) {} | ||||||
|  | 	#endif /* __cplusplus */ | ||||||
|  | } GdiplusStartupInput; | ||||||
|  |  | ||||||
|  | typedef GpStatus WINGDIPAPI (*NotificationHookProc)(ULONG_PTR *token); | ||||||
|  | typedef VOID WINGDIPAPI (*NotificationUnhookProc)(ULONG_PTR token); | ||||||
|  |  | ||||||
|  | typedef struct GdiplusStartupOutput { | ||||||
|  | 	NotificationHookProc NotificationHook; | ||||||
|  | 	NotificationUnhookProc NotificationUnhook; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	GdiplusStartupOutput(): | ||||||
|  | 		NotificationHook(NULL), | ||||||
|  | 		NotificationUnhook(NULL) {} | ||||||
|  | 	#endif /* __cplusplus */ | ||||||
|  | } GdiplusStartupOutput; | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | extern "C" { | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | GpStatus WINGDIPAPI GdiplusStartup(ULONG_PTR*,GDIPCONST GdiplusStartupInput*,GdiplusStartupOutput*); | ||||||
|  | VOID WINGDIPAPI GdiplusShutdown(ULONG_PTR); | ||||||
|  | GpStatus WINGDIPAPI GdiplusNotificationHook(ULONG_PTR*); | ||||||
|  | VOID WINGDIPAPI GdiplusNotificationUnhook(ULONG_PTR); | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | }  /* extern "C" */ | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_INIT_H */ | ||||||
							
								
								
									
										131
									
								
								winsup/w32api/include/gdiplus/gdipluslinecaps.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										131
									
								
								winsup/w32api/include/gdiplus/gdipluslinecaps.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,131 @@ | |||||||
|  | /* | ||||||
|  |  * gdipluslinecaps.h | ||||||
|  |  * | ||||||
|  |  * GDI+ AdjustableArrowCap class | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_LINECAPS_H | ||||||
|  | #define __GDIPLUS_LINECAPS_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef __cplusplus | ||||||
|  | #error "A C++ compiler is required to include gdipluslinecaps.h." | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | class AdjustableArrowCap: public CustomLineCap | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	AdjustableArrowCap(REAL height, REAL width, BOOL isFilled): | ||||||
|  | 		CustomLineCap(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpAdjustableArrowCap *nativeAdjustableArrowCap = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateAdjustableArrowCap( | ||||||
|  | 				height, width, isFilled, | ||||||
|  | 				&nativeAdjustableArrowCap); | ||||||
|  | 		nativeCustomLineCap = nativeAdjustableArrowCap; | ||||||
|  | 	} | ||||||
|  | 	virtual ~AdjustableArrowCap() | ||||||
|  | 	{ | ||||||
|  | 	} | ||||||
|  | 	virtual AdjustableArrowCap* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpCustomLineCap *cloneCustomLineCap = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneCustomLineCap( | ||||||
|  | 				nativeCustomLineCap, &cloneCustomLineCap)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			AdjustableArrowCap *result = new AdjustableArrowCap( | ||||||
|  | 					cloneCustomLineCap, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDeleteCustomLineCap( | ||||||
|  | 						cloneCustomLineCap); | ||||||
|  | 				lastStatus = OutOfMemory; | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	REAL GetHeight() const | ||||||
|  | 	{ | ||||||
|  | 		REAL result = 0.0f; | ||||||
|  | 		updateStatus(DllExports::GdipGetAdjustableArrowCapHeight( | ||||||
|  | 				(GpAdjustableArrowCap*) nativeCustomLineCap, | ||||||
|  | 				&result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	REAL GetMiddleInset() const | ||||||
|  | 	{ | ||||||
|  | 		REAL result = 0.0f; | ||||||
|  | 		updateStatus(DllExports::GdipGetAdjustableArrowCapMiddleInset( | ||||||
|  | 				(GpAdjustableArrowCap*) nativeCustomLineCap, | ||||||
|  | 				&result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	REAL GetWidth() const | ||||||
|  | 	{ | ||||||
|  | 		REAL result = 0.0f; | ||||||
|  | 		updateStatus(DllExports::GdipGetAdjustableArrowCapWidth( | ||||||
|  | 				(GpAdjustableArrowCap*) nativeCustomLineCap, | ||||||
|  | 				&result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsFilled() const | ||||||
|  | 	{ | ||||||
|  | 		BOOL result = FALSE; | ||||||
|  | 		updateStatus(DllExports::GdipGetAdjustableArrowCapFillState( | ||||||
|  | 				(GpAdjustableArrowCap*) nativeCustomLineCap, | ||||||
|  | 				&result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status SetFillState(BOOL isFilled) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetAdjustableArrowCapFillState( | ||||||
|  | 				(GpAdjustableArrowCap*) nativeCustomLineCap, | ||||||
|  | 				isFilled)); | ||||||
|  | 	} | ||||||
|  | 	Status SetHeight(REAL height) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetAdjustableArrowCapHeight( | ||||||
|  | 				(GpAdjustableArrowCap*) nativeCustomLineCap, | ||||||
|  | 				height)); | ||||||
|  | 	} | ||||||
|  | 	Status SetMiddleInset(REAL middleInset) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetAdjustableArrowCapMiddleInset( | ||||||
|  | 				(GpAdjustableArrowCap*) nativeCustomLineCap, | ||||||
|  | 				middleInset)); | ||||||
|  | 	} | ||||||
|  | 	Status SetWidth(REAL width) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetAdjustableArrowCapWidth( | ||||||
|  | 				(GpAdjustableArrowCap*) nativeCustomLineCap, | ||||||
|  | 				width)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	AdjustableArrowCap(GpCustomLineCap *customLineCap, Status status): | ||||||
|  | 		CustomLineCap(customLineCap, status) {} | ||||||
|  | 	AdjustableArrowCap(const AdjustableArrowCap&); | ||||||
|  | 	AdjustableArrowCap& operator=(const AdjustableArrowCap&); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_LINECAPS_H */ | ||||||
							
								
								
									
										240
									
								
								winsup/w32api/include/gdiplus/gdiplusmatrix.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										240
									
								
								winsup/w32api/include/gdiplus/gdiplusmatrix.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,240 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusmatrix.h | ||||||
|  |  * | ||||||
|  |  * GDI+ Matrix class | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_MATRIX_H | ||||||
|  | #define __GDIPLUS_MATRIX_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef __cplusplus | ||||||
|  | #error "A C++ compiler is required to include gdiplusmatrix.h." | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #define GDIP_MATRIX_PI \ | ||||||
|  | 	3.1415926535897932384626433832795028841971693993751058209749445923078164 | ||||||
|  |  | ||||||
|  | class Matrix: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class Graphics; | ||||||
|  | 	friend class GraphicsPath; | ||||||
|  | 	friend class LinearGradientBrush; | ||||||
|  | 	friend class PathGradientBrush; | ||||||
|  | 	friend class Pen; | ||||||
|  | 	friend class Region; | ||||||
|  | 	friend class TextureBrush; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	Matrix(): nativeMatrix(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreateMatrix(&nativeMatrix); | ||||||
|  | 	} | ||||||
|  | 	Matrix(REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy): | ||||||
|  | 			nativeMatrix(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreateMatrix2( | ||||||
|  | 				m11, m12, m21, m22, dx, dy, | ||||||
|  | 				&nativeMatrix); | ||||||
|  | 	} | ||||||
|  | 	Matrix(const RectF& rect, const PointF *dstplg): | ||||||
|  | 			nativeMatrix(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreateMatrix3( | ||||||
|  | 				&rect, dstplg, &nativeMatrix); | ||||||
|  | 	} | ||||||
|  | 	Matrix(const Rect& rect, const Point *dstplg): | ||||||
|  | 			nativeMatrix(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreateMatrix3I( | ||||||
|  | 				&rect, dstplg, &nativeMatrix); | ||||||
|  | 	} | ||||||
|  | 	~Matrix() | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipDeleteMatrix(nativeMatrix); | ||||||
|  | 	} | ||||||
|  | 	Matrix* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpMatrix *cloneMatrix = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneMatrix( | ||||||
|  | 				nativeMatrix, &cloneMatrix)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			Matrix *result = new Matrix(cloneMatrix, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDeleteMatrix(cloneMatrix); | ||||||
|  | 				lastStatus = OutOfMemory; | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	BOOL Equals(const Matrix *matrix) const | ||||||
|  | 	{ | ||||||
|  | 		BOOL result; | ||||||
|  | 		updateStatus(DllExports::GdipIsMatrixEqual( | ||||||
|  | 				nativeMatrix, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetElements(REAL *m) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetMatrixElements( | ||||||
|  | 				nativeMatrix, m)); | ||||||
|  | 	} | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		Status result = lastStatus; | ||||||
|  | 		lastStatus = Ok; | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status Invert() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipInvertMatrix(nativeMatrix)); | ||||||
|  | 	} | ||||||
|  | 	BOOL IsIdentity() const | ||||||
|  | 	{ | ||||||
|  | 		BOOL result; | ||||||
|  | 		updateStatus(DllExports::GdipIsMatrixIdentity( | ||||||
|  | 				nativeMatrix, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsInvertible() const | ||||||
|  | 	{ | ||||||
|  | 		BOOL result; | ||||||
|  | 		updateStatus(DllExports::GdipIsMatrixInvertible( | ||||||
|  | 				nativeMatrix, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status Multiply(const Matrix *matrix, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipMultiplyMatrix( | ||||||
|  | 				nativeMatrix, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, order)); | ||||||
|  | 	} | ||||||
|  | 	REAL OffsetX() const | ||||||
|  | 	{ | ||||||
|  | 		REAL m[6]; | ||||||
|  | 		updateStatus(DllExports::GdipGetMatrixElements(nativeMatrix, m)); | ||||||
|  | 		return m[4]; | ||||||
|  | 	} | ||||||
|  | 	REAL OffsetY() const | ||||||
|  | 	{ | ||||||
|  | 		REAL m[6]; | ||||||
|  | 		updateStatus(DllExports::GdipGetMatrixElements(nativeMatrix, m)); | ||||||
|  | 		return m[5]; | ||||||
|  | 	} | ||||||
|  | 	Status Reset() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetMatrixElements( | ||||||
|  | 				nativeMatrix, | ||||||
|  | 				1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f)); | ||||||
|  | 	} | ||||||
|  | 	Status Rotate(REAL angle, MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipRotateMatrix( | ||||||
|  | 				nativeMatrix, angle, order)); | ||||||
|  | 	} | ||||||
|  | 	Status RotateAt(REAL angle, const PointF& center, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		REAL angleRadian = angle * GDIP_MATRIX_PI / 180.0f; | ||||||
|  | 		REAL cosAngle = ::cos(angleRadian); | ||||||
|  | 		REAL sinAngle = ::sin(angleRadian); | ||||||
|  | 		REAL x = center.X; | ||||||
|  | 		REAL y = center.Y; | ||||||
|  |  | ||||||
|  | 		Matrix matrix2(cosAngle, sinAngle, -sinAngle, cosAngle, | ||||||
|  | 				x * (1.0f-cosAngle) + y * sinAngle, | ||||||
|  | 				-x * sinAngle + y * (1.0f-cosAngle)); | ||||||
|  | 		Status status = matrix2.GetLastStatus(); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			return Multiply(&matrix2, order); | ||||||
|  | 		} else { | ||||||
|  | 			return lastStatus = status; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	Status Scale(REAL scaleX, REAL scaleY, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipScaleMatrix( | ||||||
|  | 				nativeMatrix, scaleX, scaleY, order)); | ||||||
|  | 	} | ||||||
|  | 	Status SetElements(REAL m11, REAL m12, REAL m21, REAL m22, | ||||||
|  | 			REAL dx, REAL dy) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetMatrixElements( | ||||||
|  | 				nativeMatrix, m11, m12, m21, m22, dx, dy)); | ||||||
|  | 	} | ||||||
|  | 	Status Shear(REAL shearX, REAL shearY, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipShearMatrix( | ||||||
|  | 				nativeMatrix, shearX, shearY, order)); | ||||||
|  | 	} | ||||||
|  | 	Status TransformPoints(PointF *pts, INT count = 1) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipTransformMatrixPoints( | ||||||
|  | 				nativeMatrix, pts, count)); | ||||||
|  | 	} | ||||||
|  | 	Status TransformPoints(Point *pts, INT count = 1) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipTransformMatrixPointsI( | ||||||
|  | 				nativeMatrix, pts, count)); | ||||||
|  | 	} | ||||||
|  | 	Status TransformVectors(PointF *pts, INT count = 1) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipVectorTransformMatrixPoints( | ||||||
|  | 				nativeMatrix, pts, count)); | ||||||
|  | 	} | ||||||
|  | 	Status TransformVectors(Point *pts, INT count = 1) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipVectorTransformMatrixPointsI( | ||||||
|  | 				nativeMatrix, pts, count)); | ||||||
|  | 	} | ||||||
|  | 	Status Translate(REAL offsetX, REAL offsetY, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipTranslateMatrix( | ||||||
|  | 				nativeMatrix, offsetX, offsetY, order)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	Matrix(GpMatrix *matrix, Status status): | ||||||
|  | 		nativeMatrix(matrix), lastStatus(status) {} | ||||||
|  | 	Matrix(const Matrix&); | ||||||
|  | 	Matrix& operator=(const Matrix&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpMatrix *nativeMatrix; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #undef GDIP_MATRIX_PI | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_MATRIX_H */ | ||||||
							
								
								
									
										42
									
								
								winsup/w32api/include/gdiplus/gdiplusmem.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										42
									
								
								winsup/w32api/include/gdiplus/gdiplusmem.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,42 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusmem.h | ||||||
|  |  * | ||||||
|  |  * GDI+ memory allocation | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_MEM_H | ||||||
|  | #define __GDIPLUS_MEM_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | namespace DllExports { | ||||||
|  | extern "C" { | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | VOID* WINGDIPAPI GdipAlloc(size_t); | ||||||
|  | VOID WINGDIPAPI GdipFree(VOID*); | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | }  /* extern "C" */ | ||||||
|  | }  /* namespace DllExports */ | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_MEM_H */ | ||||||
							
								
								
									
										305
									
								
								winsup/w32api/include/gdiplus/gdiplusmetafile.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										305
									
								
								winsup/w32api/include/gdiplus/gdiplusmetafile.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,305 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusmetafile.h | ||||||
|  |  * | ||||||
|  |  * GDI+ Metafile class | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_METAFILE_H | ||||||
|  | #define __GDIPLUS_METAFILE_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef __cplusplus | ||||||
|  | #error "A C++ compiler is required to include gdiplusmetafile.h." | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | class Metafile: public Image | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	static UINT EmfToWmfBits(HENHMETAFILE hEmf, | ||||||
|  | 			UINT cbData16, LPBYTE pData16, | ||||||
|  | 			INT iMapMode = MM_ANISOTROPIC, | ||||||
|  | 			EmfToWmfBitsFlags eFlags = EmfToWmfBitsFlagsDefault) | ||||||
|  | 	{ | ||||||
|  | 		return DllExports::GdipEmfToWmfBits(hEmf, | ||||||
|  | 				cbData16, pData16, iMapMode, eFlags); | ||||||
|  | 	} | ||||||
|  | 	static Status GetMetafileHeader(const WCHAR *filename, | ||||||
|  | 			MetafileHeader *header) | ||||||
|  | 	{ | ||||||
|  | 		return DllExports::GdipGetMetafileHeaderFromFile( | ||||||
|  | 				filename, header); | ||||||
|  | 	} | ||||||
|  | 	static Status GetMetafileHeader(IStream *stream, MetafileHeader *header) | ||||||
|  | 	{ | ||||||
|  | 		return DllExports::GdipGetMetafileHeaderFromStream( | ||||||
|  | 				stream, header); | ||||||
|  | 	} | ||||||
|  | 	////TODO: Metafile::GetMetafileHeader | ||||||
|  | 	//static Status GetMetafileHeader(HMETAFILE hWmf, | ||||||
|  | 	//		const WmfPlaceableFileHeader *wmfPlaceableFileHeader, | ||||||
|  | 	//		MetafileHeader *header) | ||||||
|  | 	//{ | ||||||
|  | 	//	// WTF: No flat API to do this. | ||||||
|  | 	//	return NotImplemented; | ||||||
|  | 	//} | ||||||
|  | 	static Status GetMetafileHeader(HENHMETAFILE hEmf, | ||||||
|  | 			MetafileHeader *header) | ||||||
|  | 	{ | ||||||
|  | 		return DllExports::GdipGetMetafileHeaderFromEmf(hEmf, header); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	Metafile(HMETAFILE hWmf, | ||||||
|  | 			const WmfPlaceableFileHeader *wmfPlaceableFileHeader, | ||||||
|  | 			BOOL deleteWmf = FALSE): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateMetafileFromWmf( | ||||||
|  | 				hWmf, deleteWmf, wmfPlaceableFileHeader, | ||||||
|  | 				&nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(HENHMETAFILE hEmf, BOOL deleteEmf = FALSE): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateMetafileFromEmf( | ||||||
|  | 				hEmf, deleteEmf, &nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(const WCHAR *filename): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateMetafileFromFile( | ||||||
|  | 				filename, &nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(const WCHAR *filename, | ||||||
|  | 			const WmfPlaceableFileHeader *wmfPlaceableFileHeader): | ||||||
|  | 			Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateMetafileFromWmfFile( | ||||||
|  | 				filename, wmfPlaceableFileHeader, | ||||||
|  | 				&nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(IStream *stream): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreateMetafileFromStream( | ||||||
|  | 				stream, &nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(HDC referenceHdc, EmfType type = EmfTypeEmfPlusDual, | ||||||
|  | 			const WCHAR *description = NULL): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipRecordMetafile( | ||||||
|  | 				referenceHdc, type, NULL, MetafileFrameUnitGdi, | ||||||
|  | 				description, &nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(HDC referenceHdc, const RectF& frameRect, | ||||||
|  | 			MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, | ||||||
|  | 			EmfType type = EmfTypeEmfPlusDual, | ||||||
|  | 			const WCHAR *description = NULL): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipRecordMetafile( | ||||||
|  | 				referenceHdc, type, &frameRect, frameUnit, | ||||||
|  | 				description, &nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(HDC referenceHdc, const Rect& frameRect, | ||||||
|  | 			MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, | ||||||
|  | 			EmfType type = EmfTypeEmfPlusDual, | ||||||
|  | 			const WCHAR *description = NULL): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipRecordMetafileI( | ||||||
|  | 				referenceHdc, type, &frameRect, frameUnit, | ||||||
|  | 				description, &nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(const WCHAR *filename, HDC referenceHdc, | ||||||
|  | 			EmfType type = EmfTypeEmfPlusDual, | ||||||
|  | 			const WCHAR *description = NULL): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipRecordMetafileFileName( | ||||||
|  | 				filename, referenceHdc, type, NULL, | ||||||
|  | 				MetafileFrameUnitGdi, description, | ||||||
|  | 				&nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(const WCHAR *filename, HDC referenceHdc, | ||||||
|  | 			const RectF& frameRect, | ||||||
|  | 			MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, | ||||||
|  | 			EmfType type = EmfTypeEmfPlusDual, | ||||||
|  | 			const WCHAR *description = NULL): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipRecordMetafileFileName( | ||||||
|  | 				filename, referenceHdc, type, &frameRect, | ||||||
|  | 				frameUnit, description, &nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(const WCHAR *filename, HDC referenceHdc, | ||||||
|  | 			const Rect& frameRect, | ||||||
|  | 			MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, | ||||||
|  | 			EmfType type = EmfTypeEmfPlusDual, | ||||||
|  | 			const WCHAR *description = NULL): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipRecordMetafileFileNameI( | ||||||
|  | 				filename, referenceHdc, type, &frameRect, | ||||||
|  | 				frameUnit, description, &nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(IStream *stream, HDC referenceHdc, | ||||||
|  | 			EmfType type = EmfTypeEmfPlusDual, | ||||||
|  | 			const WCHAR *description = NULL): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipRecordMetafileStream( | ||||||
|  | 				stream, referenceHdc, type, NULL, | ||||||
|  | 				MetafileFrameUnitGdi, description, | ||||||
|  | 				&nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(IStream *stream, HDC referenceHdc, const RectF& frameRect, | ||||||
|  | 			MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, | ||||||
|  | 			EmfType type = EmfTypeEmfPlusDual, | ||||||
|  | 			const WCHAR *description = NULL): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipRecordMetafileStream( | ||||||
|  | 				stream, referenceHdc, type, &frameRect, | ||||||
|  | 				frameUnit, description, &nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	Metafile(IStream *stream, HDC referenceHdc, const Rect& frameRect, | ||||||
|  | 			MetafileFrameUnit frameUnit = MetafileFrameUnitGdi, | ||||||
|  | 			EmfType type = EmfTypeEmfPlusDual, | ||||||
|  | 			const WCHAR *description = NULL): Image(NULL, Ok) | ||||||
|  | 	{ | ||||||
|  | 		GpMetafile *nativeMetafile = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipRecordMetafileStreamI( | ||||||
|  | 				stream, referenceHdc, type, &frameRect, | ||||||
|  | 				frameUnit, description, &nativeMetafile); | ||||||
|  | 		nativeImage = nativeMetafile; | ||||||
|  | 	} | ||||||
|  | 	virtual ~Metafile() | ||||||
|  | 	{ | ||||||
|  | 	} | ||||||
|  | 	virtual Metafile* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpImage *cloneImage = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneImage( | ||||||
|  | 				nativeImage, &cloneImage)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			Metafile *result = new Metafile(cloneImage, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDisposeImage(cloneImage); | ||||||
|  | 				lastStatus = OutOfMemory; | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus | ||||||
|  | 	//Status ConvertToEmfPlus(const Graphics *refGraphics, | ||||||
|  | 	//		BOOL *conversionSuccess = NULL, | ||||||
|  | 	//		EmfType emfType = EmfTypeEmfPlusOnly, | ||||||
|  | 	//		const WCHAR *description = NULL) | ||||||
|  | 	//{ | ||||||
|  | 	//	// FIXME: can't test GdipConvertToEmfPlus because it isn't exported in 1.0 | ||||||
|  | 	//	return updateStatus(DllExports::GdipConvertToEmfPlus( | ||||||
|  | 	//			refGraphics ? refGraphics->nativeGraphics : NULL, | ||||||
|  | 	//			(GpMetafile*) nativeImage, | ||||||
|  | 	//			conversionSuccess, emfType, description, ???)); | ||||||
|  | 	//} | ||||||
|  | 	////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus | ||||||
|  | 	//Status ConvertToEmfPlus(const Graphics *refGraphics, | ||||||
|  | 	//		const WCHAR *filename, | ||||||
|  | 	//		BOOL *conversionSuccess = NULL, | ||||||
|  | 	//		EmfType emfType = EmfTypeEmfPlusOnly, | ||||||
|  | 	//		const WCHAR *description = NULL) | ||||||
|  | 	//{ | ||||||
|  | 	//	// FIXME: can't test GdipConvertToEmfPlusToFile because it isn't exported in 1.0 | ||||||
|  | 	//	return updateStatus(DllExports::GdipConvertToEmfPlusToFile( | ||||||
|  | 	//			refGraphics ? refGraphics->nativeGraphics : NULL, | ||||||
|  | 	//			(GpMetafile*) nativeImage, conversionSuccess, | ||||||
|  | 	//			filename, emfType, description, ???)); | ||||||
|  | 	//} | ||||||
|  | 	////TODO: [GDI+ 1.1] Metafile::ConvertToEmfPlus | ||||||
|  | 	//Status ConvertToEmfPlus(const Graphics *refGraphics, | ||||||
|  | 	//		IStream *stream, | ||||||
|  | 	//		BOOL *conversionSuccess = NULL, | ||||||
|  | 	//		EmfType emfType = EmfTypeEmfPlusOnly, | ||||||
|  | 	//		const WCHAR *description = NULL) | ||||||
|  | 	//{ | ||||||
|  | 	//	// FIXME: can't test GdipConvertToEmfPlusToStream because it isn't exported in 1.0 | ||||||
|  | 	//	return updateStatus(DllExports::GdipConvertToEmfPlusToStream( | ||||||
|  | 	//			refGraphics ? refGraphics->nativeGraphics : NULL, | ||||||
|  | 	//			(GpMetafile*) nativeImage, conversionSuccess, | ||||||
|  | 	//			stream, emfType, description, ???)); | ||||||
|  | 	//} | ||||||
|  | 	UINT GetDownLevelRasterizationLimit() const | ||||||
|  | 	{ | ||||||
|  | 		UINT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetMetafileDownLevelRasterizationLimit( | ||||||
|  | 				(GpMetafile*) nativeImage, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	HENHMETAFILE GetHENHMETAFILE() | ||||||
|  | 	{ | ||||||
|  | 		HENHMETAFILE result = NULL; | ||||||
|  | 		updateStatus(DllExports::GdipGetHemfFromMetafile( | ||||||
|  | 				(GpMetafile*) nativeImage, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetMetafileHeader(MetafileHeader *header) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetMetafileHeaderFromMetafile( | ||||||
|  | 				(GpMetafile*) nativeImage, header)); | ||||||
|  | 	} | ||||||
|  | 	Status PlayRecord(EmfPlusRecordType recordType, UINT flags, | ||||||
|  | 			UINT dataSize, const BYTE *data) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipPlayMetafileRecord( | ||||||
|  | 				(GpMetafile*) nativeImage, | ||||||
|  | 				recordType, flags, dataSize, data)); | ||||||
|  | 	} | ||||||
|  | 	Status SetDownLevelRasterizationLimit(UINT limitDpi) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetMetafileDownLevelRasterizationLimit( | ||||||
|  | 				(GpMetafile*) nativeImage, limitDpi)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	Metafile(GpImage *image, Status status): Image(image, status) {} | ||||||
|  | 	Metafile(const Metafile&); | ||||||
|  | 	Metafile& operator=(const Metafile&); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_METAFILE_H */ | ||||||
							
								
								
									
										193
									
								
								winsup/w32api/include/gdiplus/gdiplusmetaheader.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										193
									
								
								winsup/w32api/include/gdiplus/gdiplusmetaheader.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,193 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusmetaheader.h | ||||||
|  |  * | ||||||
|  |  * GDI+ metafile header structure | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_METAHEADER_H | ||||||
|  | #define __GDIPLUS_METAHEADER_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * FIXME: is 1 the correct value for GDIP_EMFPLUSFLAGS_DISPLAY? This number | ||||||
|  |  * has been determined by calling Metafile::GetMetafileHeader() on a EMF+ | ||||||
|  |  * metafile which was recorded on a display device context (SampleMetafile.emf). | ||||||
|  |  */ | ||||||
|  | #ifdef __cplusplus | ||||||
|  | const UINT GDIP_EMFPLUSFLAGS_DISPLAY = 1; | ||||||
|  | #else | ||||||
|  | #define GDIP_EMFPLUSFLAGS_DISPLAY ((UINT) 1) | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef struct tagENHMETAHEADER3 { | ||||||
|  | 	DWORD iType; | ||||||
|  | 	DWORD nSize; | ||||||
|  | 	RECTL rclBounds; | ||||||
|  | 	RECTL rclFrame; | ||||||
|  | 	DWORD dSignature; | ||||||
|  | 	DWORD nVersion; | ||||||
|  | 	DWORD nBytes; | ||||||
|  | 	DWORD nRecords; | ||||||
|  | 	WORD nHandles; | ||||||
|  | 	WORD sReserved; | ||||||
|  | 	DWORD nDescription; | ||||||
|  | 	DWORD offDescription; | ||||||
|  | 	DWORD nPalEntries; | ||||||
|  | 	SIZEL szlDevice; | ||||||
|  | 	SIZEL szlMillimeters; | ||||||
|  | } ENHMETAHEADER3,*LPENHMETAHEADER3; | ||||||
|  |  | ||||||
|  | typedef struct PWMFRect16 { | ||||||
|  | 	INT16 Left; | ||||||
|  | 	INT16 Top; | ||||||
|  | 	INT16 Right; | ||||||
|  | 	INT16 Bottom; | ||||||
|  | } PWMFRect16; | ||||||
|  |  | ||||||
|  | typedef struct WmfPlaceableFileHeader { | ||||||
|  | 	UINT32 Key; | ||||||
|  | 	INT16 Hmf; | ||||||
|  | 	PWMFRect16 BoundingBox; | ||||||
|  | 	INT16 Inch; | ||||||
|  | 	UINT32 Reserved; | ||||||
|  | 	INT16 Checksum; | ||||||
|  | } WmfPlaceableFileHeader; | ||||||
|  |  | ||||||
|  | typedef struct MetafileHeader { | ||||||
|  | 	MetafileType Type; | ||||||
|  | 	UINT Size; | ||||||
|  | 	UINT Version; | ||||||
|  | 	UINT EmfPlusFlags; | ||||||
|  | 	REAL DpiX; | ||||||
|  | 	REAL DpiY; | ||||||
|  | 	INT X; | ||||||
|  | 	INT Y; | ||||||
|  | 	INT Width; | ||||||
|  | 	INT Height; | ||||||
|  | 	__extension__ union { | ||||||
|  | 		METAHEADER WmfHeader; | ||||||
|  | 		ENHMETAHEADER3 EmfHeader; | ||||||
|  | 	}; | ||||||
|  | 	INT EmfPlusHeaderSize; | ||||||
|  | 	INT LogicalDpiX; | ||||||
|  | 	INT LogicalDpiY; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	public: | ||||||
|  | 	void GetBounds(Rect *rect) const | ||||||
|  | 	{ | ||||||
|  | 		if (rect) | ||||||
|  | 		{ | ||||||
|  | 			rect->X = X; | ||||||
|  | 			rect->Y = Y; | ||||||
|  | 			rect->Width = Width; | ||||||
|  | 			rect->Height = Height; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	REAL GetDpiX() const | ||||||
|  | 	{ | ||||||
|  | 		return DpiX; | ||||||
|  | 	} | ||||||
|  | 	REAL GetDpiY() const | ||||||
|  | 	{ | ||||||
|  | 		return DpiY; | ||||||
|  | 	} | ||||||
|  | 	const ENHMETAHEADER3* GetEmfHeader() const | ||||||
|  | 	{ | ||||||
|  | 		if (Type == MetafileTypeEmf | ||||||
|  | 				|| Type == MetafileTypeEmfPlusOnly | ||||||
|  | 				|| Type == MetafileTypeEmfPlusDual) | ||||||
|  | 		{ | ||||||
|  | 			return &EmfHeader; | ||||||
|  | 		} | ||||||
|  | 		else | ||||||
|  | 		{ | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	UINT GetEmfPlusFlags() const | ||||||
|  | 	{ | ||||||
|  | 		return EmfPlusFlags; | ||||||
|  | 	} | ||||||
|  | 	UINT GetMetafileSize() const | ||||||
|  | 	{ | ||||||
|  | 		return Size; | ||||||
|  | 	} | ||||||
|  | 	MetafileType GetType() const | ||||||
|  | 	{ | ||||||
|  | 		return Type; | ||||||
|  | 	} | ||||||
|  | 	UINT GetVersion() const | ||||||
|  | 	{ | ||||||
|  | 		return Version; | ||||||
|  | 	} | ||||||
|  | 	const METAHEADER* GetWmfHeader() const | ||||||
|  | 	{ | ||||||
|  | 		if (Type == MetafileTypeWmf || Type == MetafileTypeWmfPlaceable) | ||||||
|  | 		{ | ||||||
|  | 			return &WmfHeader; | ||||||
|  | 		} | ||||||
|  | 		else | ||||||
|  | 		{ | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	BOOL IsDisplay() const | ||||||
|  | 	{ | ||||||
|  | 		return EmfPlusFlags == GDIP_EMFPLUSFLAGS_DISPLAY; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsEmf() const | ||||||
|  | 	{ | ||||||
|  | 		return Type == MetafileTypeEmf; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsEmfOrEmfPlus() const | ||||||
|  | 	{ | ||||||
|  | 		return Type == MetafileTypeEmf | ||||||
|  | 			|| Type == MetafileTypeEmfPlusOnly | ||||||
|  | 			|| Type == MetafileTypeEmfPlusDual; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsEmfPlus() const | ||||||
|  | 	{ | ||||||
|  | 		return Type == MetafileTypeEmfPlusOnly | ||||||
|  | 			|| Type == MetafileTypeEmfPlusDual; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsEmfPlusDual() const | ||||||
|  | 	{ | ||||||
|  | 		return Type == MetafileTypeEmfPlusDual; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsEmfPlusOnly() const | ||||||
|  | 	{ | ||||||
|  | 		return Type == MetafileTypeEmfPlusOnly; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsWmf() const | ||||||
|  | 	{ | ||||||
|  | 		return Type == MetafileTypeWmf | ||||||
|  | 			|| Type == MetafileTypeWmfPlaceable; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsWmfPlaceable() const | ||||||
|  | 	{ | ||||||
|  | 		return Type == MetafileTypeWmfPlaceable; | ||||||
|  | 	} | ||||||
|  | 	#endif | ||||||
|  | } MetafileHeader; | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_METAHEADER_H */ | ||||||
							
								
								
									
										964
									
								
								winsup/w32api/include/gdiplus/gdipluspath.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										964
									
								
								winsup/w32api/include/gdiplus/gdipluspath.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,964 @@ | |||||||
|  | /* | ||||||
|  |  * gdipluspath.h | ||||||
|  |  * | ||||||
|  |  * GDI+ GraphicsPath class | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_PATH_H | ||||||
|  | #define __GDIPLUS_PATH_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef __cplusplus | ||||||
|  | #error "A C++ compiler is required to include gdipluspath.h." | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | // Note that some methods of GraphicsPath are implemented in gdiplusimpl.h. | ||||||
|  | // This avoids a cyclic dependency on Graphics and Pen. | ||||||
|  |  | ||||||
|  | class GraphicsPath: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class CustomLineCap; | ||||||
|  | 	friend class Graphics; | ||||||
|  | 	friend class GraphicsPathIterator; | ||||||
|  | 	friend class PathGradientBrush; | ||||||
|  | 	friend class Region; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	GraphicsPath(FillMode fillMode = FillModeAlternate): | ||||||
|  | 			nativePath(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreatePath(fillMode, &nativePath); | ||||||
|  | 	} | ||||||
|  | 	GraphicsPath(const PointF *points, const BYTE *types, INT count, | ||||||
|  | 			FillMode fillMode = FillModeAlternate): | ||||||
|  | 			nativePath(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreatePath2( | ||||||
|  | 				points, types, count, fillMode, &nativePath); | ||||||
|  | 	} | ||||||
|  | 	GraphicsPath(const Point *points, const BYTE *types, INT count, | ||||||
|  | 			FillMode fillMode = FillModeAlternate): | ||||||
|  | 			nativePath(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreatePath2I( | ||||||
|  | 				points, types, count, fillMode, &nativePath); | ||||||
|  | 	} | ||||||
|  | 	~GraphicsPath() | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipDeletePath(nativePath); | ||||||
|  | 	} | ||||||
|  | 	GraphicsPath* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpPath *clonePath = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipClonePath( | ||||||
|  | 				nativePath, &clonePath)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			GraphicsPath *result = new GraphicsPath(clonePath, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDeletePath(clonePath); | ||||||
|  | 				lastStatus = OutOfMemory; | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	Status AddArc(REAL x, REAL y, REAL width, REAL height, | ||||||
|  | 			REAL startAngle, REAL sweepAngle) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathArc(nativePath, | ||||||
|  | 				x, y, width, height, startAngle, sweepAngle)); | ||||||
|  | 	} | ||||||
|  | 	Status AddArc(INT x, INT y, INT width, INT height, | ||||||
|  | 			REAL startAngle, REAL sweepAngle) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathArcI(nativePath, | ||||||
|  | 				x, y, width, height, startAngle, sweepAngle)); | ||||||
|  | 	} | ||||||
|  | 	Status AddArc(const RectF& rect, REAL startAngle, REAL sweepAngle) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathArc(nativePath, | ||||||
|  | 				rect.X, rect.Y, rect.Width, rect.Height, | ||||||
|  | 				startAngle, sweepAngle)); | ||||||
|  | 	} | ||||||
|  | 	Status AddArc(const Rect& rect, REAL startAngle, REAL sweepAngle) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathArcI(nativePath, | ||||||
|  | 				rect.X, rect.Y, rect.Width, rect.Height, | ||||||
|  | 				startAngle, sweepAngle)); | ||||||
|  | 	} | ||||||
|  | 	Status AddBezier(REAL x1, REAL y1, REAL x2, REAL y2, | ||||||
|  | 			REAL x3, REAL y3, REAL x4, REAL y4) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathBezier(nativePath, | ||||||
|  | 				x1, y1, x2, y2, x3, y3, x4, y4)); | ||||||
|  | 	} | ||||||
|  | 	Status AddBezier(INT x1, INT y1, INT x2, INT y2, | ||||||
|  | 			INT x3, INT y3, INT x4, INT y4) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathBezierI(nativePath, | ||||||
|  | 				x1, y1, x2, y2, x3, y3, x4, y4)); | ||||||
|  | 	} | ||||||
|  | 	Status AddBezier(const PointF& pt1, const PointF& pt2, | ||||||
|  | 			const PointF& pt3, const PointF& pt4) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathBezier(nativePath, | ||||||
|  | 				pt1.X, pt1.Y, pt2.X, pt2.Y, | ||||||
|  | 				pt3.X, pt3.Y, pt4.X, pt4.Y)); | ||||||
|  | 	} | ||||||
|  | 	Status AddBezier(const Point& pt1, const Point& pt2, | ||||||
|  | 			const Point& pt3, const Point& pt4) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathBezierI(nativePath, | ||||||
|  | 				pt1.X, pt1.Y, pt2.X, pt2.Y, | ||||||
|  | 				pt3.X, pt3.Y, pt4.X, pt4.Y)); | ||||||
|  | 	} | ||||||
|  | 	Status AddBeziers(const PointF *points, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathBeziers( | ||||||
|  | 				nativePath, points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddBeziers(const Point *points, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathBeziersI( | ||||||
|  | 				nativePath, points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddClosedCurve(const PointF *points, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathClosedCurve( | ||||||
|  | 				nativePath, points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddClosedCurve(const Point *points, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathClosedCurveI( | ||||||
|  | 				nativePath, points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddClosedCurve(const PointF *points, INT count, REAL tension) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathClosedCurve2( | ||||||
|  | 				nativePath, points, count, tension)); | ||||||
|  | 	} | ||||||
|  | 	Status AddClosedCurve(const Point *points, INT count, REAL tension) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathClosedCurve2I( | ||||||
|  | 				nativePath, points, count, tension)); | ||||||
|  | 	} | ||||||
|  | 	Status AddCurve(const PointF *points, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathCurve( | ||||||
|  | 				nativePath, points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddCurve(const Point *points, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathCurveI( | ||||||
|  | 				nativePath, points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddCurve(const PointF *points, INT count, REAL tension) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathCurve2( | ||||||
|  | 				nativePath, points, count, tension)); | ||||||
|  | 	} | ||||||
|  | 	Status AddCurve(const Point *points, INT count, REAL tension) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathCurve2I( | ||||||
|  | 				nativePath, points, count, tension)); | ||||||
|  | 	} | ||||||
|  | 	Status AddCurve(const PointF *points, INT count, INT offset, | ||||||
|  | 			INT numberOfSegments, REAL tension) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathCurve3( | ||||||
|  | 				nativePath, points, count, | ||||||
|  | 				offset, numberOfSegments, tension)); | ||||||
|  | 	} | ||||||
|  | 	Status AddCurve(const Point *points, INT count, INT offset, | ||||||
|  | 			INT numberOfSegments, REAL tension) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathCurve3I( | ||||||
|  | 				nativePath, points, count, | ||||||
|  | 				offset, numberOfSegments, tension)); | ||||||
|  | 	} | ||||||
|  | 	Status AddEllipse(REAL x, REAL y, REAL width, REAL height) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathEllipse(nativePath, | ||||||
|  | 				x, y, width, height)); | ||||||
|  | 	} | ||||||
|  | 	Status AddEllipse(INT x, INT y, INT width, INT height) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathEllipseI(nativePath, | ||||||
|  | 				x, y, width, height)); | ||||||
|  | 	} | ||||||
|  | 	Status AddEllipse(const RectF& rect) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathEllipse(nativePath, | ||||||
|  | 				rect.X, rect.Y, rect.Width, rect.Height)); | ||||||
|  | 	} | ||||||
|  | 	Status AddEllipse(const Rect& rect) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathEllipseI(nativePath, | ||||||
|  | 				rect.X, rect.Y, rect.Width, rect.Height)); | ||||||
|  | 	} | ||||||
|  | 	Status AddLine(REAL x1, REAL y1, REAL x2, REAL y2) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathLine(nativePath, | ||||||
|  | 				x1, y1, x2, y2)); | ||||||
|  | 	} | ||||||
|  | 	Status AddLine(INT x1, INT y1, INT x2, INT y2) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathLineI(nativePath, | ||||||
|  | 				x1, y1, x2, y2)); | ||||||
|  | 	} | ||||||
|  | 	Status AddLine(const PointF& pt1, const PointF& pt2) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathLine(nativePath, | ||||||
|  | 				pt1.X, pt1.Y, pt2.X, pt2.Y)); | ||||||
|  | 	} | ||||||
|  | 	Status AddLine(const Point& pt1, const Point& pt2) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathLineI(nativePath, | ||||||
|  | 				pt1.X, pt1.Y, pt2.X, pt2.Y)); | ||||||
|  | 	} | ||||||
|  | 	Status AddLines(const PointF *points, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathLine2(nativePath, | ||||||
|  | 				points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddLines(const Point *points, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathLine2I(nativePath, | ||||||
|  | 				points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddPath(const GraphicsPath *addingPath, BOOL connect) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathPath(nativePath, | ||||||
|  | 				addingPath ? addingPath->nativePath : NULL, | ||||||
|  | 				connect)); | ||||||
|  | 	} | ||||||
|  | 	Status AddPie(REAL x, REAL y, REAL width, REAL height, | ||||||
|  | 			REAL startAngle, REAL sweepAngle) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathPie(nativePath, | ||||||
|  | 				x, y, width, height, startAngle, sweepAngle)); | ||||||
|  | 	} | ||||||
|  | 	Status AddPie(INT x, INT y, INT width, INT height, | ||||||
|  | 			REAL startAngle, REAL sweepAngle) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathPieI(nativePath, | ||||||
|  | 				x, y, width, height, startAngle, sweepAngle)); | ||||||
|  | 	} | ||||||
|  | 	Status AddPie(const RectF& rect, REAL startAngle, REAL sweepAngle) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathPie(nativePath, | ||||||
|  | 				rect.X, rect.Y, rect.Width, rect.Height, | ||||||
|  | 				startAngle, sweepAngle)); | ||||||
|  | 	} | ||||||
|  | 	Status AddPie(const Rect& rect, REAL startAngle, REAL sweepAngle) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathPieI(nativePath, | ||||||
|  | 				rect.X, rect.Y, rect.Width, rect.Height, | ||||||
|  | 				startAngle, sweepAngle)); | ||||||
|  | 	} | ||||||
|  | 	Status AddPolygon(const PointF *points, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathPolygon(nativePath, | ||||||
|  | 				points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddPolygon(const Point *points, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathPolygonI(nativePath, | ||||||
|  | 				points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddRectangle(const RectF& rect) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathRectangle(nativePath, | ||||||
|  | 				rect.X, rect.Y, rect.Width, rect.Height)); | ||||||
|  | 	} | ||||||
|  | 	Status AddRectangle(const Rect& rect) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathRectangleI( | ||||||
|  | 				nativePath, | ||||||
|  | 				rect.X, rect.Y, rect.Width, rect.Height)); | ||||||
|  | 	} | ||||||
|  | 	Status AddRectangles(const RectF *rects, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathRectangles( | ||||||
|  | 				nativePath, rects, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddRectangles(const Rect *rects, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathRectanglesI( | ||||||
|  | 				nativePath, rects, count)); | ||||||
|  | 	} | ||||||
|  | 	Status AddString(const WCHAR *string, INT length, | ||||||
|  | 			const FontFamily *family, INT style, REAL emSize, | ||||||
|  | 			const PointF& origin, const StringFormat *format) | ||||||
|  | 	{ | ||||||
|  | 		RectF layoutRect(origin, SizeF(0.0f, 0.0f)); | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathString(nativePath, | ||||||
|  | 				string, length, | ||||||
|  | 				family ? family->nativeFontFamily : NULL, | ||||||
|  | 				style, emSize, &layoutRect, | ||||||
|  | 				format ? format->nativeStringFormat : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status AddString(const WCHAR *string, INT length, | ||||||
|  | 			const FontFamily *family, INT style, REAL emSize, | ||||||
|  | 			const Point& origin, const StringFormat *format) | ||||||
|  | 	{ | ||||||
|  | 		Rect layoutRect(origin, Size(0, 0)); | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathStringI(nativePath, | ||||||
|  | 				string, length, | ||||||
|  | 				family ? family->nativeFontFamily : NULL, | ||||||
|  | 				style, emSize, &layoutRect, | ||||||
|  | 				format ? format->nativeStringFormat : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status AddString(const WCHAR *string, INT length, | ||||||
|  | 			const FontFamily *family, INT style, REAL emSize, | ||||||
|  | 			const RectF& layoutRect, const StringFormat *format) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathString(nativePath, | ||||||
|  | 				string, length, | ||||||
|  | 				family ? family->nativeFontFamily : NULL, | ||||||
|  | 				style, emSize, &layoutRect, | ||||||
|  | 				format ? format->nativeStringFormat : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status AddString(const WCHAR *string, INT length, | ||||||
|  | 			const FontFamily *family, INT style, REAL emSize, | ||||||
|  | 			const Rect& layoutRect, const StringFormat *format) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipAddPathStringI(nativePath, | ||||||
|  | 				string, length, | ||||||
|  | 				family ? family->nativeFontFamily : NULL, | ||||||
|  | 				style, emSize, &layoutRect, | ||||||
|  | 				format ? format->nativeStringFormat : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status ClearMarkers() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipClearPathMarkers( | ||||||
|  | 				nativePath)); | ||||||
|  | 	} | ||||||
|  | 	Status CloseAllFigures() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipClosePathFigures( | ||||||
|  | 				nativePath)); | ||||||
|  | 	} | ||||||
|  | 	Status CloseFigure() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipClosePathFigure( | ||||||
|  | 				nativePath)); | ||||||
|  | 	} | ||||||
|  | 	Status Flatten(const Matrix *matrix = NULL, | ||||||
|  | 			REAL flatness = FlatnessDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipFlattenPath(nativePath, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, | ||||||
|  | 				flatness)); | ||||||
|  | 	} | ||||||
|  | 	Status GetBounds(RectF *bounds, const Matrix *matrix = NULL, | ||||||
|  | 			const Pen *pen = NULL) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathWorldBounds( | ||||||
|  | 				nativePath, bounds, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, | ||||||
|  | 				pen ? pen->nativePen : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status GetBounds(Rect *bounds, const Matrix *matrix = NULL, | ||||||
|  | 			const Pen *pen = NULL) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathWorldBoundsI( | ||||||
|  | 				nativePath, bounds, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, | ||||||
|  | 				pen ? pen->nativePen : NULL)); | ||||||
|  | 	}	 | ||||||
|  | 	FillMode GetFillMode() const | ||||||
|  | 	{ | ||||||
|  | 		FillMode result = FillModeAlternate; | ||||||
|  | 		updateStatus(DllExports::GdipGetPathFillMode(nativePath, | ||||||
|  | 				&result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetLastPoint(PointF *lastPoint) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathLastPoint( | ||||||
|  | 				nativePath, lastPoint)); | ||||||
|  | 	} | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		Status result = lastStatus; | ||||||
|  | 		lastStatus = Ok; | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetPathData(PathData *pathData) const | ||||||
|  | 	{ | ||||||
|  | 		if (!pathData) return lastStatus = InvalidParameter; | ||||||
|  |  | ||||||
|  | 		Status status; | ||||||
|  | 		INT count; | ||||||
|  |  | ||||||
|  | 		status = updateStatus(DllExports::GdipGetPointCount( | ||||||
|  | 				nativePath, &count)); | ||||||
|  | 		if (status != Ok) return status; | ||||||
|  |  | ||||||
|  | 		status = updateStatus(pathData->AllocateArrays(count)); | ||||||
|  | 		if (status != Ok) return status; | ||||||
|  |  | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathData( | ||||||
|  | 				nativePath, (GpPathData*) pathData)); | ||||||
|  | 	} | ||||||
|  | 	Status GetPathPoints(PointF *points, INT count) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathPoints(nativePath, | ||||||
|  | 				points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status GetPathPoints(Point *points, INT count) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathPointsI(nativePath, | ||||||
|  | 				points, count)); | ||||||
|  | 	} | ||||||
|  | 	Status GetPathTypes(BYTE *types, INT count) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathTypes(nativePath, | ||||||
|  | 				types, count)); | ||||||
|  | 	} | ||||||
|  | 	INT GetPointCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetPointCount(nativePath, | ||||||
|  | 				&result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsOutlineVisible(REAL x, REAL y, const Pen *pen, | ||||||
|  | 			const Graphics *g = NULL) const; | ||||||
|  | 	BOOL IsOutlineVisible(INT x, INT y, const Pen *pen, | ||||||
|  | 			const Graphics *g = NULL) const; | ||||||
|  | 	BOOL IsOutlineVisible(const PointF& point, const Pen *pen, | ||||||
|  | 			const Graphics *g = NULL) const; | ||||||
|  | 	BOOL IsOutlineVisible(const Point& point, const Pen *pen, | ||||||
|  | 			const Graphics *g = NULL) const; | ||||||
|  | 	BOOL IsVisible(REAL x, REAL y, const Graphics *g = NULL) const; | ||||||
|  | 	BOOL IsVisible(INT x, INT y, const Graphics *g = NULL) const; | ||||||
|  | 	BOOL IsVisible(const PointF& point, const Graphics *g = NULL) const; | ||||||
|  | 	BOOL IsVisible(const Point& point, const Graphics *g = NULL) const; | ||||||
|  | 	Status Outline(const Matrix *matrix = NULL, | ||||||
|  | 			REAL flatness = FlatnessDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipWindingModeOutline( | ||||||
|  | 				nativePath, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, | ||||||
|  | 				flatness)); | ||||||
|  | 	} | ||||||
|  | 	Status Reset() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipResetPath(nativePath)); | ||||||
|  | 	} | ||||||
|  | 	Status Reverse() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipReversePath(nativePath)); | ||||||
|  | 	} | ||||||
|  | 	Status SetFillMode(FillMode fillMode) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathFillMode( | ||||||
|  | 				nativePath, fillMode)); | ||||||
|  | 	} | ||||||
|  | 	Status SetMarker() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathMarker(nativePath)); | ||||||
|  | 	} | ||||||
|  | 	Status StartFigure() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipStartPathFigure( | ||||||
|  | 				nativePath)); | ||||||
|  | 	} | ||||||
|  | 	Status Transform(const Matrix *matrix) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipTransformPath( | ||||||
|  | 				nativePath, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status Warp(const PointF *destPoints, INT count, const RectF& srcRect, | ||||||
|  | 			const Matrix *matrix = NULL, | ||||||
|  | 			WarpMode warpMode = WarpModePerspective, | ||||||
|  | 			REAL flatness = FlatnessDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipWarpPath(nativePath, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, | ||||||
|  | 				destPoints, count, | ||||||
|  | 				srcRect.X, srcRect.Y, | ||||||
|  | 				srcRect.Width, srcRect.Height, | ||||||
|  | 				warpMode, flatness)); | ||||||
|  | 	} | ||||||
|  | 	Status Widen(const Pen *pen, const Matrix *matrix = NULL, | ||||||
|  | 			REAL flatness = FlatnessDefault) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipWidenPath(nativePath, | ||||||
|  | 				pen ? pen->nativePen : NULL, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, | ||||||
|  | 				flatness)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	GraphicsPath(GpPath *path, Status status): | ||||||
|  | 		nativePath(path), lastStatus(status) {} | ||||||
|  | 	GraphicsPath(const GraphicsPath&); | ||||||
|  | 	GraphicsPath& operator=(const GraphicsPath&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpPath *nativePath; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class GraphicsPathIterator: public GdiplusBase | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	GraphicsPathIterator(GraphicsPath *path): | ||||||
|  | 		nativePathIterator(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreatePathIter( | ||||||
|  | 				&nativePathIterator, | ||||||
|  | 				path ? path->nativePath : NULL); | ||||||
|  | 	} | ||||||
|  | 	~GraphicsPathIterator() | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipDeletePathIter(nativePathIterator); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	INT CopyData(PointF *points, BYTE *types, INT startIndex, INT endIndex) | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipPathIterCopyData( | ||||||
|  | 				nativePathIterator, &result, | ||||||
|  | 				points, types, startIndex, endIndex)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT Enumerate(PointF *points, BYTE *types, INT count) | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipPathIterEnumerate( | ||||||
|  | 				nativePathIterator, &result, | ||||||
|  | 				points, types, count)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT GetCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipPathIterGetCount( | ||||||
|  | 				nativePathIterator, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		Status result = lastStatus; | ||||||
|  | 		lastStatus = Ok; | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT GetSubpathCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipPathIterGetSubpathCount( | ||||||
|  | 				nativePathIterator, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	BOOL HasCurve() const | ||||||
|  | 	{ | ||||||
|  | 		BOOL result = FALSE; | ||||||
|  | 		updateStatus(DllExports::GdipPathIterHasCurve( | ||||||
|  | 				nativePathIterator, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT NextMarker(INT *startIndex, INT *endIndex) | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipPathIterNextMarker( | ||||||
|  | 				nativePathIterator, &result, | ||||||
|  | 				startIndex, endIndex)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT NextMarker(GraphicsPath *path) | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipPathIterNextMarkerPath( | ||||||
|  | 				nativePathIterator, &result, | ||||||
|  | 				path ? path->nativePath : NULL)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT NextPathType(BYTE *pathType, INT *startIndex, INT *endIndex) | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipPathIterNextPathType( | ||||||
|  | 				nativePathIterator, &result, | ||||||
|  | 				pathType, startIndex, endIndex)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT NextSubpath(INT *startIndex, INT *endIndex, BOOL *isClosed) | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipPathIterNextSubpath( | ||||||
|  | 				nativePathIterator, &result, | ||||||
|  | 				startIndex, endIndex, isClosed)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT NextSubpath(GraphicsPath *path, BOOL *isClosed) | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipPathIterNextSubpathPath( | ||||||
|  | 				nativePathIterator, &result, | ||||||
|  | 				path ? path->nativePath : NULL, isClosed)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	VOID Rewind() | ||||||
|  | 	{ | ||||||
|  | 		updateStatus(DllExports::GdipPathIterRewind( | ||||||
|  | 				nativePathIterator)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	GraphicsPathIterator(GpPathIterator *pathIterator, Status status): | ||||||
|  | 		nativePathIterator(pathIterator), lastStatus(status) {} | ||||||
|  | 	GraphicsPathIterator(const GraphicsPathIterator&); | ||||||
|  | 	GraphicsPathIterator& operator=(const GraphicsPathIterator&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpPathIterator *nativePathIterator; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | class PathGradientBrush: public Brush | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	PathGradientBrush(const PointF *points, INT count, | ||||||
|  | 			WrapMode wrapMode = WrapModeClamp) | ||||||
|  | 	{ | ||||||
|  | 		GpPathGradient *nativePathGradient = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreatePathGradient( | ||||||
|  | 				points, count, wrapMode, &nativePathGradient); | ||||||
|  | 		nativeBrush = nativePathGradient; | ||||||
|  | 	} | ||||||
|  | 	PathGradientBrush(const Point *points, INT count, | ||||||
|  | 			WrapMode wrapMode = WrapModeClamp) | ||||||
|  | 	{ | ||||||
|  | 		GpPathGradient *nativePathGradient = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreatePathGradientI( | ||||||
|  | 				points, count, wrapMode, &nativePathGradient); | ||||||
|  | 		nativeBrush = nativePathGradient; | ||||||
|  | 	} | ||||||
|  | 	PathGradientBrush(const GraphicsPath *path) | ||||||
|  | 	{ | ||||||
|  | 		GpPathGradient *nativePathGradient = NULL; | ||||||
|  | 		lastStatus = DllExports::GdipCreatePathGradientFromPath( | ||||||
|  | 				path ? path->nativePath : NULL, | ||||||
|  | 				&nativePathGradient); | ||||||
|  | 		nativeBrush = nativePathGradient; | ||||||
|  | 	} | ||||||
|  | 	virtual PathGradientBrush *Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpBrush *cloneBrush = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneBrush( | ||||||
|  | 				nativeBrush, &cloneBrush)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			PathGradientBrush *result = | ||||||
|  | 				new PathGradientBrush(cloneBrush, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDeleteBrush(cloneBrush); | ||||||
|  | 				updateStatus(OutOfMemory); | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	Status GetBlend(REAL *blendFactors, REAL *blendPositions, | ||||||
|  | 			INT count) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathGradientBlend( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				blendFactors, blendPositions, count)); | ||||||
|  | 	} | ||||||
|  | 	INT GetBlendCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetPathGradientBlendCount( | ||||||
|  | 				(GpPathGradient*) nativeBrush, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetCenterColor(Color *color) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathGradientCenterColor( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				color ? &color->Value : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status GetCenterPoint(PointF *point) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathGradientCenterPoint( | ||||||
|  | 				(GpPathGradient*) nativeBrush, point)); | ||||||
|  | 	} | ||||||
|  | 	Status GetCenterPoint(Point *point) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathGradientCenterPointI( | ||||||
|  | 				(GpPathGradient*) nativeBrush, point)); | ||||||
|  | 	} | ||||||
|  | 	Status GetFocusScales(REAL *xScale, REAL *yScale) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathGradientFocusScales( | ||||||
|  | 				(GpPathGradient*) nativeBrush, xScale, yScale)); | ||||||
|  | 	} | ||||||
|  | 	BOOL GetGammaCorrection() const | ||||||
|  | 	{ | ||||||
|  | 		BOOL result = FALSE; | ||||||
|  | 		updateStatus(DllExports::GdipGetPathGradientGammaCorrection( | ||||||
|  | 				(GpPathGradient*) nativeBrush, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	//Status GetGraphicsPath(GraphicsPath *path) const | ||||||
|  | 	//{ | ||||||
|  | 	//	// TODO: implement PathGradientBrush::GetGraphicsPath | ||||||
|  | 	//	return updateStatus(NotImplemented); | ||||||
|  | 	//} | ||||||
|  | 	INT GetInterpolationColorCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetPathGradientPresetBlendCount( | ||||||
|  | 				(GpPathGradient*) nativeBrush, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetInterpolationColors(Color *presetColors, | ||||||
|  | 			REAL *blendPositions, INT count) const | ||||||
|  | 	{ | ||||||
|  | 		if (!presetColors || count <= 0) | ||||||
|  | 			return lastStatus = InvalidParameter; | ||||||
|  |  | ||||||
|  | 		ARGB *presetArgb = | ||||||
|  | 			(ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); | ||||||
|  | 		if (!presetArgb) | ||||||
|  | 			return lastStatus = OutOfMemory; | ||||||
|  |  | ||||||
|  | 		Status status = updateStatus(DllExports::GdipGetPathGradientPresetBlend( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				presetArgb, blendPositions, count)); | ||||||
|  | 		for (INT i = 0; i < count; ++i) { | ||||||
|  | 			presetColors[i].SetValue(presetArgb[i]); | ||||||
|  | 		} | ||||||
|  | 		DllExports::GdipFree((void*) presetArgb); | ||||||
|  | 		return status; | ||||||
|  | 	} | ||||||
|  | 	INT GetPointCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetPathGradientPointCount( | ||||||
|  | 				(GpPathGradient*) nativeBrush, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetRectangle(RectF *rect) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathGradientRect( | ||||||
|  | 				(GpPathGradient*) nativeBrush, rect)); | ||||||
|  | 	} | ||||||
|  | 	Status GetRectangle(Rect *rect) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathGradientRectI( | ||||||
|  | 				(GpPathGradient*) nativeBrush, rect)); | ||||||
|  | 	} | ||||||
|  | 	INT GetSurroundColorCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetPathGradientSurroundColorCount( | ||||||
|  | 				(GpPathGradient*) nativeBrush, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetSurroundColors(Color *colors, INT *count) | ||||||
|  | 	{ | ||||||
|  | 		if (!colors || !count || *count <= 0) | ||||||
|  | 			return lastStatus = InvalidParameter; | ||||||
|  |  | ||||||
|  | 		ARGB *colorsArgb = | ||||||
|  | 			(ARGB*) DllExports::GdipAlloc(*count * sizeof(ARGB)); | ||||||
|  | 		if (!colorsArgb) | ||||||
|  | 			return lastStatus = OutOfMemory; | ||||||
|  |  | ||||||
|  | 		Status status = updateStatus(DllExports::GdipGetPathGradientSurroundColorsWithCount( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				colorsArgb, count)); | ||||||
|  | 		for (INT i = 0; i < *count; ++i) { | ||||||
|  | 			colors[i].SetValue(colorsArgb[i]); | ||||||
|  | 		} | ||||||
|  | 		DllExports::GdipFree((void*) colorsArgb); | ||||||
|  | 		return status; | ||||||
|  | 	} | ||||||
|  | 	Status GetTransform(Matrix *matrix) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPathGradientTransform( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL)); | ||||||
|  | 	} | ||||||
|  | 	WrapMode GetWrapMode() const | ||||||
|  | 	{ | ||||||
|  | 		WrapMode result = WrapModeTile; | ||||||
|  | 		updateStatus(DllExports::GdipGetPathGradientWrapMode( | ||||||
|  | 				(GpPathGradient*) nativeBrush, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status MultiplyTransform(const Matrix *matrix, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipMultiplyPathGradientTransform( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, order)); | ||||||
|  | 	} | ||||||
|  | 	Status ResetTransform() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipResetPathGradientTransform( | ||||||
|  | 				(GpPathGradient*) nativeBrush)); | ||||||
|  | 	} | ||||||
|  | 	Status RotateTransform(REAL angle, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipRotatePathGradientTransform( | ||||||
|  | 				(GpPathGradient*) nativeBrush, angle, order)); | ||||||
|  | 	} | ||||||
|  | 	Status ScaleTransform(REAL sx, REAL sy, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipScalePathGradientTransform( | ||||||
|  | 				(GpPathGradient*) nativeBrush, sx, sy, order)); | ||||||
|  | 	} | ||||||
|  | 	Status SetBlend(REAL *blendFactors, REAL *blendPositions, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathGradientBlend( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				blendFactors, blendPositions, count)); | ||||||
|  | 	} | ||||||
|  | 	Status SetBlendBellShape(REAL focus, REAL scale = 1.0f) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathGradientSigmaBlend( | ||||||
|  | 				(GpPathGradient*) nativeBrush, focus, scale)); | ||||||
|  | 	} | ||||||
|  | 	Status SetBlendTriangularShape(REAL focus, REAL scale = 1.0f) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathGradientLinearBlend( | ||||||
|  | 				(GpPathGradient*) nativeBrush, focus, scale)); | ||||||
|  | 	} | ||||||
|  | 	Status SetCenterColor(const Color& color) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathGradientCenterColor( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				color.GetValue())); | ||||||
|  | 	} | ||||||
|  | 	Status SetCenterPoint(const PointF& point) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathGradientCenterPoint( | ||||||
|  | 				(GpPathGradient*) nativeBrush, &point)); | ||||||
|  | 	} | ||||||
|  | 	Status SetCenterPoint(const Point& point) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathGradientCenterPointI( | ||||||
|  | 				(GpPathGradient*) nativeBrush, &point)); | ||||||
|  | 	} | ||||||
|  | 	Status SetFocusScales(REAL xScale, REAL yScale) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathGradientFocusScales( | ||||||
|  | 				(GpPathGradient*) nativeBrush, xScale, yScale)); | ||||||
|  | 	} | ||||||
|  | 	Status SetGammaCorrection(BOOL useGammaCorrection) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathGradientGammaCorrection( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				useGammaCorrection)); | ||||||
|  | 	} | ||||||
|  | 	//Status SetGraphicsPath(const GraphicsPath *path) | ||||||
|  | 	//{ | ||||||
|  | 	//	// TODO: implement PathGradientBrush::SetGraphicsPath | ||||||
|  | 	//	return updateStatus(NotImplemented); | ||||||
|  | 	//} | ||||||
|  | 	Status SetInterpolationColors(const Color *presetColors, | ||||||
|  | 			REAL *blendPositions, INT count) | ||||||
|  | 	{ | ||||||
|  | 		if (!presetColors || count <= 0) | ||||||
|  | 			return lastStatus = InvalidParameter; | ||||||
|  |  | ||||||
|  | 		ARGB *presetArgb = | ||||||
|  | 			(ARGB*) DllExports::GdipAlloc(count * sizeof(ARGB)); | ||||||
|  | 		if (!presetArgb) | ||||||
|  | 			return lastStatus = OutOfMemory; | ||||||
|  | 		for (INT i = 0; i < count; ++i) { | ||||||
|  | 			presetArgb[i] = presetColors[i].GetValue(); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		Status status = updateStatus(DllExports::GdipSetPathGradientPresetBlend( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				presetArgb, blendPositions, count)); | ||||||
|  | 		DllExports::GdipFree((void*) presetArgb); | ||||||
|  | 		return status; | ||||||
|  | 	} | ||||||
|  | 	Status SetSurroundColors(const Color *colors, INT *count) | ||||||
|  | 	{ | ||||||
|  | 		if (!colors || !count || *count <= 0) | ||||||
|  | 			return lastStatus = InvalidParameter; | ||||||
|  |  | ||||||
|  | 		ARGB *colorsArgb = | ||||||
|  | 			(ARGB*) DllExports::GdipAlloc(*count * sizeof(ARGB)); | ||||||
|  | 		if (!colorsArgb) | ||||||
|  | 			return lastStatus = OutOfMemory; | ||||||
|  | 		for (INT i = 0; i < *count; ++i) { | ||||||
|  | 			colorsArgb[i] = colors[i].GetValue(); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		Status status = updateStatus(DllExports::GdipSetPathGradientSurroundColorsWithCount( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				colorsArgb, count)); | ||||||
|  | 		DllExports::GdipFree((void*) colorsArgb); | ||||||
|  | 		return status; | ||||||
|  | 	} | ||||||
|  | 	Status SetTransform(const Matrix *matrix) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathGradientTransform( | ||||||
|  | 				(GpPathGradient*) nativeBrush, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status SetWrapMode(WrapMode wrapMode) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPathGradientWrapMode( | ||||||
|  | 				(GpPathGradient*) nativeBrush, wrapMode)); | ||||||
|  | 	} | ||||||
|  | 	Status TranslateTransform(REAL dx, REAL dy, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipTranslatePathGradientTransform( | ||||||
|  | 				(GpPathGradient*) nativeBrush, dx, dy, order)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	PathGradientBrush(GpBrush *brush, Status status): Brush(brush, status) {} | ||||||
|  | 	PathGradientBrush(const PathGradientBrush&); | ||||||
|  | 	PathGradientBrush& operator=(const PathGradientBrush&); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_PATH_H */ | ||||||
							
								
								
									
										338
									
								
								winsup/w32api/include/gdiplus/gdipluspen.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										338
									
								
								winsup/w32api/include/gdiplus/gdipluspen.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,338 @@ | |||||||
|  | /* | ||||||
|  |  * gdipluspen.h | ||||||
|  |  * | ||||||
|  |  * GDI+ Pen class | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_PEN_H | ||||||
|  | #define __GDIPLUS_PEN_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef __cplusplus | ||||||
|  | #error "A C++ compiler is required to include gdipluspen.h." | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | class Pen: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class Graphics; | ||||||
|  | 	friend class GraphicsPath; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	Pen(const Color& color, REAL width = 1.0f): | ||||||
|  | 		nativePen(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreatePen1( | ||||||
|  | 				color.GetValue(), width, UnitWorld, | ||||||
|  | 				&nativePen); | ||||||
|  | 	} | ||||||
|  | 	Pen(const Brush *brush, REAL width = 1.0f): | ||||||
|  | 		nativePen(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreatePen2( | ||||||
|  | 				brush ? brush->nativeBrush : NULL, | ||||||
|  | 				width, UnitWorld, &nativePen); | ||||||
|  | 	} | ||||||
|  | 	~Pen() | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipDeletePen(nativePen); | ||||||
|  | 	} | ||||||
|  | 	Pen* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpPen *clonePen = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipClonePen( | ||||||
|  | 				nativePen, &clonePen)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			Pen *result = new Pen(clonePen, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDeletePen(clonePen); | ||||||
|  | 				lastStatus = OutOfMemory; | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	PenAlignment GetAlignment() const | ||||||
|  | 	{ | ||||||
|  | 		PenAlignment result = PenAlignmentCenter; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenMode(nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	// TODO: implement Pen::GetBrush() | ||||||
|  | 	//Brush *GetBrush() const | ||||||
|  | 	//{ | ||||||
|  | 	//	// where is the pen brush allocated (static,member,new,other)? | ||||||
|  | 	//	// GdipGetPenBrushFill just returns a GpBrush* | ||||||
|  | 	//	updateStatus(NotImplemented); | ||||||
|  | 	//	return NULL; | ||||||
|  | 	//} | ||||||
|  | 	Status GetColor(Color *color) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPenColor( | ||||||
|  | 				nativePen, color ? &color->Value : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status GetCompoundArray(REAL *compoundArray, INT count) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPenCompoundArray( | ||||||
|  | 				nativePen, compoundArray, count)); | ||||||
|  | 	} | ||||||
|  | 	INT GetCompoundArrayCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenCompoundCount( | ||||||
|  | 				nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetCustomEndCap(CustomLineCap *customCap) const | ||||||
|  | 	{ | ||||||
|  | 		if (!customCap) return lastStatus = InvalidParameter; | ||||||
|  | 		// FIXME: do we need to call GdipDeleteCustomLineCap first? | ||||||
|  | 		return updateStatus(DllExports::GdipGetPenCustomEndCap( | ||||||
|  | 				nativePen, &customCap->nativeCustomLineCap)); | ||||||
|  | 	} | ||||||
|  | 	Status GetCustomStartCap(CustomLineCap *customCap) const | ||||||
|  | 	{ | ||||||
|  | 		if (!customCap) return lastStatus = InvalidParameter; | ||||||
|  | 		// FIXME: do we need to call GdipDeleteCustomLineCap first? | ||||||
|  | 		return updateStatus(DllExports::GdipGetPenCustomStartCap( | ||||||
|  | 				nativePen, &customCap->nativeCustomLineCap)); | ||||||
|  | 	} | ||||||
|  | 	DashCap GetDashCap() const | ||||||
|  | 	{ | ||||||
|  | 		DashCap result = DashCapFlat; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenDashCap197819( | ||||||
|  | 				nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	REAL GetDashOffset() const | ||||||
|  | 	{ | ||||||
|  | 		REAL result = 0.0f; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenDashOffset( | ||||||
|  | 				nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetDashPattern(REAL *dashArray, INT count) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPenDashArray( | ||||||
|  | 				nativePen, dashArray, count)); | ||||||
|  | 	} | ||||||
|  | 	INT GetDashPatternCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenDashCount( | ||||||
|  | 				nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	DashStyle GetDashStyle() const | ||||||
|  | 	{ | ||||||
|  | 		DashStyle result = DashStyleSolid; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenDashStyle( | ||||||
|  | 				nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	LineCap GetEndCap() const | ||||||
|  | 	{ | ||||||
|  | 		LineCap result = LineCapFlat; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenEndCap(nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		Status result = lastStatus; | ||||||
|  | 		lastStatus = Ok; | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	LineJoin GetLineJoin() const | ||||||
|  | 	{ | ||||||
|  | 		LineJoin result = LineJoinMiter; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenLineJoin( | ||||||
|  | 				nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	REAL GetMiterLimit() const | ||||||
|  | 	{ | ||||||
|  | 		REAL result = 10.0f; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenMiterLimit( | ||||||
|  | 				nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	PenType GetPenType() const | ||||||
|  | 	{ | ||||||
|  | 		PenType result = PenTypeUnknown; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenFillType( | ||||||
|  | 				nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	LineCap GetStartCap() const | ||||||
|  | 	{ | ||||||
|  | 		LineCap result = LineCapFlat; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenStartCap( | ||||||
|  | 				nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetTransform(Matrix *matrix) const | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetPenTransform( | ||||||
|  | 				nativePen, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL)); | ||||||
|  | 	} | ||||||
|  | 	REAL GetWidth() const | ||||||
|  | 	{ | ||||||
|  | 		REAL result = 1.0f; | ||||||
|  | 		updateStatus(DllExports::GdipGetPenWidth(nativePen, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status MultiplyTransform(const Matrix *matrix, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipMultiplyPenTransform( | ||||||
|  | 				nativePen, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL, order)); | ||||||
|  | 	} | ||||||
|  | 	Status ResetTransform() | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipResetPenTransform( | ||||||
|  | 				nativePen)); | ||||||
|  | 	} | ||||||
|  | 	Status RotateTransform(REAL angle, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipRotatePenTransform( | ||||||
|  | 				nativePen, angle, order)); | ||||||
|  | 	} | ||||||
|  | 	Status ScaleTransform(REAL sx, REAL sy, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipScalePenTransform( | ||||||
|  | 				nativePen, sx, sy, order)); | ||||||
|  | 	} | ||||||
|  | 	Status SetAlignment(PenAlignment penAlignment) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenMode( | ||||||
|  | 				nativePen, penAlignment)); | ||||||
|  | 	} | ||||||
|  | 	Status SetBrush(const Brush *brush) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenBrushFill( | ||||||
|  | 				nativePen, brush ? brush->nativeBrush : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status SetColor(const Color& color) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenColor( | ||||||
|  | 				nativePen, color.GetValue())); | ||||||
|  | 	} | ||||||
|  | 	Status SetCompoundArray(const REAL *compoundArray, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenCompoundArray( | ||||||
|  | 				nativePen, compoundArray, count)); | ||||||
|  | 	} | ||||||
|  | 	Status SetCustomEndCap(const CustomLineCap *customCap) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenCustomEndCap( | ||||||
|  | 				nativePen, | ||||||
|  | 				customCap ? customCap->nativeCustomLineCap : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status SetCustomStartCap(const CustomLineCap *customCap) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenCustomStartCap( | ||||||
|  | 				nativePen, | ||||||
|  | 				customCap ? customCap->nativeCustomLineCap : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status SetDashCap(DashCap dashCap) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenDashCap197819( | ||||||
|  | 				nativePen, dashCap)); | ||||||
|  | 	} | ||||||
|  | 	Status SetDashOffset(REAL dashOffset) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenDashOffset( | ||||||
|  | 				nativePen, dashOffset)); | ||||||
|  | 	} | ||||||
|  | 	Status SetDashPattern(const REAL *dashArray, INT count) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenDashArray( | ||||||
|  | 				nativePen, dashArray, count)); | ||||||
|  | 	} | ||||||
|  | 	Status SetDashStyle(DashStyle dashStyle) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenDashStyle( | ||||||
|  | 				nativePen, dashStyle)); | ||||||
|  | 	} | ||||||
|  | 	Status SetEndCap(LineCap endCap) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenEndCap( | ||||||
|  | 				nativePen, endCap)); | ||||||
|  | 	} | ||||||
|  | 	Status SetLineCap(LineCap startCap, LineCap endCap, DashCap dashCap) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenLineCap197819( | ||||||
|  | 				nativePen, startCap, endCap, dashCap)); | ||||||
|  | 	} | ||||||
|  | 	Status SetLineJoin(LineJoin lineJoin) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenLineJoin( | ||||||
|  | 				nativePen, lineJoin)); | ||||||
|  | 	} | ||||||
|  | 	Status SetMiterLimit(REAL miterLimit) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenMiterLimit( | ||||||
|  | 				nativePen, miterLimit)); | ||||||
|  | 	} | ||||||
|  | 	Status SetStartCap(LineCap startCap) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenStartCap( | ||||||
|  | 				nativePen, startCap)); | ||||||
|  | 	} | ||||||
|  | 	Status SetTransform(const Matrix *matrix) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenTransform( | ||||||
|  | 				nativePen, | ||||||
|  | 				matrix ? matrix->nativeMatrix : NULL)); | ||||||
|  | 	} | ||||||
|  | 	Status SetWidth(REAL width) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetPenWidth( | ||||||
|  | 				nativePen, width)); | ||||||
|  | 	} | ||||||
|  | 	Status TranslateTransform(REAL dx, REAL dy, | ||||||
|  | 			MatrixOrder order = MatrixOrderPrepend) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipTranslatePenTransform( | ||||||
|  | 				nativePen, dx, dy, order)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	Pen(GpPen *pen, Status status): nativePen(pen), lastStatus(status) {} | ||||||
|  | 	Pen(const Pen& pen); | ||||||
|  | 	Pen& operator=(const Pen&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpPen *nativePen; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_PEN_H */ | ||||||
							
								
								
									
										120
									
								
								winsup/w32api/include/gdiplus/gdipluspixelformats.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										120
									
								
								winsup/w32api/include/gdiplus/gdipluspixelformats.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,120 @@ | |||||||
|  | /* | ||||||
|  |  * gdipluspixelformats.h | ||||||
|  |  * | ||||||
|  |  * GDI+ pixel formats | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_PIXELFORMATS_H | ||||||
|  | #define __GDIPLUS_PIXELFORMATS_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef DWORD ARGB; | ||||||
|  | typedef INT PixelFormat; | ||||||
|  |  | ||||||
|  | #define PixelFormatIndexed ((PixelFormat) 0x00010000) | ||||||
|  | #define PixelFormatGDI ((PixelFormat) 0x00020000) | ||||||
|  | #define PixelFormatAlpha ((PixelFormat) 0x00040000) | ||||||
|  | #define PixelFormatPAlpha ((PixelFormat) 0x00080000) | ||||||
|  | #define PixelFormatExtended ((PixelFormat) 0x00100000) | ||||||
|  | #define PixelFormatCanonical ((PixelFormat) 0x00200000) | ||||||
|  | #define PixelFormatUndefined ((PixelFormat) 0) | ||||||
|  | #define PixelFormatDontCare ((PixelFormat) 0) | ||||||
|  | #define PixelFormat1bppIndexed ((PixelFormat) \ | ||||||
|  | 	(1 | (1<<8) | PixelFormatIndexed | PixelFormatGDI)) | ||||||
|  | #define PixelFormat4bppIndexed ((PixelFormat) \ | ||||||
|  | 	(2 | (4<<8) | PixelFormatIndexed | PixelFormatGDI)) | ||||||
|  | #define PixelFormat8bppIndexed ((PixelFormat) \ | ||||||
|  | 	(3 | (8<<8) | PixelFormatIndexed | PixelFormatGDI)) | ||||||
|  | #define PixelFormat16bppGrayScale ((PixelFormat) \ | ||||||
|  | 	(4 | (16<<8) | PixelFormatExtended)) | ||||||
|  | #define PixelFormat16bppRGB555 ((PixelFormat) \ | ||||||
|  | 	(5 | (16<<8) | PixelFormatGDI)) | ||||||
|  | #define PixelFormat16bppRGB565 ((PixelFormat) \ | ||||||
|  | 	(6 | (16<<8) | PixelFormatGDI)) | ||||||
|  | #define PixelFormat16bppARGB1555 ((PixelFormat) \ | ||||||
|  | 	(7 | (16<<8) | PixelFormatAlpha | PixelFormatGDI)) | ||||||
|  | #define PixelFormat24bppRGB ((PixelFormat) \ | ||||||
|  | 	(8 | (24<<8) | PixelFormatGDI)) | ||||||
|  | #define PixelFormat32bppRGB ((PixelFormat) \ | ||||||
|  | 	(9 | (32<<8) | PixelFormatGDI)) | ||||||
|  | #define PixelFormat32bppARGB ((PixelFormat) \ | ||||||
|  | 	(10 | (32<<8) | PixelFormatAlpha | PixelFormatGDI | PixelFormatCanonical)) | ||||||
|  | #define PixelFormat32bppPARGB ((PixelFormat) \ | ||||||
|  | 	(11 | (32<<8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatGDI)) | ||||||
|  | #define PixelFormat48bppRGB ((PixelFormat) \ | ||||||
|  | 	(12 | (48<<8) | PixelFormatExtended)) | ||||||
|  | #define PixelFormat64bppARGB ((PixelFormat) \ | ||||||
|  | 	(13 | (64<<8) | PixelFormatAlpha | PixelFormatCanonical | PixelFormatExtended)) | ||||||
|  | #define PixelFormat64bppPARGB ((PixelFormat) \ | ||||||
|  | 	(14 | (64<<8) | PixelFormatAlpha | PixelFormatPAlpha | PixelFormatExtended)) | ||||||
|  | #define PixelFormatMax ((PixelFormat) 15) | ||||||
|  |  | ||||||
|  | typedef enum PaletteFlags { | ||||||
|  | 	PaletteFlagsHasAlpha = 1, | ||||||
|  | 	PaletteFlagsGrayScale = 2, | ||||||
|  | 	PaletteFlagsHalftone = 4 | ||||||
|  | } PaletteFlags; | ||||||
|  |  | ||||||
|  | typedef enum PaletteType { | ||||||
|  | 	PaletteTypeCustom = 0, | ||||||
|  | 	PaletteTypeOptimal = 1, | ||||||
|  | 	PaletteTypeFixedBW = 2, | ||||||
|  | 	PaletteTypeFixedHalftone8 = 3, | ||||||
|  | 	PaletteTypeFixedHalftone27 = 4, | ||||||
|  | 	PaletteTypeFixedHalftone64 = 5, | ||||||
|  | 	PaletteTypeFixedHalftone125 = 6, | ||||||
|  | 	PaletteTypeFixedHalftone216 = 7, | ||||||
|  | 	PaletteTypeFixedHalftone252 = 8, | ||||||
|  | 	PaletteTypeFixedHalftone256 = 9  | ||||||
|  | } PaletteType; | ||||||
|  |  | ||||||
|  | typedef struct ColorPalette { | ||||||
|  | 	UINT Flags; | ||||||
|  | 	UINT Count; | ||||||
|  | 	ARGB Entries[1]; | ||||||
|  | } ColorPalette; | ||||||
|  |  | ||||||
|  | static __inline__ UINT GetPixelFormatSize(PixelFormat pixfmt) | ||||||
|  | { | ||||||
|  | 	return (((UINT) pixfmt) & 0xff00U) >> 8; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static __inline__ BOOL IsAlphaPixelFormat(PixelFormat pixfmt) | ||||||
|  | { | ||||||
|  | 	return (pixfmt & PixelFormatAlpha) != 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static __inline__ BOOL IsCanonicalPixelFormat(PixelFormat pixfmt) | ||||||
|  | { | ||||||
|  | 	return (pixfmt & PixelFormatCanonical) != 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static __inline__ BOOL IsExtendedPixelFormat(PixelFormat pixfmt) | ||||||
|  | { | ||||||
|  | 	return (pixfmt & PixelFormatExtended) != 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | static __inline__ BOOL IsIndexedPixelFormat(PixelFormat pixfmt) | ||||||
|  | { | ||||||
|  | 	return (pixfmt & PixelFormatIndexed) != 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_PIXELFORMATS_H */ | ||||||
							
								
								
									
										251
									
								
								winsup/w32api/include/gdiplus/gdiplusstringformat.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										251
									
								
								winsup/w32api/include/gdiplus/gdiplusstringformat.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,251 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplusstringformat.h | ||||||
|  |  * | ||||||
|  |  * GDI+ StringFormat class | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_STRINGFORMAT_H | ||||||
|  | #define __GDIPLUS_STRINGFORMAT_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef __cplusplus | ||||||
|  | #error "A C++ compiler is required to include gdiplusstringformat.h." | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | class StringFormat: public GdiplusBase | ||||||
|  | { | ||||||
|  | 	friend class Graphics; | ||||||
|  | 	friend class GraphicsPath; | ||||||
|  |  | ||||||
|  | public: | ||||||
|  | 	static const StringFormat* GenericDefault(); | ||||||
|  | 	static const StringFormat* GenericTypographic(); | ||||||
|  |  | ||||||
|  | 	StringFormat(INT formatFlags = 0, LANGID language = LANG_NEUTRAL): | ||||||
|  | 			nativeStringFormat(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCreateStringFormat( | ||||||
|  | 				formatFlags, language, &nativeStringFormat); | ||||||
|  | 	} | ||||||
|  | 	StringFormat(const StringFormat *format): | ||||||
|  | 			nativeStringFormat(NULL), lastStatus(Ok) | ||||||
|  | 	{ | ||||||
|  | 		lastStatus = DllExports::GdipCloneStringFormat( | ||||||
|  | 				format ? format->nativeStringFormat : NULL, | ||||||
|  | 				&nativeStringFormat); | ||||||
|  | 	} | ||||||
|  | 	~StringFormat() | ||||||
|  | 	{ | ||||||
|  | 		DllExports::GdipDeleteStringFormat(nativeStringFormat); | ||||||
|  | 	} | ||||||
|  | 	StringFormat* Clone() const | ||||||
|  | 	{ | ||||||
|  | 		GpStringFormat *cloneStringFormat = NULL; | ||||||
|  | 		Status status = updateStatus(DllExports::GdipCloneStringFormat( | ||||||
|  | 				nativeStringFormat, &cloneStringFormat)); | ||||||
|  | 		if (status == Ok) { | ||||||
|  | 			StringFormat *result = new StringFormat( | ||||||
|  | 					cloneStringFormat, lastStatus); | ||||||
|  | 			if (!result) { | ||||||
|  | 				DllExports::GdipDeleteStringFormat(cloneStringFormat); | ||||||
|  | 				lastStatus = OutOfMemory; | ||||||
|  | 			} | ||||||
|  | 			return result; | ||||||
|  | 		} else { | ||||||
|  | 			return NULL; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	StringAlignment GetAlignment() const | ||||||
|  | 	{ | ||||||
|  | 		StringAlignment result = StringAlignmentNear; | ||||||
|  | 		updateStatus(DllExports::GdipGetStringFormatAlign( | ||||||
|  | 				nativeStringFormat, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	LANGID GetDigitSubstitutionLanguage() const | ||||||
|  | 	{ | ||||||
|  | 		LANGID result = 0; | ||||||
|  | 		StringDigitSubstitute method; | ||||||
|  | 		updateStatus(DllExports::GdipGetStringFormatDigitSubstitution( | ||||||
|  | 				nativeStringFormat, &result, &method)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	StringDigitSubstitute GetDigitSubstitutionMethod() const | ||||||
|  | 	{ | ||||||
|  | 		LANGID language; | ||||||
|  | 		StringDigitSubstitute result = StringDigitSubstituteUser; | ||||||
|  | 		updateStatus(DllExports::GdipGetStringFormatDigitSubstitution( | ||||||
|  | 				nativeStringFormat, &language, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT GetFormatFlags() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetStringFormatFlags( | ||||||
|  | 				nativeStringFormat, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	HotkeyPrefix GetHotkeyPrefix() const | ||||||
|  | 	{ | ||||||
|  | 		HotkeyPrefix result = HotkeyPrefixNone; | ||||||
|  | 		updateStatus(DllExports::GdipGetStringFormatHotkeyPrefix( | ||||||
|  | 				nativeStringFormat, (INT*) &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetLastStatus() const | ||||||
|  | 	{ | ||||||
|  | 		Status result = lastStatus; | ||||||
|  | 		lastStatus = Ok; | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	StringAlignment GetLineAlignment() const | ||||||
|  | 	{ | ||||||
|  | 		StringAlignment result = StringAlignmentNear; | ||||||
|  | 		updateStatus(DllExports::GdipGetStringFormatLineAlign( | ||||||
|  | 				nativeStringFormat, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT GetMeasurableCharacterRangeCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetStringFormatMeasurableCharacterRangeCount( | ||||||
|  | 				nativeStringFormat, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	INT GetTabStopCount() const | ||||||
|  | 	{ | ||||||
|  | 		INT result = 0; | ||||||
|  | 		updateStatus(DllExports::GdipGetStringFormatTabStopCount( | ||||||
|  | 				nativeStringFormat, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status GetTabStops(INT count, REAL *firstTabOffset, REAL *tabStops) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipGetStringFormatTabStops( | ||||||
|  | 				nativeStringFormat, count, | ||||||
|  | 				firstTabOffset, tabStops)); | ||||||
|  | 	} | ||||||
|  | 	StringTrimming GetTrimming() const | ||||||
|  | 	{ | ||||||
|  | 		StringTrimming result = StringTrimmingNone; | ||||||
|  | 		updateStatus(DllExports::GdipGetStringFormatTrimming( | ||||||
|  | 				nativeStringFormat, &result)); | ||||||
|  | 		return result; | ||||||
|  | 	} | ||||||
|  | 	Status SetAlignment(StringAlignment align) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetStringFormatAlign( | ||||||
|  | 				nativeStringFormat, align)); | ||||||
|  | 	} | ||||||
|  | 	Status SetDigitSubstitution(LANGID language, | ||||||
|  | 			StringDigitSubstitute substitute) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetStringFormatDigitSubstitution( | ||||||
|  | 				nativeStringFormat, language, substitute)); | ||||||
|  | 	} | ||||||
|  | 	Status SetFormatFlags(INT flags) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetStringFormatFlags( | ||||||
|  | 				nativeStringFormat, flags)); | ||||||
|  | 	} | ||||||
|  | 	Status SetHotkeyPrefix(HotkeyPrefix hotkeyPrefix) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetStringFormatHotkeyPrefix( | ||||||
|  | 				nativeStringFormat, (INT) hotkeyPrefix)); | ||||||
|  | 	} | ||||||
|  | 	Status SetLineAlignment(StringAlignment align) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetStringFormatLineAlign( | ||||||
|  | 				nativeStringFormat, align)); | ||||||
|  | 	} | ||||||
|  | 	Status SetMeasurableCharacterRanges(INT rangeCount, | ||||||
|  | 			const CharacterRange *ranges) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetStringFormatMeasurableCharacterRanges( | ||||||
|  | 				nativeStringFormat, rangeCount, ranges)); | ||||||
|  | 	} | ||||||
|  | 	Status SetTabStops(REAL firstTabOffset, INT count, const REAL *tabStops) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetStringFormatTabStops( | ||||||
|  | 				nativeStringFormat, firstTabOffset, | ||||||
|  | 				count, tabStops)); | ||||||
|  | 	} | ||||||
|  | 	Status SetTrimming(StringTrimming trimming) | ||||||
|  | 	{ | ||||||
|  | 		return updateStatus(DllExports::GdipSetStringFormatTrimming( | ||||||
|  | 				nativeStringFormat, trimming)); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | private: | ||||||
|  | 	StringFormat(GpStringFormat *stringFormat, Status status): | ||||||
|  | 		nativeStringFormat(stringFormat), lastStatus(status) {} | ||||||
|  | 	StringFormat(const StringFormat&); | ||||||
|  | 	StringFormat& operator=(const StringFormat&); | ||||||
|  |  | ||||||
|  | 	Status updateStatus(Status newStatus) const | ||||||
|  | 	{ | ||||||
|  | 		if (newStatus != Ok) lastStatus = newStatus; | ||||||
|  | 		return newStatus; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	GpStringFormat *nativeStringFormat; | ||||||
|  | 	mutable Status lastStatus; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | // FIXME: do StringFormat::GenericDefault() et al. need to be thread safe? | ||||||
|  | // FIXME: maybe put this in gdiplus.c? | ||||||
|  |  | ||||||
|  | extern "C" void *_GdipStringFormatCachedGenericDefault; | ||||||
|  | extern "C" void *_GdipStringFormatCachedGenericTypographic; | ||||||
|  |  | ||||||
|  | __inline__ const StringFormat* StringFormat::GenericDefault() | ||||||
|  | { | ||||||
|  | 	if (!_GdipStringFormatCachedGenericDefault) { | ||||||
|  | 		GpStringFormat *nativeStringFormat = 0; | ||||||
|  | 		Status status = DllExports::GdipStringFormatGetGenericDefault( | ||||||
|  | 				&nativeStringFormat); | ||||||
|  | 		if (status == Ok && nativeStringFormat) { | ||||||
|  | 			_GdipStringFormatCachedGenericDefault = (void*) | ||||||
|  | 				new StringFormat(nativeStringFormat, Ok); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return (StringFormat*) _GdipStringFormatCachedGenericDefault; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | __inline__ const StringFormat* StringFormat::GenericTypographic() | ||||||
|  | { | ||||||
|  | 	if (!_GdipStringFormatCachedGenericTypographic) { | ||||||
|  | 		GpStringFormat *nativeStringFormat = 0; | ||||||
|  | 		Status status = DllExports::GdipStringFormatGetGenericTypographic( | ||||||
|  | 				&nativeStringFormat); | ||||||
|  | 		if (status == Ok && nativeStringFormat) { | ||||||
|  | 			_GdipStringFormatCachedGenericTypographic = (void*) | ||||||
|  | 				new StringFormat(nativeStringFormat, Ok); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return (StringFormat*) _GdipStringFormatCachedGenericTypographic; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_STRINGFORMAT_H */ | ||||||
							
								
								
									
										456
									
								
								winsup/w32api/include/gdiplus/gdiplustypes.h
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										456
									
								
								winsup/w32api/include/gdiplus/gdiplustypes.h
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,456 @@ | |||||||
|  | /* | ||||||
|  |  * gdiplustypes.h | ||||||
|  |  * | ||||||
|  |  * GDI+ basic type declarations | ||||||
|  |  * | ||||||
|  |  * This file is part of the w32api package. | ||||||
|  |  * | ||||||
|  |  * Contributors: | ||||||
|  |  *   Created by Markus Koenig <markus@stber-koenig.de> | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS NOT COPYRIGHTED | ||||||
|  |  * | ||||||
|  |  * This source code is offered for use in the public domain. You may | ||||||
|  |  * use, modify or distribute it freely. | ||||||
|  |  * | ||||||
|  |  * This code is distributed in the hope that it will be useful but | ||||||
|  |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | ||||||
|  |  * DISCLAIMED. This includes but is not limited to warranties of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef __GDIPLUS_TYPES_H | ||||||
|  | #define __GDIPLUS_TYPES_H | ||||||
|  | #if __GNUC__ >=3 | ||||||
|  | #pragma GCC system_header | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #define WINGDIPAPI __stdcall | ||||||
|  | #define GDIPCONST const | ||||||
|  |  | ||||||
|  | typedef enum GpStatus { | ||||||
|  | 	Ok = 0, | ||||||
|  | 	GenericError = 1, | ||||||
|  | 	InvalidParameter = 2, | ||||||
|  | 	OutOfMemory = 3, | ||||||
|  | 	ObjectBusy = 4, | ||||||
|  | 	InsufficientBuffer = 5, | ||||||
|  | 	NotImplemented = 6, | ||||||
|  | 	Win32Error = 7, | ||||||
|  | 	WrongState = 8, | ||||||
|  | 	Aborted = 9, | ||||||
|  | 	FileNotFound = 10, | ||||||
|  | 	ValueOverflow = 11, | ||||||
|  | 	AccessDenied = 12, | ||||||
|  | 	UnknownImageFormat = 13, | ||||||
|  | 	FontFamilyNotFound = 14, | ||||||
|  | 	FontStyleNotFound = 15, | ||||||
|  | 	NotTrueTypeFont = 16, | ||||||
|  | 	UnsupportedGdiplusVersion = 17, | ||||||
|  | 	GdiplusNotInitialized = 18, | ||||||
|  | 	PropertyNotFound = 19, | ||||||
|  | 	PropertyNotSupported = 20, | ||||||
|  | 	ProfileNotFound = 21 | ||||||
|  | } GpStatus; | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | typedef GpStatus Status; | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef struct Size { | ||||||
|  | 	INT Width; | ||||||
|  | 	INT Height; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	Size(): Width(0), Height(0) {} | ||||||
|  | 	Size(INT width, INT height): Width(width), Height(height) {} | ||||||
|  | 	Size(const Size& size): Width(size.Width), Height(size.Height) {} | ||||||
|  | 	 | ||||||
|  | 	BOOL Empty() const { | ||||||
|  | 		return Width == 0 && Height == 0; | ||||||
|  | 	} | ||||||
|  | 	BOOL Equals(const Size& size) const { | ||||||
|  | 		return Width == size.Width && Height == size.Height; | ||||||
|  | 	} | ||||||
|  | 	Size operator+(const Size& size) const { | ||||||
|  | 		return Size(Width + size.Width, Height + size.Height); | ||||||
|  | 	} | ||||||
|  | 	Size operator-(const Size& size) const { | ||||||
|  | 		return Size(Width - size.Width, Height - size.Height); | ||||||
|  | 	} | ||||||
|  | 	#endif /* __cplusplus */ | ||||||
|  | } Size; | ||||||
|  |  | ||||||
|  | typedef struct SizeF { | ||||||
|  | 	REAL Width; | ||||||
|  | 	REAL Height; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	SizeF(): Width(0.0f), Height(0.0f) {} | ||||||
|  | 	SizeF(REAL width, REAL height): Width(width), Height(height) {} | ||||||
|  | 	SizeF(const SizeF& size): Width(size.Width), Height(size.Height) {} | ||||||
|  | 	 | ||||||
|  | 	BOOL Empty() const { | ||||||
|  | 		return Width == 0.0f && Height == 0.0f; | ||||||
|  | 	} | ||||||
|  | 	BOOL Equals(const SizeF& size) const { | ||||||
|  | 		return Width == size.Width && Height == size.Height; | ||||||
|  | 	} | ||||||
|  | 	SizeF operator+(const SizeF& size) const { | ||||||
|  | 		return SizeF(Width + size.Width, Height + size.Height); | ||||||
|  | 	} | ||||||
|  | 	SizeF operator-(const SizeF& size) const { | ||||||
|  | 		return SizeF(Width - size.Width, Height - size.Height); | ||||||
|  | 	} | ||||||
|  | 	#endif /* __cplusplus */ | ||||||
|  | } SizeF; | ||||||
|  |  | ||||||
|  | typedef struct Point { | ||||||
|  | 	INT X; | ||||||
|  | 	INT Y; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	Point(): X(0), Y(0) {} | ||||||
|  | 	Point(INT x, INT y): X(x), Y(y) {} | ||||||
|  | 	Point(const Point& point): X(point.X), Y(point.Y) {} | ||||||
|  | 	Point(const Size& size): X(size.Width), Y(size.Height) {} | ||||||
|  | 	 | ||||||
|  | 	BOOL Equals(const Point& point) const { | ||||||
|  | 		return X == point.X && Y == point.Y; | ||||||
|  | 	} | ||||||
|  | 	Point operator+(const Point& point) const { | ||||||
|  | 		return Point(X + point.X, Y + point.Y); | ||||||
|  | 	} | ||||||
|  | 	Point operator-(const Point& point) const { | ||||||
|  | 		return Point(X - point.X, Y - point.Y); | ||||||
|  | 	} | ||||||
|  | 	#endif /* __cplusplus */ | ||||||
|  | } Point; | ||||||
|  |  | ||||||
|  | typedef struct PointF { | ||||||
|  | 	REAL X; | ||||||
|  | 	REAL Y; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	PointF(): X(0.0f), Y(0.0f) {} | ||||||
|  | 	PointF(REAL x, REAL y): X(x), Y(y) {} | ||||||
|  | 	PointF(const PointF& point): X(point.X), Y(point.Y) {} | ||||||
|  | 	PointF(const SizeF& size): X(size.Width), Y(size.Height) {} | ||||||
|  | 	 | ||||||
|  | 	BOOL Equals(const PointF& point) const { | ||||||
|  | 		return X == point.X && Y == point.Y; | ||||||
|  | 	} | ||||||
|  | 	PointF operator+(const PointF& point) const { | ||||||
|  | 		return PointF(X + point.X, Y + point.Y); | ||||||
|  | 	} | ||||||
|  | 	PointF operator-(const PointF& point) const { | ||||||
|  | 		return PointF(X - point.X, Y - point.Y); | ||||||
|  | 	} | ||||||
|  | 	#endif /* __cplusplus */ | ||||||
|  | } PointF; | ||||||
|  |  | ||||||
|  | typedef struct Rect { | ||||||
|  | 	INT X; | ||||||
|  | 	INT Y; | ||||||
|  | 	INT Width; | ||||||
|  | 	INT Height; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	Rect(): X(0), Y(0), Width(0), Height(0) {} | ||||||
|  | 	Rect(const Point& location, const Size& size): | ||||||
|  | 		X(location.X), Y(location.Y), | ||||||
|  | 		Width(size.Width), Height(size.Height) {} | ||||||
|  | 	Rect(INT x, INT y, INT width, INT height): | ||||||
|  | 		X(x), Y(y), Width(width), Height(height) {} | ||||||
|  | 	 | ||||||
|  | 	Rect* Clone() const { | ||||||
|  | 		return new Rect(X, Y, Width, Height); | ||||||
|  | 	} | ||||||
|  | 	BOOL Contains(INT x, INT y) const { | ||||||
|  | 		return X <= x && Y <= y && x < X+Width && y < Y+Height; | ||||||
|  | 	} | ||||||
|  | 	BOOL Contains(const Point& point) const { | ||||||
|  | 		return Contains(point.X, point.Y); | ||||||
|  | 	} | ||||||
|  | 	BOOL Contains(const Rect& rect) const { | ||||||
|  | 		return X <= rect.X && Y <= rect.Y | ||||||
|  | 			&& rect.X+rect.Width <= X+Width | ||||||
|  | 			&& rect.Y+rect.Height <= Y+Height; | ||||||
|  | 	} | ||||||
|  | 	BOOL Equals(const Rect& rect) const { | ||||||
|  | 		return X == rect.X && Y == rect.Y | ||||||
|  | 			&& Width == rect.Width && Height == rect.Height; | ||||||
|  | 	} | ||||||
|  | 	INT GetBottom() const { | ||||||
|  | 		return Y+Height; | ||||||
|  | 	} | ||||||
|  | 	VOID GetBounds(Rect *rect) const { | ||||||
|  | 		if (rect != NULL) { | ||||||
|  | 			rect->X = X; | ||||||
|  | 			rect->Y = Y; | ||||||
|  | 			rect->Width = Width; | ||||||
|  | 			rect->Height = Height; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	INT GetLeft() const { | ||||||
|  | 		return X; | ||||||
|  | 	} | ||||||
|  | 	VOID GetLocation(Point *point) const { | ||||||
|  | 		if (point != NULL) { | ||||||
|  | 			point->X = X; | ||||||
|  | 			point->Y = Y; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	INT GetRight() const { | ||||||
|  | 		return X+Width; | ||||||
|  | 	} | ||||||
|  | 	VOID GetSize(Size *size) const { | ||||||
|  | 		if (size != NULL) { | ||||||
|  | 			size->Width = Width; | ||||||
|  | 			size->Height = Height; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	INT GetTop() const { | ||||||
|  | 		return Y; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsEmptyArea() const { | ||||||
|  | 		return Width <= 0 || Height <= 0; | ||||||
|  | 	} | ||||||
|  | 	VOID Inflate(INT dx, INT dy) { | ||||||
|  | 		X -= dx; | ||||||
|  | 		Y -= dy; | ||||||
|  | 		Width += 2*dx; | ||||||
|  | 		Height += 2*dy; | ||||||
|  | 	} | ||||||
|  | 	VOID Inflate(const Point& point) { | ||||||
|  | 		Inflate(point.X, point.Y); | ||||||
|  | 	} | ||||||
|  | 	static BOOL Intersect(Rect& c, const Rect& a, const Rect& b) { | ||||||
|  | 		INT intersectLeft   = (a.X < b.X) ? b.X : a.X; | ||||||
|  | 		INT intersectTop    = (a.Y < b.Y) ? b.Y : a.Y;  | ||||||
|  | 		INT intersectRight  = (a.GetRight() < b.GetRight()) | ||||||
|  | 					? a.GetRight() : b.GetRight(); | ||||||
|  | 		INT intersectBottom = (a.GetBottom() < b.GetBottom()) | ||||||
|  | 					? a.GetBottom() : b.GetBottom(); | ||||||
|  | 		c.X = intersectLeft; | ||||||
|  | 		c.Y = intersectTop; | ||||||
|  | 		c.Width = intersectRight - intersectLeft; | ||||||
|  | 		c.Height = intersectBottom - intersectTop; | ||||||
|  | 		return !c.IsEmptyArea();   | ||||||
|  | 	} | ||||||
|  | 	BOOL Intersect(const Rect& rect) { | ||||||
|  | 		return Intersect(*this, *this, rect); | ||||||
|  | 	} | ||||||
|  | 	BOOL IntersectsWith(const Rect& rc) const { | ||||||
|  | 		INT intersectLeft   = (X < rc.X) ? rc.X : X; | ||||||
|  | 		INT intersectTop    = (Y < rc.Y) ? rc.Y : Y;  | ||||||
|  | 		INT intersectRight  = (GetRight() < rc.GetRight()) | ||||||
|  | 					? GetRight() : rc.GetRight(); | ||||||
|  | 		INT intersectBottom = (GetBottom() < rc.GetBottom()) | ||||||
|  | 					? GetBottom() : rc.GetBottom(); | ||||||
|  | 		return intersectLeft < intersectRight | ||||||
|  | 			&& intersectTop < intersectBottom; | ||||||
|  | 	} | ||||||
|  | 	VOID Offset(INT dx, INT dy) { | ||||||
|  | 		X += dx; | ||||||
|  | 		Y += dy; | ||||||
|  | 	} | ||||||
|  | 	VOID Offset(const Point& point) { | ||||||
|  | 		Offset(point.X, point.Y); | ||||||
|  | 	} | ||||||
|  | 	static BOOL Union(Rect& c, const Rect& a, const Rect& b) { | ||||||
|  | 		INT unionLeft   = (a.X < b.X) ? a.X : b.X; | ||||||
|  | 		INT unionTop    = (a.Y < b.Y) ? a.Y : b.Y;  | ||||||
|  | 		INT unionRight  = (a.GetRight() < b.GetRight()) | ||||||
|  | 					? b.GetRight() : a.GetRight(); | ||||||
|  | 		INT unionBottom = (a.GetBottom() < b.GetBottom()) | ||||||
|  | 					? b.GetBottom() : a.GetBottom(); | ||||||
|  | 		c.X = unionLeft; | ||||||
|  | 		c.Y = unionTop; | ||||||
|  | 		c.Width = unionRight - unionLeft; | ||||||
|  | 		c.Height = unionBottom - unionTop; | ||||||
|  | 		return !c.IsEmptyArea(); | ||||||
|  | 	} | ||||||
|  | 	#endif /* __cplusplus */ | ||||||
|  | } Rect; | ||||||
|  |  | ||||||
|  | typedef struct RectF { | ||||||
|  | 	REAL X; | ||||||
|  | 	REAL Y; | ||||||
|  | 	REAL Width; | ||||||
|  | 	REAL Height; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	RectF(): X(0.0f), Y(0.0f), Width(0.0f), Height(0.0f) {} | ||||||
|  | 	RectF(const PointF& location, const SizeF& size): | ||||||
|  | 		X(location.X), Y(location.Y), | ||||||
|  | 		Width(size.Width), Height(size.Height) {} | ||||||
|  | 	RectF(REAL x, REAL y, REAL width, REAL height): | ||||||
|  | 		X(x), Y(y), Width(width), Height(height) {} | ||||||
|  | 	 | ||||||
|  | 	RectF* Clone() const { | ||||||
|  | 		return new RectF(X, Y, Width, Height); | ||||||
|  | 	} | ||||||
|  | 	BOOL Contains(REAL x, REAL y) const { | ||||||
|  | 		return X <= x && Y <= y && x < X+Width && y < Y+Height; | ||||||
|  | 	} | ||||||
|  | 	BOOL Contains(const PointF& point) const { | ||||||
|  | 		return Contains(point.X, point.Y); | ||||||
|  | 	} | ||||||
|  | 	BOOL Contains(const RectF& rect) const { | ||||||
|  | 		return X <= rect.X && Y <= rect.Y | ||||||
|  | 			&& rect.X+rect.Width <= X+Width | ||||||
|  | 			&& rect.Y+rect.Height <= Y+Height; | ||||||
|  | 	} | ||||||
|  | 	BOOL Equals(const RectF& rect) const { | ||||||
|  | 		return X == rect.X && Y == rect.Y | ||||||
|  | 			&& Width == rect.Width && Height == rect.Height; | ||||||
|  | 	} | ||||||
|  | 	REAL GetBottom() const { | ||||||
|  | 		return Y+Height; | ||||||
|  | 	} | ||||||
|  | 	VOID GetBounds(RectF *rect) const { | ||||||
|  | 		if (rect != NULL) { | ||||||
|  | 			rect->X = X; | ||||||
|  | 			rect->Y = Y; | ||||||
|  | 			rect->Width = Width; | ||||||
|  | 			rect->Height = Height; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	REAL GetLeft() const { | ||||||
|  | 		return X; | ||||||
|  | 	} | ||||||
|  | 	VOID GetLocation(PointF *point) const { | ||||||
|  | 		if (point != NULL) { | ||||||
|  | 			point->X = X; | ||||||
|  | 			point->Y = Y; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	REAL GetRight() const { | ||||||
|  | 		return X+Width; | ||||||
|  | 	} | ||||||
|  | 	VOID GetSize(SizeF *size) const { | ||||||
|  | 		if (size != NULL) { | ||||||
|  | 			size->Width = Width; | ||||||
|  | 			size->Height = Height; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	REAL GetTop() const { | ||||||
|  | 		return Y; | ||||||
|  | 	} | ||||||
|  | 	BOOL IsEmptyArea() const { | ||||||
|  | 		return Width <= 0.0f || Height <= 0.0f; | ||||||
|  | 	} | ||||||
|  | 	VOID Inflate(REAL dx, REAL dy) { | ||||||
|  | 		X -= dx; | ||||||
|  | 		Y -= dy; | ||||||
|  | 		Width += 2*dx; | ||||||
|  | 		Height += 2*dy; | ||||||
|  | 	} | ||||||
|  | 	VOID Inflate(const PointF& point) { | ||||||
|  | 		Inflate(point.X, point.Y); | ||||||
|  | 	} | ||||||
|  | 	static BOOL Intersect(RectF& c, const RectF& a, const RectF& b) { | ||||||
|  | 		INT intersectLeft   = (a.X < b.X) ? b.X : a.X; | ||||||
|  | 		INT intersectTop    = (a.Y < b.Y) ? b.Y : a.Y;  | ||||||
|  | 		INT intersectRight  = (a.GetRight() < b.GetRight()) | ||||||
|  | 					? a.GetRight() : b.GetRight(); | ||||||
|  | 		INT intersectBottom = (a.GetBottom() < b.GetBottom()) | ||||||
|  | 					? a.GetBottom() : b.GetBottom(); | ||||||
|  | 		c.X = intersectLeft; | ||||||
|  | 		c.Y = intersectTop; | ||||||
|  | 		c.Width = intersectRight - intersectLeft; | ||||||
|  | 		c.Height = intersectBottom - intersectTop; | ||||||
|  | 		return !c.IsEmptyArea();   | ||||||
|  | 	} | ||||||
|  | 	BOOL Intersect(const RectF& rect) { | ||||||
|  | 		return Intersect(*this, *this, rect); | ||||||
|  | 	} | ||||||
|  | 	BOOL IntersectsWith(const RectF& rc) const { | ||||||
|  | 		INT intersectLeft   = (X < rc.X) ? rc.X : X; | ||||||
|  | 		INT intersectTop    = (Y < rc.Y) ? rc.Y : Y;  | ||||||
|  | 		INT intersectRight  = (GetRight() < rc.GetRight()) | ||||||
|  | 					? GetRight() : rc.GetRight(); | ||||||
|  | 		INT intersectBottom = (GetBottom() < rc.GetBottom()) | ||||||
|  | 					? GetBottom() : rc.GetBottom(); | ||||||
|  | 		return intersectLeft < intersectRight | ||||||
|  | 			&& intersectTop < intersectBottom; | ||||||
|  | 	} | ||||||
|  | 	VOID Offset(REAL dx, REAL dy) { | ||||||
|  | 		X += dx; | ||||||
|  | 		Y += dy; | ||||||
|  | 	} | ||||||
|  | 	VOID Offset(const PointF& point) { | ||||||
|  | 		Offset(point.X, point.Y); | ||||||
|  | 	} | ||||||
|  | 	static BOOL Union(RectF& c, const RectF& a, const RectF& b) { | ||||||
|  | 		INT unionLeft   = (a.X < b.X) ? a.X : b.X; | ||||||
|  | 		INT unionTop    = (a.Y < b.Y) ? a.Y : b.Y;  | ||||||
|  | 		INT unionRight  = (a.GetRight() < b.GetRight()) | ||||||
|  | 					? b.GetRight() : a.GetRight(); | ||||||
|  | 		INT unionBottom = (a.GetBottom() < b.GetBottom()) | ||||||
|  | 					? b.GetBottom() : a.GetBottom(); | ||||||
|  | 		c.X = unionLeft; | ||||||
|  | 		c.Y = unionTop; | ||||||
|  | 		c.Width = unionRight - unionLeft; | ||||||
|  | 		c.Height = unionBottom - unionTop; | ||||||
|  | 		return !c.IsEmptyArea(); | ||||||
|  | 	} | ||||||
|  | 	#endif /* __cplusplus */ | ||||||
|  | } RectF; | ||||||
|  |  | ||||||
|  | /* FIXME: Are descendants of this class, when compiled with g++, | ||||||
|  |    binary compatible with MSVC++ code (especially GDIPLUS.DLL of course)? */ | ||||||
|  | #ifdef __cplusplus | ||||||
|  | struct GdiplusAbort { | ||||||
|  | 	virtual HRESULT __stdcall Abort(void) {} | ||||||
|  | }; | ||||||
|  | #else | ||||||
|  | typedef struct GdiplusAbort GdiplusAbort;  /* incomplete type */ | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | typedef struct CharacterRange { | ||||||
|  | 	INT First; | ||||||
|  | 	INT Length; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	CharacterRange(): First(0), Length(0) {} | ||||||
|  | 	CharacterRange(INT first, INT length): First(first), Length(length) {} | ||||||
|  | 	CharacterRange& operator=(const CharacterRange& rhs) { | ||||||
|  | 		/* This gracefully handles self-assignment */ | ||||||
|  | 		First = rhs.First; | ||||||
|  | 		Length = rhs.Length; | ||||||
|  | 		return *this; | ||||||
|  | 	} | ||||||
|  | 	#endif /* __cplusplus */ | ||||||
|  | } CharacterRange; | ||||||
|  |  | ||||||
|  | typedef struct PathData { | ||||||
|  | 	INT Count; | ||||||
|  | 	PointF *Points; | ||||||
|  | 	BYTE *Types; | ||||||
|  |  | ||||||
|  | 	#ifdef __cplusplus | ||||||
|  | 	friend class GraphicsPath; | ||||||
|  |  | ||||||
|  | 	PathData(): Count(0), Points(NULL), Types(NULL) {} | ||||||
|  | 	~PathData() { | ||||||
|  | 		FreeArrays(); | ||||||
|  | 	} | ||||||
|  | private: | ||||||
|  | 	/* used by GraphicsPath::GetPathData, defined in gdipluspath.h */ | ||||||
|  | 	Status AllocateArrays(INT capacity); | ||||||
|  | 	VOID FreeArrays(); | ||||||
|  | 	#endif /* __cplusplus */ | ||||||
|  | } PathData; | ||||||
|  |  | ||||||
|  | /* Callback function types */ | ||||||
|  | /* FIXME: need a correct definition for these function pointer types */ | ||||||
|  | typedef void *DebugEventProc; | ||||||
|  | typedef BOOL CALLBACK (*EnumerateMetafileProc)(EmfPlusRecordType,UINT,UINT,const BYTE*,VOID*); | ||||||
|  | typedef void *DrawImageAbort; | ||||||
|  | typedef void *GetThumbnailImageAbort; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #endif /* __GDIPLUS_TYPES_H */ | ||||||
| @@ -112,6 +112,7 @@ FLAGS_TO_PASS = \ | |||||||
|  |  | ||||||
| HEADERS = $(notdir $(wildcard $(srcdir)/../include/*.h)) | HEADERS = $(notdir $(wildcard $(srcdir)/../include/*.h)) | ||||||
| GL_HEADERS = $(notdir $(wildcard $(srcdir)/../include/GL/*.h)) | GL_HEADERS = $(notdir $(wildcard $(srcdir)/../include/GL/*.h)) | ||||||
|  | GDIPLUS_HEADERS = $(notdir $(wildcard $(srcdir)/../include/gdiplus/*.h)) | ||||||
|  |  | ||||||
| # libraries | # libraries | ||||||
|  |  | ||||||
| @@ -127,7 +128,7 @@ UUID_OBJS = mshtml-uuid.o msxml-uuid.o unknwn-uuid.o \ | |||||||
| 			exdisp-uuid.o mlang-uuid.o objidl-uuid.o cguid-uuid.o \ | 			exdisp-uuid.o mlang-uuid.o objidl-uuid.o cguid-uuid.o \ | ||||||
| 			olectlid-uuid.o ativscp-uuid.o urlmon-uuid.o hlink-uuid.o \ | 			olectlid-uuid.o ativscp-uuid.o urlmon-uuid.o hlink-uuid.o \ | ||||||
| 			hlguids-uuid.o extras-uuid.o devguid.o power-uuid.o | 			hlguids-uuid.o extras-uuid.o devguid.o power-uuid.o | ||||||
| EXTRA_OBJS = shell32.o scrnsave.o scrnsavw.o largeint.o \ | EXTRA_OBJS = shell32.o scrnsave.o scrnsavw.o largeint.o gdiplus.o \ | ||||||
| 	$(UUID_OBJS) ws2_32.o | 	$(UUID_OBJS) ws2_32.o | ||||||
| UUID_SOURCES = mshtml-uuid.c msxml-uuid.c unknwn-uuid.c \ | UUID_SOURCES = mshtml-uuid.c msxml-uuid.c unknwn-uuid.c \ | ||||||
| 			   servprov-uuid.c oleidl-uuid.c oleacc-uuid.c ocidl-uuid.c \ | 			   servprov-uuid.c oleidl-uuid.c oleacc-uuid.c ocidl-uuid.c \ | ||||||
| @@ -135,7 +136,7 @@ UUID_SOURCES = mshtml-uuid.c msxml-uuid.c unknwn-uuid.c \ | |||||||
| 			   exdisp-uuid.c mlang-uuid.c objidl-uuid.c cguid-uuid.c \ | 			   exdisp-uuid.c mlang-uuid.c objidl-uuid.c cguid-uuid.c \ | ||||||
| 			   olectlid-uuid.c ativscp-uuid.c urlmon-uuid.c hlink-uuid.c \ | 			   olectlid-uuid.c ativscp-uuid.c urlmon-uuid.c hlink-uuid.c \ | ||||||
| 			   hlguids-uuid.c extras-uuid.c devguid.c power-uuid.c | 			   hlguids-uuid.c extras-uuid.c devguid.c power-uuid.c | ||||||
| SOURCES = scrnsave.c shell32.c  largeint.c $(UUID_SOURCES)\ | SOURCES = scrnsave.c shell32.c  largeint.c gdiplus.c $(UUID_SOURCES) \ | ||||||
| res.rc test.c ws2_32.c | res.rc test.c ws2_32.c | ||||||
|  |  | ||||||
| DISTFILES = Makefile.in $(DEF_FILES) $(MRI_FILES) $(SOURCES) | DISTFILES = Makefile.in $(DEF_FILES) $(MRI_FILES) $(SOURCES) | ||||||
| @@ -239,6 +240,10 @@ install-headers: $(need-DESTDIR-compatibility) | |||||||
| 	for i in $(GL_HEADERS); do \ | 	for i in $(GL_HEADERS); do \ | ||||||
| 		$(INSTALL_DATA) $(srcdir)/../include/GL/$$i $(DESTDIR)$(inst_includedir)/GL/$$i ; \ | 		$(INSTALL_DATA) $(srcdir)/../include/GL/$$i $(DESTDIR)$(inst_includedir)/GL/$$i ; \ | ||||||
| 	done | 	done | ||||||
|  | 	$(mkinstalldirs) $(DESTDIR)$(inst_includedir)/gdiplus | ||||||
|  | 	for i in $(GDIPLUS_HEADERS); do \ | ||||||
|  | 		$(INSTALL_DATA) $(srcdir)/../include/gdiplus/$$i $(DESTDIR)$(inst_includedir)/gdiplus/$$i ; \ | ||||||
|  | 	done | ||||||
|  |  | ||||||
| install-ddk: install-libraries install-headers | install-ddk: install-libraries install-headers | ||||||
| 	cd ddk && $(MAKE) install $(FLAGS_TO_PASS) | 	cd ddk && $(MAKE) install $(FLAGS_TO_PASS) | ||||||
|   | |||||||
							
								
								
									
										67
									
								
								winsup/w32api/lib/gdiplus.c
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										67
									
								
								winsup/w32api/lib/gdiplus.c
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,67 @@ | |||||||
|  | /* | ||||||
|  |  * Generate GUIDs for GDI+ | ||||||
|  |  * | ||||||
|  |  * The Image Format GUIDs were generated by loading example images of | ||||||
|  |  * various types with GdipLoadImageFromFile and then extracting the | ||||||
|  |  * image format with GdipGetImageRawFormat. | ||||||
|  |  * | ||||||
|  |  * The Encoder Parameter GUIDs were taken from this .NET MSDN page: | ||||||
|  |  * http://msdn.microsoft.com/en-us/library/system.drawing.imaging.encoder.quality.aspx | ||||||
|  |  * | ||||||
|  |  * The Frame Dimension GUIDs were generated by loading example multi-frame | ||||||
|  |  * images (multi-page TIFF; animated GIF) and querying the frame dimension list | ||||||
|  |  * using GdipImageGetFrameDimensionsList. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | /* TODO: find the remaining GUIDs */ | ||||||
|  |  | ||||||
|  | #define INITGUID | ||||||
|  | #include <basetyps.h> | ||||||
|  |  | ||||||
|  | void *_GdipFontFamilyCachedGenericMonospace = 0; | ||||||
|  | void *_GdipFontFamilyCachedGenericSansSerif = 0; | ||||||
|  | void *_GdipFontFamilyCachedGenericSerif = 0; | ||||||
|  | void *_GdipStringFormatCachedGenericDefault = 0; | ||||||
|  | void *_GdipStringFormatCachedGenericTypographic = 0; | ||||||
|  |  | ||||||
|  | DEFINE_GUID(EncoderChrominanceTable,0xF2E455DC,0x09B3,0x4316,0x82,0x60,0x67,0x6A,0xDA,0x32,0x48,0x1C); | ||||||
|  | DEFINE_GUID(EncoderColorDepth,0x66087055,0xAD66,0x4C7C,0x9A,0x18,0x38,0xA2,0x31,0x0B,0x83,0x37); | ||||||
|  | /* EncoderColorSpace missing */ | ||||||
|  | DEFINE_GUID(EncoderCompression,0xE09D739D,0xCCD4,0x44EE,0x8E,0xBA,0x3F,0xBF,0x8B,0xE4,0xFC,0x58); | ||||||
|  | /* EncoderImageItems missing */ | ||||||
|  | DEFINE_GUID(EncoderLuminanceTable,0xEDB33BCE,0x0266,0x4A77,0xB9,0x04,0x27,0x21,0x60,0x99,0xE7,0x17); | ||||||
|  | DEFINE_GUID(EncoderQuality,0x1D5BE4B5,0xFA4A,0x452D,0x9C,0xDD,0x5D,0xB3,0x51,0x05,0xE7,0xEB); | ||||||
|  | DEFINE_GUID(EncoderRenderMethod,0x6D42C53A,0x229A,0x4825,0x8B,0xB7,0x5C,0x99,0xE2,0xB9,0xA8,0xB8); | ||||||
|  | /* EncoderSaveAsCMYK missing */ | ||||||
|  | DEFINE_GUID(EncoderSaveFlag,0x292266FC,0xAC40,0x47BF,0x8C,0xFC,0xA8,0x5B,0x89,0xA6,0x55,0xDE); | ||||||
|  | DEFINE_GUID(EncoderScanMethod,0x3A4E2661,0x3109,0x4E56,0x85,0x36,0x42,0xC1,0x56,0xE7,0xDC,0xFA); | ||||||
|  | DEFINE_GUID(EncoderTransformation,0x8D0EB2D1,0xA58E,0x4EA8,0xAA,0x14,0x10,0x80,0x74,0xB7,0xB6,0xF9); | ||||||
|  | DEFINE_GUID(EncoderVersion,0x24D18C76,0x814A,0x41A4,0xBF,0x53,0x1C,0x21,0x9C,0xCC,0xF7,0x97); | ||||||
|  |  | ||||||
|  | DEFINE_GUID(ImageFormatBMP,0xB96B3CAB,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); | ||||||
|  | DEFINE_GUID(ImageFormatEMF,0xB96B3CAC,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); | ||||||
|  | /* ImageFormatEXIF missing */ | ||||||
|  | DEFINE_GUID(ImageFormatGIF,0xB96B3CB0,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); | ||||||
|  | DEFINE_GUID(ImageFormatIcon,0xB96B3CB5,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); | ||||||
|  | DEFINE_GUID(ImageFormatJPEG,0xB96B3CAE,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); | ||||||
|  | DEFINE_GUID(ImageFormatMemoryBMP,0xB96B3CAA,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); | ||||||
|  | DEFINE_GUID(ImageFormatPNG,0xB96B3CAF,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); | ||||||
|  | DEFINE_GUID(ImageFormatTIFF,0xB96B3CB1,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); | ||||||
|  | /* ImageFormatUndefined missing */ | ||||||
|  | DEFINE_GUID(ImageFormatWMF,0xB96B3CAD,0x0728,0x11D3,0x9D,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E); | ||||||
|  |  | ||||||
|  | DEFINE_GUID(FrameDimensionPage,0x7462DC86,0x6180,0x4C7E,0x8E,0x3F,0xEE,0x73,0x33,0xA7,0xA4,0x83); | ||||||
|  | /* FrameDimensionResolution missing */ | ||||||
|  | DEFINE_GUID(FrameDimensionTime,0x6AEDBD6D,0x3FB5,0x418A,0x83,0xA6,0x7F,0x45,0x22,0x9D,0xC8,0x72); | ||||||
|  |  | ||||||
|  | /* BlurEffectGuid missing */ | ||||||
|  | /* BrightnessContrastEffectGuid missing */ | ||||||
|  | /* ColorBalanceEffectGuid missing */ | ||||||
|  | /* ColorCurveEffectGuid missing */ | ||||||
|  | /* ColorLUTEffectGuid missing */ | ||||||
|  | /* ColorMatrixEffectGuid missing */ | ||||||
|  | /* HueSaturationLightnessEffectGuid missing */ | ||||||
|  | /* LevelsEffectGuid missing */ | ||||||
|  | /* RedEyeCorrectionEffectGuid missing */ | ||||||
|  | /* SharpenEffectGuid missing */ | ||||||
|  | /* TintEffectGuid missing */ | ||||||
							
								
								
									
										633
									
								
								winsup/w32api/lib/gdiplus.def
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										633
									
								
								winsup/w32api/lib/gdiplus.def
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,633 @@ | |||||||
|  | LIBRARY GDIPLUS.DLL | ||||||
|  | EXPORTS | ||||||
|  | GdipAddPathArc@28 | ||||||
|  | GdipAddPathArcI@28 | ||||||
|  | GdipAddPathBezier@36 | ||||||
|  | GdipAddPathBezierI@36 | ||||||
|  | GdipAddPathBeziers@12 | ||||||
|  | GdipAddPathBeziersI@12 | ||||||
|  | GdipAddPathClosedCurve@12 | ||||||
|  | GdipAddPathClosedCurve2@16 | ||||||
|  | GdipAddPathClosedCurve2I@16 | ||||||
|  | GdipAddPathClosedCurveI@12 | ||||||
|  | GdipAddPathCurve@12 | ||||||
|  | GdipAddPathCurve2@16 | ||||||
|  | GdipAddPathCurve2I@16 | ||||||
|  | GdipAddPathCurve3@24 | ||||||
|  | GdipAddPathCurve3I@24 | ||||||
|  | GdipAddPathCurveI@12 | ||||||
|  | GdipAddPathEllipse@20 | ||||||
|  | GdipAddPathEllipseI@20 | ||||||
|  | GdipAddPathLine@20 | ||||||
|  | GdipAddPathLine2@12 | ||||||
|  | GdipAddPathLine2I@12 | ||||||
|  | GdipAddPathLineI@20 | ||||||
|  | GdipAddPathPath@12 | ||||||
|  | GdipAddPathPie@28 | ||||||
|  | GdipAddPathPieI@28 | ||||||
|  | GdipAddPathPolygon@12 | ||||||
|  | GdipAddPathPolygonI@12 | ||||||
|  | GdipAddPathRectangle@20 | ||||||
|  | GdipAddPathRectangleI@20 | ||||||
|  | GdipAddPathRectangles@12 | ||||||
|  | GdipAddPathRectanglesI@12 | ||||||
|  | GdipAddPathString@32 | ||||||
|  | GdipAddPathStringI@32 | ||||||
|  | GdipAlloc@4 | ||||||
|  | GdipBeginContainer@20 | ||||||
|  | GdipBeginContainer2@8 | ||||||
|  | GdipBeginContainerI@20 | ||||||
|  | GdipBitmapApplyEffect@24 | ||||||
|  | GdipBitmapConvertFormat@24 | ||||||
|  | GdipBitmapCreateApplyEffect@36 | ||||||
|  | GdipBitmapGetHistogram@28 | ||||||
|  | GdipBitmapGetHistogramSize@8 | ||||||
|  | GdipBitmapGetPixel@16 | ||||||
|  | GdipBitmapLockBits@20 | ||||||
|  | GdipBitmapSetPixel@16 | ||||||
|  | GdipBitmapSetResolution@12 | ||||||
|  | GdipBitmapUnlockBits@8 | ||||||
|  | GdipClearPathMarkers@4 | ||||||
|  | GdipCloneBitmapArea@28 | ||||||
|  | GdipCloneBitmapAreaI@28 | ||||||
|  | GdipCloneBrush@8 | ||||||
|  | GdipCloneCustomLineCap@8 | ||||||
|  | GdipCloneFont@8 | ||||||
|  | GdipCloneFontFamily@8 | ||||||
|  | GdipCloneImage@8 | ||||||
|  | GdipCloneImageAttributes@8 | ||||||
|  | GdipCloneMatrix@8 | ||||||
|  | GdipClonePath@8 | ||||||
|  | GdipClonePen@8 | ||||||
|  | GdipCloneRegion@8 | ||||||
|  | GdipCloneStringFormat@8 | ||||||
|  | GdipClosePathFigure@4 | ||||||
|  | GdipClosePathFigures@4 | ||||||
|  | GdipCombineRegionPath@12 | ||||||
|  | GdipCombineRegionRect@12 | ||||||
|  | GdipCombineRegionRectI@12 | ||||||
|  | GdipCombineRegionRegion@12 | ||||||
|  | GdipComment@12 | ||||||
|  | GdipConvertToEmfPlus@24 | ||||||
|  | GdipConvertToEmfPlusToFile@28 | ||||||
|  | GdipConvertToEmfPlusToStream@28 | ||||||
|  | GdipCreateAdjustableArrowCap@16 | ||||||
|  | GdipCreateBitmapFromDirectDrawSurface@8 | ||||||
|  | GdipCreateBitmapFromFile@8 | ||||||
|  | GdipCreateBitmapFromFileICM@8 | ||||||
|  | GdipCreateBitmapFromGdiDib@12 | ||||||
|  | GdipCreateBitmapFromGraphics@16 | ||||||
|  | GdipCreateBitmapFromHBITMAP@12 | ||||||
|  | GdipCreateBitmapFromHICON@8 | ||||||
|  | GdipCreateBitmapFromResource@12 | ||||||
|  | GdipCreateBitmapFromScan0@24 | ||||||
|  | GdipCreateBitmapFromStream@8 | ||||||
|  | GdipCreateBitmapFromStreamICM@8 | ||||||
|  | GdipCreateCachedBitmap@12 | ||||||
|  | GdipCreateCustomLineCap@20 | ||||||
|  | GdipCreateEffect@20 | ||||||
|  | GdipCreateFont@20 | ||||||
|  | GdipCreateFontFamilyFromName@12 | ||||||
|  | GdipCreateFontFromDC@8 | ||||||
|  | GdipCreateFontFromLogfontA@12 | ||||||
|  | GdipCreateFontFromLogfontW@12 | ||||||
|  | GdipCreateFromHDC@8 | ||||||
|  | GdipCreateFromHDC2@12 | ||||||
|  | GdipCreateFromHWND@8 | ||||||
|  | GdipCreateFromHWNDICM@8 | ||||||
|  | GdipCreateHBITMAPFromBitmap@12 | ||||||
|  | GdipCreateHICONFromBitmap@8 | ||||||
|  | GdipCreateHalftonePalette@ | ||||||
|  | GdipCreateHatchBrush@16 | ||||||
|  | GdipCreateImageAttributes@4 | ||||||
|  | GdipCreateLineBrush@24 | ||||||
|  | GdipCreateLineBrushFromRect@24 | ||||||
|  | GdipCreateLineBrushFromRectI@24 | ||||||
|  | GdipCreateLineBrushFromRectWithAngle@28 | ||||||
|  | GdipCreateLineBrushFromRectWithAngleI@28 | ||||||
|  | GdipCreateLineBrushI@24 | ||||||
|  | GdipCreateMatrix@4 | ||||||
|  | GdipCreateMatrix2@28 | ||||||
|  | GdipCreateMatrix3@12 | ||||||
|  | GdipCreateMatrix3I@12 | ||||||
|  | GdipCreateMetafileFromEmf@12 | ||||||
|  | GdipCreateMetafileFromFile@8 | ||||||
|  | GdipCreateMetafileFromStream@8 | ||||||
|  | GdipCreateMetafileFromWmf@16 | ||||||
|  | GdipCreateMetafileFromWmfFile@12 | ||||||
|  | GdipCreatePath@8 | ||||||
|  | GdipCreatePath2@20 | ||||||
|  | GdipCreatePath2I@20 | ||||||
|  | GdipCreatePathGradient@16 | ||||||
|  | GdipCreatePathGradientFromPath@8 | ||||||
|  | GdipCreatePathGradientI@16 | ||||||
|  | GdipCreatePathIter@8 | ||||||
|  | GdipCreatePen1@16 | ||||||
|  | GdipCreatePen2@16 | ||||||
|  | GdipCreateRegion@4 | ||||||
|  | GdipCreateRegionHrgn@8 | ||||||
|  | GdipCreateRegionPath@8 | ||||||
|  | GdipCreateRegionRect@8 | ||||||
|  | GdipCreateRegionRectI@8 | ||||||
|  | GdipCreateRegionRgnData@12 | ||||||
|  | GdipCreateSolidFill@8 | ||||||
|  | GdipCreateStreamOnFile@12 | ||||||
|  | GdipCreateStringFormat@12 | ||||||
|  | GdipCreateTexture@12 | ||||||
|  | GdipCreateTexture2@28 | ||||||
|  | GdipCreateTexture2I@28 | ||||||
|  | GdipCreateTextureIA@28 | ||||||
|  | GdipCreateTextureIAI@28 | ||||||
|  | GdipDeleteBrush@4 | ||||||
|  | GdipDeleteCachedBitmap@4 | ||||||
|  | GdipDeleteCustomLineCap@4 | ||||||
|  | GdipDeleteEffect@4 | ||||||
|  | GdipDeleteFont@4 | ||||||
|  | GdipDeleteFontFamily@4 | ||||||
|  | GdipDeleteGraphics@4 | ||||||
|  | GdipDeleteMatrix@4 | ||||||
|  | GdipDeletePath@4 | ||||||
|  | GdipDeletePathIter@4 | ||||||
|  | GdipDeletePen@4 | ||||||
|  | GdipDeletePrivateFontCollection@4 | ||||||
|  | GdipDeleteRegion@4 | ||||||
|  | GdipDeleteStringFormat@4 | ||||||
|  | GdipDisposeImage@4 | ||||||
|  | GdipDisposeImageAttributes@4 | ||||||
|  | GdipDrawArc@32 | ||||||
|  | GdipDrawArcI@32 | ||||||
|  | GdipDrawBezier@40 | ||||||
|  | GdipDrawBezierI@40 | ||||||
|  | GdipDrawBeziers@16 | ||||||
|  | GdipDrawBeziersI@16 | ||||||
|  | GdipDrawCachedBitmap@16 | ||||||
|  | GdipDrawClosedCurve@16 | ||||||
|  | GdipDrawClosedCurve2@20 | ||||||
|  | GdipDrawClosedCurve2I@20 | ||||||
|  | GdipDrawClosedCurveI@16 | ||||||
|  | GdipDrawCurve@16 | ||||||
|  | GdipDrawCurve2@20 | ||||||
|  | GdipDrawCurve2I@20 | ||||||
|  | GdipDrawCurve3@28 | ||||||
|  | GdipDrawCurve3I@28 | ||||||
|  | GdipDrawCurveI@16 | ||||||
|  | GdipDrawDriverString@32 | ||||||
|  | GdipDrawEllipse@24 | ||||||
|  | GdipDrawEllipseI@24 | ||||||
|  | GdipDrawImage@16 | ||||||
|  | GdipDrawImageFX@28 | ||||||
|  | GdipDrawImageI@16 | ||||||
|  | GdipDrawImagePointRect@36 | ||||||
|  | GdipDrawImagePointRectI@36 | ||||||
|  | GdipDrawImagePoints@16 | ||||||
|  | GdipDrawImagePointsI@16 | ||||||
|  | GdipDrawImagePointsRect@48 | ||||||
|  | GdipDrawImagePointsRectI@48 | ||||||
|  | GdipDrawImageRect@24 | ||||||
|  | GdipDrawImageRectI@24 | ||||||
|  | GdipDrawImageRectRect@56 | ||||||
|  | GdipDrawImageRectRectI@56 | ||||||
|  | GdipDrawLine@24 | ||||||
|  | GdipDrawLineI@24 | ||||||
|  | GdipDrawLines@16 | ||||||
|  | GdipDrawLinesI@16 | ||||||
|  | GdipDrawPath@12 | ||||||
|  | GdipDrawPie@32 | ||||||
|  | GdipDrawPieI@32 | ||||||
|  | GdipDrawPolygon@16 | ||||||
|  | GdipDrawPolygonI@16 | ||||||
|  | GdipDrawRectangle@24 | ||||||
|  | GdipDrawRectangleI@24 | ||||||
|  | GdipDrawRectangles@16 | ||||||
|  | GdipDrawRectanglesI@16 | ||||||
|  | GdipDrawString@28 | ||||||
|  | GdipEmfToWmfBits@20 | ||||||
|  | GdipEndContainer@8 | ||||||
|  | GdipEnumerateMetafileDestPoint@24 | ||||||
|  | GdipEnumerateMetafileDestPointI@24 | ||||||
|  | GdipEnumerateMetafileDestPoints@28 | ||||||
|  | GdipEnumerateMetafileDestPointsI@28 | ||||||
|  | GdipEnumerateMetafileDestRect@24 | ||||||
|  | GdipEnumerateMetafileDestRectI@24 | ||||||
|  | GdipEnumerateMetafileSrcRectDestPoint@32 | ||||||
|  | GdipEnumerateMetafileSrcRectDestPointI@32 | ||||||
|  | GdipEnumerateMetafileSrcRectDestPoints@36 | ||||||
|  | GdipEnumerateMetafileSrcRectDestPointsI@36 | ||||||
|  | GdipEnumerateMetafileSrcRectDestRect@32 | ||||||
|  | GdipEnumerateMetafileSrcRectDestRectI@32 | ||||||
|  | GdipFillClosedCurve@16 | ||||||
|  | GdipFillClosedCurve2@24 | ||||||
|  | GdipFillClosedCurve2I@24 | ||||||
|  | GdipFillClosedCurveI@16 | ||||||
|  | GdipFillEllipse@24 | ||||||
|  | GdipFillEllipseI@24 | ||||||
|  | GdipFillPath@12 | ||||||
|  | GdipFillPie@32 | ||||||
|  | GdipFillPieI@32 | ||||||
|  | GdipFillPolygon@20 | ||||||
|  | GdipFillPolygon2@16 | ||||||
|  | GdipFillPolygon2I@16 | ||||||
|  | GdipFillPolygonI@20 | ||||||
|  | GdipFillRectangle@24 | ||||||
|  | GdipFillRectangleI@24 | ||||||
|  | GdipFillRectangles@16 | ||||||
|  | GdipFillRectanglesI@16 | ||||||
|  | GdipFillRegion@12 | ||||||
|  | GdipFindFirstImageItem@8 | ||||||
|  | GdipFindNextImageItem@8 | ||||||
|  | GdipFlattenPath@12 | ||||||
|  | GdipFlush@8 | ||||||
|  | GdipFontCollectionEnumerable@12 | ||||||
|  | GdipFontCollectionEnumerate@20 | ||||||
|  | GdipFree@4 | ||||||
|  | GdipGetAdjustableArrowCapFillState@8 | ||||||
|  | GdipGetAdjustableArrowCapHeight@8 | ||||||
|  | GdipGetAdjustableArrowCapMiddleInset@8 | ||||||
|  | GdipGetAdjustableArrowCapWidth@8 | ||||||
|  | GdipGetAllPropertyItems@16 | ||||||
|  | GdipGetBrushType@8 | ||||||
|  | GdipGetCellAscent@12 | ||||||
|  | GdipGetCellDescent@12 | ||||||
|  | GdipGetClip@8 | ||||||
|  | GdipGetClipBounds@8 | ||||||
|  | GdipGetClipBoundsI@8 | ||||||
|  | GdipGetCompositingMode@8 | ||||||
|  | GdipGetCompositingQuality@8 | ||||||
|  | GdipGetCustomLineCapBaseCap@8 | ||||||
|  | GdipGetCustomLineCapBaseInset@8 | ||||||
|  | GdipGetCustomLineCapStrokeCaps@12 | ||||||
|  | GdipGetCustomLineCapStrokeJoin@8 | ||||||
|  | GdipGetCustomLineCapType@8 | ||||||
|  | GdipGetCustomLineCapWidthScale@8 | ||||||
|  | GdipGetDC@8 | ||||||
|  | GdipGetDpiX@8 | ||||||
|  | GdipGetDpiY@8 | ||||||
|  | GdipGetEffectParameterSize@8 | ||||||
|  | GdipGetEffectParameters@12 | ||||||
|  | GdipGetEmHeight@12 | ||||||
|  | GdipGetEncoderParameterList@16 | ||||||
|  | GdipGetEncoderParameterListSize@12 | ||||||
|  | GdipGetFamily@8 | ||||||
|  | GdipGetFamilyName@12 | ||||||
|  | GdipGetFontCollectionFamilyCount@8 | ||||||
|  | GdipGetFontCollectionFamilyList@16 | ||||||
|  | GdipGetFontHeight@12 | ||||||
|  | GdipGetFontHeightGivenDPI@12 | ||||||
|  | GdipGetFontSize@8 | ||||||
|  | GdipGetFontStyle@8 | ||||||
|  | GdipGetFontUnit@8 | ||||||
|  | GdipGetGenericFontFamilyMonospace@4 | ||||||
|  | GdipGetGenericFontFamilySansSerif@4 | ||||||
|  | GdipGetGenericFontFamilySerif@4 | ||||||
|  | GdipGetHatchBackgroundColor@8 | ||||||
|  | GdipGetHatchForegroundColor@8 | ||||||
|  | GdipGetHatchStyle@8 | ||||||
|  | GdipGetHemfFromMetafile@8 | ||||||
|  | GdipGetImageAttributesAdjustedPalette@12 | ||||||
|  | GdipGetImageBounds@12 | ||||||
|  | GdipGetImageDecoders@12 | ||||||
|  | GdipGetImageDecodersSize@8 | ||||||
|  | GdipGetImageDimension@12 | ||||||
|  | GdipGetImageEncoders@12 | ||||||
|  | GdipGetImageEncodersSize@8 | ||||||
|  | GdipGetImageFlags@8 | ||||||
|  | GdipGetImageGraphicsContext@8 | ||||||
|  | GdipGetImageHeight@8 | ||||||
|  | GdipGetImageHorizontalResolution@8 | ||||||
|  | GdipGetImageItemData@8 | ||||||
|  | GdipGetImagePalette@12 | ||||||
|  | GdipGetImagePaletteSize@8 | ||||||
|  | GdipGetImagePixelFormat@8 | ||||||
|  | GdipGetImageRawFormat@8 | ||||||
|  | GdipGetImageThumbnail@24 | ||||||
|  | GdipGetImageType@8 | ||||||
|  | GdipGetImageVerticalResolution@8 | ||||||
|  | GdipGetImageWidth@8 | ||||||
|  | GdipGetInterpolationMode@8 | ||||||
|  | GdipGetLineBlend@16 | ||||||
|  | GdipGetLineBlendCount@8 | ||||||
|  | GdipGetLineColors@8 | ||||||
|  | GdipGetLineGammaCorrection@8 | ||||||
|  | GdipGetLinePresetBlend@16 | ||||||
|  | GdipGetLinePresetBlendCount@8 | ||||||
|  | GdipGetLineRect@8 | ||||||
|  | GdipGetLineRectI@8 | ||||||
|  | GdipGetLineSpacing@12 | ||||||
|  | GdipGetLineTransform@8 | ||||||
|  | GdipGetLineWrapMode@8 | ||||||
|  | GdipGetLogFontA@12 | ||||||
|  | GdipGetLogFontW@12 | ||||||
|  | GdipGetMatrixElements@8 | ||||||
|  | GdipGetMetafileDownLevelRasterizationLimit@8 | ||||||
|  | GdipGetMetafileHeaderFromEmf@8 | ||||||
|  | GdipGetMetafileHeaderFromFile@8 | ||||||
|  | GdipGetMetafileHeaderFromMetafile@8 | ||||||
|  | GdipGetMetafileHeaderFromStream@8 | ||||||
|  | GdipGetNearestColor@8 | ||||||
|  | GdipGetPageScale@8 | ||||||
|  | GdipGetPageUnit@8 | ||||||
|  | GdipGetPathData@8 | ||||||
|  | GdipGetPathFillMode@8 | ||||||
|  | GdipGetPathGradientBlend@16 | ||||||
|  | GdipGetPathGradientBlendCount@8 | ||||||
|  | GdipGetPathGradientCenterColor@8 | ||||||
|  | GdipGetPathGradientCenterPoint@8 | ||||||
|  | GdipGetPathGradientCenterPointI@8 | ||||||
|  | GdipGetPathGradientFocusScales@12 | ||||||
|  | GdipGetPathGradientGammaCorrection@8 | ||||||
|  | GdipGetPathGradientPath@8 | ||||||
|  | GdipGetPathGradientPointCount@8 | ||||||
|  | GdipGetPathGradientPresetBlend@16 | ||||||
|  | GdipGetPathGradientPresetBlendCount@8 | ||||||
|  | GdipGetPathGradientRect@8 | ||||||
|  | GdipGetPathGradientRectI@8 | ||||||
|  | GdipGetPathGradientSurroundColorCount@8 | ||||||
|  | GdipGetPathGradientSurroundColorsWithCount@12 | ||||||
|  | GdipGetPathGradientTransform@8 | ||||||
|  | GdipGetPathGradientWrapMode@8 | ||||||
|  | GdipGetPathLastPoint@8 | ||||||
|  | GdipGetPathPoints@12 | ||||||
|  | GdipGetPathPointsI@12 | ||||||
|  | GdipGetPathTypes@12 | ||||||
|  | GdipGetPathWorldBounds@16 | ||||||
|  | GdipGetPathWorldBoundsI@16 | ||||||
|  | GdipGetPenBrushFill@8 | ||||||
|  | GdipGetPenColor@8 | ||||||
|  | GdipGetPenCompoundArray@12 | ||||||
|  | GdipGetPenCompoundCount@8 | ||||||
|  | GdipGetPenCustomEndCap@8 | ||||||
|  | GdipGetPenCustomStartCap@8 | ||||||
|  | GdipGetPenDashArray@12 | ||||||
|  | GdipGetPenDashCap197819@8 | ||||||
|  | GdipGetPenDashCount@8 | ||||||
|  | GdipGetPenDashOffset@8 | ||||||
|  | GdipGetPenDashStyle@8 | ||||||
|  | GdipGetPenEndCap@8 | ||||||
|  | GdipGetPenFillType@8 | ||||||
|  | GdipGetPenLineJoin@8 | ||||||
|  | GdipGetPenMiterLimit@8 | ||||||
|  | GdipGetPenMode@8 | ||||||
|  | GdipGetPenStartCap@8 | ||||||
|  | GdipGetPenTransform@8 | ||||||
|  | GdipGetPenUnit@8 | ||||||
|  | GdipGetPenWidth@8 | ||||||
|  | GdipGetPixelOffsetMode@8 | ||||||
|  | GdipGetPointCount@8 | ||||||
|  | GdipGetPropertyCount@8 | ||||||
|  | GdipGetPropertyIdList@12 | ||||||
|  | GdipGetPropertyItem@16 | ||||||
|  | GdipGetPropertyItemSize@12 | ||||||
|  | GdipGetPropertySize@12 | ||||||
|  | GdipGetRegionBounds@12 | ||||||
|  | GdipGetRegionBoundsI@12 | ||||||
|  | GdipGetRegionData@16 | ||||||
|  | GdipGetRegionDataSize@8 | ||||||
|  | GdipGetRegionHRgn@12 | ||||||
|  | GdipGetRegionScans@16 | ||||||
|  | GdipGetRegionScansCount@12 | ||||||
|  | GdipGetRegionScansI@16 | ||||||
|  | GdipGetRenderingOrigin@12 | ||||||
|  | GdipGetSmoothingMode@8 | ||||||
|  | GdipGetSolidFillColor@8 | ||||||
|  | GdipGetStringFormatAlign@8 | ||||||
|  | GdipGetStringFormatDigitSubstitution@12 | ||||||
|  | GdipGetStringFormatFlags@8 | ||||||
|  | GdipGetStringFormatHotkeyPrefix@8 | ||||||
|  | GdipGetStringFormatLineAlign@8 | ||||||
|  | GdipGetStringFormatMeasurableCharacterRangeCount@8 | ||||||
|  | GdipGetStringFormatTabStopCount@8 | ||||||
|  | GdipGetStringFormatTabStops@16 | ||||||
|  | GdipGetStringFormatTrimming@8 | ||||||
|  | GdipGetTextContrast@8 | ||||||
|  | GdipGetTextRenderingHint@8 | ||||||
|  | GdipGetTextureImage@8 | ||||||
|  | GdipGetTextureTransform@8 | ||||||
|  | GdipGetTextureWrapMode@8 | ||||||
|  | GdipGetVisibleClipBounds@8 | ||||||
|  | GdipGetVisibleClipBoundsI@8 | ||||||
|  | GdipGetWorldTransform@8 | ||||||
|  | GdipGraphicsClear@8 | ||||||
|  | GdipGraphicsSetAbort@8 | ||||||
|  | GdipImageForceValidation@4 | ||||||
|  | GdipImageGetFrameCount@12 | ||||||
|  | GdipImageGetFrameDimensionsCount@8 | ||||||
|  | GdipImageGetFrameDimensionsList@12 | ||||||
|  | GdipImageRotateFlip@8 | ||||||
|  | GdipImageSelectActiveFrame@12 | ||||||
|  | GdipImageSetAbort@8 | ||||||
|  | GdipInitializePalette@20 | ||||||
|  | GdipInvertMatrix@4 | ||||||
|  | GdipIsClipEmpty@8 | ||||||
|  | GdipIsEmptyRegion@12 | ||||||
|  | GdipIsEqualRegion@16 | ||||||
|  | GdipIsInfiniteRegion@12 | ||||||
|  | GdipIsMatrixEqual@12 | ||||||
|  | GdipIsMatrixIdentity@8 | ||||||
|  | GdipIsMatrixInvertible@8 | ||||||
|  | GdipIsOutlineVisiblePathPoint@24 | ||||||
|  | GdipIsOutlineVisiblePathPointI@24 | ||||||
|  | GdipIsStyleAvailable@12 | ||||||
|  | GdipIsVisibleClipEmpty@8 | ||||||
|  | GdipIsVisiblePathPoint@20 | ||||||
|  | GdipIsVisiblePathPointI@20 | ||||||
|  | GdipIsVisiblePoint@16 | ||||||
|  | GdipIsVisiblePointI@16 | ||||||
|  | GdipIsVisibleRect@24 | ||||||
|  | GdipIsVisibleRectI@24 | ||||||
|  | GdipIsVisibleRegionPoint@20 | ||||||
|  | GdipIsVisibleRegionPointI@20 | ||||||
|  | GdipIsVisibleRegionRect@28 | ||||||
|  | GdipIsVisibleRegionRectI@28 | ||||||
|  | GdipLoadImageFromFile@8 | ||||||
|  | GdipLoadImageFromFileICM@8 | ||||||
|  | GdipLoadImageFromStream@8 | ||||||
|  | GdipLoadImageFromStreamICM@8 | ||||||
|  | GdipMeasureCharacterRanges@32 | ||||||
|  | GdipMeasureDriverString@32 | ||||||
|  | GdipMeasureString@36 | ||||||
|  | GdipMultiplyLineTransform@12 | ||||||
|  | GdipMultiplyMatrix@12 | ||||||
|  | GdipMultiplyPathGradientTransform@12 | ||||||
|  | GdipMultiplyPenTransform@12 | ||||||
|  | GdipMultiplyTextureTransform@12 | ||||||
|  | GdipMultiplyWorldTransform@12 | ||||||
|  | GdipNewInstalledFontCollection@4 | ||||||
|  | GdipNewPrivateFontCollection@4 | ||||||
|  | GdipPathIterCopyData@24 | ||||||
|  | GdipPathIterEnumerate@20 | ||||||
|  | GdipPathIterGetCount@8 | ||||||
|  | GdipPathIterGetSubpathCount@8 | ||||||
|  | GdipPathIterHasCurve@8 | ||||||
|  | GdipPathIterIsValid@8 | ||||||
|  | GdipPathIterNextMarker@16 | ||||||
|  | GdipPathIterNextMarkerPath@12 | ||||||
|  | GdipPathIterNextPathType@20 | ||||||
|  | GdipPathIterNextSubpath@20 | ||||||
|  | GdipPathIterNextSubpathPath@16 | ||||||
|  | GdipPathIterRewind@4 | ||||||
|  | GdipPlayMetafileRecord@20 | ||||||
|  | GdipPrivateAddFontFile@8 | ||||||
|  | GdipPrivateAddMemoryFont@12 | ||||||
|  | GdipRecordMetafile@24 | ||||||
|  | GdipRecordMetafileFileName@28 | ||||||
|  | GdipRecordMetafileFileNameI@28 | ||||||
|  | GdipRecordMetafileI@24 | ||||||
|  | GdipRecordMetafileStream@28 | ||||||
|  | GdipRecordMetafileStreamI@28 | ||||||
|  | GdipReleaseDC@8 | ||||||
|  | GdipRemovePropertyItem@8 | ||||||
|  | GdipResetClip@4 | ||||||
|  | GdipResetImageAttributes@8 | ||||||
|  | GdipResetLineTransform@4 | ||||||
|  | GdipResetPageTransform@4 | ||||||
|  | GdipResetPath@4 | ||||||
|  | GdipResetPathGradientTransform@4 | ||||||
|  | GdipResetPenTransform@4 | ||||||
|  | GdipResetTextureTransform@4 | ||||||
|  | GdipResetWorldTransform@4 | ||||||
|  | GdipRestoreGraphics@8 | ||||||
|  | GdipReversePath@4 | ||||||
|  | GdipRotateLineTransform@12 | ||||||
|  | GdipRotateMatrix@12 | ||||||
|  | GdipRotatePathGradientTransform@12 | ||||||
|  | GdipRotatePenTransform@12 | ||||||
|  | GdipRotateTextureTransform@12 | ||||||
|  | GdipRotateWorldTransform@12 | ||||||
|  | GdipSaveAdd@8 | ||||||
|  | GdipSaveAddImage@12 | ||||||
|  | GdipSaveGraphics@8 | ||||||
|  | GdipSaveImageToFile@16 | ||||||
|  | GdipSaveImageToStream@16 | ||||||
|  | GdipScaleLineTransform@16 | ||||||
|  | GdipScaleMatrix@16 | ||||||
|  | GdipScalePathGradientTransform@16 | ||||||
|  | GdipScalePenTransform@16 | ||||||
|  | GdipScaleTextureTransform@16 | ||||||
|  | GdipScaleWorldTransform@16 | ||||||
|  | GdipSetAdjustableArrowCapFillState@8 | ||||||
|  | GdipSetAdjustableArrowCapHeight@8 | ||||||
|  | GdipSetAdjustableArrowCapMiddleInset@8 | ||||||
|  | GdipSetAdjustableArrowCapWidth@8 | ||||||
|  | GdipSetClipGraphics@12 | ||||||
|  | GdipSetClipHrgn@12 | ||||||
|  | GdipSetClipPath@12 | ||||||
|  | GdipSetClipRect@24 | ||||||
|  | GdipSetClipRectI@24 | ||||||
|  | GdipSetClipRegion@12 | ||||||
|  | GdipSetCompositingMode@8 | ||||||
|  | GdipSetCompositingQuality@8 | ||||||
|  | GdipSetCustomLineCapBaseCap@8 | ||||||
|  | GdipSetCustomLineCapBaseInset@8 | ||||||
|  | GdipSetCustomLineCapStrokeCaps@12 | ||||||
|  | GdipSetCustomLineCapStrokeJoin@8 | ||||||
|  | GdipSetCustomLineCapWidthScale@8 | ||||||
|  | GdipSetEffectParameters@12 | ||||||
|  | GdipSetEmpty@4 | ||||||
|  | GdipSetImageAttributesCachedBackground@8 | ||||||
|  | GdipSetImageAttributesColorKeys@20 | ||||||
|  | GdipSetImageAttributesColorMatrix@24 | ||||||
|  | GdipSetImageAttributesGamma@16 | ||||||
|  | GdipSetImageAttributesICMMode@8 | ||||||
|  | GdipSetImageAttributesNoOp@12 | ||||||
|  | GdipSetImageAttributesOutputChannel@16 | ||||||
|  | GdipSetImageAttributesOutputChannelColorProfile@16 | ||||||
|  | GdipSetImageAttributesRemapTable@20 | ||||||
|  | GdipSetImageAttributesThreshold@16 | ||||||
|  | GdipSetImageAttributesToIdentity@8 | ||||||
|  | GdipSetImageAttributesWrapMode@16 | ||||||
|  | GdipSetImagePalette@8 | ||||||
|  | GdipSetInfinite@4 | ||||||
|  | GdipSetInterpolationMode@8 | ||||||
|  | GdipSetLineBlend@16 | ||||||
|  | GdipSetLineColors@12 | ||||||
|  | GdipSetLineGammaCorrection@8 | ||||||
|  | GdipSetLineLinearBlend@12 | ||||||
|  | GdipSetLinePresetBlend@16 | ||||||
|  | GdipSetLineSigmaBlend@12 | ||||||
|  | GdipSetLineTransform@8 | ||||||
|  | GdipSetLineWrapMode@8 | ||||||
|  | GdipSetMatrixElements@28 | ||||||
|  | GdipSetMetafileDownLevelRasterizationLimit@8 | ||||||
|  | GdipSetPageScale@8 | ||||||
|  | GdipSetPageUnit@8 | ||||||
|  | GdipSetPathFillMode@8 | ||||||
|  | GdipSetPathGradientBlend@16 | ||||||
|  | GdipSetPathGradientCenterColor@8 | ||||||
|  | GdipSetPathGradientCenterPoint@8 | ||||||
|  | GdipSetPathGradientCenterPointI@8 | ||||||
|  | GdipSetPathGradientFocusScales@12 | ||||||
|  | GdipSetPathGradientGammaCorrection@8 | ||||||
|  | GdipSetPathGradientLinearBlend@12 | ||||||
|  | GdipSetPathGradientPath@8 | ||||||
|  | GdipSetPathGradientPresetBlend@16 | ||||||
|  | GdipSetPathGradientSigmaBlend@12 | ||||||
|  | GdipSetPathGradientSurroundColorsWithCount@12 | ||||||
|  | GdipSetPathGradientTransform@8 | ||||||
|  | GdipSetPathGradientWrapMode@8 | ||||||
|  | GdipSetPathMarker@4 | ||||||
|  | GdipSetPenBrushFill@8 | ||||||
|  | GdipSetPenColor@8 | ||||||
|  | GdipSetPenCompoundArray@12 | ||||||
|  | GdipSetPenCustomEndCap@8 | ||||||
|  | GdipSetPenCustomStartCap@8 | ||||||
|  | GdipSetPenDashArray@12 | ||||||
|  | GdipSetPenDashCap197819@8 | ||||||
|  | GdipSetPenDashOffset@8 | ||||||
|  | GdipSetPenDashStyle@8 | ||||||
|  | GdipSetPenEndCap@8 | ||||||
|  | GdipSetPenLineCap197819@16 | ||||||
|  | GdipSetPenLineJoin@8 | ||||||
|  | GdipSetPenMiterLimit@8 | ||||||
|  | GdipSetPenMode@8 | ||||||
|  | GdipSetPenStartCap@8 | ||||||
|  | GdipSetPenTransform@8 | ||||||
|  | GdipSetPenUnit@8 | ||||||
|  | GdipSetPenWidth@8 | ||||||
|  | GdipSetPixelOffsetMode@8 | ||||||
|  | GdipSetPropertyItem@8 | ||||||
|  | GdipSetRenderingOrigin@12 | ||||||
|  | GdipSetSmoothingMode@8 | ||||||
|  | GdipSetSolidFillColor@8 | ||||||
|  | GdipSetStringFormatAlign@8 | ||||||
|  | GdipSetStringFormatDigitSubstitution@12 | ||||||
|  | GdipSetStringFormatFlags@8 | ||||||
|  | GdipSetStringFormatHotkeyPrefix@8 | ||||||
|  | GdipSetStringFormatLineAlign@8 | ||||||
|  | GdipSetStringFormatMeasurableCharacterRanges@12 | ||||||
|  | GdipSetStringFormatTabStops@16 | ||||||
|  | GdipSetStringFormatTrimming@8 | ||||||
|  | GdipSetTextContrast@8 | ||||||
|  | GdipSetTextRenderingHint@8 | ||||||
|  | GdipSetTextureTransform@8 | ||||||
|  | GdipSetTextureWrapMode@8 | ||||||
|  | GdipSetWorldTransform@8 | ||||||
|  | GdipShearMatrix@16 | ||||||
|  | GdipStartPathFigure@4 | ||||||
|  | GdipStringFormatGetGenericDefault@4 | ||||||
|  | GdipStringFormatGetGenericTypographic@4 | ||||||
|  | GdipTestControl@8 | ||||||
|  | GdipTransformMatrixPoints@12 | ||||||
|  | GdipTransformMatrixPointsI@12 | ||||||
|  | GdipTransformPath@8 | ||||||
|  | GdipTransformPoints@20 | ||||||
|  | GdipTransformPointsI@20 | ||||||
|  | GdipTransformRegion@8 | ||||||
|  | GdipTranslateClip@12 | ||||||
|  | GdipTranslateClipI@12 | ||||||
|  | GdipTranslateLineTransform@16 | ||||||
|  | GdipTranslateMatrix@16 | ||||||
|  | GdipTranslatePathGradientTransform@16 | ||||||
|  | GdipTranslatePenTransform@16 | ||||||
|  | GdipTranslateRegion@12 | ||||||
|  | GdipTranslateRegionI@12 | ||||||
|  | GdipTranslateTextureTransform@16 | ||||||
|  | GdipTranslateWorldTransform@16 | ||||||
|  | GdipVectorTransformMatrixPoints@12 | ||||||
|  | GdipVectorTransformMatrixPointsI@12 | ||||||
|  | GdipWarpPath@40 | ||||||
|  | GdipWidenPath@16 | ||||||
|  | GdipWindingModeOutline@12 | ||||||
|  | GdiplusNotificationHook@4 | ||||||
|  | GdiplusNotificationUnhook@4 | ||||||
|  | GdiplusShutdown@4 | ||||||
|  | GdiplusStartup@12 | ||||||
| @@ -28,6 +28,7 @@ | |||||||
| #include <mapi.h> | #include <mapi.h> | ||||||
|  |  | ||||||
| #include <dbt.h> | #include <dbt.h> | ||||||
|  | #include <gdiplus.h> | ||||||
| #include <httpext.h> | #include <httpext.h> | ||||||
| #include <icm.h> | #include <icm.h> | ||||||
| #include <imagehlp.h> | #include <imagehlp.h> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user