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