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