Home | History | Annotate | Download | only in gdiplus
      1 /*
      2  * gdiplusenums.h
      3  *
      4  * GDI+ enumerations
      5  *
      6  * This file is part of the w32api package.
      7  *
      8  * Contributors:
      9  *   Created by Markus Koenig <markus (at) stber-koenig.de>
     10  *
     11  * THIS SOFTWARE IS NOT COPYRIGHTED
     12  *
     13  * This source code is offered for use in the public domain. You may
     14  * use, modify or distribute it freely.
     15  *
     16  * This code is distributed in the hope that it will be useful but
     17  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
     18  * DISCLAIMED. This includes but is not limited to warranties of
     19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     20  *
     21  */
     22 
     23 #ifndef __GDIPLUS_ENUMS_H
     24 #define __GDIPLUS_ENUMS_H
     25 #if __GNUC__ >=3
     26 #pragma GCC system_header
     27 #endif
     28 
     29 typedef enum BrushType {
     30 	BrushTypeSolidColor = 0,
     31 	BrushTypeHatchFill = 1,
     32 	BrushTypeTextureFill = 2,
     33 	BrushTypePathGradient = 3,
     34 	BrushTypeLinearGradient = 4
     35 } BrushType;
     36 
     37 typedef enum CombineMode {
     38 	CombineModeReplace = 0,
     39 	CombineModeIntersect = 1,
     40 	CombineModeUnion = 2,
     41 	CombineModeXor = 3,
     42 	CombineModeExclude = 4,
     43 	CombineModeComplement = 5
     44 } CombineMode;
     45 
     46 typedef enum CompositingMode {
     47 	CompositingModeSourceOver = 0,
     48 	CompositingModeSourceCopy = 1
     49 } CompositingMode;
     50 
     51 typedef enum CompositingQuality {
     52 	CompositingQualityDefault = 0,
     53 	CompositingQualityHighSpeed = 1,
     54 	CompositingQualityHighQuality = 2,
     55 	CompositingQualityGammaCorrected = 3,
     56 	CompositingQualityAssumeLinear = 4
     57 } CompositingQuality;
     58 
     59 typedef enum CoordinateSpace {
     60 	CoordinateSpaceWorld = 0,
     61 	CoordinateSpacePage = 1,
     62 	CoordinateSpaceDevice = 2
     63 } CoordinateSpace;
     64 
     65 typedef enum CustomLineCapType {
     66 	CustomLineCapTypeDefault = 0,
     67 	CustomLineCapTypeAdjustableArrow = 1
     68 } CustomLineCapType;
     69 
     70 typedef enum DashCap {
     71 	DashCapFlat = 0,
     72 	DashCapRound = 2,
     73 	DashCapTriangle = 3
     74 } DashCap;
     75 
     76 typedef enum DashStyle {
     77 	DashStyleSolid = 0,
     78 	DashStyleDash = 1,
     79 	DashStyleDot = 2,
     80 	DashStyleDashDot = 3,
     81 	DashStyleDashDotDot = 4,
     82 	DashStyleCustom = 5
     83 } DashStyle;
     84 
     85 typedef enum DitherType {
     86 	DitherTypeNone = 0,
     87 	DitherTypeSolid = 1,
     88 	DitherTypeOrdered4x4 = 2,
     89 	DitherTypeOrdered8x8 = 3,
     90 	DitherTypeOrdered16x16 = 4,
     91 	DitherTypeOrdered91x91 = 5,
     92 	DitherTypeSpiral4x4 = 6,
     93 	DitherTypeSpiral8x8 = 7,
     94 	DitherTypeDualSpiral4x4 = 8,
     95 	DitherTypeDualSpiral8x8 = 9,
     96 	DitherTypeErrorDiffusion = 10
     97 } DitherType;
     98 
     99 typedef enum DriverStringOptions {
    100 	DriverStringOptionsCmapLookup = 1,
    101 	DriverStringOptionsVertical = 2,
    102 	DriverStringOptionsRealizedAdvance = 4,
    103 	DriverStringOptionsLimitSubpixel = 8
    104 } DriverStringOptions;
    105 
    106 #define GDIP_WMF_RECORD_TO_EMFPLUS(meta) ((meta) | 0x10000)
    107 #define GDIP_EMFPLUS_RECORD_BASE (0x4000)
    108 typedef enum EmfPlusRecordType {
    109 	WmfRecordTypeSetBkColor                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR),
    110 	WmfRecordTypeSetBkMode                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE),
    111 	WmfRecordTypeSetMapMode                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPMODE),
    112 	WmfRecordTypeSetROP2                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETROP2),
    113 	WmfRecordTypeSetRelAbs                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETRELABS),
    114 	WmfRecordTypeSetPolyFillMode               = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPOLYFILLMODE),
    115 	WmfRecordTypeSetStretchBltMode             = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE),
    116 	WmfRecordTypeSetTextCharExtra              = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA),
    117 	WmfRecordTypeSetTextColor                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR),
    118 	WmfRecordTypeSetTextJustification          = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION),
    119 	WmfRecordTypeSetWindowOrg                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG),
    120 	WmfRecordTypeSetWindowExt                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT),
    121 	WmfRecordTypeSetViewportOrg                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG),
    122 	WmfRecordTypeSetViewportExt                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTEXT),
    123 	WmfRecordTypeOffsetWindowOrg               = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETWINDOWORG),
    124 	WmfRecordTypeScaleWindowExt                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEWINDOWEXT),
    125 	WmfRecordTypeOffsetViewportOrg             = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETVIEWPORTORG),
    126 	WmfRecordTypeScaleViewportExt              = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEVIEWPORTEXT),
    127 	WmfRecordTypeLineTo                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_LINETO),
    128 	WmfRecordTypeMoveTo                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_MOVETO),
    129 	WmfRecordTypeExcludeClipRect               = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXCLUDECLIPRECT),
    130 	WmfRecordTypeIntersectClipRect             = GDIP_WMF_RECORD_TO_EMFPLUS(META_INTERSECTCLIPRECT),
    131 	WmfRecordTypeArc                           = GDIP_WMF_RECORD_TO_EMFPLUS(META_ARC),
    132 	WmfRecordTypeEllipse                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_ELLIPSE),
    133 	WmfRecordTypeFloodFill                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_FLOODFILL),
    134 	WmfRecordTypePie                           = GDIP_WMF_RECORD_TO_EMFPLUS(META_PIE),
    135 	WmfRecordTypeRectangle                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_RECTANGLE),
    136 	WmfRecordTypeRoundRect                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_ROUNDRECT),
    137 	WmfRecordTypePatBlt                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_PATBLT),
    138 	WmfRecordTypeSaveDC                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_SAVEDC),
    139 	WmfRecordTypeSetPixel                      = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPIXEL),
    140 	WmfRecordTypeOffsetClipRgn                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETCLIPRGN),
    141 	WmfRecordTypeTextOut                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_TEXTOUT),
    142 	WmfRecordTypeBitBlt                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_BITBLT),
    143 	WmfRecordTypeStretchBlt                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHBLT),
    144 	WmfRecordTypePolygon                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYGON),
    145 	WmfRecordTypePolyline                      = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYLINE),
    146 	WmfRecordTypeEscape                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_ESCAPE),
    147 	WmfRecordTypeRestoreDC                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESTOREDC),
    148 	WmfRecordTypeFillRegion                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_FILLREGION),
    149 	WmfRecordTypeFrameRegion                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_FRAMEREGION),
    150 	WmfRecordTypeInvertRegion                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_INVERTREGION),
    151 	WmfRecordTypePaintRegion                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_PAINTREGION),
    152 	WmfRecordTypeSelectClipRegion              = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTCLIPREGION),
    153 	WmfRecordTypeSelectObject                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTOBJECT),
    154 	WmfRecordTypeSetTextAlign                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTALIGN),
    155 	WmfRecordTypeDrawText                      = GDIP_WMF_RECORD_TO_EMFPLUS(0x062F),
    156 	WmfRecordTypeChord                         = GDIP_WMF_RECORD_TO_EMFPLUS(META_CHORD),
    157 	WmfRecordTypeSetMapperFlags                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPPERFLAGS),
    158 	WmfRecordTypeExtTextOut                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTTEXTOUT),
    159 	WmfRecordTypeSetDIBToDev                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETDIBTODEV),
    160 	WmfRecordTypeSelectPalette                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTPALETTE),
    161 	WmfRecordTypeRealizePalette                = GDIP_WMF_RECORD_TO_EMFPLUS(META_REALIZEPALETTE),
    162 	WmfRecordTypeAnimatePalette                = GDIP_WMF_RECORD_TO_EMFPLUS(META_ANIMATEPALETTE),
    163 	WmfRecordTypeSetPalEntries                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPALENTRIES),
    164 	WmfRecordTypePolyPolygon                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYPOLYGON),
    165 	WmfRecordTypeResizePalette                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE),
    166 	WmfRecordTypeDIBBitBlt                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT),
    167 	WmfRecordTypeDIBStretchBlt                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT),
    168 	WmfRecordTypeDIBCreatePatternBrush         = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH),
    169 	WmfRecordTypeStretchDIB                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB),
    170 	WmfRecordTypeExtFloodFill                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL),
    171 	WmfRecordTypeSetLayout                     = GDIP_WMF_RECORD_TO_EMFPLUS(0x0149),
    172 	WmfRecordTypeResetDC                       = GDIP_WMF_RECORD_TO_EMFPLUS(0x014C),
    173 	WmfRecordTypeStartDoc                      = GDIP_WMF_RECORD_TO_EMFPLUS(0x014D),
    174 	WmfRecordTypeStartPage                     = GDIP_WMF_RECORD_TO_EMFPLUS(0x004F),
    175 	WmfRecordTypeEndPage                       = GDIP_WMF_RECORD_TO_EMFPLUS(0x0050),
    176 	WmfRecordTypeAbortDoc                      = GDIP_WMF_RECORD_TO_EMFPLUS(0x0052),
    177 	WmfRecordTypeEndDoc                        = GDIP_WMF_RECORD_TO_EMFPLUS(0x005E),
    178 	WmfRecordTypeDeleteObject                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT),
    179 	WmfRecordTypeCreatePalette                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE),
    180 	WmfRecordTypeCreateBrush                   = GDIP_WMF_RECORD_TO_EMFPLUS(0x00F8),
    181 	WmfRecordTypeCreatePatternBrush            = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH),
    182 	WmfRecordTypeCreatePenIndirect             = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT),
    183 	WmfRecordTypeCreateFontIndirect            = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT),
    184 	WmfRecordTypeCreateBrushIndirect           = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT),
    185 	WmfRecordTypeCreateBitmapIndirect          = GDIP_WMF_RECORD_TO_EMFPLUS(0x02FD),
    186 	WmfRecordTypeCreateBitmap                  = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE),
    187 	WmfRecordTypeCreateRegion                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION),
    188 	EmfRecordTypeHeader                        = EMR_HEADER,
    189 	EmfRecordTypePolyBezier                    = EMR_POLYBEZIER,
    190 	EmfRecordTypePolygon                       = EMR_POLYGON,
    191 	EmfRecordTypePolyline                      = EMR_POLYLINE,
    192 	EmfRecordTypePolyBezierTo                  = EMR_POLYBEZIERTO,
    193 	EmfRecordTypePolyLineTo                    = EMR_POLYLINETO,
    194 	EmfRecordTypePolyPolyline                  = EMR_POLYPOLYLINE,
    195 	EmfRecordTypePolyPolygon                   = EMR_POLYPOLYGON,
    196 	EmfRecordTypeSetWindowExtEx                = EMR_SETWINDOWEXTEX,
    197 	EmfRecordTypeSetWindowOrgEx                = EMR_SETWINDOWORGEX,
    198 	EmfRecordTypeSetViewportExtEx              = EMR_SETVIEWPORTEXTEX,
    199 	EmfRecordTypeSetViewportOrgEx              = EMR_SETVIEWPORTORGEX,
    200 	EmfRecordTypeSetBrushOrgEx                 = EMR_SETBRUSHORGEX,
    201 	EmfRecordTypeEOF                           = EMR_EOF,
    202 	EmfRecordTypeSetPixelV                     = EMR_SETPIXELV,
    203 	EmfRecordTypeSetMapperFlags                = EMR_SETMAPPERFLAGS,
    204 	EmfRecordTypeSetMapMode                    = EMR_SETMAPMODE,
    205 	EmfRecordTypeSetBkMode                     = EMR_SETBKMODE,
    206 	EmfRecordTypeSetPolyFillMode               = EMR_SETPOLYFILLMODE,
    207 	EmfRecordTypeSetROP2                       = EMR_SETROP2,
    208 	EmfRecordTypeSetStretchBltMode             = EMR_SETSTRETCHBLTMODE,
    209 	EmfRecordTypeSetTextAlign                  = EMR_SETTEXTALIGN,
    210 	EmfRecordTypeSetColorAdjustment            = EMR_SETCOLORADJUSTMENT,
    211 	EmfRecordTypeSetTextColor                  = EMR_SETTEXTCOLOR,
    212 	EmfRecordTypeSetBkColor                    = EMR_SETBKCOLOR,
    213 	EmfRecordTypeOffsetClipRgn                 = EMR_OFFSETCLIPRGN,
    214 	EmfRecordTypeMoveToEx                      = EMR_MOVETOEX,
    215 	EmfRecordTypeSetMetaRgn                    = EMR_SETMETARGN,
    216 	EmfRecordTypeExcludeClipRect               = EMR_EXCLUDECLIPRECT,
    217 	EmfRecordTypeIntersectClipRect             = EMR_INTERSECTCLIPRECT,
    218 	EmfRecordTypeScaleViewportExtEx            = EMR_SCALEVIEWPORTEXTEX,
    219 	EmfRecordTypeScaleWindowExtEx              = EMR_SCALEWINDOWEXTEX,
    220 	EmfRecordTypeSaveDC                        = EMR_SAVEDC,
    221 	EmfRecordTypeRestoreDC                     = EMR_RESTOREDC,
    222 	EmfRecordTypeSetWorldTransform             = EMR_SETWORLDTRANSFORM,
    223 	EmfRecordTypeModifyWorldTransform          = EMR_MODIFYWORLDTRANSFORM,
    224 	EmfRecordTypeSelectObject                  = EMR_SELECTOBJECT,
    225 	EmfRecordTypeCreatePen                     = EMR_CREATEPEN,
    226 	EmfRecordTypeCreateBrushIndirect           = EMR_CREATEBRUSHINDIRECT,
    227 	EmfRecordTypeDeleteObject                  = EMR_DELETEOBJECT,
    228 	EmfRecordTypeAngleArc                      = EMR_ANGLEARC,
    229 	EmfRecordTypeEllipse                       = EMR_ELLIPSE,
    230 	EmfRecordTypeRectangle                     = EMR_RECTANGLE,
    231 	EmfRecordTypeRoundRect                     = EMR_ROUNDRECT,
    232 	EmfRecordTypeArc                           = EMR_ARC,
    233 	EmfRecordTypeChord                         = EMR_CHORD,
    234 	EmfRecordTypePie                           = EMR_PIE,
    235 	EmfRecordTypeSelectPalette                 = EMR_SELECTPALETTE,
    236 	EmfRecordTypeCreatePalette                 = EMR_CREATEPALETTE,
    237 	EmfRecordTypeSetPaletteEntries             = EMR_SETPALETTEENTRIES,
    238 	EmfRecordTypeResizePalette                 = EMR_RESIZEPALETTE,
    239 	EmfRecordTypeRealizePalette                = EMR_REALIZEPALETTE,
    240 	EmfRecordTypeExtFloodFill                  = EMR_EXTFLOODFILL,
    241 	EmfRecordTypeLineTo                        = EMR_LINETO,
    242 	EmfRecordTypeArcTo                         = EMR_ARCTO,
    243 	EmfRecordTypePolyDraw                      = EMR_POLYDRAW,
    244 	EmfRecordTypeSetArcDirection               = EMR_SETARCDIRECTION,
    245 	EmfRecordTypeSetMiterLimit                 = EMR_SETMITERLIMIT,
    246 	EmfRecordTypeBeginPath                     = EMR_BEGINPATH,
    247 	EmfRecordTypeEndPath                       = EMR_ENDPATH,
    248 	EmfRecordTypeCloseFigure                   = EMR_CLOSEFIGURE,
    249 	EmfRecordTypeFillPath                      = EMR_FILLPATH,
    250 	EmfRecordTypeStrokeAndFillPath             = EMR_STROKEANDFILLPATH,
    251 	EmfRecordTypeStrokePath                    = EMR_STROKEPATH,
    252 	EmfRecordTypeFlattenPath                   = EMR_FLATTENPATH,
    253 	EmfRecordTypeWidenPath                     = EMR_WIDENPATH,
    254 	EmfRecordTypeSelectClipPath                = EMR_SELECTCLIPPATH,
    255 	EmfRecordTypeAbortPath                     = EMR_ABORTPATH,
    256 	EmfRecordTypeReserved_069                  = 69,
    257 	EmfRecordTypeGdiComment                    = EMR_GDICOMMENT,
    258 	EmfRecordTypeFillRgn                       = EMR_FILLRGN,
    259 	EmfRecordTypeFrameRgn                      = EMR_FRAMERGN,
    260 	EmfRecordTypeInvertRgn                     = EMR_INVERTRGN,
    261 	EmfRecordTypePaintRgn                      = EMR_PAINTRGN,
    262 	EmfRecordTypeExtSelectClipRgn              = EMR_EXTSELECTCLIPRGN,
    263 	EmfRecordTypeBitBlt                        = EMR_BITBLT,
    264 	EmfRecordTypeStretchBlt                    = EMR_STRETCHBLT,
    265 	EmfRecordTypeMaskBlt                       = EMR_MASKBLT,
    266 	EmfRecordTypePlgBlt                        = EMR_PLGBLT,
    267 	EmfRecordTypeSetDIBitsToDevice             = EMR_SETDIBITSTODEVICE,
    268 	EmfRecordTypeStretchDIBits                 = EMR_STRETCHDIBITS,
    269 	EmfRecordTypeExtCreateFontIndirect         = EMR_EXTCREATEFONTINDIRECTW,
    270 	EmfRecordTypeExtTextOutA                   = EMR_EXTTEXTOUTA,
    271 	EmfRecordTypeExtTextOutW                   = EMR_EXTTEXTOUTW,
    272 	EmfRecordTypePolyBezier16                  = EMR_POLYBEZIER16,
    273 	EmfRecordTypePolygon16                     = EMR_POLYGON16,
    274 	EmfRecordTypePolyline16                    = EMR_POLYLINE16,
    275 	EmfRecordTypePolyBezierTo16                = EMR_POLYBEZIERTO16,
    276 	EmfRecordTypePolylineTo16                  = EMR_POLYLINETO16,
    277 	EmfRecordTypePolyPolyline16                = EMR_POLYPOLYLINE16,
    278 	EmfRecordTypePolyPolygon16                 = EMR_POLYPOLYGON16,
    279 	EmfRecordTypePolyDraw16                    = EMR_POLYDRAW16,
    280 	EmfRecordTypeCreateMonoBrush               = EMR_CREATEMONOBRUSH,
    281 	EmfRecordTypeCreateDIBPatternBrushPt       = EMR_CREATEDIBPATTERNBRUSHPT,
    282 	EmfRecordTypeExtCreatePen                  = EMR_EXTCREATEPEN,
    283 	EmfRecordTypePolyTextOutA                  = EMR_POLYTEXTOUTA,
    284 	EmfRecordTypePolyTextOutW                  = EMR_POLYTEXTOUTW,
    285 	EmfRecordTypeSetICMMode                    = 98,
    286 	EmfRecordTypeCreateColorSpace              = 99,
    287 	EmfRecordTypeSetColorSpace                 = 100,
    288 	EmfRecordTypeDeleteColorSpace              = 101,
    289 	EmfRecordTypeGLSRecord                     = 102,
    290 	EmfRecordTypeGLSBoundedRecord              = 103,
    291 	EmfRecordTypePixelFormat                   = 104,
    292 	EmfRecordTypeDrawEscape                    = 105,
    293 	EmfRecordTypeExtEscape                     = 106,
    294 	EmfRecordTypeStartDoc                      = 107,
    295 	EmfRecordTypeSmallTextOut                  = 108,
    296 	EmfRecordTypeForceUFIMapping               = 109,
    297 	EmfRecordTypeNamedEscape                   = 110,
    298 	EmfRecordTypeColorCorrectPalette           = 111,
    299 	EmfRecordTypeSetICMProfileA                = 112,
    300 	EmfRecordTypeSetICMProfileW                = 113,
    301 	EmfRecordTypeAlphaBlend                    = 114,
    302 	EmfRecordTypeSetLayout                     = 115,
    303 	EmfRecordTypeTransparentBlt                = 116,
    304 	EmfRecordTypeReserved_117                  = 117,
    305 	EmfRecordTypeGradientFill                  = 118,
    306 	EmfRecordTypeSetLinkedUFIs                 = 119,
    307 	EmfRecordTypeSetTextJustification          = 120,
    308 	EmfRecordTypeColorMatchToTargetW           = 121,
    309 	EmfRecordTypeCreateColorSpaceW             = 122,
    310 	EmfRecordTypeMax                           = 122,
    311 	EmfRecordTypeMin                           = 1,
    312 	EmfPlusRecordTypeInvalid                   = GDIP_EMFPLUS_RECORD_BASE,
    313 	EmfPlusRecordTypeHeader,
    314 	EmfPlusRecordTypeEndOfFile,
    315 	EmfPlusRecordTypeComment,
    316 	EmfPlusRecordTypeGetDC,
    317 	EmfPlusRecordTypeMultiFormatStart,
    318 	EmfPlusRecordTypeMultiFormatSection,
    319 	EmfPlusRecordTypeMultiFormatEnd,
    320 	EmfPlusRecordTypeObject,
    321 	EmfPlusRecordTypeClear,
    322 	EmfPlusRecordTypeFillRects,
    323 	EmfPlusRecordTypeDrawRects,
    324 	EmfPlusRecordTypeFillPolygon,
    325 	EmfPlusRecordTypeDrawLines,
    326 	EmfPlusRecordTypeFillEllipse,
    327 	EmfPlusRecordTypeDrawEllipse,
    328 	EmfPlusRecordTypeFillPie,
    329 	EmfPlusRecordTypeDrawPie,
    330 	EmfPlusRecordTypeDrawArc,
    331 	EmfPlusRecordTypeFillRegion,
    332 	EmfPlusRecordTypeFillPath,
    333 	EmfPlusRecordTypeDrawPath,
    334 	EmfPlusRecordTypeFillClosedCurve,
    335 	EmfPlusRecordTypeDrawClosedCurve,
    336 	EmfPlusRecordTypeDrawCurve,
    337 	EmfPlusRecordTypeDrawBeziers,
    338 	EmfPlusRecordTypeDrawImage,
    339 	EmfPlusRecordTypeDrawImagePoints,
    340 	EmfPlusRecordTypeDrawString,
    341 	EmfPlusRecordTypeSetRenderingOrigin,
    342 	EmfPlusRecordTypeSetAntiAliasMode,
    343 	EmfPlusRecordTypeSetTextRenderingHint,
    344 	EmfPlusRecordTypeSetTextContrast,
    345 	EmfPlusRecordTypeSetGammaValue,
    346 	EmfPlusRecordTypeSetInterpolationMode,
    347 	EmfPlusRecordTypeSetPixelOffsetMode,
    348 	EmfPlusRecordTypeSetCompositingMode,
    349 	EmfPlusRecordTypeSetCompositingQuality,
    350 	EmfPlusRecordTypeSave,
    351 	EmfPlusRecordTypeRestore,
    352 	EmfPlusRecordTypeBeginContainer,
    353 	EmfPlusRecordTypeBeginContainerNoParams,
    354 	EmfPlusRecordTypeEndContainer,
    355 	EmfPlusRecordTypeSetWorldTransform,
    356 	EmfPlusRecordTypeResetWorldTransform,
    357 	EmfPlusRecordTypeMultiplyWorldTransform,
    358 	EmfPlusRecordTypeTranslateWorldTransform,
    359 	EmfPlusRecordTypeScaleWorldTransform,
    360 	EmfPlusRecordTypeRotateWorldTransform,
    361 	EmfPlusRecordTypeSetPageTransform,
    362 	EmfPlusRecordTypeResetClip,
    363 	EmfPlusRecordTypeSetClipRect,
    364 	EmfPlusRecordTypeSetClipPath,
    365 	EmfPlusRecordTypeSetClipRegion,
    366 	EmfPlusRecordTypeOffsetClip,
    367 	EmfPlusRecordTypeDrawDriverString,
    368 	EmfPlusRecordTypeStrokeFillPath,
    369 	EmfPlusRecordTypeSerializableObject,
    370 	EmfPlusRecordTypeSetTSGraphics,
    371 	EmfPlusRecordTypeSetTSClip,
    372 	EmfPlusRecordTotal,
    373 	EmfPlusRecordTypeMax = EmfPlusRecordTotal-1,
    374 	EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader
    375 } EmfPlusRecordType;
    376 
    377 typedef enum EmfToWmfBitsFlags {
    378 	EmfToWmfBitsFlagsDefault = 0,
    379 	EmfToWmfBitsFlagsEmbedEmf = 1,
    380 	EmfToWmfBitsFlagsIncludePlaceable = 2,
    381 	EmfToWmfBitsFlagsNoXORClip = 4
    382 } EmfToWmfBitsFlags;
    383 
    384 typedef enum EmfType {
    385 	EmfTypeEmfOnly = 3,
    386 	EmfTypeEmfPlusOnly = 4,
    387 	EmfTypeEmfPlusDual = 5
    388 } EmfType;
    389 
    390 typedef enum EncoderParameterValueType {
    391 	EncoderParameterValueTypeByte = 1,
    392 	EncoderParameterValueTypeASCII = 2,
    393 	EncoderParameterValueTypeShort = 3,
    394 	EncoderParameterValueTypeLong = 4,
    395 	EncoderParameterValueTypeRational = 5,
    396 	EncoderParameterValueTypeLongRange = 6,
    397 	EncoderParameterValueTypeUndefined = 7,
    398 	EncoderParameterValueTypeRationalRange = 8,
    399 	EncoderParameterValueTypePointer = 9
    400 } EncoderParameterValueType;
    401 
    402 typedef enum EncoderValue {
    403 	EncoderValueColorTypeCMYK = 0,
    404 	EncoderValueColorTypeYCCK = 1,
    405 	EncoderValueCompressionLZW = 2,
    406 	EncoderValueCompressionCCITT3 = 3,
    407 	EncoderValueCompressionCCITT4 = 4,
    408 	EncoderValueCompressionRle = 5,
    409 	EncoderValueCompressionNone = 6,
    410 	EncoderValueScanMethodInterlaced = 7,
    411 	EncoderValueScanMethodNonInterlaced = 8,
    412 	EncoderValueVersionGif87 = 9,
    413 	EncoderValueVersionGif89 = 10,
    414 	EncoderValueRenderProgressive = 11,
    415 	EncoderValueRenderNonProgressive = 12,
    416 	EncoderValueTransformRotate90 = 13,
    417 	EncoderValueTransformRotate180 = 14,
    418 	EncoderValueTransformRotate270 = 15,
    419 	EncoderValueTransformFlipHorizontal = 16,
    420 	EncoderValueTransformFlipVertical = 17,
    421 	EncoderValueMultiFrame = 18,
    422 	EncoderValueLastFrame = 19,
    423 	EncoderValueFlush = 20,
    424 	EncoderValueFrameDimensionTime = 21,
    425 	EncoderValueFrameDimensionResolution = 22,
    426 	EncoderValueFrameDimensionPage = 23
    427 } EncoderValue;
    428 
    429 typedef enum FillMode {
    430 	FillModeAlternate = 0,
    431 	FillModeWinding = 1
    432 } FillMode;
    433 
    434 typedef enum FlushIntention {
    435 	FlushIntentionFlush = 0,
    436 	FlushIntentionSync = 1
    437 } FlushIntention;
    438 
    439 typedef enum FontStyle {
    440 	FontStyleRegular = 0,
    441 	FontStyleBold = 1,
    442 	FontStyleItalic = 2,
    443 	FontStyleBoldItalic = 3,
    444 	FontStyleUnderline = 4,
    445 	FontStyleStrikeout = 8
    446 } FontStyle;
    447 
    448 typedef enum HatchStyle {
    449 	HatchStyleHorizontal = 0,
    450 	HatchStyleVertical = 1,
    451 	HatchStyleForwardDiagonal = 2,
    452 	HatchStyleBackwardDiagonal = 3,
    453 	HatchStyleCross = 4,
    454 	HatchStyleLargeGrid = 4,
    455 	HatchStyleDiagonalCross = 5,
    456 	HatchStyle05Percent = 6,
    457 	HatchStyle10Percent = 7,
    458 	HatchStyle20Percent = 8,
    459 	HatchStyle25Percent = 9,
    460 	HatchStyle30Percent = 10,
    461 	HatchStyle40Percent = 11,
    462 	HatchStyle50Percent = 12,
    463 	HatchStyle60Percent = 13,
    464 	HatchStyle70Percent = 14,
    465 	HatchStyle75Percent = 15,
    466 	HatchStyle80Percent = 16,
    467 	HatchStyle90Percent = 17,
    468 	HatchStyleLightDownwardDiagonal = 18,
    469 	HatchStyleLightUpwardDiagonal = 19,
    470 	HatchStyleDarkDownwardDiagonal = 20,
    471 	HatchStyleDarkUpwardDiagonal = 21,
    472 	HatchStyleWideDownwardDiagonal = 22,
    473 	HatchStyleWideUpwardDiagonal = 23,
    474 	HatchStyleLightVertical = 24,
    475 	HatchStyleLightHorizontal = 25,
    476 	HatchStyleNarrowVertical = 26,
    477 	HatchStyleNarrowHorizontal = 27,
    478 	HatchStyleDarkVertical = 28,
    479 	HatchStyleDarkHorizontal = 29,
    480 	HatchStyleDashedDownwardDiagonal = 30,
    481 	HatchStyleDashedUpwardDiagonal = 31,
    482 	HatchStyleDashedHorizontal = 32,
    483 	HatchStyleDashedVertical = 33,
    484 	HatchStyleSmallConfetti = 34,
    485 	HatchStyleLargeConfetti = 35,
    486 	HatchStyleZigZag = 36,
    487 	HatchStyleWave = 37,
    488 	HatchStyleDiagonalBrick = 38,
    489 	HatchStyleHorizontalBrick = 39,
    490 	HatchStyleWeave = 40,
    491 	HatchStylePlaid = 41,
    492 	HatchStyleDivot = 42,
    493 	HatchStyleDottedGrid = 43,
    494 	HatchStyleDottedDiamond = 44,
    495 	HatchStyleShingle = 45,
    496 	HatchStyleTrellis = 46,
    497 	HatchStyleSphere = 47,
    498 	HatchStyleSmallGrid = 48,
    499 	HatchStyleSmallCheckerBoard = 49,
    500 	HatchStyleLargeCheckerBoard = 50,
    501 	HatchStyleOutlinedDiamond = 51,
    502 	HatchStyleSolidDiamond = 52,
    503 	HatchStyleTotal = 53,
    504 	HatchStyleMin = HatchStyleHorizontal,
    505 	HatchStyleMax = HatchStyleTotal - 1
    506 } HatchStyle;
    507 
    508 typedef enum HotkeyPrefix {
    509 	HotkeyPrefixNone = 0,
    510 	HotkeyPrefixShow = 1,
    511 	HotkeyPrefixHide = 2
    512 } HotkeyPrefix;
    513 
    514 typedef enum ImageType {
    515 	ImageTypeUnknown = 0,
    516 	ImageTypeBitmap = 1,
    517 	ImageTypeMetafile = 2
    518 } ImageType;
    519 
    520 /* TODO: InterpolationMode */
    521 typedef enum InterpolationMode {
    522 	/*InterpolationModeInvalid = QualityModeInvalid,*/
    523 	InterpolationModeDefault = 0,
    524 	InterpolationModeLowQuality = 1,
    525 	InterpolationModeHighQuality = 2,
    526 	InterpolationModeBilinear = 3,
    527 	InterpolationModeBicubic = 4,
    528 	InterpolationModeNearestNeighbor = 5,
    529 	InterpolationModeHighQualityBilinear = 6,
    530 	InterpolationModeHighQualityBicubic = 7
    531 } InterpolationMode;
    532 
    533 typedef enum LinearGradientMode {
    534 	LinearGradientModeHorizontal = 0,
    535 	LinearGradientModeVertical = 1,
    536 	LinearGradientModeForwardDiagonal = 2,
    537 	LinearGradientModeBackwardDiagonal = 3
    538 } LinearGradientMode;
    539 
    540 typedef enum LineCap {
    541 	LineCapFlat = 0,
    542 	LineCapSquare = 1,
    543 	LineCapRound = 2,
    544 	LineCapTriangle = 3,
    545 	LineCapNoAnchor = 16,
    546 	LineCapSquareAnchor = 17,
    547 	LineCapRoundAnchor = 18,
    548 	LineCapDiamondAnchor = 19,
    549 	LineCapArrowAnchor = 20,
    550 	LineCapCustom = 255
    551 } LineCap;
    552 
    553 typedef enum LineJoin {
    554 	LineJoinMiter = 0,
    555 	LineJoinBevel = 1,
    556 	LineJoinRound = 2,
    557 	LineJoinMiterClipped = 3
    558 } LineJoin;
    559 
    560 typedef enum MatrixOrder {
    561 	MatrixOrderPrepend = 0,
    562 	MatrixOrderAppend = 1
    563 } MatrixOrder;
    564 
    565 typedef enum MetafileFrameUnit {
    566 	MetafileFrameUnitPixel = 2,
    567 	MetafileFrameUnitPoint = 3,
    568 	MetafileFrameUnitInch = 4,
    569 	MetafileFrameUnitDocument = 5,
    570 	MetafileFrameUnitMillimeter = 6,
    571 	MetafileFrameUnitGdi = 7
    572 } MetafileFrameUnit;
    573 
    574 typedef enum MetafileType {
    575 	MetafileTypeInvalid = 0,
    576 	MetafileTypeWmf = 1,
    577 	MetafileTypeWmfPlaceable = 2,
    578 	MetafileTypeEmf = 3,
    579 	MetafileTypeEmfPlusOnly = 4,
    580 	MetafileTypeEmfPlusDual = 5
    581 } MetafileType;
    582 
    583 typedef enum ObjectType {
    584 	ObjectTypeInvalid = 0,
    585 	ObjectTypeBrush = 1,
    586 	ObjectTypePen = 2,
    587 	ObjectTypePath = 3,
    588 	ObjectTypeRegion = 4,
    589 	ObjectTypeFont = 5,
    590 	ObjectTypeStringFormat = 6,
    591 	ObjectTypeImageAttributes = 7,
    592 	ObjectTypeCustomLineCap = 8,
    593 	ObjectTypeGraphics = 9,
    594 	ObjectTypeMin = ObjectTypeBrush,
    595 	ObjectTypeMax = ObjectTypeGraphics
    596 } ObjectType;
    597 
    598 typedef enum PathPointType {
    599 	PathPointTypeStart = 0x00,
    600 	PathPointTypeLine = 0x01,
    601 	PathPointTypeBezier = 0x03,
    602 	PathPointTypeBezier3 = 0x03,
    603 	PathPointTypePathTypeMask = 0x07,
    604 	PathPointTypePathDashMode = 0x10,
    605 	PathPointTypePathMarker = 0x20,
    606 	PathPointTypeCloseSubpath = 0x80
    607 } PathPointType;
    608 
    609 typedef enum PenAlignment {
    610 	PenAlignmentCenter = 0,
    611 	PenAlignmentInset = 1
    612 } PenAlignment;
    613 
    614 typedef enum PenType {
    615 	PenTypeUnknown = -1,
    616 	PenTypeSolidColor = 0,
    617 	PenTypeHatchFill = 1,
    618 	PenTypeTextureFill = 2,
    619 	PenTypePathGradient = 3,
    620 	PenTypeLinearGradient = 4
    621 } PenType;
    622 
    623 /* TODO: PixelOffsetMode */
    624 typedef enum PixelOffsetMode {
    625 	/*PixelOffsetModeInvalid = QualityModeInvalid,*/
    626 	PixelOffsetModeDefault = 0,
    627 	PixelOffsetModeHighSpeed = 1,
    628 	PixelOffsetModeHighQuality = 2,
    629 	PixelOffsetModeNone = 3,
    630 	PixelOffsetModeHalf = 4
    631 } PixelOffsetMode;
    632 
    633 /* TODO: QualityMode */
    634 typedef enum QualityMode {
    635 	/*QualityModeInvalid = ?,*/
    636 	QualityModeDefault = 0,
    637 	QualityModeLow = 1,
    638 	QualityModeHigh = 2
    639 } QualityMode;
    640 
    641 /* TODO: SmoothingMode */
    642 typedef enum SmoothingMode {
    643 	/*SmoothingModeInvalid = QualityModeInvalid,*/
    644 	SmoothingModeDefault = 0,
    645 	SmoothingModeHighSpeed = 1,
    646 	SmoothingModeHighQuality = 2,
    647 	SmoothingModeNone = 3,
    648 	SmoothingModeAntiAlias8x4 = 4,
    649 	SmoothingModeAntiAlias = 4,
    650 	SmoothingModeAntiAlias8x8 = 5
    651 } SmoothingMode;
    652 
    653 typedef enum StringAlignment {
    654 	StringAlignmentNear = 0,
    655 	StringAlignmentCenter = 1,
    656 	StringAlignmentFar = 2
    657 } StringAlignment;
    658 
    659 typedef enum StringDigitSubstitute {
    660 	StringDigitSubstituteUser = 0,
    661 	StringDigitSubstituteNone = 1,
    662 	StringDigitSubstituteNational = 2,
    663 	StringDigitSubstituteTraditional = 3
    664 } StringDigitSubstitute;
    665 
    666 typedef enum StringFormatFlags {
    667 	StringFormatFlagsDirectionRightToLeft = 0x00000001,
    668 	StringFormatFlagsDirectionVertical = 0x00000002,
    669 	StringFormatFlagsNoFitBlackBox = 0x00000004,
    670 	StringFormatFlagsDisplayFormatControl = 0x00000020,
    671 	StringFormatFlagsNoFontFallback = 0x00000400,
    672 	StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
    673 	StringFormatFlagsNoWrap = 0x00001000,
    674 	StringFormatFlagsLineLimit = 0x00002000,
    675 	StringFormatFlagsNoClip = 0x00004000
    676 } StringFormatFlags;
    677 
    678 typedef enum StringTrimming {
    679 	StringTrimmingNone = 0,
    680 	StringTrimmingCharacter = 1,
    681 	StringTrimmingWord = 2,
    682 	StringTrimmingEllipsisCharacter = 3,
    683 	StringTrimmingEllipsisWord = 4,
    684 	StringTrimmingEllipsisPath = 5
    685 } StringTrimming;
    686 
    687 typedef enum TextRenderingHint {
    688 	TextRenderingHintSystemDefault = 0,
    689 	TextRenderingHintSingleBitPerPixelGridFit = 1,
    690 	TextRenderingHintSingleBitPerPixel = 2,
    691 	TextRenderingHintAntiAliasGridFit = 3,
    692 	TextRenderingHintAntiAlias = 4,
    693 	TextRenderingHintClearTypeGridFit = 5
    694 } TextRenderingHint;
    695 
    696 typedef enum Unit {
    697 	UnitWorld = 0,
    698 	UnitDisplay = 1,
    699 	UnitPixel = 2,
    700 	UnitPoint = 3,
    701 	UnitInch = 4,
    702 	UnitDocument = 5,
    703 	UnitMillimeter = 6
    704 } Unit;
    705 
    706 typedef enum WarpMode {
    707 	WarpModePerspective = 0,
    708 	WarpModeBilinear = 1
    709 } WarpMode;
    710 
    711 typedef enum WrapMode {
    712 	WrapModeTile = 0,
    713 	WrapModeTileFlipX = 1,
    714 	WrapModeTileFlipY = 2,
    715 	WrapModeTileFlipXY = 3,
    716 	WrapModeClamp = 4
    717 } WrapMode;
    718 
    719 typedef enum GpTestControlEnum {
    720 	TestControlForceBilinear = 0,
    721 	TestControlForceNoICM = 1,
    722 	TestControlGetBuildNumber = 2
    723 } GpTestControlEnum;
    724 
    725 /* Opaque handles to information blocks on an internal GDI+ stack. */
    726 typedef DWORD GraphicsContainer;
    727 typedef DWORD GraphicsState;
    728 
    729 /* Default flatness for GraphicsPath methods Flatten, Outline, Warp, Widen */
    730 /* FIXME: Is FlatnessDefault = 0.25f correct? */
    731 #ifdef __cplusplus
    732 const REAL FlatnessDefault = 0.25f;
    733 #else
    734 #define FlatnessDefault ((REAL) 0.25f)
    735 #endif
    736 
    737 static __inline__ BOOL ObjectTypeIsValid(ObjectType type)
    738 {
    739 	switch (type) {
    740 		case ObjectTypeBrush:
    741 		case ObjectTypePen:
    742 		case ObjectTypePath:
    743 		case ObjectTypeRegion:
    744 		case ObjectTypeFont:
    745 		case ObjectTypeStringFormat:
    746 		case ObjectTypeImageAttributes:
    747 		case ObjectTypeCustomLineCap:
    748 		case ObjectTypeGraphics:
    749 			return TRUE;
    750 		default:
    751 			return FALSE;
    752 	}
    753 }
    754 
    755 #endif /* __GDIPLUS_ENUMS_H */
    756