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