comdlg32: Return a device context when requested.
[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 PaletteFlags
303 {
304     PaletteFlagsHasAlpha        = 1,
305     PaletteFlagsGrayScale       = 2,
306     PaletteFlagsHalftone        = 4
307 };
308
309 enum ImageCodecFlags
310 {
311     ImageCodecFlagsEncoder          = 1,
312     ImageCodecFlagsDecoder          = 2,
313     ImageCodecFlagsSupportBitmap    = 4,
314     ImageCodecFlagsSupportVector    = 8,
315     ImageCodecFlagsSeekableEncode   = 16,
316     ImageCodecFlagsBlockingDecode   = 32,
317     ImageCodecFlagsBuiltin          = 65536,
318     ImageCodecFlagsSystem           = 131072,
319     ImageCodecFlagsUser             = 262144
320 };
321
322 enum ImageFlags
323 {
324     ImageFlagsNone              = 0,
325     ImageFlagsScalable          = 0x0001,
326     ImageFlagsHasAlpha          = 0x0002,
327     ImageFlagsHasTranslucent    = 0x0004,
328     ImageFlagsPartiallyScalable = 0x0008,
329     ImageFlagsColorSpaceRGB     = 0x0010,
330     ImageFlagsColorSpaceCMYK    = 0x0020,
331     ImageFlagsColorSpaceGRAY    = 0x0040,
332     ImageFlagsColorSpaceYCBCR   = 0x0080,
333     ImageFlagsColorSpaceYCCK    = 0x0100,
334     ImageFlagsHasRealDPI        = 0x1000,
335     ImageFlagsHasRealPixelSize  = 0x2000,
336     ImageFlagsReadOnly          = 0x00010000,
337     ImageFlagsCaching           = 0x00020000
338 };
339
340 enum CombineMode
341 {
342     CombineModeReplace,
343     CombineModeIntersect,
344     CombineModeUnion,
345     CombineModeXor,
346     CombineModeExclude,
347     CombineModeComplement
348 };
349
350 enum FlushIntention
351 {
352     FlushIntentionFlush = 0,
353     FlushIntentionSync  = 1
354 };
355
356 enum CoordinateSpace
357 {
358     CoordinateSpaceWorld,
359     CoordinateSpacePage,
360     CoordinateSpaceDevice
361 };
362
363 enum GpTestControlEnum
364 {
365     TestControlForceBilinear  = 0,
366     TestControlNoICM          = 1,
367     TestControlGetBuildNumber = 2
368 };
369
370 enum MetafileFrameUnit
371 {
372     MetafileFrameUnitPixel      = UnitPixel,
373     MetafileFrameUnitPoint      = UnitPoint,
374     MetafileFrameUnitInch       = UnitInch,
375     MetafileFrameUnitDocument   = UnitDocument,
376     MetafileFrameUnitMillimeter = UnitMillimeter,
377     MetafileFrameUnitGdi
378 };
379
380 enum HatchStyle
381 {
382         HatchStyleHorizontal = 0,
383         HatchStyleVertical = 1,
384         HatchStyleForwardDiagonal = 2,
385         HatchStyleBackwardDiagonal = 3,
386         HatchStyleCross = 4,
387         HatchStyleDiagonalCross = 5,
388         HatchStyle05Percent = 6,
389         HatchStyle10Percent = 7,
390         HatchStyle20Percent = 8,
391         HatchStyle25Percent = 9,
392         HatchStyle30Percent = 10,
393         HatchStyle40Percent = 11,
394         HatchStyle50Percent = 12,
395         HatchStyle60Percent = 13,
396         HatchStyle70Percent = 14,
397         HatchStyle75Percent = 15,
398         HatchStyle80Percent = 16,
399         HatchStyle90Percent = 17,
400         HatchStyleLightDownwardDiagonal = 18,
401         HatchStyleLightUpwardDiagonal = 19,
402         HatchStyleDarkDownwardDiagonal = 20,
403         HatchStyleDarkUpwardDiagonal = 21,
404         HatchStyleWideDownwardDiagonal = 22,
405         HatchStyleWideUpwardDiagonal = 23,
406         HatchStyleLightVertical = 24,
407         HatchStyleLightHorizontal = 25,
408         HatchStyleNarrowVertical = 26,
409         HatchStyleNarrowHorizontal = 27,
410         HatchStyleDarkVertical = 28,
411         HatchStyleDarkHorizontal = 29,
412         HatchStyleDashedDownwardDiagonal = 30,
413         HatchStyleDashedUpwardDiagonal = 31,
414         HatchStyleDashedHorizontal = 32,
415         HatchStyleDashedVertical = 33,
416         HatchStyleSmallConfetti = 34,
417         HatchStyleLargeConfetti = 35,
418         HatchStyleZigZag = 36,
419         HatchStyleWave = 37,
420         HatchStyleDiagonalBrick = 38,
421         HatchStyleHorizontalBrick = 39,
422         HatchStyleWeave = 40,
423         HatchStylePlaid = 41,
424         HatchStyleDivot = 42,
425         HatchStyleDottedGrid = 43,
426         HatchStyleDottedDiamond = 44,
427         HatchStyleShingle = 45,
428         HatchStyleTrellis = 46,
429         HatchStyleSphere = 47,
430         HatchStyleSmallGrid = 48,
431         HatchStyleSmallCheckerBoard = 49,
432         HatchStyleLargeCheckerBoard = 50,
433         HatchStyleOutlinedDiamond = 51,
434         HatchStyleSolidDiamond = 52,
435         HatchStyleTotal = 53,
436         HatchStyleLargeGrid = HatchStyleCross,
437         HatchStyleMin = HatchStyleHorizontal,
438         HatchStyleMax = HatchStyleTotal - 1
439 };
440
441 #define GDIP_EMFPLUS_RECORD_BASE 0x00004000
442 #define GDIP_WMF_RECORD_BASE 0x00010000
443 #define GDIP_WMF_RECORD_TO_EMFPLUS(x) ((x)|GDIP_WMF_RECORD_BASE)
444
445 enum EmfPlusRecordType {
446     WmfRecordTypeSetBkColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR),
447     WmfRecordTypeSetBkMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE),
448     WmfRecordTypeSetMapMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPMODE),
449     WmfRecordTypeSetROP2 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETROP2),
450     WmfRecordTypeSetRelAbs = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETRELABS),
451     WmfRecordTypeSetPolyFillMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPOLYFILLMODE),
452     WmfRecordTypeSetStretchBltMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE),
453     WmfRecordTypeSetTextCharExtra = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA),
454     WmfRecordTypeSetTextColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR),
455     WmfRecordTypeSetTextJustification = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION),
456     WmfRecordTypeSetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG),
457     WmfRecordTypeSetWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT),
458     WmfRecordTypeSetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG),
459     WmfRecordTypeSetViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTEXT),
460     WmfRecordTypeOffsetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETWINDOWORG),
461     WmfRecordTypeScaleWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEWINDOWEXT),
462     WmfRecordTypeOffsetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETVIEWPORTORG),
463     WmfRecordTypeScaleViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEVIEWPORTEXT),
464     WmfRecordTypeLineTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_LINETO),
465     WmfRecordTypeMoveTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_MOVETO),
466     WmfRecordTypeExcludeClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXCLUDECLIPRECT),
467     WmfRecordTypeIntersectClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_INTERSECTCLIPRECT),
468     WmfRecordTypeArc = GDIP_WMF_RECORD_TO_EMFPLUS(META_ARC),
469     WmfRecordTypeEllipse = GDIP_WMF_RECORD_TO_EMFPLUS(META_ELLIPSE),
470     WmfRecordTypeFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_FLOODFILL),
471     WmfRecordTypePie = GDIP_WMF_RECORD_TO_EMFPLUS(META_PIE),
472     WmfRecordTypeRectangle = GDIP_WMF_RECORD_TO_EMFPLUS(META_RECTANGLE),
473     WmfRecordTypeRoundRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_ROUNDRECT),
474     WmfRecordTypePatBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_PATBLT),
475     WmfRecordTypeSaveDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_SAVEDC),
476     WmfRecordTypeSetPixel = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPIXEL),
477     WmfRecordTypeOffsetClipRgn = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETCLIPRGN),
478     WmfRecordTypeTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_TEXTOUT),
479     WmfRecordTypeBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_BITBLT),
480     WmfRecordTypeStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHBLT),
481     WmfRecordTypePolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYGON),
482     WmfRecordTypePolyline = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYLINE),
483     WmfRecordTypeEscape = GDIP_WMF_RECORD_TO_EMFPLUS(META_ESCAPE),
484     WmfRecordTypeRestoreDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESTOREDC),
485     WmfRecordTypeFillRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FILLREGION),
486     WmfRecordTypeFrameRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FRAMEREGION),
487     WmfRecordTypeInvertRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_INVERTREGION),
488     WmfRecordTypePaintRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_PAINTREGION),
489     WmfRecordTypeSelectClipRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTCLIPREGION),
490     WmfRecordTypeSelectObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTOBJECT),
491     WmfRecordTypeSetTextAlign = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTALIGN),
492     WmfRecordTypeDrawText = GDIP_WMF_RECORD_TO_EMFPLUS(0x062F),
493     WmfRecordTypeChord = GDIP_WMF_RECORD_TO_EMFPLUS(META_CHORD),
494     WmfRecordTypeSetMapperFlags = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPPERFLAGS),
495     WmfRecordTypeExtTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTTEXTOUT),
496     WmfRecordTypeSetDIBToDev = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETDIBTODEV),
497     WmfRecordTypeSelectPalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTPALETTE),
498     WmfRecordTypeRealizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_REALIZEPALETTE),
499     WmfRecordTypeAnimatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_ANIMATEPALETTE),
500     WmfRecordTypeSetPalEntries = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPALENTRIES),
501     WmfRecordTypePolyPolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYPOLYGON),
502     WmfRecordTypeResizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE),
503     WmfRecordTypeDIBBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT),
504     WmfRecordTypeDIBStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT),
505     WmfRecordTypeDIBCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH),
506     WmfRecordTypeStretchDIB = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB),
507     WmfRecordTypeExtFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL),
508     WmfRecordTypeSetLayout = GDIP_WMF_RECORD_TO_EMFPLUS(0x0149),
509     WmfRecordTypeResetDC = GDIP_WMF_RECORD_TO_EMFPLUS(0x014C),
510     WmfRecordTypeStartDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x014D),
511     WmfRecordTypeStartPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x004F),
512     WmfRecordTypeEndPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x0050),
513     WmfRecordTypeAbortDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x0052),
514     WmfRecordTypeEndDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x005E),
515     WmfRecordTypeDeleteObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT),
516     WmfRecordTypeCreatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE),
517     WmfRecordTypeCreateBrush = GDIP_WMF_RECORD_TO_EMFPLUS(0x00F8),
518     WmfRecordTypeCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH),
519     WmfRecordTypeCreatePenIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT),
520     WmfRecordTypeCreateFontIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT),
521     WmfRecordTypeCreateBrushIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT),
522     WmfRecordTypeCreateBitmapIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(0x02FD),
523     WmfRecordTypeCreateBitmap = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE),
524     WmfRecordTypeCreateRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION),
525     EmfRecordTypeHeader = EMR_HEADER,
526     EmfRecordTypePolyBezier = EMR_POLYBEZIER,
527     EmfRecordTypePolygon = EMR_POLYGON,
528     EmfRecordTypePolyline = EMR_POLYLINE,
529     EmfRecordTypePolyBezierTo = EMR_POLYBEZIERTO,
530     EmfRecordTypePolyLineTo = EMR_POLYLINETO,
531     EmfRecordTypePolyPolyline = EMR_POLYPOLYLINE,
532     EmfRecordTypePolyPolygon = EMR_POLYPOLYGON,
533     EmfRecordTypeSetWindowExtEx = EMR_SETWINDOWEXTEX,
534     EmfRecordTypeSetWindowOrgEx = EMR_SETWINDOWORGEX,
535     EmfRecordTypeSetViewportExtEx = EMR_SETVIEWPORTEXTEX,
536     EmfRecordTypeSetViewportOrgEx = EMR_SETVIEWPORTORGEX,
537     EmfRecordTypeSetBrushOrgEx = EMR_SETBRUSHORGEX,
538     EmfRecordTypeEOF = EMR_EOF,
539     EmfRecordTypeSetPixelV = EMR_SETPIXELV,
540     EmfRecordTypeSetMapperFlags = EMR_SETMAPPERFLAGS,
541     EmfRecordTypeSetMapMode = EMR_SETMAPMODE,
542     EmfRecordTypeSetBkMode = EMR_SETBKMODE,
543     EmfRecordTypeSetPolyFillMode = EMR_SETPOLYFILLMODE,
544     EmfRecordTypeSetROP2 = EMR_SETROP2,
545     EmfRecordTypeSetStretchBltMode = EMR_SETSTRETCHBLTMODE,
546     EmfRecordTypeSetTextAlign = EMR_SETTEXTALIGN,
547     EmfRecordTypeSetColorAdjustment = EMR_SETCOLORADJUSTMENT,
548     EmfRecordTypeSetTextColor = EMR_SETTEXTCOLOR,
549     EmfRecordTypeSetBkColor = EMR_SETBKCOLOR,
550     EmfRecordTypeOffsetClipRgn = EMR_OFFSETCLIPRGN,
551     EmfRecordTypeMoveToEx = EMR_MOVETOEX,
552     EmfRecordTypeSetMetaRgn = EMR_SETMETARGN,
553     EmfRecordTypeExcludeClipRect = EMR_EXCLUDECLIPRECT,
554     EmfRecordTypeIntersectClipRect = EMR_INTERSECTCLIPRECT,
555     EmfRecordTypeScaleViewportExtEx = EMR_SCALEVIEWPORTEXTEX,
556     EmfRecordTypeScaleWindowExtEx = EMR_SCALEWINDOWEXTEX,
557     EmfRecordTypeSaveDC = EMR_SAVEDC,
558     EmfRecordTypeRestoreDC = EMR_RESTOREDC,
559     EmfRecordTypeSetWorldTransform = EMR_SETWORLDTRANSFORM,
560     EmfRecordTypeModifyWorldTransform = EMR_MODIFYWORLDTRANSFORM,
561     EmfRecordTypeSelectObject = EMR_SELECTOBJECT,
562     EmfRecordTypeCreatePen = EMR_CREATEPEN,
563     EmfRecordTypeCreateBrushIndirect = EMR_CREATEBRUSHINDIRECT,
564     EmfRecordTypeDeleteObject = EMR_DELETEOBJECT,
565     EmfRecordTypeAngleArc = EMR_ANGLEARC,
566     EmfRecordTypeEllipse = EMR_ELLIPSE,
567     EmfRecordTypeRectangle = EMR_RECTANGLE,
568     EmfRecordTypeRoundRect = EMR_ROUNDRECT,
569     EmfRecordTypeArc = EMR_ARC,
570     EmfRecordTypeChord = EMR_CHORD,
571     EmfRecordTypePie = EMR_PIE,
572     EmfRecordTypeSelectPalette = EMR_SELECTPALETTE,
573     EmfRecordTypeCreatePalette = EMR_CREATEPALETTE,
574     EmfRecordTypeSetPaletteEntries = EMR_SETPALETTEENTRIES,
575     EmfRecordTypeResizePalette = EMR_RESIZEPALETTE,
576     EmfRecordTypeRealizePalette = EMR_REALIZEPALETTE,
577     EmfRecordTypeExtFloodFill = EMR_EXTFLOODFILL,
578     EmfRecordTypeLineTo = EMR_LINETO,
579     EmfRecordTypeArcTo = EMR_ARCTO,
580     EmfRecordTypePolyDraw = EMR_POLYDRAW,
581     EmfRecordTypeSetArcDirection = EMR_SETARCDIRECTION,
582     EmfRecordTypeSetMiterLimit = EMR_SETMITERLIMIT,
583     EmfRecordTypeBeginPath = EMR_BEGINPATH,
584     EmfRecordTypeEndPath = EMR_ENDPATH,
585     EmfRecordTypeCloseFigure = EMR_CLOSEFIGURE,
586     EmfRecordTypeFillPath = EMR_FILLPATH,
587     EmfRecordTypeStrokeAndFillPath = EMR_STROKEANDFILLPATH,
588     EmfRecordTypeStrokePath = EMR_STROKEPATH,
589     EmfRecordTypeFlattenPath = EMR_FLATTENPATH,
590     EmfRecordTypeWidenPath = EMR_WIDENPATH,
591     EmfRecordTypeSelectClipPath = EMR_SELECTCLIPPATH,
592     EmfRecordTypeAbortPath = EMR_ABORTPATH,
593     EmfRecordTypeReserved_069 = 69,
594     EmfRecordTypeGdiComment = EMR_GDICOMMENT,
595     EmfRecordTypeFillRgn = EMR_FILLRGN,
596     EmfRecordTypeFrameRgn = EMR_FRAMERGN,
597     EmfRecordTypeInvertRgn = EMR_INVERTRGN,
598     EmfRecordTypePaintRgn = EMR_PAINTRGN,
599     EmfRecordTypeExtSelectClipRgn = EMR_EXTSELECTCLIPRGN,
600     EmfRecordTypeBitBlt = EMR_BITBLT,
601     EmfRecordTypeStretchBlt = EMR_STRETCHBLT,
602     EmfRecordTypeMaskBlt = EMR_MASKBLT,
603     EmfRecordTypePlgBlt = EMR_PLGBLT,
604     EmfRecordTypeSetDIBitsToDevice = 80,
605     EmfRecordTypeStretchDIBits = EMR_STRETCHDIBITS,
606     EmfRecordTypeExtCreateFontIndirect = EMR_EXTCREATEFONTINDIRECTW,
607     EmfRecordTypeExtTextOutA = EMR_EXTTEXTOUTA,
608     EmfRecordTypeExtTextOutW = EMR_EXTTEXTOUTW,
609     EmfRecordTypePolyBezier16 = EMR_POLYBEZIER16,
610     EmfRecordTypePolygon16 = EMR_POLYGON16,
611     EmfRecordTypePolyline16 = EMR_POLYLINE16,
612     EmfRecordTypePolyBezierTo16 = EMR_POLYBEZIERTO16,
613     EmfRecordTypePolylineTo16 = EMR_POLYLINETO16,
614     EmfRecordTypePolyPolyline16 = EMR_POLYPOLYLINE16,
615     EmfRecordTypePolyPolygon16 = EMR_POLYPOLYGON16,
616     EmfRecordTypePolyDraw16 = EMR_POLYDRAW16,
617     EmfRecordTypeCreateMonoBrush = EMR_CREATEMONOBRUSH,
618     EmfRecordTypeCreateDIBPatternBrushPt = EMR_CREATEDIBPATTERNBRUSHPT,
619     EmfRecordTypeExtCreatePen = EMR_EXTCREATEPEN,
620     EmfRecordTypePolyTextOutA = EMR_POLYTEXTOUTA,
621     EmfRecordTypePolyTextOutW = EMR_POLYTEXTOUTW,
622     EmfRecordTypeSetICMMode = 98,
623     EmfRecordTypeCreateColorSpace = 99,
624     EmfRecordTypeSetColorSpace = 100,
625     EmfRecordTypeDeleteColorSpace = 101,
626     EmfRecordTypeGLSRecord = 102,
627     EmfRecordTypeGLSBoundedRecord = 103,
628     EmfRecordTypePixelFormat = 104,
629     EmfRecordTypeDrawEscape = 105,
630     EmfRecordTypeExtEscape = 106,
631     EmfRecordTypeStartDoc = 107,
632     EmfRecordTypeSmallTextOut = 108,
633     EmfRecordTypeForceUFIMapping = 109,
634     EmfRecordTypeNamedEscape = 110,
635     EmfRecordTypeColorCorrectPalette = 111,
636     EmfRecordTypeSetICMProfileA = 112,
637     EmfRecordTypeSetICMProfileW = 113,
638     EmfRecordTypeAlphaBlend = 114,
639     EmfRecordTypeSetLayout = 115,
640     EmfRecordTypeTransparentBlt = 116,
641     EmfRecordTypeReserved_117 = 117,
642     EmfRecordTypeGradientFill = 118,
643     EmfRecordTypeSetLinkedUFIs = 119,
644     EmfRecordTypeSetTextJustification = 120,
645     EmfRecordTypeColorMatchToTargetW = 121,
646     EmfRecordTypeCreateColorSpaceW = 122,
647     EmfRecordTypeMax = 122,
648     EmfRecordTypeMin = 1,
649     EmfPlusRecordTypeInvalid = GDIP_EMFPLUS_RECORD_BASE,
650     EmfPlusRecordTypeHeader,
651     EmfPlusRecordTypeEndOfFile,
652     EmfPlusRecordTypeComment,
653     EmfPlusRecordTypeGetDC,
654     EmfPlusRecordTypeMultiFormatStart,
655     EmfPlusRecordTypeMultiFormatSection,
656     EmfPlusRecordTypeMultiFormatEnd,
657     EmfPlusRecordTypeObject,
658     EmfPlusRecordTypeClear,
659     EmfPlusRecordTypeFillRects,
660     EmfPlusRecordTypeDrawRects,
661     EmfPlusRecordTypeFillPolygon,
662     EmfPlusRecordTypeDrawLines,
663     EmfPlusRecordTypeFillEllipse,
664     EmfPlusRecordTypeDrawEllipse,
665     EmfPlusRecordTypeFillPie,
666     EmfPlusRecordTypeDrawPie,
667     EmfPlusRecordTypeDrawArc,
668     EmfPlusRecordTypeFillRegion,
669     EmfPlusRecordTypeFillPath,
670     EmfPlusRecordTypeDrawPath,
671     EmfPlusRecordTypeFillClosedCurve,
672     EmfPlusRecordTypeDrawClosedCurve,
673     EmfPlusRecordTypeDrawCurve,
674     EmfPlusRecordTypeDrawBeziers,
675     EmfPlusRecordTypeDrawImage,
676     EmfPlusRecordTypeDrawImagePoints,
677     EmfPlusRecordTypeDrawString,
678     EmfPlusRecordTypeSetRenderingOrigin,
679     EmfPlusRecordTypeSetAntiAliasMode,
680     EmfPlusRecordTypeSetTextRenderingHint,
681     EmfPlusRecordTypeSetTextContrast,
682     EmfPlusRecordTypeSetGammaValue,
683     EmfPlusRecordTypeSetInterpolationMode,
684     EmfPlusRecordTypeSetPixelOffsetMode,
685     EmfPlusRecordTypeSetCompositingMode,
686     EmfPlusRecordTypeSetCompositingQuality,
687     EmfPlusRecordTypeSave,
688     EmfPlusRecordTypeRestore,
689     EmfPlusRecordTypeBeginContainer,
690     EmfPlusRecordTypeBeginContainerNoParams,
691     EmfPlusRecordTypeEndContainer,
692     EmfPlusRecordTypeSetWorldTransform,
693     EmfPlusRecordTypeResetWorldTransform,
694     EmfPlusRecordTypeMultiplyWorldTransform,
695     EmfPlusRecordTypeTranslateWorldTransform,
696     EmfPlusRecordTypeScaleWorldTransform,
697     EmfPlusRecordTypeRotateWorldTransform,
698     EmfPlusRecordTypeSetPageTransform,
699     EmfPlusRecordTypeResetClip,
700     EmfPlusRecordTypeSetClipRect,
701     EmfPlusRecordTypeSetClipPath,
702     EmfPlusRecordTypeSetClipRegion,
703     EmfPlusRecordTypeOffsetClip,
704     EmfPlusRecordTypeDrawDriverString,
705     EmfPlusRecordTypeStrokeFillPath,
706     EmfPlusRecordTypeSerializableObject,
707     EmfPlusRecordTypeSetTSGraphics,
708     EmfPlusRecordTypeSetTSClip,
709     EmfPlusRecordTotal,
710     EmfPlusRecordTypeMax = EmfPlusRecordTotal-1,
711     EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader
712 };
713
714 #ifndef __cplusplus
715
716 typedef enum Unit Unit;
717 typedef enum BrushType BrushType;
718 typedef enum DriverStringOptions DriverStringOptions;
719 typedef enum FillMode FillMode;
720 typedef enum LineCap LineCap;
721 typedef enum PathPointType PathPointType;
722 typedef enum LineJoin LineJoin;
723 typedef enum QualityMode QualityMode;
724 typedef enum SmoothingMode SmoothingMode;
725 typedef enum CompositingQuality CompositingQuality;
726 typedef enum InterpolationMode InterpolationMode;
727 typedef enum PixelOffsetMode PixelOffsetMode;
728 typedef enum DashCap DashCap;
729 typedef enum DashStyle DashStyle;
730 typedef enum MatrixOrder MatrixOrder;
731 typedef enum ImageType ImageType;
732 typedef enum ImageFlags ImageFlags;
733 typedef enum WarpMode WarpMode;
734 typedef enum WrapMode WrapMode;
735 typedef enum MetafileType MetafileType;
736 typedef enum LinearGradientMode LinearGradientMode;
737 typedef enum EmfType EmfType;
738 typedef enum CompositingMode CompositingMode;
739 typedef enum TextRenderingHint TextRenderingHint;
740 typedef enum StringAlignment StringAlignment;
741 typedef enum StringDigitSubstitute StringDigitSubstitute;
742 typedef enum StringTrimming StringTrimming;
743 typedef enum FontStyle FontStyle;
744 typedef enum StringFormatFlags StringFormatFlags;
745 typedef enum HotkeyPrefix HotkeyPrefix;
746 typedef enum PenAlignment PenAlignment;
747 typedef enum PaletteFlags PaletteFlags;
748 typedef enum ImageCodecFlags ImageCodecFlags;
749 typedef enum CombineMode CombineMode;
750 typedef enum FlushIntention FlushIntention;
751 typedef enum CoordinateSpace CoordinateSpace;
752 typedef enum GpTestControlEnum GpTestControlEnum;
753 typedef enum MetafileFrameUnit MetafileFrameUnit;
754 typedef enum PenType PenType;
755 typedef enum HatchStyle HatchStyle;
756 typedef enum EmfPlusRecordType EmfPlusRecordType;
757
758 #endif /* end of c typedefs */
759
760 #undef GDIP_WMF_RECORD_TO_EMFPLUS
761 #define GDIP_WMF_RECORD_TO_EMFPLUS(x) ((EmfPlusRecordType)((x)|GDIP_WMF_RECORD_BASE))
762
763 #endif