1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4 
5 namespace System.Drawing.Imaging
6 {
7     /// <summary>
8     /// Specifies the methods available in a metafile to read and write graphic commands.
9     /// </summary>
10     public enum EmfPlusRecordType
11     {
12         WmfRecordBase = 0x00010000,
13         WmfSetBkColor = WmfRecordBase | 0x201,
14         WmfSetBkMode = WmfRecordBase | 0x102,
15         WmfSetMapMode = WmfRecordBase | 0x103,
16         WmfSetROP2 = WmfRecordBase | 0x104,
17         WmfSetRelAbs = WmfRecordBase | 0x105,
18         WmfSetPolyFillMode = WmfRecordBase | 0x106,
19         WmfSetStretchBltMode = WmfRecordBase | 0x107,
20         WmfSetTextCharExtra = WmfRecordBase | 0x108,
21         WmfSetTextColor = WmfRecordBase | 0x209,
22         WmfSetTextJustification = WmfRecordBase | 0x20A,
23         WmfSetWindowOrg = WmfRecordBase | 0x20B,
24         WmfSetWindowExt = WmfRecordBase | 0x20C,
25         WmfSetViewportOrg = WmfRecordBase | 0x20D,
26         WmfSetViewportExt = WmfRecordBase | 0x20E,
27         WmfOffsetWindowOrg = WmfRecordBase | 0x20F,
28         WmfScaleWindowExt = WmfRecordBase | 0x410,
29         WmfOffsetViewportOrg = WmfRecordBase | 0x211,
30         WmfScaleViewportExt = WmfRecordBase | 0x412,
31         WmfLineTo = WmfRecordBase | 0x213,
32         WmfMoveTo = WmfRecordBase | 0x214,
33         WmfExcludeClipRect = WmfRecordBase | 0x415,
34         WmfIntersectClipRect = WmfRecordBase | 0x416,
35         WmfArc = WmfRecordBase | 0x817,
36         WmfEllipse = WmfRecordBase | 0x418,
37         WmfFloodFill = WmfRecordBase | 0x419,
38         WmfPie = WmfRecordBase | 0x81A,
39         WmfRectangle = WmfRecordBase | 0x41B,
40         WmfRoundRect = WmfRecordBase | 0x61C,
41         WmfPatBlt = WmfRecordBase | 0x61D,
42         WmfSaveDC = WmfRecordBase | 0x01E,
43         WmfSetPixel = WmfRecordBase | 0x41F,
44         WmfOffsetCilpRgn = WmfRecordBase | 0x220,
45         WmfTextOut = WmfRecordBase | 0x521,
46         WmfBitBlt = WmfRecordBase | 0x922,
47         WmfStretchBlt = WmfRecordBase | 0xB23,
48         WmfPolygon = WmfRecordBase | 0x324,
49         WmfPolyline = WmfRecordBase | 0x325,
50         WmfEscape = WmfRecordBase | 0x626,
51         WmfRestoreDC = WmfRecordBase | 0x127,
52         WmfFillRegion = WmfRecordBase | 0x228,
53         WmfFrameRegion = WmfRecordBase | 0x429,
54         WmfInvertRegion = WmfRecordBase | 0x12A,
55         WmfPaintRegion = WmfRecordBase | 0x12B,
56         WmfSelectClipRegion = WmfRecordBase | 0x12C,
57         WmfSelectObject = WmfRecordBase | 0x12D,
58         WmfSetTextAlign = WmfRecordBase | 0x12E,
59         WmfChord = WmfRecordBase | 0x830,
60         WmfSetMapperFlags = WmfRecordBase | 0x231,
61         WmfExtTextOut = WmfRecordBase | 0xA32,
62         WmfSetDibToDev = WmfRecordBase | 0xD33,
63         WmfSelectPalette = WmfRecordBase | 0x234,
64         WmfRealizePalette = WmfRecordBase | 0x035,
65         WmfAnimatePalette = WmfRecordBase | 0x436,
66         WmfSetPalEntries = WmfRecordBase | 0x037,
67         WmfPolyPolygon = WmfRecordBase | 0x538,
68         WmfResizePalette = WmfRecordBase | 0x139,
69         WmfDibBitBlt = WmfRecordBase | 0x940,
70         WmfDibStretchBlt = WmfRecordBase | 0xb41,
71         WmfDibCreatePatternBrush = WmfRecordBase | 0x142,
72         WmfStretchDib = WmfRecordBase | 0xf43,
73         WmfExtFloodFill = WmfRecordBase | 0x548,
74         WmfSetLayout = WmfRecordBase | 0x149, // META_SETLAYOUT
75         WmfDeleteObject = WmfRecordBase | 0x1f0,
76         WmfCreatePalette = WmfRecordBase | 0x0f7,
77         WmfCreatePatternBrush = WmfRecordBase | 0x1f9,
78         WmfCreatePenIndirect = WmfRecordBase | 0x2fa,
79         WmfCreateFontIndirect = WmfRecordBase | 0x2fb,
80         WmfCreateBrushIndirect = WmfRecordBase | 0x2fc,
81         WmfCreateRegion = WmfRecordBase | 0x6ff,
82 
83         // Since we have to enumerate GDI records right along with GDI+ records,
84         // we list all the GDI records here so that they can be part of the
85         // same enumeration type which is used in the enumeration callback.
86 
87         EmfHeader = 1,
88         EmfPolyBezier = 2,
89         EmfPolygon = 3,
90         EmfPolyline = 4,
91         EmfPolyBezierTo = 5,
92         EmfPolyLineTo = 6,
93         EmfPolyPolyline = 7,
94         EmfPolyPolygon = 8,
95         EmfSetWindowExtEx = 9,
96         EmfSetWindowOrgEx = 10,
97         EmfSetViewportExtEx = 11,
98         EmfSetViewportOrgEx = 12,
99         EmfSetBrushOrgEx = 13,
100         EmfEof = 14,
101         EmfSetPixelV = 15,
102         EmfSetMapperFlags = 16,
103         EmfSetMapMode = 17,
104         EmfSetBkMode = 18,
105         EmfSetPolyFillMode = 19,
106         EmfSetROP2 = 20,
107         EmfSetStretchBltMode = 21,
108         EmfSetTextAlign = 22,
109         EmfSetColorAdjustment = 23,
110         EmfSetTextColor = 24,
111         EmfSetBkColor = 25,
112         EmfOffsetClipRgn = 26,
113         EmfMoveToEx = 27,
114         EmfSetMetaRgn = 28,
115         EmfExcludeClipRect = 29,
116         EmfIntersectClipRect = 30,
117         EmfScaleViewportExtEx = 31,
118         EmfScaleWindowExtEx = 32,
119         EmfSaveDC = 33,
120         EmfRestoreDC = 34,
121         EmfSetWorldTransform = 35,
122         EmfModifyWorldTransform = 36,
123         EmfSelectObject = 37,
124         EmfCreatePen = 38,
125         EmfCreateBrushIndirect = 39,
126         EmfDeleteObject = 40,
127         EmfAngleArc = 41,
128         EmfEllipse = 42,
129         EmfRectangle = 43,
130         EmfRoundRect = 44,
131         EmfRoundArc = 45,
132         EmfChord = 46,
133         EmfPie = 47,
134         EmfSelectPalette = 48,
135         EmfCreatePalette = 49,
136         EmfSetPaletteEntries = 50,
137         EmfResizePalette = 51,
138         EmfRealizePalette = 52,
139         EmfExtFloodFill = 53,
140         EmfLineTo = 54,
141         EmfArcTo = 55,
142         EmfPolyDraw = 56,
143         EmfSetArcDirection = 57,
144         EmfSetMiterLimit = 58,
145         EmfBeginPath = 59,
146         EmfEndPath = 60,
147         EmfCloseFigure = 61,
148         EmfFillPath = 62,
149         EmfStrokeAndFillPath = 63,
150         EmfStrokePath = 64,
151         EmfFlattenPath = 65,
152         EmfWidenPath = 66,
153         EmfSelectClipPath = 67,
154         EmfAbortPath = 68,
155         EmfReserved069 = 69,
156         EmfGdiComment = 70,
157         EmfFillRgn = 71,
158         EmfFrameRgn = 72,
159         EmfInvertRgn = 73,
160         EmfPaintRgn = 74,
161         EmfExtSelectClipRgn = 75,
162         EmfBitBlt = 76,
163         EmfStretchBlt = 77,
164         EmfMaskBlt = 78,
165         EmfPlgBlt = 79,
166         EmfSetDIBitsToDevice = 80,
167         EmfStretchDIBits = 81,
168         EmfExtCreateFontIndirect = 82,
169         EmfExtTextOutA = 83,
170         EmfExtTextOutW = 84,
171         EmfPolyBezier16 = 85,
172         EmfPolygon16 = 86,
173         EmfPolyline16 = 87,
174         EmfPolyBezierTo16 = 88,
175         EmfPolylineTo16 = 89,
176         EmfPolyPolyline16 = 90,
177         EmfPolyPolygon16 = 91,
178         EmfPolyDraw16 = 92,
179         EmfCreateMonoBrush = 93,
180         EmfCreateDibPatternBrushPt = 94,
181         EmfExtCreatePen = 95,
182         EmfPolyTextOutA = 96,
183         EmfPolyTextOutW = 97,
184         EmfSetIcmMode = 98,  // EMR_SETICMMODE,
185         EmfCreateColorSpace = 99,  // EMR_CREATECOLORSPACE,
186         EmfSetColorSpace = 100, // EMR_SETCOLORSPACE,
187         EmfDeleteColorSpace = 101, // EMR_DELETECOLORSPACE,
188         EmfGlsRecord = 102, // EMR_GLSRECORD,
189         EmfGlsBoundedRecord = 103, // EMR_GLSBOUNDEDRECORD,
190         EmfPixelFormat = 104, // EMR_PIXELFORMAT,
191         EmfDrawEscape = 105, // EMR_RESERVED_105,
192         EmfExtEscape = 106, // EMR_RESERVED_106,
193         EmfStartDoc = 107, // EMR_RESERVED_107,
194         EmfSmallTextOut = 108, // EMR_RESERVED_108,
195         EmfForceUfiMapping = 109, // EMR_RESERVED_109,
196         EmfNamedEscpae = 110, // EMR_RESERVED_110,
197         EmfColorCorrectPalette = 111, // EMR_COLORCORRECTPALETTE,
198         EmfSetIcmProfileA = 112, // EMR_SETICMPROFILEA,
199         EmfSetIcmProfileW = 113, // EMR_SETICMPROFILEW,
200         EmfAlphaBlend = 114, // EMR_ALPHABLEND,
201         EmfSetLayout = 115, // EMR_SETLAYOUT,
202         EmfTransparentBlt = 116, // EMR_TRANSPARENTBLT,
203         EmfReserved117 = 117,
204         EmfGradientFill = 118, // EMR_GRADIENTFILL,
205         EmfSetLinkedUfis = 119, // EMR_RESERVED_119,
206         EmfSetTextJustification = 120, // EMR_RESERVED_120,
207         EmfColorMatchToTargetW = 121, // EMR_COLORMATCHTOTARGETW,
208         EmfCreateColorSpaceW = 122, // EMR_CREATECOLORSPACEW,
209         EmfMax = 122,
210         EmfMin = 1,
211 
212         // That is the END of the GDI EMF records.
213 
214         // Now we start the list of EMF+ records.  We leave quite
215         // a bit of room here for the addition of any new GDI
216         // records that may be added later.
217 
218         EmfPlusRecordBase = 0x00004000,
219         Invalid = EmfPlusRecordBase,
220         Header,
221         EndOfFile,
222 
223         Comment,
224 
225         GetDC,    // the application grabbed the metafile dc
226 
227         MultiFormatStart,
228         MultiFormatSection,
229         MultiFormatEnd,
230 
231         // For all Persistent Objects
232         Object,
233         // Drawing Records
234         Clear,
235         FillRects,
236         DrawRects,
237         FillPolygon,
238         DrawLines,
239         FillEllipse,
240         DrawEllipse,
241         FillPie,
242         DrawPie,
243         DrawArc,
244         FillRegion,
245         FillPath,
246         DrawPath,
247         FillClosedCurve,
248         DrawClosedCurve,
249         DrawCurve,
250         DrawBeziers,
251         DrawImage,
252         DrawImagePoints,
253         DrawString,
254 
255         // Graphics State Records
256         SetRenderingOrigin,
257         SetAntiAliasMode,
258         SetTextRenderingHint,
259         SetTextContrast,
260         SetInterpolationMode,
261         SetPixelOffsetMode,
262         SetCompositingMode,
263         SetCompositingQuality,
264         Save,
265         Restore,
266         BeginContainer,
267         [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
268         BeginContainerNoParams,
269         EndContainer,
270         SetWorldTransform,
271         ResetWorldTransform,
272         MultiplyWorldTransform,
273         TranslateWorldTransform,
274         ScaleWorldTransform,
275         RotateWorldTransform,
276         SetPageTransform,
277         ResetClip,
278         SetClipRect,
279         SetClipPath,
280         SetClipRegion,
281         OffsetClip,
282 
283         DrawDriverString,
284 
285         Total,
286 
287         Max = Total - 1,
288         Min = Header
289     }
290 }
291