' GdiPlusTypes.sbp

#ifndef __GDIPLUSTYPES_AB__
#define __GDIPLUSTYPES_AB__

#include <Classes/System/Math.ab>

TypeDef ImageAbort = *Function(p As VoidPtr) As BOOL
TypeDef DrawImageAbort = ImageAbort
TypeDef GetThumbnailImageAbort = ImageAbort

TypeDef EnumerateMetafileProc = *Function(recordType As EmfPlusRecordType, flags As DWord, dataSize As DWord, data As BytePtr, callbackData As VoidPtr) As BOOL

'Const REAL_MAX           = FLT_MAX
'Const REAL_MIN           = FLT_MIN
'Const REAL_TOLERANCE     = (FLT_MIN * 100)
'Const REAL_EPSILON       = 1.192092896e-07 'FLT_EPSILON

Const Enum Status
	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
End Enum

#include <Classes/System/Drawing/SizeF.ab>
#include <Classes/System/Drawing/Size.ab>
#include <Classes/System/Drawing/PointF.ab>
#include <Classes/System/Drawing/Point.ab>
#include <Classes/System/Drawing/RectangleF.ab>
#include <Classes/System/Drawing/Rectangle.ab>
#include <Classes/System/Drawing/CharacterRange.ab>

Class PathData
Public
	Sub PathData()
		Count = 0
		Points = NULL
		Types = NULL
	End Sub

	Sub ~PathData()
		If Points <> NULL Then
			Delete Points
		End If
		If Types <> NULL Then
			Delete Types
	End Sub

Private
/*
	Sub PathData(ByRef pd As PathData)
		Debug
	End Sub
*/
	Sub Operator =(ByRef pd As PathData)
		Debug
	End Sub

Public
	Count As Long
	Points As *PointF
	Types As *BYTE
End Class

#endif '__GDIPLUSTYPES_AB__
