' GdiPlusFlat.ab

#require <GdiPlusEnums.ab>
#require <GdiPlusGpStubs.ab>
#require <Classes/System/Drawing/misc.ab>
#require <Classes/System/Drawing/Imaging/misc.ab>
#require <Classes/System/Drawing/Text/misc.ab>
#require <Classes/System/Drawing/Imaging/MetafileHeader.ab>

TypeDef PDirectDrawSurface7 = VoidPtr '*IDirectDrawSurface7

' GraphicsPath APIs
Declare Function GdipCreatePath Lib "gdiplus.dll" (ByVal brushMode As GpFillMode, ByRef path As *GpPath) As GpStatus
Declare Function GdipCreatePath2 Lib "gdiplus.dll" (ByVal points As *GpPointF, ByVal types As *Byte, ByVal count As Long, ByVal brushMode As GpFillMode, ByRef path As *GpPath) As GpStatus
Declare Function GdipCreatePath2I Lib "gdiplus.dll" (ByVal points As *GpPointF, ByVal types As *Byte, ByVal count As Long, ByVal brushMode As GpFillMode, ByRef path As *GpPath) As GpStatus
Declare Function GdipClonePath Lib "gdiplus.dll" (ByVal path As *GpPath, ByRef clonePath As *GpPath) As GpStatus
Declare Function GdipDeletePath Lib "gdiplus.dll" (ByVal path As *GpPath) As GpStatus
Declare Function GdipResetPath Lib "gdiplus.dll" (ByVal path As *GpPath) As GpStatus
Declare Function GdipGetPointCount Lib "gdiplus.dll" (ByVal path As *GpPath, ByRef count As Long) As GpStatus
Declare Function GdipGetPathTypes Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal types As *Byte, ByVal count As Long) As GpStatus
Declare Function GdipGetPathPoints Lib "gdiplus.dll" (ByVal path As *GpPath, ByRef points As GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipGetPathPointsI Lib "gdiplus.dll" (ByVal path As *GpPath, ByRef points As GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipGetPathFillMode Lib "gdiplus.dll" (ByVal path As *GpPath, ByRef fillmode As GpFillMode) As GpStatus
Declare Function GdipSetPathFillMode Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal fillmode As GpFillMode) As GpStatus
Declare Function GdipGetPathData Lib "gdiplus.dll" (ByVal path As *GpPath, ByRef pathData As GpPathData) As GpStatus
Declare Function GdipStartPathFigure Lib "gdiplus.dll" (ByVal path As *GpPath) As GpStatus
Declare Function GdipClosePathFigure Lib "gdiplus.dll" (ByVal path As *GpPath) As GpStatus
Declare Function GdipClosePathFigures Lib "gdiplus.dll" (ByVal path As *GpPath) As GpStatus
Declare Function GdipSetPathMarker Lib "gdiplus.dll" (ByVal path As *GpPath) As GpStatus
Declare Function GdipClearPathMarkers Lib "gdiplus.dll" (ByVal path As *GpPath) As GpStatus
Declare Function GdipReversePath Lib "gdiplus.dll" (ByVal path As *GpPath) As GpStatus
Declare Function GdipGetPathLastPoint Lib "gdiplus.dll" (ByVal path As *GpPath, ByRef lastPoint As GpPointF) As GpStatus
Declare Function GdipAddPathLine Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single) As GpStatus
Declare Function GdipAddPathLine2 Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipAddPathArc Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single, ByVal startAngle As Single, ByVal sweepAngle As Single) As GpStatus
Declare Function GdipAddPathBezier Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single, ByVal x3 As Single, ByVal y3 As Single, ByVal x4 As Single, ByVal y4 As Single) As GpStatus
Declare Function GdipAddPathBeziers Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipAddPathCurve Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipAddPathCurve2 Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPointF, ByVal count As Long, ByVal tension As Single) As GpStatus
Declare Function GdipAddPathCurve3 Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPointF, ByVal count As Long, ByVal offset As Long, ByVal numberOfSegments As Long, ByVal tension As Single) As GpStatus
Declare Function GdipAddPathClosedCurve Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipAddPathClosedCurve2 Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPointF, ByVal count As Long, ByVal tension As Single) As GpStatus
Declare Function GdipAddPathRectangle Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single) As GpStatus
Declare Function GdipAddPathRectangles Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal rects As *GpRectF, ByVal count As Long) As GpStatus
Declare Function GdipAddPathEllipse Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single) As GpStatus
Declare Function GdipAddPathPie Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single, ByVal startAngle As Single, ByVal sweepAngle As Single) As GpStatus
Declare Function GdipAddPathPolygon Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipAddPathPath Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal addingPath As *GpPath, ByVal connect As BOOL) As GpStatus
Declare Function GdipAddPathString Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal str As *WCHAR, ByVal length As Long, ByVal family As *GpFontFamily, ByVal style As Long, ByVal emSize As Single, ByRef layoutRect As GpRectF, ByVal format As *GpStringFormat) As GpStatus
Declare Function GdipAddPathStringI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal str As *WCHAR, ByVal length As Long, ByVal family As *GpFontFamily, ByVal style As Long, ByVal emSize As Single, ByRef layoutRect As GpRect, ByVal format As *GpStringFormat) As GpStatus
Declare Function GdipAddPathLineI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x1 As Long, ByVal y1 As Long, ByVal x2 As Long, ByVal y2 As Long) As GpStatus
Declare Function GdipAddPathLine2I Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipAddPathArcI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal startAngle As Single, ByVal sweepAngle As Single) As GpStatus
Declare Function GdipAddPathBezierI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x1 As Long, ByVal y1 As Long, ByVal x2 As Long, ByVal y2 As Long, ByVal x3 As Long, ByVal y3 As Long, ByVal x4 As Long, ByVal y4 As Long) As GpStatus
Declare Function GdipAddPathBeziersI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipAddPathCurveI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipAddPathCurve2I Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPoint, ByVal count As Long, ByVal tension As Single) As GpStatus
Declare Function GdipAddPathCurve3I Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPoint, ByVal count As Long, ByVal offset As Long, ByVal numberOfSegments As Long, ByVal tension As Single) As GpStatus
Declare Function GdipAddPathClosedCurveI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipAddPathClosedCurve2I Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPoint, ByVal count As Long, ByVal tension As Single) As GpStatus
Declare Function GdipAddPathRectangleI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long) As GpStatus
Declare Function GdipAddPathRectanglesI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal rects As *GpRect, ByVal count As Long) As GpStatus
Declare Function GdipAddPathEllipseI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long) As GpStatus
Declare Function GdipAddPathPieI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal startAngle As Single, ByVal sweepAngle As Single) As GpStatus
Declare Function GdipAddPathPolygonI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipFlattenPath Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal matrix As *GpMatrix, ByVal flatness As Single) As GpStatus
Declare Function GdipWindingModeOutline Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal matrix As *GpMatrix, ByVal flatness As Single) As GpStatus
Declare Function GdipWidenPath Lib "gdiplus.dll" (ByVal nativePath As *GpPath, ByVal pen As *GpPen, ByVal matrix As *GpMatrix, ByVal flatness As Single) As GpStatus
Declare Function GdipWarpPath Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal matrix As *GpMatrix, ByVal points As *GpPointF, ByVal count As Long, ByVal srcx As Single, ByVal srcy As Single, ByVal srcwidth As Single, ByVal srcheight As Single, ByVal warpMode As WarpMode, ByVal flatness As Single) As GpStatus
Declare Function GdipTransformPath Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipGetPathWorldBounds Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal bounds As *GpRectF, ByVal matrix As *GpMatrix, ByVal pen As *GpPen) As GpStatus
Declare Function GdipGetPathWorldBoundsI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal bounds As *GpRect, ByVal matrix As *GpMatrix, ByVal pen As *GpPen) As GpStatus
Declare Function GdipIsVisiblePathPoint Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Single, ByVal y As Single, ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipIsVisiblePathPointI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Long, ByVal y As Long, ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipIsOutlineVisiblePathPoint Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Single, ByVal y As Single, ByVal pen As *GpPen, ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipIsOutlineVisiblePathPointI Lib "gdiplus.dll" (ByVal path As *GpPath, ByVal x As Long, ByVal y As Long, ByVal pen As *GpPen, ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus

' PathIterator APIs
Declare Function GdipCreatePathIter Lib "gdiplus.dll" (ByRef iterator As *GpPathIterator, ByVal path As *GpPath) As GpStatus
Declare Function GdipDeletePathIter Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator) As GpStatus
Declare Function GdipPathIterNextSubpath Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator, ByRef resultCount As Long, ByRef startIndex As Long, ByRef endIndex As Long, ByRef isClosed As BOOL) As GpStatus
Declare Function GdipPathIterNextSubpathPath Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator, ByRef resultCount As Long, ByVal path As *GpPath, ByRef isClosed As BOOL) As GpStatus
Declare Function GdipPathIterNextPathType Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator, ByRef resultCount As Long, ByRef pathType As Byte, ByRef startIndex As Long, ByRef endIndex As Long) As GpStatus
Declare Function GdipPathIterNextMarker Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator, ByRef resultCount As Long, ByRef startIndex As Long, ByRef endIndex As Long) As GpStatus
Declare Function GdipPathIterNextMarkerPath Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator, ByRef resultCount As Long, ByVal path As *GpPath) As GpStatus
Declare Function GdipPathIterGetCount Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator, ByRef count As Long) As GpStatus
Declare Function GdipPathIterGetSubpathCount Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator, ByRef count As Long) As GpStatus
Declare Function GdipPathIterIsValid Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator, ByRef valid As BOOL) As GpStatus
Declare Function GdipPathIterHasCurve Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator, ByRef hasCurve As BOOL) As GpStatus
Declare Function GdipPathIterRewind Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator) As GpStatus
Declare Function GdipPathIterEnumerate Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator, ByRef resultCount As Long, ByVal points As *PointF, ByVal types As *Byte, ByVal count As Long) As GpStatus
Declare Function GdipPathIterCopyData Lib "gdiplus.dll" (ByVal iterator As *GpPathIterator, ByRef resultCount As Long, ByVal points As *PointF, ByVal types As *Byte, ByVal startIndex As Long, ByVal endIndex As Long) As GpStatus

' Matrix APIs
Declare Function GdipCreateMatrix Lib "gdiplus.dll" (ByRef matrix As *GpMatrix) As GpStatus
Declare Function GdipCreateMatrix2 Lib "gdiplus.dll" (ByVal m11 As Single, ByVal m12 As Single, ByVal m21 As Single, ByVal m22 As Single, ByVal dx As Single, ByVal dy As Single, ByRef matrix As *GpMatrix) As GpStatus
Declare Function GdipCreateMatrix3 Lib "gdiplus.dll" (ByRef rect As GpRectF, ByVal dstplg As *GpPointF, ByRef matrix As *GpMatrix) As GpStatus
Declare Function GdipCreateMatrix3I Lib "gdiplus.dll" (ByRef rect As GpRect, ByVal dstplg As *GpPoint, ByRef matrix As *GpMatrix) As GpStatus
Declare Function GdipCloneMatrix Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByRef cloneMatrix As *GpMatrix) As GpStatus
Declare Function GdipDeleteMatrix Lib "gdiplus.dll" (ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipSetMatrixElements Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal m11 As Single, ByVal m12 As Single, ByVal m21 As Single, ByVal m22 As Single, ByVal dx As Single, ByVal dy As Single) As GpStatus
Declare Function GdipMultiplyMatrix Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal matrix2 As *GpMatrix, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipTranslateMatrix Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal offsetX As Single, ByVal offsetY As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipScaleMatrix Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal scaleX As Single, ByVal scaleY As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipRotateMatrix Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal angle As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipShearMatrix Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal shearX As Single, ByVal shearY As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipInvertMatrix Lib "gdiplus.dll" (ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipTransformMatrixPoints Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal pts As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipTransformMatrixPointsI Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal pts As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipVectorTransformMatrixPoints Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal pts As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipVectorTransformMatrixPointsI Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal pts As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipGetMatrixElements Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal matrixOut As *Single) As GpStatus
Declare Function GdipIsMatrixInvertible Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByRef result As BOOL) As GpStatus
Declare Function GdipIsMatrixIdentity Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByRef result As BOOL) As GpStatus
Declare Function GdipIsMatrixEqual Lib "gdiplus.dll" (ByVal matrix As *GpMatrix, ByVal matrix2 As *GpMatrix, ByRef result As BOOL) As GpStatus

' Region APIs
Declare Function GdipCreateRegion Lib "gdiplus.dll" (ByRef region As *GpRegion) As GpStatus
Declare Function GdipCreateRegionRect Lib "gdiplus.dll" (ByRef rect As GpRectF, ByRef region As *GpRegion) As GpStatus
Declare Function GdipCreateRegionRectI Lib "gdiplus.dll" (ByRef rect As GpRect, ByRef region As *GpRegion) As GpStatus
Declare Function GdipCreateRegionPath Lib "gdiplus.dll" (ByVal path As *GpPath, ByRef region As *GpRegion) As GpStatus
Declare Function GdipCreateRegionRgnData Lib "gdiplus.dll" (regionData As *Byte, ByVal size As Long, ByRef region As *GpRegion) As GpStatus
Declare Function GdipCreateRegionHrgn Lib "gdiplus.dll" (ByVal hRgn As HRGN, ByRef region As *GpRegion) As GpStatus
Declare Function GdipCloneRegion Lib "gdiplus.dll" (ByVal region As *GpRegion, ByRef cloneRegion As *GpRegion) As GpStatus
Declare Function GdipDeleteRegion Lib "gdiplus.dll" (ByVal region As *GpRegion) As GpStatus
Declare Function GdipSetInfinite Lib "gdiplus.dll" (ByVal region As *GpRegion) As GpStatus
Declare Function GdipSetEmpty Lib "gdiplus.dll" (ByVal region As *GpRegion) As GpStatus
Declare Function GdipCombineRegionRect Lib "gdiplus.dll" (ByVal region As *GpRegion, ByRef rect As GpRectF, ByVal combineMode As CombineMode) As GpStatus
Declare Function GdipCombineRegionRectI Lib "gdiplus.dll" (ByVal region As *GpRegion, ByRef rect As GpRect, ByVal combineMode As CombineMode) As GpStatus
Declare Function GdipCombineRegionPath Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal path As *GpPath, ByVal combineMode As CombineMode) As GpStatus
Declare Function GdipCombineRegionRegion Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal region2 As *GpRegion, ByVal combineMode As CombineMode) As GpStatus
Declare Function GdipTranslateRegion Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal dx As Single, ByVal dy As Single) As GpStatus
Declare Function GdipTranslateRegionI Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal dx As Long, ByVal dy As Long) As GpStatus
Declare Function GdipTransformRegion Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipGetRegionBounds Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal graphics As *GpGraphics, ByRef rect As GpRectF) As GpStatus
Declare Function GdipGetRegionBoundsI Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal graphics As *GpGraphics, ByRef rect As GpRect) As GpStatus
Declare Function GdipGetRegionHRgn Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal graphics As *GpGraphics, ByRef hRgn As HRGN) As GpStatus
Declare Function GdipIsEmptyRegion Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipIsInfiniteRegion Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipIsEqualRegion Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal region2 As *GpRegion, ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipGetRegionDataSize Lib "gdiplus.dll" (ByVal region As *GpRegion, ByRef bufferSize As DWord) As GpStatus
Declare Function GdipGetRegionData Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal buffer As Byte, ByVal bufferSize As DWord, ByVal sizeFilled As *DWord) As GpStatus
Declare Function GdipIsVisibleRegionPoint Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal x As Single, ByVal y As Single, ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipIsVisibleRegionPointI Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal x As Long, ByVal y As Long, ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipIsVisibleRegionRect Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single, ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipIsVisibleRegionRectI Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipGetRegionScansCount Lib "gdiplus.dll" (ByVal region As *GpRegion, ByRef count As DWord, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipGetRegionScans Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal rects As *GpRectF, ByRef count As Long, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipGetRegionScansI Lib "gdiplus.dll" (ByVal region As *GpRegion, ByVal rects As *GpRect, ByRef count As Long, ByVal matrix As *GpMatrix) As GpStatus

' Brush APIs
Declare Function GdipCloneBrush Lib "gdiplus.dll" (ByVal brush As *GpBrush, ByRef cloneBrush As *GpBrush) As GpStatus
Declare Function GdipDeleteBrush Lib "gdiplus.dll" (ByVal brush As *GpBrush) As GpStatus
Declare Function GdipGetBrushType Lib "gdiplus.dll" (ByVal brush As *GpBrush, ByRef brushType As *GpBrushType) As GpStatus

' HatchBrush APIs
Declare Function GdipCreateHatchBrush Lib "gdiplus.dll" (ByVal hatchstyle As GpHatchStyle, ByVal forecol As ARGB, ByVal backcol As ARGB, ByRef brush As *GpHatch) As GpStatus
Declare Function GdipGetHatchStyle Lib "gdiplus.dll" (ByVal brush As *GpHatch, ByRef hatchstyle As GpHatchStyle) As GpStatus
Declare Function GdipGetHatchForegroundColor Lib "gdiplus.dll" (ByVal brush As *GpHatch, ByRef forecol As ARGB) As GpStatus
Declare Function GdipGetHatchBackgroundColor Lib "gdiplus.dll" (ByVal brush As *GpHatch, ByRef backcol As ARGB) As GpStatus

' TextureBrush APIs
Declare Function GdipCreateTexture Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal wrapmode As GpWrapMode, ByRef texture As *GpTexture) As GpStatus
Declare Function GdipCreateTexture2 Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal wrapmode As GpWrapMode, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single, ByRef texture As *GpTexture) As GpStatus
Declare Function GdipCreateTextureIA Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal imageAttributes As *GpImageAttributes, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single, ByRef texture As *GpTexture) As GpStatus
Declare Function GdipCreateTexture2I Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal wrapmode As GpWrapMode, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByRef texture As *GpTexture) As GpStatus
Declare Function GdipCreateTextureIAI Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal imageAttributes As *GpImageAttributes, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByRef texture As *GpTexture) As GpStatus
Declare Function GdipGetTextureTransform Lib "gdiplus.dll" (ByVal brush As *GpTexture, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipSetTextureTransform Lib "gdiplus.dll" (ByVal brush As *GpTexture, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipResetTextureTransform Lib "gdiplus.dll" (ByVal brush As *GpTexture) As GpStatus
Declare Function GdipMultiplyTextureTransform Lib "gdiplus.dll" (ByVal brush As *GpTexture, ByVal matrix As *GpMatrix, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipTranslateTextureTransform Lib "gdiplus.dll" (ByVal brush As *GpTexture, ByVal dx As Single, ByVal dy As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipScaleTextureTransform Lib "gdiplus.dll" (ByVal brush As *GpTexture, ByVal sx As Single, ByVal sy As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipRotateTextureTransform Lib "gdiplus.dll" (ByVal brush As *GpTexture, ByVal angle As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipSetTextureWrapMode Lib "gdiplus.dll" (ByVal brush As *GpTexture, ByVal wrapmode As GpWrapMode) As GpStatus
Declare Function GdipGetTextureWrapMode Lib "gdiplus.dll" (ByVal brush As *GpTexture, ByRef wrapmode As GpWrapMode) As GpStatus
Declare Function GdipGetTextureImage Lib "gdiplus.dll" (ByVal brush As *GpTexture, ByRef image As *GpImage) As GpStatus

' SolidBrush APIs
Declare Function GdipCreateSolidFill Lib "gdiplus.dll" (ByVal color As ARGB, ByRef brush As *GpSolidFill) As GpStatus
Declare Function GdipSetSolidFillColor Lib "gdiplus.dll" (ByVal brush As *GpSolidFill, ByVal color As ARGB) As GpStatus
Declare Function GdipGetSolidFillColor Lib "gdiplus.dll" (ByVal brush As *GpSolidFill, ByRef color As ARGB) As GpStatus

' LineBrush APIs
Declare Function GdipCreateLineBrush Lib "gdiplus.dll" (ByRef point1 As GpPointF, ByRef point2 As GpPointF, ByVal color1 As ARGB, ByVal color2 As ARGB, ByVal wrapMode As GpWrapMode, ByRef lineGradient As *GpLineGradient) As GpStatus
Declare Function GdipCreateLineBrushI Lib "gdiplus.dll" (ByRef point1 As GpPoint, ByRef point2 As GpPoint, ByVal color1 As ARGB, ByVal color2 As ARGB, ByVal wrapMode As GpWrapMode, ByRef lineGradient As *GpLineGradient) As GpStatus
Declare Function GdipCreateLineBrushFromRect Lib "gdiplus.dll" (ByRef rect As GpRectF, ByVal color1 As ARGB, ByVal color2 As ARGB, ByVal mode As LinearGradientMode, ByVal wrapMode As GpWrapMode, ByRef lineGradient As *GpLineGradient) As GpStatus
Declare Function GdipCreateLineBrushFromRectI Lib "gdiplus.dll" (ByRef rect As GpRect, ByVal color1 As ARGB, ByVal color2 As ARGB, ByVal mode As LinearGradientMode, ByVal wrapMode As GpWrapMode, ByRef lineGradient As *GpLineGradient) As GpStatus
Declare Function GdipCreateLineBrushFromRectWithAngle Lib "gdiplus.dll" (ByRef rect As GpRectF, ByVal color1 As ARGB, ByVal color2 As ARGB, ByVal angle As Single, ByVal isAngleScalable As BOOL, ByVal wrapMode As GpWrapMode, ByRef lineGradient As *GpLineGradient) As GpStatus
Declare Function GdipCreateLineBrushFromRectWithAngleI Lib "gdiplus.dll" (ByRef rect As GpRect, ByVal color1 As ARGB, ByVal color2 As ARGB, ByVal angle As Single, ByVal isAngleScalable As BOOL, ByRef lineGradient As *GpLineGradient) As GpStatus
Declare Function GdipSetLineColors Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal color1 As ARGB, ByVal color2 As ARGB) As GpStatus
Declare Function GdipGetLineColors Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal colors As *ARGB) As GpStatus
Declare Function GdipGetLineRect Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByRef rect As GpRectF) As GpStatus
Declare Function GdipGetLineRectI Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByRef rect As GpRect) As GpStatus
Declare Function GdipSetLineGammaCorrection Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal useGammaCorrection As BOOL) As GpStatus
Declare Function GdipGetLineGammaCorrection Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByRef useGammaCorrection As BOOL) As GpStatus
Declare Function GdipGetLineBlendCount Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByRef count As Long) As GpStatus
Declare Function GdipGetLineBlend Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal blend As *Single, ByVal positions As *Single, ByVal count As Long) As GpStatus
Declare Function GdipSetLineBlend Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal blend As *Single, ByVal positions As *Single, ByVal positions As *Single, ByVal count As Long) As GpStatus
Declare Function GdipGetLinePresetBlendCount Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByRef count As Long) As GpStatus
Declare Function GdipGetLinePresetBlend Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal blend As *ARGB, ByVal blend As *Single, ByVal count As Long) As GpStatus
Declare Function GdipSetLinePresetBlend Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal blend As *Single, ByVal positions As *Single, ByVal count As Long) As GpStatus
Declare Function GdipSetLineSigmaBlend Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal focus As Single, ByVal scale As Single) As GpStatus
Declare Function GdipSetLineLinearBlend Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal focus As Single, ByVal scale As Single) As GpStatus
Declare Function GdipSetLineWrapMode Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal wrapmode As GpWrapMode) As GpStatus
Declare Function GdipGetLineWrapMode Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByRef wrapmode As GpWrapMode) As GpStatus
Declare Function GdipGetLineTransform Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipSetLineTransform Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipResetLineTransform Lib "gdiplus.dll" (ByVal brush As *GpLineGradient) As GpStatus
Declare Function GdipMultiplyLineTransform Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal matrix As *GpMatrix, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipTranslateLineTransform Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal dx As Single, ByVal dy As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipScaleLineTransform Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal sx As Single, ByVal sy As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipRotateLineTransform Lib "gdiplus.dll" (ByVal brush As *GpLineGradient, ByVal angle As Single, ByVal order As GpMatrixOrder) As GpStatus

' PathGradientBrush APIs
Declare Function GdipCreatePathGradient Lib "gdiplus.dll" (ByVal points As *GpPointF, ByVal count As Long, ByVal wrapMode As GpWrapMode, ByRef polyGradient As *GpPathGradient) As GpStatus
Declare Function GdipCreatePathGradientI Lib "gdiplus.dll" (ByVal points As *GpPoint, ByVal count As Long, ByVal wrapMode As GpWrapMode, ByRef polyGradient As *GpPathGradient) As GpStatus
Declare Function GdipCreatePathGradientFromPath Lib "gdiplus.dll" (ByVal path As *GpPath, ByRef polyGradient As *GpPathGradient) As GpStatus
Declare Function GdipGetPathGradientCenterColor Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByRef colors As ARGB) As GpStatus
Declare Function GdipSetPathGradientCenterColor Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal colors As ARGB) As GpStatus
Declare Function GdipGetPathGradientSurroundColorsWithCount Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal color As *ARGB, ByRef count As Long) As GpStatus
Declare Function GdipSetPathGradientSurroundColorsWithCount Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal color As *ARGB, ByRef count As Long) As GpStatus
Declare Function GdipGetPathGradientPath Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal path As *GpPath) As GpStatus
Declare Function GdipSetPathGradientPath Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal path As *GpPath) As GpStatus
Declare Function GdipGetPathGradientCenterPoint Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal points As *GpPointF) As GpStatus
Declare Function GdipGetPathGradientCenterPointI Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal points As *GpPoint) As GpStatus
Declare Function GdipSetPathGradientCenterPoint Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal points As *GpPointF) As GpStatus
Declare Function GdipSetPathGradientCenterPointI Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal points As *GpPoint) As GpStatus
Declare Function GdipGetPathGradientRect Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByRef rect As GpRectF) As GpStatus
Declare Function GdipGetPathGradientRectI Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByRef rect As GpRect) As GpStatus
Declare Function GdipGetPathGradientPointCount Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByRef count As Long) As GpStatus
Declare Function GdipGetPathGradientSurroundColorCount Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByRef count As Long) As GpStatus
Declare Function GdipSetPathGradientGammaCorrection Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal useGammaCorrection As BOOL) As GpStatus
Declare Function GdipGetPathGradientGammaCorrection Lib "gdiplus.dll" (ByVal brush As *GpPathGradient,ByRef useGammaCorrection As BOOL) As GpStatus
Declare Function GdipGetPathGradientBlendCount Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByRef count As Long) As GpStatus
Declare Function GdipGetPathGradientBlend Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal blend As *Single, ByVal positions As *Single, ByVal count As Long) As GpStatus
Declare Function GdipSetPathGradientBlend Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal blend As *Single, ByVal positions As *Single, ByVal count As Long) As GpStatus
Declare Function GdipGetPathGradientPresetBlendCount Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByRef count As Long) As GpStatus
Declare Function GdipGetPathGradientPresetBlend Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal blend As *ARGB, ByVal positions As *Single, ByVal count As Long) As GpStatus
Declare Function GdipSetPathGradientPresetBlend Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal blend As *ARGB, ByVal positions As *Single, ByVal count As Long) As GpStatus
Declare Function GdipSetPathGradientSigmaBlend Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal focus As Single, ByVal scale As Single) As GpStatus
Declare Function GdipSetPathGradientLinearBlend Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal focus As Single, ByVal scale As Single) As GpStatus
Declare Function GdipGetPathGradientWrapMode Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByRef wrapmode As GpWrapMode) As GpStatus
Declare Function GdipSetPathGradientWrapMode Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal wrapmode As GpWrapMode) As GpStatus
Declare Function GdipGetPathGradientTransform Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipSetPathGradientTransform Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipResetPathGradientTransform Lib "gdiplus.dll" (ByVal brush As *GpPathGradient) As GpStatus
Declare Function GdipMultiplyPathGradientTransform Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal matrix As *GpMatrix, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipTranslatePathGradientTransform Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal dx As Single, ByVal dy As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipScalePathGradientTransform Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal sx As Single, ByVal sy As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipRotatePathGradientTransform Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal angle As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipGetPathGradientFocusScales Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByRef xScale As Single, ByRef yScale As Single) As GpStatus
Declare Function GdipSetPathGradientFocusScales Lib "gdiplus.dll" (ByVal brush As *GpPathGradient, ByVal xScale As Single, ByVal yScale As Single) As GpStatus

' Pen APIs
Declare Function GdipCreatePen1 Lib "gdiplus.dll" (ByVal color As ARGB, ByVal width As Single, ByVal unit As GpUnit, ByRef pen As *GpPen) As GpStatus
Declare Function GdipCreatePen2 Lib "gdiplus.dll" (ByVal brush As *GpBrush, ByVal width As Single, ByVal unit As GpUnit, ByRef pen As *GpPen) As GpStatus
Declare Function GdipClonePen Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef clonepen As *GpPen) As GpStatus
Declare Function GdipDeletePen Lib "gdiplus.dll" (ByVal pen As *GpPen) As GpStatus
Declare Function GdipSetPenWidth Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal width As Single) As GpStatus
Declare Function GdipGetPenWidth Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef width As Single) As GpStatus
Declare Function GdipSetPenUnit Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal unit As GpUnit) As GpStatus
Declare Function GdipGetPenUnit Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef unit As GpUnit) As GpStatus
Declare Function GdipSetPenLineCap197819 Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal startCap As GpLineCap, ByVal endCap As GpLineCap, ByVal dashCap As GpDashCap) As GpStatus
Declare Function GdipSetPenStartCap Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal startCap As GpLineCap) As GpStatus
Declare Function GdipSetPenEndCap Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal endCap As GpLineCap) As GpStatus
Declare Function GdipSetPenDashCap197819 Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal dashCap As GpDashCap) As GpStatus
Declare Function GdipGetPenStartCap Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef startCap As GpLineCap) As GpStatus
Declare Function GdipGetPenEndCap Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef endCap As GpLineCap) As GpStatus
Declare Function GdipGetPenDashCap197819 Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef dashCap As GpDashCap) As GpStatus
Declare Function GdipSetPenLineJoin Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal lineJoin As GpLineJoin) As GpStatus
Declare Function GdipGetPenLineJoin Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef lineJoin As GpLineJoin) As GpStatus
Declare Function GdipSetPenCustomStartCap Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal customCap As *GpCustomLineCap) As GpStatus
Declare Function GdipGetPenCustomStartCap Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef customCap As *GpCustomLineCap) As GpStatus
Declare Function GdipSetPenCustomEndCap Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal customCap As *GpCustomLineCap) As GpStatus
Declare Function GdipGetPenCustomEndCap Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef customCap As *GpCustomLineCap) As GpStatus
Declare Function GdipSetPenMiterLimit Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal miterLimit As Single) As GpStatus
Declare Function GdipGetPenMiterLimit Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef miterLimit As Single) As GpStatus
Declare Function GdipSetPenMode Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal penMode As GpPenAlignment) As GpStatus
Declare Function GdipGetPenMode Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef penMode As GpPenAlignment) As GpStatus
Declare Function GdipSetPenTransform Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipGetPenTransform Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipResetPenTransform Lib "gdiplus.dll" (ByVal pen As *GpPen) As GpStatus
Declare Function GdipMultiplyPenTransform Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal matrix As *GpMatrix, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipTranslatePenTransform Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal dx As Single, ByVal dy As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipScalePenTransform Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal sx As Single, ByVal sy As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipRotatePenTransform Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal angle As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipSetPenColor Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal argb As ARGB) As GpStatus
Declare Function GdipGetPenColor Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef argb As ARGB) As GpStatus
Declare Function GdipSetPenBrushFill Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal brush As *GpBrush) As GpStatus
Declare Function GdipGetPenBrushFill Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef brush As *GpBrush) As GpStatus
Declare Function GdipGetPenFillType Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef penType As GpPenType) As GpStatus
Declare Function GdipGetPenDashStyle Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef dashstyle As GpDashStyle) As GpStatus
Declare Function GdipSetPenDashStyle Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal dashstyle As GpDashStyle) As GpStatus
Declare Function GdipGetPenDashOffset Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef offset As Single) As GpStatus
Declare Function GdipSetPenDashOffset Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal offset As Single) As GpStatus
Declare Function GdipGetPenDashCount Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef count As Long) As GpStatus
Declare Function GdipSetPenDashArray Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal dash As *Single, ByVal count As Long) As GpStatus
Declare Function GdipGetPenDashArray Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal dash As *Single, ByVal count As Long) As GpStatus
Declare Function GdipGetPenCompoundCount Lib "gdiplus.dll" (ByVal pen As *GpPen, ByRef count As Long) As GpStatus
Declare Function GdipSetPenCompoundArray Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal dash As *Single, ByVal count As Long) As GpStatus
Declare Function GdipGetPenCompoundArray Lib "gdiplus.dll" (ByVal pen As *GpPen, ByVal dash As *Single, ByVal count As Long) As GpStatus

' CustomLineCap APIs
Declare Function GdipCreateCustomLineCap Lib "gdiplus.dll" (Byval fillPath As *GpPath, ByVal strokePath As *GpPath, ByVal baseCap As GpLineCap, ByVal baseInset As Single, ByRef customCap As *GpCustomLineCap) As GpStatus
Declare Function GdipDeleteCustomLineCap Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap) As GpStatus
Declare Function GdipCloneCustomLineCap Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByRef clonedCap As *GpCustomLineCap) As GpStatus
Declare Function GdipGetCustomLineCapType Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByVal capType As *CustomLineCapType) As GpStatus
Declare Function GdipSetCustomLineCapStrokeCaps Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByVal startCap As GpLineCap, ByVal endCap As GpLineCap) As GpStatus
Declare Function GdipGetCustomLineCapStrokeCaps Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByVal startCap As *GpLineCap, ByVal endCap As *GpLineCap) As GpStatus
Declare Function GdipSetCustomLineCapStrokeJoin Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByVal lineJoin As GpLineJoin) As GpStatus
Declare Function GdipGetCustomLineCapStrokeJoin Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByVal lineJoin As *GpLineJoin) As GpStatus
Declare Function GdipSetCustomLineCapBaseCap Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByVal baseCap As GpLineCap) As GpStatus
Declare Function GdipGetCustomLineCapBaseCap Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByRef baseCap As GpLineCap) As GpStatus
Declare Function GdipSetCustomLineCapBaseInset Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByVal inset As Single) As GpStatus
Declare Function GdipGetCustomLineCapBaseInset Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByRef inset As Single) As GpStatus
Declare Function GdipSetCustomLineCapWidthScale Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByVal widthScale As Single) As GpStatus
Declare Function GdipGetCustomLineCapWidthScale Lib "gdiplus.dll" (ByVal customCap As *GpCustomLineCap, ByRef widthScale As Single) As GpStatus

' AdjustableArrowCap APIs
Declare Function GdipCreateAdjustableArrowCap Lib "gdiplus.dll" (ByVal height As Single, ByVal width As Single, ByVal isFilled As BOOL, ByRef cap As *GpAdjustableArrowCap) As GpStatus
Declare Function GdipSetAdjustableArrowCapHeight Lib "gdiplus.dll" (ByVal cap As *GpAdjustableArrowCap, ByVal height As Single) As GpStatus
Declare Function GdipGetAdjustableArrowCapHeight Lib "gdiplus.dll" (ByVal cap As *GpAdjustableArrowCap, ByRef height As Single) As GpStatus
Declare Function GdipSetAdjustableArrowCapWidth Lib "gdiplus.dll" (ByVal cap As *GpAdjustableArrowCap, ByVal width As Single) As GpStatus
Declare Function GdipGetAdjustableArrowCapWidth Lib "gdiplus.dll" (ByVal cap As *GpAdjustableArrowCap, ByRef width As Single) As GpStatus
Declare Function GdipSetAdjustableArrowCapMiddleInset Lib "gdiplus.dll" (ByVal cap As *GpAdjustableArrowCap, ByVal middleInset As Single) As GpStatus
Declare Function GdipGetAdjustableArrowCapMiddleInset Lib "gdiplus.dll" (ByVal cap As *GpAdjustableArrowCap, ByRef middleInset As Single) As GpStatus
Declare Function GdipSetAdjustableArrowCapFillState Lib "gdiplus.dll" (ByVal cap As *GpAdjustableArrowCap, ByVal fillState As BOOL) As GpStatus
Declare Function GdipGetAdjustableArrowCapFillState Lib "gdiplus.dll" (ByVal cap As *GpAdjustableArrowCap, ByRef fillState As BOOL) As GpStatus

' Image APIs
Declare Function GdipLoadImageFromStream Lib "gdiplus.dll" (ByVal stream As *IStream, ByRef image As *GpImage) As GpStatus
Declare Function GdipLoadImageFromFile Lib "gdiplus.dll" (ByVal filename As PCWSTR, ByRef image As *GpImage) As GpStatus
Declare Function GdipLoadImageFromStreamICM Lib "gdiplus.dll" (ByVal stream As *IStream, ByRef image As *GpImage) As GpStatus
Declare Function GdipLoadImageFromFileICM Lib "gdiplus.dll" (ByVal filename As PCWSTR, ByRef image As *GpImage) As GpStatus
Declare Function GdipCloneImage Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef cloneImage As *GpImage) As GpStatus
Declare Function GdipDisposeImage Lib "gdiplus.dll" (ByVal image As *GpImage) As GpStatus
Declare Function GdipSaveImageToFile Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal filename As PCWSTR, ByRef clsidEncoder As CLSID, ByRef encoderParams As EncoderParameters) As GpStatus
Declare Function GdipSaveImageToStream Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal stream As *IStream, ByRef clsidEncoder As CLSID, ByRef encoderParams As EncoderParameters) As GpStatus
Declare Function GdipSaveAdd Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef encoderParams As EncoderParameters) As GpStatus
Declare Function GdipSaveAddImage Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal newImage As *GpImage, ByRef encoderParams As EncoderParameters) As GpStatus
Declare Function GdipGetImageGraphicsContext Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef graphics As *GpGraphics) As GpStatus
Declare Function GdipGetImageBounds Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef srcRect As GpRectF, ByRef srcUnit As GpUnit) As GpStatus
Declare Function GdipGetImageDimension Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef width As Single, ByRef height As Single) As GpStatus
Declare Function GdipGetImageType Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef imageType As ImageType) As GpStatus
Declare Function GdipGetImageWidth Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef width As DWord) As GpStatus
Declare Function GdipGetImageHeight Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef height As DWord) As GpStatus
Declare Function GdipGetImageHorizontalResolution Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef resolution As Single) As GpStatus
Declare Function GdipGetImageVerticalResolution Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef resolution As Single) As GpStatus
Declare Function GdipGetImageFlags Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef flags As DWord) As GpStatus
Declare Function GdipGetImageRawFormat Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef format As GUID) As GpStatus
Declare Function GdipGetImagePixelFormat Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef format As PixelFormat) As GpStatus
Declare Function GdipGetImageThumbnail Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal thumbWidth As DWord, ByVal thumbHeight As DWord, ByRef thumbImage As *GpImage, ByVal callback As GetThumbnailImageAbort, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipGetEncoderParameterListSize Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef clsidEncoder As CLSID, ByRef size As DWord) As GpStatus
Declare Function GdipGetEncoderParameterList Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef clsidEncoder As CLSID, ByVal size As DWord, ByRef buffer As EncoderParameters) As GpStatus
Declare Function GdipImageGetFrameDimensionsCount Lib "gdiplus.dll" (ByRef image As *GpImage, ByRef count As DWord) As GpStatus
Declare Function GdipImageGetFrameDimensionsList Lib "gdiplus.dll" (ByRef image As *GpImage, ByVal dimensionIDs As GUID, ByVal count As DWord) As GpStatus
Declare Function GdipImageGetFrameCount Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef dimensionID As GUID, ByRef count As DWord) As GpStatus
Declare Function GdipImageSelectActiveFrame Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef dimensionID As GUID, ByVal frameIndex As DWord) As GpStatus
Declare Function GdipImageRotateFlip Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal rfType As RotateFlipType) As GpStatus
Declare Function GdipGetImagePalette Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef palette As ColorPalette, ByVal size As Long) As GpStatus
Declare Function GdipSetImagePalette Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal palette As ColorPalette) As GpStatus
Declare Function GdipGetImagePaletteSize Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef size As Long) As GpStatus
Declare Function GdipGetPropertyCount Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef numOfProperty As DWord) As GpStatus
Declare Function GdipGetPropertyIdList Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal numOfProperty As DWord, ByRef list As PROPID) As GpStatus
Declare Function GdipGetPropertyItemSize Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal propId As PROPID, ByRef size As DWord) As GpStatus
Declare Function GdipGetPropertyItem Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal propId As PROPID, ByVal propSize As DWord, buffer As *PropertyItem) As GpStatus
Declare Function GdipGetPropertySize Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef totalBufferSize As DWord, ByRef numProperties As DWord) As GpStatus
Declare Function GdipGetAllPropertyItems Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal totalBufferSize As DWord, ByVal numProperties As DWord, ByVal allItems As *PropertyItem) As GpStatus
Declare Function GdipRemovePropertyItem Lib "gdiplus.dll" (ByVal image As *GpImage, ByVal propId As PROPID) As GpStatus
Declare Function GdipSetPropertyItem Lib "gdiplus.dll" (ByVal image As *GpImage, ByRef item As PropertyItem) As GpStatus
Declare Function GdipImageForceValidation Lib "gdiplus.dll" (ByVal image As *GpImage) As GpStatus

' Bitmap APIs
Declare Function GdipCreateBitmapFromStream Lib "gdiplus.dll" (ByVal stream As *IStream, ByRef bitmap As *GpBitmap) As GpStatus
Declare Function GdipCreateBitmapFromFile Lib "gdiplus.dll" (ByVal filename As PCWSTR, ByRef bitmap As *GpBitmap) As GpStatus
Declare Function GdipCreateBitmapFromStreamICM Lib "gdiplus.dll" (ByVal stream As *IStream, ByRef bitmap As *GpBitmap) As GpStatus
Declare Function GdipCreateBitmapFromFileICM Lib "gdiplus.dll" (ByVal filename As PCWSTR, ByRef bitmap As *GpBitmap) As GpStatus
Declare Function GdipCreateBitmapFromScan0 Lib "gdiplus.dll" (ByVal width As Long, ByVal height As Long, ByVal stride As Long, ByVal format As PixelFormat, ByVal scan0 As *Byte, ByRef bitmap As *GpBitmap) As GpStatus
Declare Function GdipCreateBitmapFromGraphics Lib "gdiplus.dll" (ByVal width As Long,  ByVal height As Long, ByVal target As *GpGraphics, ByRef bitmap As *GpBitmap) As GpStatus
Declare Function GdipCreateBitmapFromDirectDrawSurface Lib "gdiplus.dll" (ByVal surface As PDirectDrawSurface7, ByRef bitmap As *GpBitmap) As GpStatus
Declare Function GdipCreateBitmapFromGdiDib Lib "gdiplus.dll" (ByRef gdiBitmapInfo As BITMAPINFO, gdiBitmapData As VoidPtr, ByRef bitmap As *GpBitmap) As GpStatus
Declare Function GdipCreateBitmapFromHBITMAP Lib "gdiplus.dll" (ByVal hbm As HBITMAP, ByVal hpal As HPALETTE, ByRef bitmap As *GpBitmap) As GpStatus
Declare Function GdipCreateHBITMAPFromBitmap Lib "gdiplus.dll" (ByVal bitmap As *GpBitmap, ByRef hbmReturn As HBITMAP, ByVal background As ARGB) As GpStatus
Declare Function GdipCreateBitmapFromHICON Lib "gdiplus.dll" (ByVal hicon As HICON, ByRef bitmap As *GpBitmap) As GpStatus
Declare Function GdipCreateHICONFromBitmap Lib "gdiplus.dll" (ByVal bitmap As *GpBitmap, ByRef hbmReturn As HICON) As GpStatus
Declare Function GdipCreateBitmapFromResource Lib "gdiplus.dll" (ByVal hInstance As HINSTANCE, ByVal pBitmapName As PCWSTR, ByRef bitmap As *GpBitmap) As GpStatus
Declare Function GdipCloneBitmapArea Lib "gdiplus.dll" (ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single, ByVal format As PixelFormat, ByVal srcBitmap As *GpBitmap, ByRef dstBitmap As *GpBitmap) As GpStatus
Declare Function GdipCloneBitmapAreaI Lib "gdiplus.dll" (ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal format As PixelFormat, ByVal srcBitmap As *GpBitmap, ByRef dstBitmap As *GpBitmap) As GpStatus
Declare Function GdipBitmapLockBits Lib "gdiplus.dll" (ByVal bitmap As *GpBitmap, ByRef rect As GpRect, ByVal flags As DWord, ByVal format As PixelFormat, ByVal lockedBitmapData As *BitmapData) As GpStatus
Declare Function GdipBitmapUnlockBits Lib "gdiplus.dll" (ByVal bitmap As *GpBitmap, ByRef lockedBitmapData As BitmapData) As GpStatus
Declare Function GdipBitmapGetPixel Lib "gdiplus.dll" (ByVal bitmap As *GpBitmap, ByVal x As Long, ByVal y As Long, ByRef color As ARGB) As GpStatus
Declare Function GdipBitmapSetPixel Lib "gdiplus.dll" (ByVal bitmap As *GpBitmap, ByVal x As Long, ByVal y As Long, ByVal color As ARGB) As GpStatus
Declare Function GdipBitmapSetResolution Lib "gdiplus.dll" (ByVal bitmap As *GpBitmap, ByVal xdpi As Single, ByVal ydpi As Single) As GpStatus

' ImageAttributes APIs
Declare Function GdipCreateImageAttributes Lib "gdiplus.dll" (ByRef imageattr As *GpImageAttributes) As GpStatus
Declare Function GdipCloneImageAttributes Lib "gdiplus.dll" (ByRef imageattr As GpImageAttributes, ByRef GpImageAttributes As *GpImageAttributes) As GpStatus
Declare Function GdipDisposeImageAttributes Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes) As GpStatus
Declare Function GdipSetImageAttributesToIdentity Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes, ByVal colorAdjustType As ColorAdjustType) As GpStatus
Declare Function GdipResetImageAttributes Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes, ByVal colorAdjustType As ColorAdjustType) As GpStatus
Declare Function GdipSetImageAttributesColorMatrix Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes, ByVal colorAdjustType As ColorAdjustType, ByVal enableFlag As BOOL, ByRef colorMatrix As *ColorMatrix, ByRef grayMatrix As *ColorMatrix, ByVal flags As ColorMatrixFlag) As GpStatus
Declare Function GdipSetImageAttributesThreshold Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes, ByVal colorAdjustType As ColorAdjustType, ByVal enableFlag As BOOL, ByVal threshold As Single) As GpStatus
Declare Function GdipSetImageAttributesGamma Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes, ByVal colorAdjustType As ColorAdjustType, ByVal enableFlag As BOOL, ByVal gamma As Single) As GpStatus
Declare Function GdipSetImageAttributesNoOp Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes, ByVal colorAdjustType As ColorAdjustType, ByVal enableFlag As BOOL) As GpStatus
Declare Function GdipSetImageAttributesColorKeys Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes, ByVal colorAdjustType As ColorAdjustType, ByVal enableFlag As BOOL,  ByVal colorLow As ARGB, ByVal colorHigh As ARGB) As GpStatus
Declare Function GdipSetImageAttributesOutputChannel Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes, ByVal colorAdjustType As ColorAdjustType, ByVal enableFlag As BOOL, ByVal channelFlags As ColorChannelFlags) As GpStatus
Declare Function GdipSetImageAttributesOutputChannelColorProfile Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes, ByVal colorAdjustType As ColorAdjustType, ByVal enableFlag As BOOL, ByVal colorProfileFilename As PCWSTR) As GpStatus
Declare Function GdipSetImageAttributesRemapTable Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes, ByVal colorAdjustType As ColorAdjustType, ByVal enableFlag As BOOL, ByVal mapSize As DWord, ByRef map As ColorMap) As GpStatus
Declare Function GdipSetImageAttributesWrapMode Lib "gdiplus.dll" (ByVal imageAttr As *GpImageAttributes, ByVal wrap As WrapMode, ByVal argb As ARGB, ByVal clamp As BOOL) As GpStatus
Declare Function GdipSetImageAttributesICMMode Lib "gdiplus.dll" (ByVal imageAttr As *GpImageAttributes, ByRef on As BOOL) As GpStatus
Declare Function GdipGetImageAttributesAdjustedPalette Lib "gdiplus.dll" (ByVal imageAttr As *GpImageAttributes, ByRef colorPalette As ColorPalette, ByVal colorAdjustType As ColorAdjustType) As GpStatus

' Graphics APIs
Declare Function GdipFlush Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal intention As GpFlushIntention) As GpStatus
Declare Function GdipCreateFromHDC Lib "gdiplus.dll" (ByVal hdc As HDC, ByRef graphics As *GpGraphics) As GpStatus
Declare Function GdipCreateFromHDC2 Lib "gdiplus.dll" (ByVal hdc As HDC, ByVal hDevice As HANDLE, ByRef graphics As *GpGraphics) As GpStatus
Declare Function GdipCreateFromHWND Lib "gdiplus.dll" (ByVal hwnd As HWND, ByRef graphics As *GpGraphics) As GpStatus
Declare Function GdipCreateFromHWNDICM Lib "gdiplus.dll" (ByVal hwnd As HWND, ByRef graphics As *GpGraphics) As GpStatus
Declare Function GdipDeleteGraphics Lib "gdiplus.dll" (ByVal graphics As *GpGraphics) As GpStatus
Declare Function GdipGetDC Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef hdc As HDC) As GpStatus
Declare Function GdipReleaseDC Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal hdc As HDC) As GpStatus
Declare Function GdipSetCompositingMode Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal compositingMode As CompositingMode) As GpStatus
Declare Function GdipGetCompositingMode Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef compositingMode As CompositingMode) As GpStatus
Declare Function GdipSetRenderingOrigin Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal x As Long, ByVal y As Long) As GpStatus
Declare Function GdipGetRenderingOrigin Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef x As Long, ByRef y As Long) As GpStatus
Declare Function GdipSetCompositingQuality Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal compositingQuality As CompositingQuality) As GpStatus
Declare Function GdipGetCompositingQuality Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef compositingQuality As CompositingQuality) As GpStatus
Declare Function GdipSetSmoothingMode Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal smoothingMode As SmoothingMode) As GpStatus
Declare Function GdipGetSmoothingMode Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef smoothingMode As SmoothingMode) As GpStatus
Declare Function GdipSetPixelOffsetMode Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pixelOffsetMode As PixelOffsetMode) As GpStatus
Declare Function GdipGetPixelOffsetMode Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef pixelOffsetMode As PixelOffsetMode) As GpStatus
Declare Function GdipSetTextRenderingHint Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal mode As TextRenderingHint) As GpStatus
Declare Function GdipGetTextRenderingHint Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef mode As TextRenderingHint) As GpStatus
Declare Function GdipSetTextContrast Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal contrast As DWord) As GpStatus
Declare Function GdipGetTextContrast Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef contrast As DWord) As GpStatus
Declare Function GdipSetInterpolationMode Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal interpolationMode As InterpolationMode) As GpStatus
Declare Function GdipGetInterpolationMode Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef interpolationMode As InterpolationMode) As GpStatus
Declare Function GdipSetWorldTransform Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipResetWorldTransform Lib "gdiplus.dll" (ByVal graphics As *GpGraphics) As GpStatus
Declare Function GdipMultiplyWorldTransform Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal matrix As *GpMatrix, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipTranslateWorldTransform Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal dx As Single, ByVal dy As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipScaleWorldTransform Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal sx As Single, ByVal sy As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipRotateWorldTransform Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal angle As Single, ByVal order As GpMatrixOrder) As GpStatus
Declare Function GdipGetWorldTransform Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipResetPageTransform Lib "gdiplus.dll" (ByVal graphics As *GpGraphics) As GpStatus
Declare Function GdipGetPageUnit Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef unit As GpUnit) As GpStatus
Declare Function GdipGetPageScale Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef scale As Single) As GpStatus
Declare Function GdipSetPageUnit Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal unit As GpUnit) As GpStatus
Declare Function GdipSetPageScale Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal scale As Single) As GpStatus
Declare Function GdipGetDpiX Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef dpi As Single) As GpStatus
Declare Function GdipGetDpiY Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef dpi As Single) As GpStatus
Declare Function GdipTransformPoints Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal destSpace As GpCoordinateSpace, ByVal srcSpace As GpCoordinateSpace, ByVal points As *PointF, ByVal count As Long) As GpStatus
Declare Function GdipTransformPointsI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal destSpace As GpCoordinateSpace, ByVal srcSpace As GpCoordinateSpace, ByVal points As *Point, ByVal count As Long) As GpStatus
Declare Function GdipGetNearestColor Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef argb As ARGB) As GpStatus
' Creates the Win9x Halftone Palette (even on NT) with correct Desktop colors
Declare Function GdipCreateHalftonePalette Lib "gdiplus.dll" () As HPALETTE
Declare Function GdipDrawLine Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single) As GpStatus
Declare Function GdipDrawLineI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x1 As Long, ByVal y1 As Long, ByVal x2 As Long, ByVal y2 As Long) As GpStatus
Declare Function GdipDrawLines Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipDrawLinesI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipDrawArc Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single, ByVal startAngle As Single, ByVal sweepAngle As Single) As GpStatus
Declare Function GdipDrawArcI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal startAngle As Single, ByVal sweepAngle As Single) As GpStatus
Declare Function GdipDrawBezier Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single, ByVal x3 As Single, ByVal y3 As Single, ByVal x4 As Single, ByVal y4 As Single) As GpStatus
Declare Function GdipDrawBezierI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x1 As Long, ByVal y1 As Long, ByVal x2 As Long, ByVal y2 As Long, ByVal x3 As Long, ByVal y3 As Long, ByVal x4 As Long, ByVal y4 As Long) As GpStatus
Declare Function GdipDrawBeziers Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipDrawBeziersI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipDrawRectangle Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single) As GpStatus
Declare Function GdipDrawRectangleI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long) As GpStatus
Declare Function GdipDrawRectangles Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal rects As *GpRectF, ByVal count As Long) As GpStatus
Declare Function GdipDrawRectanglesI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal rects As *GpRect, ByVal count As Long) As GpStatus
Declare Function GdipDrawEllipse Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single) As GpStatus
Declare Function GdipDrawEllipseI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long) As GpStatus
Declare Function GdipDrawPie Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single, ByVal startAngle As Single, ByVal sweepAngle As Single) As GpStatus
Declare Function GdipDrawPieI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal startAngle As Single, ByVal sweepAngle As Single) As GpStatus
Declare Function GdipDrawPolygon Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipDrawPolygonI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipDrawPath Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal path As *GpPath) As GpStatus
Declare Function GdipDrawCurve Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipDrawCurveI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipDrawCurve2 Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPointF, ByVal count As Long, ByVal tension As Single) As GpStatus
Declare Function GdipDrawCurve2I Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPoint, ByVal count As Long, ByVal tension As Single) As GpStatus
Declare Function GdipDrawCurve3 Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPointF, ByVal count As Long, ByVal offset As Long, ByVal numberOfSegments As Long, ByVal tension As Single) As GpStatus
Declare Function GdipDrawCurve3I Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPoint, ByVal count As Long, ByVal offset As Long, ByVal numberOfSegments As Long, ByVal tension As Single) As GpStatus
Declare Function GdipDrawClosedCurve Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipDrawClosedCurveI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipDrawClosedCurve2 Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPointF, ByVal count As Long, ByVal tension As Single) As GpStatus
Declare Function GdipDrawClosedCurve2I Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal pen As *GpPen, ByVal points As *GpPoint, ByVal count As Long, ByVal tension As Single) As GpStatus
Declare Function GdipGraphicsClear Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal color As ARGB) As GpStatus
Declare Function GdipFillRectangle Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single) As GpStatus
Declare Function GdipFillRectangleI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long) As GpStatus
Declare Function GdipFillRectangles Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal rects As *GpRectF, ByVal count As Long) As GpStatus
Declare Function GdipFillRectanglesI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal rects As *GpRect, ByVal count As Long) As GpStatus
Declare Function GdipFillPolygon Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal points As *GpPointF, ByVal count As Long, ByVal fillMode As GpFillMode) As GpStatus
Declare Function GdipFillPolygonI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal points As *GpPoint, ByVal count As Long, ByVal fillMode As GpFillMode) As GpStatus
Declare Function GdipFillPolygon2 Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipFillPolygon2I Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipFillEllipse Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single) As GpStatus
Declare Function GdipFillEllipseI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long) As GpStatus
Declare Function GdipFillPie Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single, ByVal startAngle As Single, ByVal sweepAngle As Single) As GpStatus
Declare Function GdipFillPieI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal startAngle As Single, ByVal sweepAngle As Single) As GpStatus
Declare Function GdipFillPath Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal path As *GpPath) As GpStatus
Declare Function GdipFillClosedCurve Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal points As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipFillClosedCurveI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal points As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipFillClosedCurve2 Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal points As *GpPointF, ByVal count As Long, ByVal tension As Single, ByVal fillMode As GpFillMode) As GpStatus
Declare Function GdipFillClosedCurve2I Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal points As *GpPoint, ByVal count As Long, ByVal tension As Single, ByVal fillMode As GpFillMode) As GpStatus
Declare Function GdipFillRegion Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal brush As *GpBrush, ByVal region As *GpRegion) As GpStatus
Declare Function GdipDrawImage Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal x As Single, ByVal y As Single) As GpStatus
Declare Function GdipDrawImageI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal x As Long, ByVal y As Long) As GpStatus
Declare Function GdipDrawImageRect Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single) As GpStatus
Declare Function GdipDrawImageRectI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long) As GpStatus
Declare Function GdipDrawImagePoints Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal dstpoints As *GpPointF, ByVal count As Long) As GpStatus
Declare Function GdipDrawImagePointsI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal dstpoints As *GpPoint, ByVal count As Long) As GpStatus
Declare Function GdipDrawImagePointRect Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal x As Single, ByVal y As Single, ByVal srcx As Single, ByVal srcy As Single, ByVal srcwidth As Single, ByVal srcheight As Single, ByVal srcUnit As GpUnit) As GpStatus
Declare Function GdipDrawImagePointRectI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal x As Long, ByVal y As Long, ByVal srcx As Long, ByVal srcy As Long, ByVal srcwidth As Long, ByVal srcheight As Long, ByVal srcUnit As GpUnit) As GpStatus
Declare Function GdipDrawImageRectRect Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal dstx As Single, ByVal dsty As Single, ByVal dstwidth As Single, ByVal dstheight As Single, ByVal srcx As Single, ByVal srcy As Single, ByVal srcwidth As Single, ByVal srcheight As Single, ByVal srcUnit As GpUnit, ByVal imageAttributes As GpImageAttributes, ByVal callback As DrawImageAbort, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipDrawImageRectRectI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal dstx As Long, ByVal dsty As Long, ByVal dstwidth As Long, ByVal dstheight As Long, ByVal srcx As Long, ByVal srcy As Long, ByVal srcwidth As Long, ByVal srcheight As Long, ByVal srcUnit As GpUnit, ByVal imageAttributes As GpImageAttributes, ByVal callback As DrawImageAbort, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipDrawImagePointsRect Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal points As *GpPointF, ByVal count As Long, ByVal srcx As Single, ByVal srcy As Single, ByVal srcwidth As Single, ByVal srcheight As Single, ByVal srcUnit As GpUnit, ByVal imageAttributes As GpImageAttributes, ByVal callback As DrawImageAbort, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipDrawImagePointsRectI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal image As *GpImage, ByVal points As *GpPoint, ByVal count As Long, ByVal srcx As Long, ByVal srcy As Long, ByVal srcwidth As Long, ByVal srcheight As Long, ByVal srcUnit As GpUnit, ByVal imageAttributes As GpImageAttributes, ByVal callback As DrawImageAbort, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileDestPoint Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByRef destPoint As PointF, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileDestPointI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByRef destPoint As Point, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileDestRect Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByRef destRect As GpRectF, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileDestRectI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByRef destRect As GpRect, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileDestPoints Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByVal destPoints As *PointF, ByVal count As Long, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileDestPointsI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByVal destPoints As *Point, ByVal count As Long, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileSrcRectDestPoint Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByRef destPoint As PointF, ByRef srcRect As GpRectF, ByVal srcUnit As GraphicsUnit, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileSrcRectDestPointI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByRef destPoint As Point, ByRef srcRect As GpRect, ByVal srcUnit As GraphicsUnit, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileSrcRectDestRect Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByRef destRect As GpRectF, ByRef srcRect As GpRectF, ByVal srcUnit As GraphicsUnit, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileSrcRectDestRectI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByRef destRect As GpRect, ByRef srcRect As GpRect, ByVal srcUnit As GraphicsUnit, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileSrcRectDestPoints Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByVal destPoints As *PointF, ByVal count As Long, ByRef srcRect As GpRectF, ByVal srcUnit As GraphicsUnit, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipEnumerateMetafileSrcRectDestPointsI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal metafile As GpMetafile, ByVal destPoints As *Point, ByVal count As Long, ByRef srcRect As GpRect, ByVal srcUnit As GraphicsUnit, ByVal callback As EnumerateMetafileProc, ByVal callbackData As VoidPtr, ByVal callbackData As VoidPtr) As GpStatus
Declare Function GdipPlayMetafileRecord Lib "gdiplus.dll" (ByVal metafile As GpMetafile, ByVal recordType As EmfPlusRecordType, ByVal flags As DWord, dataSize As DWord, ByVal data As *Byte) As GpStatus
Declare Function GdipSetClipGraphics Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal srcgraphics As *GpGraphics, ByVal combineMode As CombineMode) As GpStatus
Declare Function GdipSetClipRect Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single, ByVal combineMode As CombineMode) As GpStatus
Declare Function GdipSetClipRectI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByVal combineMode As CombineMode) As GpStatus
Declare Function GdipSetClipPath Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal path As *GpPath, ByVal combineMode As CombineMode) As GpStatus
Declare Function GdipSetClipRegion Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal region As *GpRegion, ByVal combineMode As CombineMode) As GpStatus
Declare Function GdipSetClipHrgn Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal hRgn As HRGN, ByVal combineMode As CombineMode) As GpStatus
Declare Function GdipResetClip Lib "gdiplus.dll" (ByVal graphics As *GpGraphics) As GpStatus
Declare Function GdipTranslateClip Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal dx As Single, ByVal dy As Single) As GpStatus
Declare Function GdipTranslateClipI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal dx As Long, ByVal dy As Long) As GpStatus
Declare Function GdipGetClip Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal region As *GpRegion) As GpStatus
Declare Function GdipGetClipBounds Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef rect As GpRectF) As GpStatus
Declare Function GdipGetClipBoundsI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef rect As GpRect) As GpStatus
Declare Function GdipIsClipEmpty Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipGetVisibleClipBounds Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef rect As GpRectF) As GpStatus
Declare Function GdipGetVisibleClipBoundsI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef rect As GpRect) As GpStatus
Declare Function GdipIsVisibleClipEmpty Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByRef result As BOOL) As GpStatus
Declare Function GdipIsVisiblePoint Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal x As Single, ByVal y As Single, ByRef result As BOOL) As GpStatus
Declare Function GdipIsVisiblePointI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal x As Long, ByVal y As Long, ByRef result As BOOL) As GpStatus
Declare Function GdipIsVisibleRect Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single, ByRef result As BOOL) As GpStatus
Declare Function GdipIsVisibleRectI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal x As Long, ByVal y As Long, ByVal width As Long, ByVal height As Long, ByRef result As BOOL) As GpStatus
Declare Function GdipSaveGraphics Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal state As GraphicsState) As GpStatus
Declare Function GdipRestoreGraphics Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal state As GraphicsState) As GpStatus
Declare Function GdipBeginContainer Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal dstrect As *GpRectF, ByVal srcrect As *GpRectF, ByVal unit As GpUnit, ByVal state As *GraphicsContainer) As GpStatus
Declare Function GdipBeginContainerI Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal dstrect As *GpRect, ByVal srcrect As *GpRect, ByVal unit As GpUnit, ByVal state As *GraphicsContainer) As GpStatus
Declare Function GdipBeginContainer2 Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal state As *GraphicsContainer) As GpStatus
Declare Function GdipEndContainer Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal state As *GraphicsContainer) As GpStatus
Declare Function GdipGetMetafileHeaderFromWmf Lib "gdiplus.dll" (ByVal hWmf As HMETAFILE, ByRef wmfPlaceableFileHeader As WmfPlaceableFileHeader, ByRef header As MetafileHeader) As GpStatus
Declare Function GdipGetMetafileHeaderFromEmf Lib "gdiplus.dll" (ByVal hEmf As HENHMETAFILE, ByRef header As MetafileHeader) As GpStatus
Declare Function GdipGetMetafileHeaderFromFile Lib "gdiplus.dll" (ByVal filename As PCWSTR, ByRef header As MetafileHeader) As GpStatus
Declare Function GdipGetMetafileHeaderFromStream Lib "gdiplus.dll" (ByVal stream As *IStream, ByRef header As MetafileHeader) As GpStatus
Declare Function GdipGetMetafileHeaderFromMetafile Lib "gdiplus.dll" (ByVal metafile As *GpMetafile, ByRef header As MetafileHeader) As GpStatus
Declare Function GdipGetHemfFromMetafile Lib "gdiplus.dll" (ByVal metafile As *GpMetafile, ByRef hEmf As HENHMETAFILE) As GpStatus
Declare Function GdipCreateStreamOnFile Lib "gdiplus.dll" (ByVal filename As PCWSTR, ByVal access As DWord, ByRef stream As *IStream) As GpStatus
Declare Function GdipCreateMetafileFromWmf Lib "gdiplus.dll" (ByVal hWmf As HMETAFILE, ByVal deleteWmf As BOOL, ByRef wmfPlaceableFileHeader As WmfPlaceableFileHeader, ByRef metafile As *GpMetafile) As GpStatus
Declare Function GdipCreateMetafileFromEmf Lib "gdiplus.dll" (ByVal hEmf As HENHMETAFILE, ByVal deleteEmf As BOOL, ByRef metafile As *GpMetafile) As GpStatus
Declare Function GdipCreateMetafileFromFile Lib "gdiplus.dll" (ByVal filename As PCWSTR, ByRef metafile As *GpMetafile) As GpStatus
Declare Function GdipCreateMetafileFromWmfFile Lib "gdiplus.dll" (ByVal filename As PCWSTR, ByRef wmfPlaceableFileHeader As WmfPlaceableFileHeader, ByRef metafile As *GpMetafile) As GpStatus
Declare Function GdipCreateMetafileFromStream Lib "gdiplus.dll" (ByVal stream As *IStream, ByRef metafile As *GpMetafile) As GpStatus
Declare Function GdipRecordMetafile Lib "gdiplus.dll" (ByVal referenceHdc As HDC, ByVal emfType As EmfType, ByRef frameRect As GpRectF, ByVal frameUnit As MetafileFrameUnit, ByVal description As PCWSTR, ByRef metafile As *GpMetafile) As GpStatus
Declare Function GdipRecordMetafileI Lib "gdiplus.dll" (ByVal referenceHdc As HDC, ByVal emfType As EmfType, ByRef frameRect As GpRectF, ByVal frameUnit As MetafileFrameUnit, ByVal description As PCWSTR, ByRef metafile As *GpMetafile) As GpStatus
Declare Function GdipRecordMetafileFileName Lib "gdiplus.dll" (ByVal filename As PCWSTR, ByVal referenceHdc As HDC, ByVal emfType As EmfType, ByRef frameRect As GpRectF, ByVal frameUnit As MetafileFrameUnit, ByVal description As PCWSTR, ByRef metafile As *GpMetafile) As GpStatus
Declare Function GdipRecordMetafileFileNameI Lib "gdiplus.dll" (ByVal filename As PCWSTR, ByVal referenceHdc As HDC, ByVal emfType As EmfType,ByRef frameRect As GpRectF, ByVal frameUnit As MetafileFrameUnit, ByVal description As PCWSTR, ByRef metafile As *GpMetafile) As GpStatus
Declare Function GdipRecordMetafileStream Lib "gdiplus.dll" (ByVal stream As *IStream, ByVal referenceHdc As HDC, ByVal emfType As EmfType, ByRef frameRect As GpRectF, ByVal frameUnit As MetafileFrameUnit, ByVal description As PCWSTR, ByRef metafile As *GpMetafile) As GpStatus
Declare Function GdipRecordMetafileStreamI Lib "gdiplus.dll" (ByVal stream As *IStream, ByVal referenceHdc As HDC, ByVal emfType As EmfType, ByRef frameRect As GpRectF, ByVal frameUnit As MetafileFrameUnit, ByVal description As PCWSTR, ByRef metafile As *GpMetafile) As GpStatus
Declare Function GdipSetMetafileDownLevelRasterizationLimit Lib "gdiplus.dll" (ByVal metafile As *GpMetafile, ByVal metafileRasterizationLimitDpi As DWord) As GpStatus
Declare Function GdipGetMetafileDownLevelRasterizationLimit Lib "gdiplus.dll" (ByVal metafile As *GpMetafile, ByRef metafileRasterizationLimitDpi As DWord) As GpStatus
Declare Function GdipGetImageDecodersSize Lib "gdiplus.dll" (ByRef numDecoders As DWord, ByRef size As DWord) As GpStatus
Declare Function GdipGetImageDecoders Lib "gdiplus.dll" (ByVal numDecoders As DWord, ByVal size As DWord, ByVal decoders As *ImageCodecInfo) As GpStatus
Declare Function GdipGetImageEncodersSize Lib "gdiplus.dll" (ByRef numDecoders As DWord, ByRef size As DWord) As GpStatus
Declare Function GdipGetImageEncoders Lib "gdiplus.dll" (ByVal numEncoders As DWord, ByVal size As DWord, ByVal encoderss As *ImageCodecInfo) As GpStatus
Declare Function GdipComment Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal sizeData As DWord, ByVal data As *Byte) As GpStatus

' FontFamily APIs
Declare Function GdipCreateFontFamilyFromName Lib "gdiplus.dll" (ByVal name As *WCHAR, ByVal fontCollection As *GpFontCollection, ByRef FontFamily As *GpFontFamily) As GpStatus
Declare Function GdipDeleteFontFamily Lib "gdiplus.dll" (ByVal FontFamily As *GpFontFamily) As GpStatus
Declare Function GdipCloneFontFamily Lib "gdiplus.dll" (ByVal FontFamily As *GpFontFamily, ByRef clonedFontFamily As *GpFontFamily) As GpStatus
Declare Function GdipGetGenericFontFamilySansSerif Lib "gdiplus.dll" (ByRef nativeFamily As *GpFontFamily) As GpStatus
Declare Function GdipGetGenericFontFamilySerif Lib "gdiplus.dll" (ByRef nativeFamily As *GpFontFamily) As GpStatus
Declare Function GdipGetGenericFontFamilyMonospace Lib "gdiplus.dll" (ByRef nativeFamily As *GpFontFamily) As GpStatus
Declare Function GdipGetFamilyName Lib "gdiplus.dll" (ByVal family As *GpFontFamily, ByVal name As PWSTR, ByVal language As LANGID) As GpStatus ' ByRef name[LF_FACESIZE] As WCHAR
Declare Function GdipIsStyleAvailable Lib "gdiplus.dll" (ByVal family As *GpFontFamily, ByVal style As Long, ByRef IsStyleAvailable As BOOL) As GpStatus
Declare Function GdipFontCollectionEnumerable Lib "gdiplus.dll" (ByVal fontCollection As *GpFontCollection, ByVal graphics As *GpGraphics, ByRef numFound As Long) As GpStatus
Declare Function GdipFontCollectionEnumerate Lib "gdiplus.dll" (ByVal fontCollection As *GpFontCollection, ByVal numSought As Long, ByVal gpfamilies As **GpFontFamily, ByRef numFound As Long, ByVal graphics As *GpGraphics) As GpStatus
Declare Function GdipGetEmHeight Lib "gdiplus.dll" (ByVal family As *GpFontFamily, ByVal style As Long, ByRef EmHeight As Word) As GpStatus
Declare Function GdipGetCellAscent Lib "gdiplus.dll" (ByVal family As *GpFontFamily, ByVal style As Long, ByRef CellAscent As Word) As GpStatus
Declare Function GdipGetCellDescent Lib "gdiplus.dll" (ByVal family As *GpFontFamily, ByVal style As Long, ByRef CellDescent As Word) As GpStatus
Declare Function GdipGetLineSpacing Lib "gdiplus.dll" (ByVal family As *GpFontFamily, ByVal style As Long, ByRef LineSpacing As Word) As GpStatus

' Font APIs
Declare Function GdipCreateFontFromDC Lib "gdiplus.dll" (ByVal hdc As HDC, ByRef font As *GpFont) As GpStatus
Declare Function GdipCreateFontFromLogfontA Lib "gdiplus.dll" (ByVal hdc As HDC, ByRef logfont As LOGFONTA, ByRef font As *GpFont) As GpStatus
Declare Function GdipCreateFontFromLogfontW Lib "gdiplus.dll" (ByVal hdc As HDC, ByRef logfont As LOGFONTW, ByRef font As *GpFont) As GpStatus
Declare Function GdipCreateFont Lib "gdiplus.dll" (ByVal fontFamily As *GpFontFamily, ByVal emSize As Single, ByVal style As Long, ByVal unit As GraphicsUnit, ByRef font As *GpFont) As GpStatus
Declare Function GdipCloneFont Lib "gdiplus.dll" (ByVal font As *GpFont, ByRef cloneFont As *GpFont) As GpStatus
Declare Function GdipDeleteFont Lib "gdiplus.dll" (ByVal font As *GpFont) As GpStatus
Declare Function GdipGetFamily Lib "gdiplus.dll" (ByVal font As *GpFont, ByRef family As *GpFontFamily) As GpStatus
Declare Function GdipGetFontStyle Lib "gdiplus.dll" (ByVal font As *GpFont, ByRef style As Long) As GpStatus
Declare Function GdipGetFontSize Lib "gdiplus.dll" (ByVal font As *GpFont, ByRef size As Single) As GpStatus
Declare Function GdipGetFontUnit Lib "gdiplus.dll" (ByVal font As *GpFont, ByRef unit As GraphicsUnit) As GpStatus
Declare Function GdipGetFontHeight Lib "gdiplus.dll" (ByVal font As *GpFont, ByVal graphics As *GpGraphics, ByRef height As Single) As GpStatus
Declare Function GdipGetFontHeightGivenDPI Lib "gdiplus.dll" (ByVal font As *GpFont, ByVal dpi As Single, ByRef height As Single) As GpStatus
Declare Function GdipGetLogFontA Lib "gdiplus.dll" (ByVal font As *GpFont, ByVal graphics As *GpGraphics, ByRef logfontA As LOGFONTA) As GpStatus
Declare Function GdipGetLogFontW Lib "gdiplus.dll" (ByVal font As *GpFont, ByVal graphics As *GpGraphics, ByRef logfontW As LOGFONTW) As GpStatus
Declare Function GdipNewInstalledFontCollection Lib "gdiplus.dll" (ByRef fontCollection As *GpFontCollection) As GpStatus
Declare Function GdipNewPrivateFontCollection Lib "gdiplus.dll" (ByRef fontCollection As *GpFontCollection) As GpStatus
Declare Function GdipDeletePrivateFontCollection Lib "gdiplus.dll" (ByRef fontCollection As *GpFontCollection) As GpStatus
Declare Function GdipGetFontCollectionFamilyCount Lib "gdiplus.dll" (ByVal fontCollection As *GpFontCollection, ByRef numFound As Long) As GpStatus
Declare Function GdipGetFontCollectionFamilyList Lib "gdiplus.dll" (ByVal fontCollection As *GpFontCollection, ByVal numSought As Long, ByVal gpfamilies As **GpFontFamily, ByRef numFound As Long) As GpStatus
Declare Function GdipPrivateAddFontFile Lib "gdiplus.dll" (ByVal fontCollection As *GpFontCollection, ByVal filename As PCWSTR) As GpStatus
Declare Function GdipPrivateAddMemoryFont Lib "gdiplus.dll" (ByVal fontCollection As *GpFontCollection, ByVal memory As VoidPtr, ByVal length As Long) As GpStatus

' Text APIs
Declare Function GdipDrawString Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal string As PCWSTR, ByVal length As Long, font As *GpFont, ByRef layoutRect As GpRectF, ByVal stringFormat As *GpStringFormat, ByVal brush As *GpBrush) As GpStatus
Declare Function GdipMeasureString Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal string As PCWSTR, ByVal length As Long, ByVal font As *GpFont, ByRef layoutRect As GpRectF, ByVal stringFormat As *GpStringFormat, ByRef boundingBox As GpRectF, ByRef codepointsFitted As Long, ByRef linesFilled As Long) As GpStatus
Declare Function GdipMeasureCharacterRanges Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal str As PCWSTR, ByVal length As Long, ByVal font As *GpFont, ByRef layoutRect As GpRectF, ByVal stringFormat As *GpStringFormat, ByVal regionCount As Long, ByRef regions As *GpRegion) As GpStatus
Declare Function GdipDrawDriverString Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal text As *Word, ByVal length As Long, ByVal font As *GpFont, ByVal brush As *GpBrush, ByVal positions As *PointF, ByVal flags As Long, ByVal matrix As *GpMatrix) As GpStatus
Declare Function GdipMeasureDriverString Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal text As *Word, ByVal length As Long, ByVal font As *GpFont, ByVal positions As *PointF, ByVal flags As Long, ByVal matrix As *GpMatrix, ByRef boundingBox As GpRectF) As GpStatus

' String format APIs
Declare Function GdipCreateStringFormat Lib "gdiplus.dll" (ByVal formatAttributes As Long, ByVal language As LANGID, ByRef format As *GpStringFormat) As GpStatus
Declare Function GdipStringFormatGetGenericDefault Lib "gdiplus.dll" (ByRef format As *GpStringFormat) As GpStatus
Declare Function GdipStringFormatGetGenericTypographic Lib "gdiplus.dll" (ByRef format As *GpStringFormat) As GpStatus
Declare Function GdipDeleteStringFormat Lib "gdiplus.dll" (ByVal format As *GpStringFormat) As GpStatus
Declare Function GdipCloneStringFormat Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByRef newFormat As *GpStringFormat) As GpStatus
Declare Function GdipSetStringFormatFlags Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByVal flags As Long) As GpStatus
Declare Function GdipGetStringFormatFlags Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByRef flags As Long) As GpStatus
Declare Function GdipSetStringFormatAlign Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByVal align As StringAlignment) As GpStatus
Declare Function GdipGetStringFormatAlign Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByRef align As StringAlignment) As GpStatus
Declare Function GdipSetStringFormatLineAlign Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByVal align As StringAlignment) As GpStatus
Declare Function GdipGetStringFormatLineAlign Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByRef align As StringAlignment) As GpStatus
Declare Function GdipSetStringFormatTrimming Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByVal trimming As StringTrimming) As GpStatus
Declare Function GdipGetStringFormatTrimming Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByRef trimming As StringTrimming) As GpStatus
Declare Function GdipSetStringFormatHotkeyPrefix Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByVal hotkeyPrefix As Long) As GpStatus
Declare Function GdipGetStringFormatHotkeyPrefix Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByRef hotkeyPrefix As Long) As GpStatus
Declare Function GdipSetStringFormatTabStops Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByVal firstTabOffset As Single, ByVal count As Long, ByVal tabStops As *Single) As GpStatus
Declare Function GdipGetStringFormatTabStops Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByVal count As Long, ByRef firstTabOffset As Single, ByVal tabStops As *Single) As GpStatus
Declare Function GdipGetStringFormatTabStopCount Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByRef count As Long) As GpStatus
Declare Function GdipSetStringFormatDigitSubstitution Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByVal language As LANGID, ByVal substitute As StringDigitSubstitute) As GpStatus
Declare Function GdipGetStringFormatDigitSubstitution Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByRef language As LANGID, ByRef substitute As StringDigitSubstitute) As GpStatus
Declare Function GdipGetStringFormatMeasurableCharacterRangeCount Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByRef count As Long) As GpStatus
Declare Function GdipSetStringFormatMeasurableCharacterRanges Lib "gdiplus.dll" (ByVal format As *GpStringFormat, ByVal rangeCount As Long, ByVal ranges As *CharacterRange) As GpStatus

' Cached Bitmap APIs
Declare Function GdipCreateCachedBitmap Lib "gdiplus.dll" (ByVal bitmap As *GpBitmap, ByVal graphics As *GpGraphics, ByRef cachedBitmap As *GpCachedBitmap) As GpStatus
Declare Function GdipDeleteCachedBitmap Lib "gdiplus.dll" (ByVal cachedBitmap As *GpCachedBitmap) As GpStatus
Declare Function GdipDrawCachedBitmap Lib "gdiplus.dll" (ByVal graphics As *GpGraphics, ByVal cachedBitmap As *GpCachedBitmap, ByVal x As Long, ByVal y As Long) As GpStatus
Declare Function GdipEmfToWmfBits Lib "gdiplus.dll" (ByVal hemf As HENHMETAFILE, ByVal cbData16 As DWord, ByVal pData16 As *Byte, ByVal iMapMode As Long, ByVal eFlags As Long) As DWord
Declare Function GdipSetImageAttributesCachedBackground Lib "gdiplus.dll" (ByVal imageattr As *GpImageAttributes, ByVal enableFlag As BOOL) As GpStatus
Declare Function GdipTestControl Lib "gdiplus.dll" (ByVal control As GpTestControlEnum, ByVal param As VoidPtr) As GpStatus
Declare Function  GdiplusNotificationHook Lib "gdiplus.dll" (ByRef token As ULONG_PTR) As GpStatus
Declare Sub GdiplusNotificationUnhook Lib "gdiplus.dll" (ByVal token As ULONG_PTR)
