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