' GdiPlusEnums.ab

Const FlatnessDefault = 1.0 / 4.0

TypeDef GraphicsState = DWord
TypeDef GraphicsContainer = DWord

Const Enum MetafileFrameUnit
	MetafileFrameUnitPixel      = 2
	MetafileFrameUnitPoint      = 3
	MetafileFrameUnitInch       = 4
	MetafileFrameUnitDocument   = 5
	MetafileFrameUnitMillimeter = 6
	MetafileFrameUnitGdi
End Enum

Const Enum WrapMode
	WrapModeTile         ' 0
	WrapModeTileFlipX    ' 1
	WrapModeTileFlipY    ' 2
	WrapModeTileFlipXY   ' 3
	WrapModeClamp        ' 4
End Enum

Const Enum HatchStyle
	HatchStyleHorizontal                    ' 0
	HatchStyleVertical                      ' 1
	HatchStyleForwardDiagonal               ' 2
	HatchStyleBackwardDiagonal              ' 3
	HatchStyleCross                         ' 4
	HatchStyleDiagonalCross                 ' 5
	HatchStyle05Percent                     ' 6
	HatchStyle10Percent                     ' 7
	HatchStyle20Percent                     ' 8
	HatchStyle25Percent                     ' 9
	HatchStyle30Percent                     ' 10
	HatchStyle40Percent                     ' 11
	HatchStyle50Percent                     ' 12
	HatchStyle60Percent                     ' 13
	HatchStyle70Percent                     ' 14
	HatchStyle75Percent                     ' 15
	HatchStyle80Percent                     ' 16
	HatchStyle90Percent                     ' 17
	HatchStyleLightDownwardDiagonal         ' 18
	HatchStyleLightUpwardDiagonal           ' 19
	HatchStyleDarkDownwardDiagonal          ' 20
	HatchStyleDarkUpwardDiagonal            ' 21
	HatchStyleWideDownwardDiagonal          ' 22
	HatchStyleWideUpwardDiagonal            ' 23
	HatchStyleLightVertical                 ' 24
	HatchStyleLightHorizontal               ' 25
	HatchStyleNarrowVertical                ' 26
	HatchStyleNarrowHorizontal              ' 27
	HatchStyleDarkVertical                  ' 28
	HatchStyleDarkHorizontal                ' 29
	HatchStyleDashedDownwardDiagonal        ' 30
	HatchStyleDashedUpwardDiagonal          ' 31
	HatchStyleDashedHorizontal              ' 32
	HatchStyleDashedVertical                ' 33
	HatchStyleSmallConfetti                 ' 34
	HatchStyleLargeConfetti                 ' 35
	HatchStyleZigZag                        ' 36
	HatchStyleWave                          ' 37
	HatchStyleDiagonalBrick                 ' 38
	HatchStyleHorizontalBrick               ' 39
	HatchStyleWeave                         ' 40
	HatchStylePlaid                         ' 41
	HatchStyleDivot                         ' 42
	HatchStyleDottedGrid                    ' 43
	HatchStyleDottedDiamond                 ' 44
	HatchStyleShingle                       ' 45
	HatchStyleTrellis                       ' 46
	HatchStyleSphere                        ' 47
	HatchStyleSmallGrid                     ' 48
	HatchStyleSmallCheckerBoard             ' 49
	HatchStyleLargeCheckerBoard             ' 50
	HatchStyleOutlinedDiamond               ' 51
	HatchStyleSolidDiamond                  ' 52

	HatchStyleTotal
'	HatchStyleLargeGrid = HatchStyleCross   ' 4

'	HatchStyleMin       = HatchStyleHorizontal
'	HatchStyleMax       = HatchStyleTotal - 1
End Enum

Const Enum DashStyle
	DashStyleSolid           ' 0
	DashStyleDash            ' 1
	DashStyleDot             ' 2
	DashStyleDashDot         ' 3
	DashStyleDashDotDot      ' 4
	DashStyleCustom          ' 5
End Enum

Const Enum DashCap
	DashCapFlat             = 0
	DashCapRound            = 2
	DashCapTriangle         = 3
End Enum

Const Enum LineCap
	LineCapFlat             = 0
	LineCapSquare           = 1
	LineCapRound            = 2
	LineCapTriangle         = 3

	LineCapNoAnchor         = &h10
	LineCapSquareAnchor     = &h11
	LineCapRoundAnchor      = &h12
	LineCapDiamondAnchor    = &h13
	LineCapArrowAnchor      = &h14

	LineCapCustom           = &hff

	LineCapAnchorMask       = &hf0
End Enum

Const Enum CustomLineCapType
	CustomLineCapTypeDefault         = 0
	CustomLineCapTypeAdjustableArrow = 1
End Enum

Const Enum LineJoin
	LineJoinMiter        = 0
	LineJoinBevel        = 1
	LineJoinRound        = 2
	LineJoinMiterClipped = 3
End Enum

Const Enum PathPointType
	PathPointTypeStart           = 0
	PathPointTypeLine            = 1
	PathPointTypeBezier          = 3
	PathPointTypePathTypeMask    = &h07
	PathPointTypeDashMode        = &h10
	PathPointTypePathMarker      = &h20
	PathPointTypeCloseSubpath    = &h80
	PathPointTypeBezier3    = 3
End Enum

Const Enum WarpMode
	WarpModePerspective     ' 0
	WarpModeBilinear        ' 1
End Enum

Const Enum LinearGradientMode
	LinearGradientModeHorizontal          ' 0
	LinearGradientModeVertical            ' 1
	LinearGradientModeForwardDiagonal     ' 2
	LinearGradientModeBackwardDiagonal    ' 3
End Enum

Const Enum ImageType
	ImageTypeUnknown    ' 0
	ImageTypeBitmap     ' 1
	ImageTypeMetafile   ' 2
End Enum

Const Enum PenAlignment
	PenAlignmentCenter       = 0
	PenAlignmentInset        = 1
End Enum

Const Enum BrushType
	BrushTypeSolidColor       = 0
	BrushTypeHatchFill        = 1
	BrushTypeTextureFill      = 2
	BrushTypePathGradient     = 3
	BrushTypeLinearGradient   = 4
End Enum

Const Enum PenType
	PenTypeSolidColor       = BrushTypeSolidColor
	PenTypeHatchFill        = BrushTypeHatchFill
	PenTypeTextureFill      = BrushTypeTextureFill
	PenTypePathGradient     = BrushTypePathGradient
	PenTypeLinearGradient   = BrushTypeLinearGradient
	PenTypeUnknown          = -1
End Enum

Const Enum GenericFontFamily
	GenericFontFamilySerif
	GenericFontFamilySansSerif
	GenericFontFamilyMonospace
End Enum

Const Enum FontStyle
	FontStyleRegular    = 0
	FontStyleBold       = 1
	FontStyleItalic     = 2
	FontStyleBoldItalic = 3
	FontStyleUnderline  = 4
	FontStyleStrikeout  = 8
End Enum

Const Enum MetafileType
	MetafileTypeInvalid
	MetafileTypeWmf
	MetafileTypeWmfPlaceable
	MetafileTypeEmf
	MetafileTypeEmfPlusOnly
	MetafileTypeEmfPlusDual
End Enum

Const Enum EmfType
	EmfTypeEmfOnly     = MetafileTypeEmf
	EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly
	EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual
End Enum

Const Enum ObjectType
	ObjectTypeInvalid
	ObjectTypeBrush
	ObjectTypePen
	ObjectTypePath
	ObjectTypeRegion
	ObjectTypeImage
	ObjectTypeFont
	ObjectTypeStringFormat
	ObjectTypeImageAttributes
	ObjectTypeCustomLineCap

'	ObjectTypeMax = ObjectTypeCustomLineCap
'	ObjectTypeMin = ObjectTypeBrush
End Enum

Const ObjectTypeIsValid(type_) = (type_ >= ObjectTypeMin) And (type_ <= ObjectTypeMax)

Const GDIP_EMFPLUS_RECORD_BASE        = &h00004000
Const GDIP_WMF_RECORD_BASE            = &h00010000
Const GDIP_WMF_RECORD_TO_EMFPLUS(n)   = ((n) Or GDIP_WMF_RECORD_BASE) ' As EmfPlusRecordType
Const GDIP_EMFPLUS_RECORD_TO_WMF(n)   = ((n) And (Not GDIP_WMF_RECORD_BASE))
'Const GDIP_IS_WMF_RECORDTYPE(n)       (((n) And GDIP_WMF_RECORD_BASE) <> 0)
Function GDIP_IS_WMF_RECORDTYPE(n As DWord) As BOOL
	If (n And GDIP_WMF_RECORD_BASE) <> 0 Then
		GDIP_IS_WMF_RECORDTYPE = TRUE
	Else
		GDIP_IS_WMF_RECORDTYPE = FALSE
	End If
End Function

Const Enum EmfPlusRecordType
/*
	WmfRecordTypeSetBkColor              = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR)
	WmfRecordTypeSetBkMode               = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE)
	WmfRecordTypeSetMapMode              = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPMODE)
	WmfRecordTypeSetROP2                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETROP2)
	WmfRecordTypeSetRelAbs               = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETRELABS)
	WmfRecordTypeSetPolyFillMode         = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPOLYFILLMODE)
	WmfRecordTypeSetStretchBltMode       = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE)
	WmfRecordTypeSetTextCharExtra        = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA)
	WmfRecordTypeSetTextColor            = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR)
	WmfRecordTypeSetTextJustification    = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION)
	WmfRecordTypeSetWindowOrg            = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG)
	WmfRecordTypeSetWindowExt            = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT)
	WmfRecordTypeSetViewportOrg          = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG)
	WmfRecordTypeSetViewportExt          = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTEXT)
	WmfRecordTypeOffsetWindowOrg         = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETWINDOWORG)
	WmfRecordTypeScaleWindowExt          = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEWINDOWEXT)
	WmfRecordTypeOffsetViewportOrg       = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETVIEWPORTORG)
	WmfRecordTypeScaleViewportExt        = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEVIEWPORTEXT)
	WmfRecordTypeLineTo                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_LINETO)
	WmfRecordTypeMoveTo                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_MOVETO)
	WmfRecordTypeExcludeClipRect         = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXCLUDECLIPRECT)
	WmfRecordTypeIntersectClipRect       = GDIP_WMF_RECORD_TO_EMFPLUS(META_INTERSECTCLIPRECT)
	WmfRecordTypeArc                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_ARC)
	WmfRecordTypeEllipse                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_ELLIPSE)
	WmfRecordTypeFloodFill               = GDIP_WMF_RECORD_TO_EMFPLUS(META_FLOODFILL)
	WmfRecordTypePie                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_PIE)
	WmfRecordTypeRectangle               = GDIP_WMF_RECORD_TO_EMFPLUS(META_RECTANGLE)
	WmfRecordTypeRoundRect               = GDIP_WMF_RECORD_TO_EMFPLUS(META_ROUNDRECT)
	WmfRecordTypePatBlt                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_PATBLT)
	WmfRecordTypeSaveDC                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SAVEDC)
	WmfRecordTypeSetPixel                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPIXEL)
	WmfRecordTypeOffsetClipRgn           = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETCLIPRGN)
	WmfRecordTypeTextOut                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_TEXTOUT)
	WmfRecordTypeBitBlt                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_BITBLT)
	WmfRecordTypeStretchBlt              = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHBLT)
	WmfRecordTypePolygon                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYGON)
	WmfRecordTypePolyline                = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYLINE)
	WmfRecordTypeEscape                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_ESCAPE)
	WmfRecordTypeRestoreDC               = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESTOREDC)
	WmfRecordTypeFillRegion              = GDIP_WMF_RECORD_TO_EMFPLUS(META_FILLREGION)
	WmfRecordTypeFrameRegion             = GDIP_WMF_RECORD_TO_EMFPLUS(META_FRAMEREGION)
	WmfRecordTypeInvertRegion            = GDIP_WMF_RECORD_TO_EMFPLUS(META_INVERTREGION)
	WmfRecordTypePaintRegion             = GDIP_WMF_RECORD_TO_EMFPLUS(META_PAINTREGION)
	WmfRecordTypeSelectClipRegion        = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTCLIPREGION)
	WmfRecordTypeSelectObject            = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTOBJECT)
	WmfRecordTypeSetTextAlign            = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTALIGN)
	WmfRecordTypeDrawText                = GDIP_WMF_RECORD_TO_EMFPLUS(&h062F)   ' META_DRAWTEXT
	WmfRecordTypeChord                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_CHORD)
	WmfRecordTypeSetMapperFlags          = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPPERFLAGS)
	WmfRecordTypeExtTextOut              = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTTEXTOUT)
	WmfRecordTypeSetDIBToDev             = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETDIBTODEV)
	WmfRecordTypeSelectPalette           = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTPALETTE)
	WmfRecordTypeRealizePalette          = GDIP_WMF_RECORD_TO_EMFPLUS(META_REALIZEPALETTE)
	WmfRecordTypeAnimatePalette          = GDIP_WMF_RECORD_TO_EMFPLUS(META_ANIMATEPALETTE)
	WmfRecordTypeSetPalEntries           = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPALENTRIES)
	WmfRecordTypePolyPolygon             = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYPOLYGON)
	WmfRecordTypeResizePalette           = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE)
	WmfRecordTypeDIBBitBlt               = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT)
	WmfRecordTypeDIBStretchBlt           = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT)
	WmfRecordTypeDIBCreatePatternBrush   = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH)
	WmfRecordTypeStretchDIB              = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB)
	WmfRecordTypeExtFloodFill            = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL)
	WmfRecordTypeSetLayout               = GDIP_WMF_RECORD_TO_EMFPLUS(&h0149)   ' META_SETLAYOUT
	WmfRecordTypeResetDC                 = GDIP_WMF_RECORD_TO_EMFPLUS(&h014C)   ' META_RESETDC
	WmfRecordTypeStartDoc                = GDIP_WMF_RECORD_TO_EMFPLUS(&h014D)   ' META_STARTDOC
	WmfRecordTypeStartPage               = GDIP_WMF_RECORD_TO_EMFPLUS(&h004F)   ' META_STARTPAGE
	WmfRecordTypeEndPage                 = GDIP_WMF_RECORD_TO_EMFPLUS(&h0050)   ' META_ENDPAGE
	WmfRecordTypeAbortDoc                = GDIP_WMF_RECORD_TO_EMFPLUS(&h0052)   ' META_ABORTDOC
	WmfRecordTypeEndDoc                  = GDIP_WMF_RECORD_TO_EMFPLUS(&h005E)   ' META_ENDDOC
	WmfRecordTypeDeleteObject            = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT)
	WmfRecordTypeCreatePalette           = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE)
	WmfRecordTypeCreateBrush             = GDIP_WMF_RECORD_TO_EMFPLUS(&h00F8)   ' META_CREATEBRUSH
	WmfRecordTypeCreatePatternBrush      = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH)
	WmfRecordTypeCreatePenIndirect       = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT)
	WmfRecordTypeCreateFontIndirect      = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT)
	WmfRecordTypeCreateBrushIndirect     = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT)
	WmfRecordTypeCreateBitmapIndirect    = GDIP_WMF_RECORD_TO_EMFPLUS(&h02FD)   ' META_CREATEBITMAPINDIRECT
	WmfRecordTypeCreateBitmap            = GDIP_WMF_RECORD_TO_EMFPLUS(&h06FE)   ' META_CREATEBITMAP
	WmfRecordTypeCreateRegion            = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION)

	EmfRecordTypeHeader                  = EMR_HEADER
	EmfRecordTypePolyBezier              = EMR_POLYBEZIER
	EmfRecordTypePolygon                 = EMR_POLYGON
	EmfRecordTypePolyline                = EMR_POLYLINE
	EmfRecordTypePolyBezierTo            = EMR_POLYBEZIERTO
	EmfRecordTypePolyLineTo              = EMR_POLYLINETO
	EmfRecordTypePolyPolyline            = EMR_POLYPOLYLINE
	EmfRecordTypePolyPolygon             = EMR_POLYPOLYGON
	EmfRecordTypeSetWindowExtEx          = EMR_SETWINDOWEXTEX
	EmfRecordTypeSetWindowOrgEx          = EMR_SETWINDOWORGEX
	EmfRecordTypeSetViewportExtEx        = EMR_SETVIEWPORTEXTEX
	EmfRecordTypeSetViewportOrgEx        = EMR_SETVIEWPORTORGEX
	EmfRecordTypeSetBrushOrgEx           = EMR_SETBRUSHORGEX
	EmfRecordTypeEOF                     = EMR_EOF
	EmfRecordTypeSetPixelV               = EMR_SETPIXELV
	EmfRecordTypeSetMapperFlags          = EMR_SETMAPPERFLAGS
	EmfRecordTypeSetMapMode              = EMR_SETMAPMODE
	EmfRecordTypeSetBkMode               = EMR_SETBKMODE
	EmfRecordTypeSetPolyFillMode         = EMR_SETPOLYFILLMODE
	EmfRecordTypeSetROP2                 = EMR_SETROP2
	EmfRecordTypeSetStretchBltMode       = EMR_SETSTRETCHBLTMODE
	EmfRecordTypeSetTextAlign            = EMR_SETTEXTALIGN
	EmfRecordTypeSetColorAdjustment      = EMR_SETCOLORADJUSTMENT
	EmfRecordTypeSetTextColor            = EMR_SETTEXTCOLOR
	EmfRecordTypeSetBkColor              = EMR_SETBKCOLOR
	EmfRecordTypeOffsetClipRgn           = EMR_OFFSETCLIPRGN
	EmfRecordTypeMoveToEx                = EMR_MOVETOEX
	EmfRecordTypeSetMetaRgn              = EMR_SETMETARGN
	EmfRecordTypeExcludeClipRect         = EMR_EXCLUDECLIPRECT
	EmfRecordTypeIntersectClipRect       = EMR_INTERSECTCLIPRECT
	EmfRecordTypeScaleViewportExtEx      = EMR_SCALEVIEWPORTEXTEX
	EmfRecordTypeScaleWindowExtEx        = EMR_SCALEWINDOWEXTEX
	EmfRecordTypeSaveDC                  = EMR_SAVEDC
	EmfRecordTypeRestoreDC               = EMR_RESTOREDC
	EmfRecordTypeSetWorldTransform       = EMR_SETWORLDTRANSFORM
	EmfRecordTypeModifyWorldTransform    = EMR_MODIFYWORLDTRANSFORM
	EmfRecordTypeSelectObject            = EMR_SELECTOBJECT
	EmfRecordTypeCreatePen               = EMR_CREATEPEN
	EmfRecordTypeCreateBrushIndirect     = EMR_CREATEBRUSHINDIRECT
	EmfRecordTypeDeleteObject            = EMR_DELETEOBJECT
	EmfRecordTypeAngleArc                = EMR_ANGLEARC
	EmfRecordTypeEllipse                 = EMR_ELLIPSE
	EmfRecordTypeRectangle               = EMR_RECTANGLE
	EmfRecordTypeRoundRect               = EMR_ROUNDRECT
	EmfRecordTypeArc                     = EMR_ARC
	EmfRecordTypeChord                   = EMR_CHORD
	EmfRecordTypePie                     = EMR_PIE
	EmfRecordTypeSelectPalette           = EMR_SELECTPALETTE
	EmfRecordTypeCreatePalette           = EMR_CREATEPALETTE
	EmfRecordTypeSetPaletteEntries       = EMR_SETPALETTEENTRIES
	EmfRecordTypeResizePalette           = EMR_RESIZEPALETTE
	EmfRecordTypeRealizePalette          = EMR_REALIZEPALETTE
	EmfRecordTypeExtFloodFill            = EMR_EXTFLOODFILL
	EmfRecordTypeLineTo                  = EMR_LINETO
	EmfRecordTypeArcTo                   = EMR_ARCTO
	EmfRecordTypePolyDraw                = EMR_POLYDRAW
	EmfRecordTypeSetArcDirection         = EMR_SETARCDIRECTION
	EmfRecordTypeSetMiterLimit           = EMR_SETMITERLIMIT
	EmfRecordTypeBeginPath               = EMR_BEGINPATH
	EmfRecordTypeEndPath                 = EMR_ENDPATH
	EmfRecordTypeCloseFigure             = EMR_CLOSEFIGURE
	EmfRecordTypeFillPath                = EMR_FILLPATH
	EmfRecordTypeStrokeAndFillPath       = EMR_STROKEANDFILLPATH
	EmfRecordTypeStrokePath              = EMR_STROKEPATH
	EmfRecordTypeFlattenPath             = EMR_FLATTENPATH
	EmfRecordTypeWidenPath               = EMR_WIDENPATH
	EmfRecordTypeSelectClipPath          = EMR_SELECTCLIPPATH
	EmfRecordTypeAbortPath               = EMR_ABORTPATH
	EmfRecordTypeReserved_069            = 69   ' Not Used
	EmfRecordTypeGdiComment              = EMR_GDICOMMENT
	EmfRecordTypeFillRgn                 = EMR_FILLRGN
	EmfRecordTypeFrameRgn                = EMR_FRAMERGN
	EmfRecordTypeInvertRgn               = EMR_INVERTRGN
	EmfRecordTypePaintRgn                = EMR_PAINTRGN
	EmfRecordTypeExtSelectClipRgn        = EMR_EXTSELECTCLIPRGN
	EmfRecordTypeBitBlt                  = EMR_BITBLT
	EmfRecordTypeStretchBlt              = EMR_STRETCHBLT
	EmfRecordTypeMaskBlt                 = EMR_MASKBLT
	EmfRecordTypePlgBlt                  = EMR_PLGBLT
	EmfRecordTypeSetDIBitsToDevice       = EMR_SETDIBITSTODEVICE
	EmfRecordTypeStretchDIBits           = EMR_STRETCHDIBITS
	EmfRecordTypeExtCreateFontIndirect   = EMR_EXTCREATEFONTINDIRECTW
	EmfRecordTypeExtTextOutA             = EMR_EXTTEXTOUTA
	EmfRecordTypeExtTextOutW             = EMR_EXTTEXTOUTW
	EmfRecordTypePolyBezier16            = EMR_POLYBEZIER16
	EmfRecordTypePolygon16               = EMR_POLYGON16
	EmfRecordTypePolyline16              = EMR_POLYLINE16
	EmfRecordTypePolyBezierTo16          = EMR_POLYBEZIERTO16
	EmfRecordTypePolylineTo16            = EMR_POLYLINETO16
	EmfRecordTypePolyPolyline16          = EMR_POLYPOLYLINE16
	EmfRecordTypePolyPolygon16           = EMR_POLYPOLYGON16
	EmfRecordTypePolyDraw16              = EMR_POLYDRAW16
	EmfRecordTypeCreateMonoBrush         = EMR_CREATEMONOBRUSH
	EmfRecordTypeCreateDIBPatternBrushPt = EMR_CREATEDIBPATTERNBRUSHPT
	EmfRecordTypeExtCreatePen            = EMR_EXTCREATEPEN
	EmfRecordTypePolyTextOutA            = EMR_POLYTEXTOUTA
	EmfRecordTypePolyTextOutW            = EMR_POLYTEXTOUTW
	EmfRecordTypeSetICMMode              = 98   ' EMR_SETICMMODE
	EmfRecordTypeCreateColorSpace        = 99   ' EMR_CREATECOLORSPACE
	EmfRecordTypeSetColorSpace           = 100  ' EMR_SETCOLORSPACE
	EmfRecordTypeDeleteColorSpace        = 101  ' EMR_DELETECOLORSPACE
	EmfRecordTypeGLSRecord               = 102  ' EMR_GLSRECORD
	EmfRecordTypeGLSBoundedRecord        = 103  ' EMR_GLSBOUNDEDRECORD
	EmfRecordTypePixelFormat             = 104  ' EMR_PIXELFORMAT
	EmfRecordTypeDrawEscape              = 105  ' EMR_RESERVED_105
	EmfRecordTypeExtEscape               = 106  ' EMR_RESERVED_106
	EmfRecordTypeStartDoc                = 107  ' EMR_RESERVED_107
	EmfRecordTypeSmallTextOut            = 108  ' EMR_RESERVED_108
	EmfRecordTypeForceUFIMapping         = 109  ' EMR_RESERVED_109
	EmfRecordTypeNamedEscape             = 110  ' EMR_RESERVED_110
	EmfRecordTypeColorCorrectPalette     = 111  ' EMR_COLORCORRECTPALETTE
	EmfRecordTypeSetICMProfileA          = 112  ' EMR_SETICMPROFILEA
	EmfRecordTypeSetICMProfileW          = 113  ' EMR_SETICMPROFILEW
	EmfRecordTypeAlphaBlend              = 114  ' EMR_ALPHABLEND
	EmfRecordTypeSetLayout               = 115  ' EMR_SETLAYOUT
	EmfRecordTypeTransparentBlt          = 116  ' EMR_TRANSPARENTBLT
	EmfRecordTypeReserved_117            = 117  ' Not Used
	EmfRecordTypeGradientFill            = 118  ' EMR_GRADIENTFILL
	EmfRecordTypeSetLinkedUFIs           = 119  ' EMR_RESERVED_119
	EmfRecordTypeSetTextJustification    = 120  ' EMR_RESERVED_120
	EmfRecordTypeColorMatchToTargetW     = 121  ' EMR_COLORMATCHTOTARGETW
	EmfRecordTypeCreateColorSpaceW       = 122  ' EMR_CREATECOLORSPACEW
	EmfRecordTypeMax                     = 122
	EmfRecordTypeMin                     = 1

	EmfPlusRecordTypeInvalid = GDIP_EMFPLUS_RECORD_BASE
	EmfPlusRecordTypeHeader
	EmfPlusRecordTypeEndOfFile

	EmfPlusRecordTypeComment

	EmfPlusRecordTypeGetDC

	EmfPlusRecordTypeMultiFormatStart
	EmfPlusRecordTypeMultiFormatSection
	EmfPlusRecordTypeMultiFormatEnd

	EmfPlusRecordTypeObject

	EmfPlusRecordTypeClear
	EmfPlusRecordTypeFillRects
	EmfPlusRecordTypeDrawRects
	EmfPlusRecordTypeFillPolygon
	EmfPlusRecordTypeDrawLines
	EmfPlusRecordTypeFillEllipse
	EmfPlusRecordTypeDrawEllipse
	EmfPlusRecordTypeFillPie
	EmfPlusRecordTypeDrawPie
	EmfPlusRecordTypeDrawArc
	EmfPlusRecordTypeFillRegion
	EmfPlusRecordTypeFillPath
	EmfPlusRecordTypeDrawPath
	EmfPlusRecordTypeFillClosedCurve
	EmfPlusRecordTypeDrawClosedCurve
	EmfPlusRecordTypeDrawCurve
	EmfPlusRecordTypeDrawBeziers
	EmfPlusRecordTypeDrawImage
	EmfPlusRecordTypeDrawImagePoints
	EmfPlusRecordTypeDrawString

	EmfPlusRecordTypeSetRenderingOrigin
	EmfPlusRecordTypeSetAntiAliasMode
	EmfPlusRecordTypeSetTextRenderingHint
	EmfPlusRecordTypeSetTextContrast
	EmfPlusRecordTypeSetInterpolationMode
	EmfPlusRecordTypeSetPixelOffsetMode
	EmfPlusRecordTypeSetCompositingMode
	EmfPlusRecordTypeSetCompositingQuality
	EmfPlusRecordTypeSave
	EmfPlusRecordTypeRestore
	EmfPlusRecordTypeBeginContainer
	EmfPlusRecordTypeBeginContainerNoParams
	EmfPlusRecordTypeEndContainer
	EmfPlusRecordTypeSetWorldTransform
	EmfPlusRecordTypeResetWorldTransform
	EmfPlusRecordTypeMultiplyWorldTransform
	EmfPlusRecordTypeTranslateWorldTransform
	EmfPlusRecordTypeScaleWorldTransform
	EmfPlusRecordTypeRotateWorldTransform
	EmfPlusRecordTypeSetPageTransform
	EmfPlusRecordTypeResetClip
	EmfPlusRecordTypeSetClipRect
	EmfPlusRecordTypeSetClipPath
	EmfPlusRecordTypeSetClipRegion
	EmfPlusRecordTypeOffsetClip

	EmfPlusRecordTypeDrawDriverString

	EmfPlusRecordTotal

	EmfPlusRecordTypeMax = EmfPlusRecordTotal-1
	EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader */
End Enum

Const Enum StringFormatFlags
	StringFormatFlagsDirectionRightToLeft        = &h00000001
	StringFormatFlagsDirectionVertical           = &h00000002
	StringFormatFlagsNoFitBlackBox               = &h00000004
	StringFormatFlagsDisplayFormatControl        = &h00000020
	StringFormatFlagsNoFontFallback              = &h00000400
	StringFormatFlagsMeasureTrailingSpaces       = &h00000800
	StringFormatFlagsNoWrap                      = &h00001000
	StringFormatFlagsLineLimit                   = &h00002000

	StringFormatFlagsNoClip                      = &h00004000
End Enum

Const Enum StringTrimming
	StringTrimmingNone              = 0
	StringTrimmingCharacter         = 1
	StringTrimmingWord              = 2
	StringTrimmingEllipsisCharacter = 3
	StringTrimmingEllipsisWord      = 4
	StringTrimmingEllipsisPath      = 5
End Enum

Const Enum StringDigitSubstitute
	StringDigitSubstituteUser        = 0   ' As NLS setting
	StringDigitSubstituteNone        = 1
	StringDigitSubstituteNational    = 2
	StringDigitSubstituteTraditional = 3
End Enum

Const Enum HotkeyPrefix
	HotkeyPrefixNone        = 0
	HotkeyPrefixShow        = 1
	HotkeyPrefixHide        = 2
End Enum

Const Enum StringAlignment
	StringAlignmentNear   = 0
	StringAlignmentCenter = 1
	StringAlignmentFar    = 2
End Enum

Const Enum DriverStringOptions
	DriverStringOptionsCmapLookup             = 1
	DriverStringOptionsVertical               = 2
	DriverStringOptionsRealizedAdvance        = 4
	DriverStringOptionsLimitSubpixel          = 8
End Enum

Const Enum EncoderParameterValueType
	EncoderParameterValueTypeByte           = 1
	EncoderParameterValueTypeASCII          = 2
	EncoderParameterValueTypeShort          = 3
	EncoderParameterValueTypeLong           = 4
	EncoderParameterValueTypeRational       = 5
	EncoderParameterValueTypeLongRange      = 6
	EncoderParameterValueTypeUndefined      = 7
	EncoderParameterValueTypeRationalRange  = 8
End Enum

Const Enum EncoderValue
	EncoderValueColorTypeCMYK
	EncoderValueColorTypeYCCK
	EncoderValueCompressionLZW
	EncoderValueCompressionCCITT3
	EncoderValueCompressionCCITT4
	EncoderValueCompressionRle
	EncoderValueCompressionNone
	EncoderValueScanMethodInterlaced
	EncoderValueScanMethodNonInterlaced
	EncoderValueVersionGif87
	EncoderValueVersionGif89
	EncoderValueRenderProgressive
	EncoderValueRenderNonProgressive
	EncoderValueTransformRotate90
	EncoderValueTransformRotate180
	EncoderValueTransformRotate270
	EncoderValueTransformFlipHorizontal
	EncoderValueTransformFlipVertical
	EncoderValueMultiFrame
	EncoderValueLastFrame
	EncoderValueFlush
	EncoderValueFrameDimensionTime
	EncoderValueFrameDimensionResolution
	EncoderValueFrameDimensionPage
End Enum

Const Enum EmfToWmfBitsFlags
	EmfToWmfBitsFlagsDefault          = &h00000000
	EmfToWmfBitsFlagsEmbedEmf         = &h00000001
	EmfToWmfBitsFlagsIncludePlaceable = &h00000002
	EmfToWmfBitsFlagsNoXORClip        = &h00000004
End Enum

Const Enum GpTestControlEnum
	TestControlForceBilinear = 0
	TestControlNoICM = 1
	TestControlGetBuildNumber = 2
End Enum
