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> | ||||
|  | ||||
| 	* 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)) | ||||
| GL_HEADERS = $(notdir $(wildcard $(srcdir)/../include/GL/*.h)) | ||||
| GDIPLUS_HEADERS = $(notdir $(wildcard $(srcdir)/../include/gdiplus/*.h)) | ||||
|  | ||||
| # 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 \ | ||||
| 			olectlid-uuid.o ativscp-uuid.o urlmon-uuid.o hlink-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_SOURCES = mshtml-uuid.c msxml-uuid.c unknwn-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 \ | ||||
| 			   olectlid-uuid.c ativscp-uuid.c urlmon-uuid.c hlink-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 | ||||
|  | ||||
| DISTFILES = Makefile.in $(DEF_FILES) $(MRI_FILES) $(SOURCES) | ||||
| @@ -239,6 +240,10 @@ install-headers: $(need-DESTDIR-compatibility) | ||||
| 	for i in $(GL_HEADERS); do \ | ||||
| 		$(INSTALL_DATA) $(srcdir)/../include/GL/$$i $(DESTDIR)$(inst_includedir)/GL/$$i ; \ | ||||
| 	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 | ||||
| 	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 <dbt.h> | ||||
| #include <gdiplus.h> | ||||
| #include <httpext.h> | ||||
| #include <icm.h> | ||||
| #include <imagehlp.h> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user