| /**************************************************************************\ |
| * |
| * Copyright (c) 1998-2000, Microsoft Corp. All Rights Reserved. |
| * |
| * Module Name: |
| * |
| * GdiplusEnums.h |
| * |
| * Abstract: |
| * |
| * Various enumeration types |
| * |
| \**************************************************************************/ |
| |
| #ifndef _GDIPLUSENUMS_H |
| #define _GDIPLUSENUMS_H |
| |
| |
| //-------------------------------------------------------------------------- |
| // Default bezier flattening tolerance in device pixels. |
| //-------------------------------------------------------------------------- |
| |
| const float FlatnessDefault = 1.0f/4.0f; |
| |
| //-------------------------------------------------------------------------- |
| // Graphics and Container State cookies |
| //-------------------------------------------------------------------------- |
| |
| typedef UINT GraphicsState; |
| typedef UINT GraphicsContainer; |
| |
| //-------------------------------------------------------------------------- |
| // Fill mode constants |
| //-------------------------------------------------------------------------- |
| |
| enum FillMode |
| { |
| FillModeAlternate, // 0 |
| FillModeWinding // 1 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Quality mode constants |
| //-------------------------------------------------------------------------- |
| |
| enum QualityMode |
| { |
| QualityModeInvalid = -1, |
| QualityModeDefault = 0, |
| QualityModeLow = 1, // for apps that need the best performance |
| QualityModeHigh = 2 // for apps that need the best rendering quality |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Alpha compositing mode constants |
| //-------------------------------------------------------------------------- |
| |
| enum CompositingMode |
| { |
| CompositingModeSourceOver, // 0 |
| CompositingModeSourceCopy // 1 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Alpha compositing quality constants |
| //-------------------------------------------------------------------------- |
| |
| enum CompositingQuality |
| { |
| CompositingQualityInvalid = QualityModeInvalid, |
| CompositingQualityDefault = QualityModeDefault, |
| CompositingQualityHighSpeed = QualityModeLow, |
| CompositingQualityHighQuality = QualityModeHigh, |
| CompositingQualityGammaCorrected, |
| CompositingQualityAssumeLinear |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Unit constants |
| //-------------------------------------------------------------------------- |
| |
| enum Unit |
| { |
| UnitWorld, // 0 -- World coordinate (non-physical unit) |
| UnitDisplay, // 1 -- Variable -- for PageTransform only |
| UnitPixel, // 2 -- Each unit is one device pixel. |
| UnitPoint, // 3 -- Each unit is a printer's point, or 1/72 inch. |
| UnitInch, // 4 -- Each unit is 1 inch. |
| UnitDocument, // 5 -- Each unit is 1/300 inch. |
| UnitMillimeter // 6 -- Each unit is 1 millimeter. |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // MetafileFrameUnit |
| // |
| // The frameRect for creating a metafile can be specified in any of these |
| // units. There is an extra frame unit value (MetafileFrameUnitGdi) so |
| // that units can be supplied in the same units that GDI expects for |
| // frame rects -- these units are in .01 (1/100ths) millimeter units |
| // as defined by GDI. |
| //-------------------------------------------------------------------------- |
| enum MetafileFrameUnit |
| { |
| MetafileFrameUnitPixel = UnitPixel, |
| MetafileFrameUnitPoint = UnitPoint, |
| MetafileFrameUnitInch = UnitInch, |
| MetafileFrameUnitDocument = UnitDocument, |
| MetafileFrameUnitMillimeter = UnitMillimeter, |
| MetafileFrameUnitGdi // GDI compatible .01 MM units |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Coordinate space identifiers |
| //-------------------------------------------------------------------------- |
| |
| enum CoordinateSpace |
| { |
| CoordinateSpaceWorld, // 0 |
| CoordinateSpacePage, // 1 |
| CoordinateSpaceDevice // 2 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Various wrap modes for brushes |
| //-------------------------------------------------------------------------- |
| |
| enum WrapMode |
| { |
| WrapModeTile, // 0 |
| WrapModeTileFlipX, // 1 |
| WrapModeTileFlipY, // 2 |
| WrapModeTileFlipXY, // 3 |
| WrapModeClamp // 4 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Various hatch styles |
| //-------------------------------------------------------------------------- |
| |
| enum HatchStyle |
| { |
| HatchStyleHorizontal, // 0 |
| HatchStyleVertical, // 1 |
| HatchStyleForwardDiagonal, // 2 |
| HatchStyleBackwardDiagonal, // 3 |
| HatchStyleCross, // 4 |
| HatchStyleDiagonalCross, // 5 |
| HatchStyle05Percent, // 6 |
| HatchStyle10Percent, // 7 |
| HatchStyle20Percent, // 8 |
| HatchStyle25Percent, // 9 |
| HatchStyle30Percent, // 10 |
| HatchStyle40Percent, // 11 |
| HatchStyle50Percent, // 12 |
| HatchStyle60Percent, // 13 |
| HatchStyle70Percent, // 14 |
| HatchStyle75Percent, // 15 |
| HatchStyle80Percent, // 16 |
| HatchStyle90Percent, // 17 |
| HatchStyleLightDownwardDiagonal, // 18 |
| HatchStyleLightUpwardDiagonal, // 19 |
| HatchStyleDarkDownwardDiagonal, // 20 |
| HatchStyleDarkUpwardDiagonal, // 21 |
| HatchStyleWideDownwardDiagonal, // 22 |
| HatchStyleWideUpwardDiagonal, // 23 |
| HatchStyleLightVertical, // 24 |
| HatchStyleLightHorizontal, // 25 |
| HatchStyleNarrowVertical, // 26 |
| HatchStyleNarrowHorizontal, // 27 |
| HatchStyleDarkVertical, // 28 |
| HatchStyleDarkHorizontal, // 29 |
| HatchStyleDashedDownwardDiagonal, // 30 |
| HatchStyleDashedUpwardDiagonal, // 31 |
| HatchStyleDashedHorizontal, // 32 |
| HatchStyleDashedVertical, // 33 |
| HatchStyleSmallConfetti, // 34 |
| HatchStyleLargeConfetti, // 35 |
| HatchStyleZigZag, // 36 |
| HatchStyleWave, // 37 |
| HatchStyleDiagonalBrick, // 38 |
| HatchStyleHorizontalBrick, // 39 |
| HatchStyleWeave, // 40 |
| HatchStylePlaid, // 41 |
| HatchStyleDivot, // 42 |
| HatchStyleDottedGrid, // 43 |
| HatchStyleDottedDiamond, // 44 |
| HatchStyleShingle, // 45 |
| HatchStyleTrellis, // 46 |
| HatchStyleSphere, // 47 |
| HatchStyleSmallGrid, // 48 |
| HatchStyleSmallCheckerBoard, // 49 |
| HatchStyleLargeCheckerBoard, // 50 |
| HatchStyleOutlinedDiamond, // 51 |
| HatchStyleSolidDiamond, // 52 |
| |
| HatchStyleTotal, // must be after all unique hatch styles |
| |
| HatchStyleLargeGrid = HatchStyleCross, // 4 an alias for the cross style |
| |
| HatchStyleMin = HatchStyleHorizontal, |
| HatchStyleMax = HatchStyleTotal - 1, |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Dash style constants |
| //-------------------------------------------------------------------------- |
| |
| enum DashStyle |
| { |
| DashStyleSolid, // 0 |
| DashStyleDash, // 1 |
| DashStyleDot, // 2 |
| DashStyleDashDot, // 3 |
| DashStyleDashDotDot, // 4 |
| DashStyleCustom // 5 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Dash cap constants |
| //-------------------------------------------------------------------------- |
| |
| enum DashCap |
| { |
| DashCapFlat = 0, |
| DashCapRound = 2, |
| DashCapTriangle = 3 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Line cap constants (only the lowest 8 bits are used). |
| //-------------------------------------------------------------------------- |
| |
| enum LineCap |
| { |
| LineCapFlat = 0, |
| LineCapSquare = 1, |
| LineCapRound = 2, |
| LineCapTriangle = 3, |
| |
| LineCapNoAnchor = 0x10, // corresponds to flat cap |
| LineCapSquareAnchor = 0x11, // corresponds to square cap |
| LineCapRoundAnchor = 0x12, // corresponds to round cap |
| LineCapDiamondAnchor = 0x13, // corresponds to triangle cap |
| LineCapArrowAnchor = 0x14, // no correspondence |
| |
| LineCapCustom = 0xff, // custom cap |
| |
| LineCapAnchorMask = 0xf0 // mask to check for anchor or not. |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Custom Line cap type constants |
| //-------------------------------------------------------------------------- |
| |
| enum CustomLineCapType |
| { |
| CustomLineCapTypeDefault = 0, |
| CustomLineCapTypeAdjustableArrow = 1 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Line join constants |
| //-------------------------------------------------------------------------- |
| |
| enum LineJoin |
| { |
| LineJoinMiter = 0, |
| LineJoinBevel = 1, |
| LineJoinRound = 2, |
| LineJoinMiterClipped = 3 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Path point types (only the lowest 8 bits are used.) |
| // The lowest 3 bits are interpreted as point type |
| // The higher 5 bits are reserved for flags. |
| //-------------------------------------------------------------------------- |
| |
| enum PathPointType |
| { |
| PathPointTypeStart = 0, // move |
| PathPointTypeLine = 1, // line |
| PathPointTypeBezier = 3, // default Beizer (= cubic Bezier) |
| PathPointTypePathTypeMask = 0x07, // type mask (lowest 3 bits). |
| PathPointTypeDashMode = 0x10, // currently in dash mode. |
| PathPointTypePathMarker = 0x20, // a marker for the path. |
| PathPointTypeCloseSubpath = 0x80, // closed flag |
| |
| // Path types used for advanced path. |
| |
| PathPointTypeBezier2 = 2, // quadratic Beizer |
| PathPointTypeBezier3 = 3, // cubic Bezier |
| PathPointTypeBezier4 = 4, // quartic (4th order) Beizer |
| PathPointTypeBezier5 = 5, // quintic (5th order) Bezier |
| PathPointTypeBezier6 = 6 // hexaic (6th order) Bezier |
| }; |
| |
| |
| //-------------------------------------------------------------------------- |
| // WarpMode constants |
| //-------------------------------------------------------------------------- |
| |
| enum WarpMode |
| { |
| WarpModePerspective, // 0 |
| WarpModeBilinear // 1 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // LineGradient Mode |
| //-------------------------------------------------------------------------- |
| |
| enum LinearGradientMode |
| { |
| LinearGradientModeHorizontal, // 0 |
| LinearGradientModeVertical, // 1 |
| LinearGradientModeForwardDiagonal, // 2 |
| LinearGradientModeBackwardDiagonal // 3 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Region Comine Modes |
| //-------------------------------------------------------------------------- |
| |
| enum CombineMode |
| { |
| CombineModeReplace, // 0 |
| CombineModeIntersect, // 1 |
| CombineModeUnion, // 2 |
| CombineModeXor, // 3 |
| CombineModeExclude, // 4 |
| CombineModeComplement // 5 (does exclude from) |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Image types |
| //-------------------------------------------------------------------------- |
| |
| enum ImageType |
| { |
| ImageTypeUnknown, // 0 |
| ImageTypeBitmap, // 1 |
| ImageTypeMetafile // 2 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Interpolation modes |
| //-------------------------------------------------------------------------- |
| |
| enum InterpolationMode |
| { |
| InterpolationModeInvalid = QualityModeInvalid, |
| InterpolationModeDefault = QualityModeDefault, |
| InterpolationModeLowQuality = QualityModeLow, |
| InterpolationModeHighQuality = QualityModeHigh, |
| InterpolationModeBilinear, |
| InterpolationModeBicubic, |
| InterpolationModeNearestNeighbor, |
| InterpolationModeHighQualityBilinear, |
| InterpolationModeHighQualityBicubic |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Pen types |
| //-------------------------------------------------------------------------- |
| enum PenAlignment |
| { |
| PenAlignmentCenter = 0, |
| PenAlignmentInset = 1, |
| PenAlignmentOutset = 2, |
| PenAlignmentLeft = 3, |
| PenAlignmentRight = 4 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Brush types |
| //-------------------------------------------------------------------------- |
| |
| enum BrushType |
| { |
| BrushTypeSolidColor = 0, |
| BrushTypeHatchFill = 1, |
| BrushTypeTextureFill = 2, |
| BrushTypePathGradient = 3, |
| BrushTypeLinearGradient = 4 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Pen's Fill types |
| //-------------------------------------------------------------------------- |
| |
| enum PenType |
| { |
| PenTypeSolidColor = BrushTypeSolidColor, |
| PenTypeHatchFill = BrushTypeHatchFill, |
| PenTypeTextureFill = BrushTypeTextureFill, |
| PenTypePathGradient = BrushTypePathGradient, |
| PenTypeLinearGradient = BrushTypeLinearGradient, |
| PenTypeUnknown = -1 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Matrix Order |
| //-------------------------------------------------------------------------- |
| |
| enum MatrixOrder |
| { |
| MatrixOrderPrepend = 0, |
| MatrixOrderAppend = 1 |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // Generic font families |
| //-------------------------------------------------------------------------- |
| |
| enum GenericFontFamily |
| { |
| GenericFontFamilySerif, |
| GenericFontFamilySansSerif, |
| GenericFontFamilyMonospace |
| |
| }; |
| |
| //-------------------------------------------------------------------------- |
| // FontStyle: face types and common styles |
| //-------------------------------------------------------------------------- |
| |
| // These should probably be flags |
| |
| // Must have: |
| // Regular = 0 |
| // Bold = 1 |
| // Italic = 2 |
| // BoldItalic = 3 |
| |
| enum FontStyle |
| { |
| FontStyleRegular = 0, |
| FontStyleBold = 1, |
| FontStyleItalic = 2, |
| FontStyleBoldItalic = 3, |
| FontStyleUnderline = 4, |
| FontStyleStrikeout = 8 |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // Smoothing Mode |
| //--------------------------------------------------------------------------- |
| |
| enum SmoothingMode |
| { |
| SmoothingModeInvalid = QualityModeInvalid, |
| SmoothingModeDefault = QualityModeDefault, |
| SmoothingModeHighSpeed = QualityModeLow, |
| SmoothingModeHighQuality = QualityModeHigh, |
| SmoothingModeNone, |
| SmoothingModeAntiAlias |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // Pixel Format Mode |
| //--------------------------------------------------------------------------- |
| |
| enum PixelOffsetMode |
| { |
| PixelOffsetModeInvalid = QualityModeInvalid, |
| PixelOffsetModeDefault = QualityModeDefault, |
| PixelOffsetModeHighSpeed = QualityModeLow, |
| PixelOffsetModeHighQuality = QualityModeHigh, |
| PixelOffsetModeNone, // no pixel offset |
| PixelOffsetModeHalf // offset by -0.5, -0.5 for fast anti-alias perf |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // Text Rendering Hint |
| //--------------------------------------------------------------------------- |
| |
| enum TextRenderingHint |
| { |
| #ifdef DCR_USE_NEW_186764 |
| TextRenderingHintSystemDefault = 0, // Glyph with system default rendering hint |
| TextRenderingHintSingleBitPerPixelGridFit, // Glyph bitmap with hinting |
| #else |
| TextRenderingHintSingleBitPerPixelGridFit = 0, // Glyph bitmap with hinting |
| #endif // DCR_USE_NEW_186764 |
| TextRenderingHintSingleBitPerPixel, // Glyph bitmap without hinting |
| TextRenderingHintAntiAliasGridFit, // Glyph anti-alias bitmap with hinting |
| TextRenderingHintAntiAlias, // Glyph anti-alias bitmap without hinting |
| TextRenderingHintClearTypeGridFit // Glyph CT bitmap with hinting |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // Metafile Types |
| //--------------------------------------------------------------------------- |
| enum MetafileType |
| { |
| MetafileTypeInvalid, // Invalid metafile |
| MetafileTypeWmf, // Standard WMF |
| MetafileTypeWmfAldus, // Aldus Placeable Metafile format |
| MetafileTypeEmf, // EMF (not EMF+) |
| MetafileTypeEmfPlusOnly, // EMF+ without dual, down-level records |
| MetafileTypeEmfPlusDual // EMF+ with dual, down-level records |
| }; |
| |
| // Specifies the type of EMF to record |
| enum EmfType |
| { |
| EmfTypeEmfOnly = MetafileTypeEmf, // no EMF+, only EMF |
| EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly, // no EMF, only EMF+ |
| EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual // both EMF+ and EMF |
| }; |
| |
| // All persistent objects must have a type listed here |
| enum ObjectType |
| { |
| ObjectTypeInvalid, |
| ObjectTypeBrush, |
| ObjectTypePen, |
| ObjectTypePath, |
| ObjectTypeRegion, |
| ObjectTypeImage, |
| ObjectTypeFont, |
| ObjectTypeStringFormat, |
| ObjectTypeImageAttributes, |
| ObjectTypeCustomLineCap, |
| |
| ObjectTypeMax = ObjectTypeCustomLineCap, |
| ObjectTypeMin = ObjectTypeBrush |
| }; |
| |
| inline BOOL |
| ObjectTypeIsValid( |
| ObjectType type |
| ) |
| { |
| return ((type >= ObjectTypeMin) && (type <= ObjectTypeMax)); |
| } |
| |
| //--------------------------------------------------------------------------- |
| // EMF+ Records |
| //--------------------------------------------------------------------------- |
| |
| // We have to change the WMF record numbers so that they don't conflict with |
| // the EMF and EMF+ record numbers. |
| enum EmfPlusRecordType; |
| #define GDIP_EMFPLUS_RECORD_BASE 0x00004000 |
| #define GDIP_WMF_RECORD_BASE 0x00010000 |
| #define GDIP_WMF_RECORD_TO_EMFPLUS(n) ((EmfPlusRecordType)((n) | GDIP_WMF_RECORD_BASE)) |
| #define GDIP_EMFPLUS_RECORD_TO_WMF(n) ((n) & (~GDIP_WMF_RECORD_BASE)) |
| #define GDIP_IS_WMF_RECORDTYPE(n) (((n) & GDIP_WMF_RECORD_BASE) != 0) |
| |
| enum EmfPlusRecordType |
| { |
| // Since we have to enumerate GDI records right along with GDI+ records, |
| // we list all the GDI records here so that they can be part of the |
| // same enumeration type which is used in the enumeration callback. |
| |
| WmfRecordTypeSetBkColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR), |
| WmfRecordTypeSetBkMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE), |
| WmfRecordTypeSetMapMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPMODE), |
| WmfRecordTypeSetROP2 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETROP2), |
| WmfRecordTypeSetRelAbs = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETRELABS), |
| WmfRecordTypeSetPolyFillMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPOLYFILLMODE), |
| WmfRecordTypeSetStretchBltMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE), |
| WmfRecordTypeSetTextCharExtra = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA), |
| WmfRecordTypeSetTextColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR), |
| WmfRecordTypeSetTextJustification = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION), |
| WmfRecordTypeSetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG), |
| WmfRecordTypeSetWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT), |
| WmfRecordTypeSetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG), |
| WmfRecordTypeSetViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTEXT), |
| WmfRecordTypeOffsetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETWINDOWORG), |
| WmfRecordTypeScaleWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEWINDOWEXT), |
| WmfRecordTypeOffsetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETVIEWPORTORG), |
| WmfRecordTypeScaleViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEVIEWPORTEXT), |
| WmfRecordTypeLineTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_LINETO), |
| WmfRecordTypeMoveTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_MOVETO), |
| WmfRecordTypeExcludeClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXCLUDECLIPRECT), |
| WmfRecordTypeIntersectClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_INTERSECTCLIPRECT), |
| WmfRecordTypeArc = GDIP_WMF_RECORD_TO_EMFPLUS(META_ARC), |
| WmfRecordTypeEllipse = GDIP_WMF_RECORD_TO_EMFPLUS(META_ELLIPSE), |
| WmfRecordTypeFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_FLOODFILL), |
| WmfRecordTypePie = GDIP_WMF_RECORD_TO_EMFPLUS(META_PIE), |
| WmfRecordTypeRectangle = GDIP_WMF_RECORD_TO_EMFPLUS(META_RECTANGLE), |
| WmfRecordTypeRoundRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_ROUNDRECT), |
| WmfRecordTypePatBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_PATBLT), |
| WmfRecordTypeSaveDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_SAVEDC), |
| WmfRecordTypeSetPixel = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPIXEL), |
| WmfRecordTypeOffsetClipRgn = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETCLIPRGN), |
| WmfRecordTypeTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_TEXTOUT), |
| WmfRecordTypeBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_BITBLT), |
| WmfRecordTypeStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHBLT), |
| WmfRecordTypePolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYGON), |
| WmfRecordTypePolyline = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYLINE), |
| WmfRecordTypeEscape = GDIP_WMF_RECORD_TO_EMFPLUS(META_ESCAPE), |
| WmfRecordTypeRestoreDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESTOREDC), |
| WmfRecordTypeFillRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FILLREGION), |
| WmfRecordTypeFrameRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FRAMEREGION), |
| WmfRecordTypeInvertRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_INVERTREGION), |
| WmfRecordTypePaintRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_PAINTREGION), |
| WmfRecordTypeSelectClipRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTCLIPREGION), |
| WmfRecordTypeSelectObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTOBJECT), |
| WmfRecordTypeSetTextAlign = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTALIGN), |
| WmfRecordTypeDrawText = GDIP_WMF_RECORD_TO_EMFPLUS(0x062F), // META_DRAWTEXT |
| WmfRecordTypeChord = GDIP_WMF_RECORD_TO_EMFPLUS(META_CHORD), |
| WmfRecordTypeSetMapperFlags = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPPERFLAGS), |
| WmfRecordTypeExtTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTTEXTOUT), |
| WmfRecordTypeSetDIBToDev = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETDIBTODEV), |
| WmfRecordTypeSelectPalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTPALETTE), |
| WmfRecordTypeRealizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_REALIZEPALETTE), |
| WmfRecordTypeAnimatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_ANIMATEPALETTE), |
| WmfRecordTypeSetPalEntries = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPALENTRIES), |
| WmfRecordTypePolyPolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYPOLYGON), |
| WmfRecordTypeResizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE), |
| WmfRecordTypeDIBBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT), |
| WmfRecordTypeDIBStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT), |
| WmfRecordTypeDIBCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH), |
| WmfRecordTypeStretchDIB = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB), |
| WmfRecordTypeExtFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL), |
| WmfRecordTypeSetLayout = GDIP_WMF_RECORD_TO_EMFPLUS(0x0149), // META_SETLAYOUT |
| WmfRecordTypeResetDC = GDIP_WMF_RECORD_TO_EMFPLUS(0x014C), // META_RESETDC |
| WmfRecordTypeStartDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x014D), // META_STARTDOC |
| WmfRecordTypeStartPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x004F), // META_STARTPAGE |
| WmfRecordTypeEndPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x0050), // META_ENDPAGE |
| WmfRecordTypeAbortDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x0052), // META_ABORTDOC |
| WmfRecordTypeEndDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x005E), // META_ENDDOC |
| WmfRecordTypeDeleteObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT), |
| WmfRecordTypeCreatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE), |
| WmfRecordTypeCreateBrush = GDIP_WMF_RECORD_TO_EMFPLUS(0x00F8), // META_CREATEBRUSH |
| WmfRecordTypeCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH), |
| WmfRecordTypeCreatePenIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT), |
| WmfRecordTypeCreateFontIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT), |
| WmfRecordTypeCreateBrushIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT), |
| WmfRecordTypeCreateBitmapIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(0x02FD), // META_CREATEBITMAPINDIRECT |
| WmfRecordTypeCreateBitmap = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE), // META_CREATEBITMAP |
| WmfRecordTypeCreateRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION), |
| |
| EmfRecordTypeHeader = EMR_HEADER, |
| EmfRecordTypePolyBezier = EMR_POLYBEZIER, |
| EmfRecordTypePolygon = EMR_POLYGON, |
| EmfRecordTypePolyline = EMR_POLYLINE, |
| EmfRecordTypePolyBezierTo = EMR_POLYBEZIERTO, |
| EmfRecordTypePolyLineTo = EMR_POLYLINETO, |
| EmfRecordTypePolyPolyline = EMR_POLYPOLYLINE, |
| EmfRecordTypePolyPolygon = EMR_POLYPOLYGON, |
| EmfRecordTypeSetWindowExtEx = EMR_SETWINDOWEXTEX, |
| EmfRecordTypeSetWindowOrgEx = EMR_SETWINDOWORGEX, |
| EmfRecordTypeSetViewportExtEx = EMR_SETVIEWPORTEXTEX, |
| EmfRecordTypeSetViewportOrgEx = EMR_SETVIEWPORTORGEX, |
| EmfRecordTypeSetBrushOrgEx = EMR_SETBRUSHORGEX, |
| EmfRecordTypeEOF = EMR_EOF, |
| EmfRecordTypeSetPixelV = EMR_SETPIXELV, |
| EmfRecordTypeSetMapperFlags = EMR_SETMAPPERFLAGS, |
| EmfRecordTypeSetMapMode = EMR_SETMAPMODE, |
| EmfRecordTypeSetBkMode = EMR_SETBKMODE, |
| EmfRecordTypeSetPolyFillMode = EMR_SETPOLYFILLMODE, |
| EmfRecordTypeSetROP2 = EMR_SETROP2, |
| EmfRecordTypeSetStretchBltMode = EMR_SETSTRETCHBLTMODE, |
| EmfRecordTypeSetTextAlign = EMR_SETTEXTALIGN, |
| EmfRecordTypeSetColorAdjustment = EMR_SETCOLORADJUSTMENT, |
| EmfRecordTypeSetTextColor = EMR_SETTEXTCOLOR, |
| EmfRecordTypeSetBkColor = EMR_SETBKCOLOR, |
| EmfRecordTypeOffsetClipRgn = EMR_OFFSETCLIPRGN, |
| EmfRecordTypeMoveToEx = EMR_MOVETOEX, |
| EmfRecordTypeSetMetaRgn = EMR_SETMETARGN, |
| EmfRecordTypeExcludeClipRect = EMR_EXCLUDECLIPRECT, |
| EmfRecordTypeIntersectClipRect = EMR_INTERSECTCLIPRECT, |
| EmfRecordTypeScaleViewportExtEx = EMR_SCALEVIEWPORTEXTEX, |
| EmfRecordTypeScaleWindowExtEx = EMR_SCALEWINDOWEXTEX, |
| EmfRecordTypeSaveDC = EMR_SAVEDC, |
| EmfRecordTypeRestoreDC = EMR_RESTOREDC, |
| EmfRecordTypeSetWorldTransform = EMR_SETWORLDTRANSFORM, |
| EmfRecordTypeModifyWorldTransform = EMR_MODIFYWORLDTRANSFORM, |
| EmfRecordTypeSelectObject = EMR_SELECTOBJECT, |
| EmfRecordTypeCreatePen = EMR_CREATEPEN, |
| EmfRecordTypeCreateBrushIndirect = EMR_CREATEBRUSHINDIRECT, |
| EmfRecordTypeDeleteObject = EMR_DELETEOBJECT, |
| EmfRecordTypeAngleArc = EMR_ANGLEARC, |
| EmfRecordTypeEllipse = EMR_ELLIPSE, |
| EmfRecordTypeRectangle = EMR_RECTANGLE, |
| EmfRecordTypeRoundRect = EMR_ROUNDRECT, |
| EmfRecordTypeArc = EMR_ARC, |
| EmfRecordTypeChord = EMR_CHORD, |
| EmfRecordTypePie = EMR_PIE, |
| EmfRecordTypeSelectPalette = EMR_SELECTPALETTE, |
| EmfRecordTypeCreatePalette = EMR_CREATEPALETTE, |
| EmfRecordTypeSetPaletteEntries = EMR_SETPALETTEENTRIES, |
| EmfRecordTypeResizePalette = EMR_RESIZEPALETTE, |
| EmfRecordTypeRealizePalette = EMR_REALIZEPALETTE, |
| EmfRecordTypeExtFloodFill = EMR_EXTFLOODFILL, |
| EmfRecordTypeLineTo = EMR_LINETO, |
| EmfRecordTypeArcTo = EMR_ARCTO, |
| EmfRecordTypePolyDraw = EMR_POLYDRAW, |
| EmfRecordTypeSetArcDirection = EMR_SETARCDIRECTION, |
| EmfRecordTypeSetMiterLimit = EMR_SETMITERLIMIT, |
| EmfRecordTypeBeginPath = EMR_BEGINPATH, |
| EmfRecordTypeEndPath = EMR_ENDPATH, |
| EmfRecordTypeCloseFigure = EMR_CLOSEFIGURE, |
| EmfRecordTypeFillPath = EMR_FILLPATH, |
| EmfRecordTypeStrokeAndFillPath = EMR_STROKEANDFILLPATH, |
| EmfRecordTypeStrokePath = EMR_STROKEPATH, |
| EmfRecordTypeFlattenPath = EMR_FLATTENPATH, |
| EmfRecordTypeWidenPath = EMR_WIDENPATH, |
| EmfRecordTypeSelectClipPath = EMR_SELECTCLIPPATH, |
| EmfRecordTypeAbortPath = EMR_ABORTPATH, |
| EmfRecordTypeReserved_069 = 69, // Not Used |
| EmfRecordTypeGdiComment = EMR_GDICOMMENT, |
| EmfRecordTypeFillRgn = EMR_FILLRGN, |
| EmfRecordTypeFrameRgn = EMR_FRAMERGN, |
| EmfRecordTypeInvertRgn = EMR_INVERTRGN, |
| EmfRecordTypePaintRgn = EMR_PAINTRGN, |
| EmfRecordTypeExtSelectClipRgn = EMR_EXTSELECTCLIPRGN, |
| EmfRecordTypeBitBlt = EMR_BITBLT, |
| EmfRecordTypeStretchBlt = EMR_STRETCHBLT, |
| EmfRecordTypeMaskBlt = EMR_MASKBLT, |
| EmfRecordTypePlgBlt = EMR_PLGBLT, |
| EmfRecordTypeSetDIBitsToDevice = EMR_SETDIBITSTODEVICE, |
| EmfRecordTypeStretchDIBits = EMR_STRETCHDIBITS, |
| EmfRecordTypeExtCreateFontIndirect = EMR_EXTCREATEFONTINDIRECTW, |
| EmfRecordTypeExtTextOutA = EMR_EXTTEXTOUTA, |
| EmfRecordTypeExtTextOutW = EMR_EXTTEXTOUTW, |
| EmfRecordTypePolyBezier16 = EMR_POLYBEZIER16, |
| EmfRecordTypePolygon16 = EMR_POLYGON16, |
| EmfRecordTypePolyline16 = EMR_POLYLINE16, |
| EmfRecordTypePolyBezierTo16 = EMR_POLYBEZIERTO16, |
| EmfRecordTypePolylineTo16 = EMR_POLYLINETO16, |
| EmfRecordTypePolyPolyline16 = EMR_POLYPOLYLINE16, |
| EmfRecordTypePolyPolygon16 = EMR_POLYPOLYGON16, |
| EmfRecordTypePolyDraw16 = EMR_POLYDRAW16, |
| EmfRecordTypeCreateMonoBrush = EMR_CREATEMONOBRUSH, |
| EmfRecordTypeCreateDIBPatternBrushPt = EMR_CREATEDIBPATTERNBRUSHPT, |
| EmfRecordTypeExtCreatePen = EMR_EXTCREATEPEN, |
| EmfRecordTypePolyTextOutA = EMR_POLYTEXTOUTA, |
| EmfRecordTypePolyTextOutW = EMR_POLYTEXTOUTW, |
| EmfRecordTypeSetICMMode = 98, // EMR_SETICMMODE, |
| EmfRecordTypeCreateColorSpace = 99, // EMR_CREATECOLORSPACE, |
| EmfRecordTypeSetColorSpace = 100, // EMR_SETCOLORSPACE, |
| EmfRecordTypeDeleteColorSpace = 101, // EMR_DELETECOLORSPACE, |
| EmfRecordTypeGLSRecord = 102, // EMR_GLSRECORD, |
| EmfRecordTypeGLSBoundedRecord = 103, // EMR_GLSBOUNDEDRECORD, |
| EmfRecordTypePixelFormat = 104, // EMR_PIXELFORMAT, |
| EmfRecordTypeDrawEscape = 105, // EMR_RESERVED_105, |
| EmfRecordTypeExtEscape = 106, // EMR_RESERVED_106, |
| EmfRecordTypeStartDoc = 107, // EMR_RESERVED_107, |
| EmfRecordTypeSmallTextOut = 108, // EMR_RESERVED_108, |
| EmfRecordTypeForceUFIMapping = 109, // EMR_RESERVED_109, |
| EmfRecordTypeNamedEscape = 110, // EMR_RESERVED_110, |
| EmfRecordTypeColorCorrectPalette = 111, // EMR_COLORCORRECTPALETTE, |
| EmfRecordTypeSetICMProfileA = 112, // EMR_SETICMPROFILEA, |
| EmfRecordTypeSetICMProfileW = 113, // EMR_SETICMPROFILEW, |
| EmfRecordTypeAlphaBlend = 114, // EMR_ALPHABLEND, |
| EmfRecordTypeSetLayout = 115, // EMR_SETLAYOUT, |
| EmfRecordTypeTransparentBlt = 116, // EMR_TRANSPARENTBLT, |
| EmfRecordTypeReserved_117 = 117, // Not Used |
| EmfRecordTypeGradientFill = 118, // EMR_GRADIENTFILL, |
| EmfRecordTypeSetLinkedUFIs = 119, // EMR_RESERVED_119, |
| EmfRecordTypeSetTextJustification = 120, // EMR_RESERVED_120, |
| EmfRecordTypeColorMatchToTargetW = 121, // EMR_COLORMATCHTOTARGETW, |
| EmfRecordTypeCreateColorSpaceW = 122, // EMR_CREATECOLORSPACEW, |
| EmfRecordTypeMax = 122, |
| EmfRecordTypeMin = 1, |
| |
| // That is the END of the GDI EMF records. |
| |
| // Now we start the list of EMF+ records. We leave quite |
| // a bit of room here for the addition of any new GDI |
| // records that may be added later. |
| |
| EmfPlusRecordTypeInvalid = GDIP_EMFPLUS_RECORD_BASE, |
| EmfPlusRecordTypeHeader, |
| EmfPlusRecordTypeEndOfFile, |
| |
| EmfPlusRecordTypeComment, |
| |
| EmfPlusRecordTypeGetDC, // the application grabbed the metafile dc |
| |
| EmfPlusRecordTypeMultiFormatStart, |
| EmfPlusRecordTypeMultiFormatSection, |
| EmfPlusRecordTypeMultiFormatEnd, |
| |
| // For all persistent objects |
| EmfPlusRecordTypeObject, // brush,pen,path,region,image,font,string-format |
| |
| // Drawing Records |
| EmfPlusRecordTypeClear, |
| EmfPlusRecordTypeFillRects, |
| EmfPlusRecordTypeDrawRects, |
| EmfPlusRecordTypeFillPolygon, |
| EmfPlusRecordTypeDrawLines, |
| EmfPlusRecordTypeFillEllipse, |
| EmfPlusRecordTypeDrawEllipse, |
| EmfPlusRecordTypeFillPie, |
| EmfPlusRecordTypeDrawPie, |
| EmfPlusRecordTypeDrawArc, |
| EmfPlusRecordTypeFillRegion, |
| EmfPlusRecordTypeFillPath, |
| EmfPlusRecordTypeDrawPath, |
| EmfPlusRecordTypeFillClosedCurve, |
| EmfPlusRecordTypeDrawClosedCurve, |
| EmfPlusRecordTypeDrawCurve, |
| EmfPlusRecordTypeDrawBeziers, |
| EmfPlusRecordTypeDrawImage, |
| EmfPlusRecordTypeDrawImagePoints, |
| EmfPlusRecordTypeDrawString, |
| |
| // Graphics State Records |
| EmfPlusRecordTypeSetRenderingOrigin, |
| EmfPlusRecordTypeSetAntiAliasMode, |
| EmfPlusRecordTypeSetTextRenderingHint, |
| #ifdef DCR_USE_NEW_188922 |
| EmfPlusRecordTypeSetTextContrast, |
| #else |
| EmfPlusRecordTypeSetGammaValue, |
| #endif // DCR_USE_NEW_188922 |
| EmfPlusRecordTypeSetInterpolationMode, |
| EmfPlusRecordTypeSetPixelOffsetMode, |
| EmfPlusRecordTypeSetCompositingMode, |
| EmfPlusRecordTypeSetCompositingQuality, |
| EmfPlusRecordTypeSave, |
| EmfPlusRecordTypeRestore, |
| EmfPlusRecordTypeBeginContainer, |
| EmfPlusRecordTypeBeginContainerNoParams, |
| EmfPlusRecordTypeEndContainer, |
| EmfPlusRecordTypeSetWorldTransform, |
| EmfPlusRecordTypeResetWorldTransform, |
| EmfPlusRecordTypeMultiplyWorldTransform, |
| EmfPlusRecordTypeTranslateWorldTransform, |
| EmfPlusRecordTypeScaleWorldTransform, |
| EmfPlusRecordTypeRotateWorldTransform, |
| EmfPlusRecordTypeSetPageTransform, |
| EmfPlusRecordTypeResetClip, |
| EmfPlusRecordTypeSetClipRect, |
| EmfPlusRecordTypeSetClipPath, |
| EmfPlusRecordTypeSetClipRegion, |
| EmfPlusRecordTypeOffsetClip, |
| |
| // New record types must be added here (at the end) -- do not add above, |
| // since that will invalidate previous metafiles! |
| EmfPlusRecordTypeDrawDriverString, |
| |
| // Have this here so you don't need to keep changing the value of |
| // EmfPlusRecordTypeMax every time you add a new record. |
| |
| EmfPlusRecordTotal, |
| |
| EmfPlusRecordTypeMax = EmfPlusRecordTotal-1, |
| EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader, |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // StringFormatFlags |
| //--------------------------------------------------------------------------- |
| |
| //--------------------------------------------------------------------------- |
| // String format flags |
| // |
| // DirectionRightToLeft - For horizontal text, the reading order is |
| // right to left. This value is called |
| // the base embedding level by the Unicode |
| // bidirectional engine. |
| // For vertical text, columns are read from |
| // right to left. |
| // By default, horizontal or vertical text is |
| // read from left to right. |
| // |
| // DirectionVertical - Individual lines of text are vertical. In |
| // each line, characters progress from top to |
| // bottom. |
| // By default, lines of text are horizontal, |
| // each new line below the previous line. |
| // |
| // NoFitBlackBox - Allows parts of glyphs to overhang the |
| // bounding rectangle. |
| // By default glyphs are first aligned |
| // inside the margines, then any glyphs which |
| // still overhang the bounding box are |
| // repositioned to avoid any overhang. |
| // For example when an italic |
| // lower case letter f in a font such as |
| // Garamond is aligned at the far left of a |
| // rectangle, the lower part of the f will |
| // reach slightly further left than the left |
| // edge of the rectangle. Setting this flag |
| // will ensure the character aligns visually |
| // with the lines above and below, but may |
| // cause some pixels outside the formatting |
| // rectangle to be clipped or painted. |
| // |
| #ifndef DCR_USE_NEW_137252 |
| // NumberContextArabic - Causes any initial numeric in the string to |
| // be analysed for bidirection layout as if |
| // it was preceeded by Arabic text. |
| // |
| // DisableKashidaJustification - Arabic text will not be justified by the |
| // insertion of kashidas (i.e. extending the |
| // joining line between characters). Instead |
| // Arabic script will be justified by the |
| // widening of the whitespace between words. |
| // |
| #endif |
| // DisplayFormatControl - Causes control characters such as the |
| // left-to-right mark to be shown in the |
| // output with a representative glyph. |
| // |
| #ifndef DCR_USE_NEW_137252 |
| // DisableKerning - Disables Truetype and OpenType kerning. |
| // |
| // DisableLigatures - Disables Truetype and OpenType ligatures. |
| // |
| // LayoutLegacyBidi - Causes the bidirection algorithm to use |
| // slightly different classifications for |
| // '+', '-' and '/' that make their layout |
| // much closer to that expected by files |
| // generated in Windows or by Windows |
| // applications. |
| // |
| // NoChanges - A text imager created with this flag set |
| // does not support those APIs that change |
| // it's contents or formatting, but for most |
| // simple text will be significantly faster in |
| // performing measurement and drawing |
| // functions. |
| // |
| #endif |
| // NoFontFallback - Disables fallback to alternate fonts for |
| // characters not supported in the requested |
| // font. Any missing characters will be |
| // be displayed with the fonts missing glyph, |
| // usually an open square. |
| // |
| // NoWrap - Disables wrapping of text between lines |
| // when formatting within a rectangle. |
| // NoWrap is implied when a point is passed |
| // instead of a rectangle, or when the |
| // specified rectangle has a zero line length. |
| // |
| // NoClip - By default text is clipped to the |
| // formatting rectangle. Setting NoClip |
| // allows overhanging pixels to affect the |
| // device outside the formatting rectangle. |
| // Pixels at the end of the line may be |
| // affected if the glyphs overhang their |
| // cells, and either the NoFitBlackBox flag |
| // has been set, or the glyph extends to far |
| // to be fitted. |
| // Pixels above/before the first line or |
| // below/after the last line may be affected |
| // if the glyphs extend beyond their cell |
| // ascent / descent. This can occur rarely |
| // with unusual diacritic mark combinations. |
| |
| //--------------------------------------------------------------------------- |
| |
| enum StringFormatFlags |
| { |
| StringFormatFlagsDirectionRightToLeft = 0x00000001, |
| StringFormatFlagsDirectionVertical = 0x00000002, |
| StringFormatFlagsNoFitBlackBox = 0x00000004, |
| #ifndef DCR_USE_NEW_137252 |
| StringFormatFlagsNumberContextArabic = 0x00000008, |
| StringFormatFlagsDisableKashidaJustification = 0x00000010, |
| #endif |
| StringFormatFlagsDisplayFormatControl = 0x00000020, |
| #ifndef DCR_USE_NEW_137252 |
| StringFormatFlagsDisableKerning = 0x00000040, |
| StringFormatFlagsDisableLigatures = 0x00000080, |
| StringFormatFlagsLayoutLegacyBidi = 0x00000100, |
| StringFormatFlagsNoChanges = 0x00000200, |
| #endif |
| StringFormatFlagsNoFontFallback = 0x00000400, |
| StringFormatFlagsMeasureTrailingSpaces = 0x00000800, |
| StringFormatFlagsNoWrap = 0x00001000, |
| StringFormatFlagsLineLimit = 0x00002000, |
| |
| StringFormatFlagsNoClip = 0x00004000 |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // StringTrimming |
| //--------------------------------------------------------------------------- |
| |
| enum StringTrimming { |
| StringTrimmingNone = 0, |
| StringTrimmingCharacter = 1, |
| StringTrimmingWord = 2, |
| StringTrimmingEllipsisCharacter = 3, |
| StringTrimmingEllipsisWord = 4, |
| StringTrimmingEllipsisPath = 5 |
| }; |
| |
| #ifndef DCR_USE_NEW_137252 |
| //--------------------------------------------------------------------------- |
| // String units |
| // |
| // String units are like length units in CSS, they may be absolute, or |
| // they may be relative to a font size. |
| // |
| //--------------------------------------------------------------------------- |
| |
| enum StringUnit { |
| StringUnitWorld = UnitWorld, |
| StringUnitDisplay = UnitDisplay, |
| StringUnitPixel = UnitPixel, |
| StringUnitPoint = UnitPoint, |
| StringUnitInch = UnitInch, |
| StringUnitDocument = UnitDocument, |
| StringUnitMillimeter = UnitMillimeter, |
| StringUnitEm = 32 |
| }; |
| #endif |
| |
| #ifndef DCR_USE_NEW_152154 |
| //--------------------------------------------------------------------------- |
| // Line spacing flags |
| //--------------------------------------------------------------------------- |
| |
| enum LineSpacing { |
| LineSpacingWorld = UnitWorld, |
| LineSpacingDisplay = UnitDisplay, |
| LineSpacingPixel = UnitPixel, |
| LineSpacingPoint = UnitPoint, |
| LineSpacingInch = UnitInch, |
| LineSpacingDocument = UnitDocument, |
| LineSpacingMillimeter = UnitMillimeter, |
| |
| LineSpacingRecommended = 32, |
| LineSpacingAtLeast = 33, |
| LineSpacingAtLeastMultiple = 34, |
| LineSpacingCell = 35, |
| LineSpacingCellAtLeast = 36, |
| LineSpacingCellAtLeastMultiple = 37 |
| }; |
| |
| /// The following methods of linespacing are relative to the font size |
| // |
| // =========== Method =========== =============== Relative to =============== |
| // |
| // LineSpacingRecommended recommended line spacing specified by font |
| // LineSpacingAtLeast max(recommended, tallest glyph cell) |
| // LineSpacingAtLeastMultiple smallest multiple of recommended big enough |
| // for all glyph cells on the line |
| // LineSpacingCell cell height |
| // LineSpacingCellAtLeast max(font cell height, tallest glyph cell) |
| // LineSpacingCellAtLeastMultiple smallest multiple of cell height big enough |
| // for all glyph cells on the line |
| #endif |
| |
| |
| //--------------------------------------------------------------------------- |
| // National language digit substitution |
| //--------------------------------------------------------------------------- |
| |
| enum StringDigitSubstitute |
| { |
| StringDigitSubstituteUser = 0, // As NLS setting |
| StringDigitSubstituteNone = 1, |
| StringDigitSubstituteNational = 2, |
| StringDigitSubstituteTraditional = 3 |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // Hotkey prefix interpretation |
| //--------------------------------------------------------------------------- |
| |
| enum HotkeyPrefix |
| { |
| HotkeyPrefixNone = 0, |
| HotkeyPrefixShow = 1, |
| HotkeyPrefixHide = 2 |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // Text alignment flags |
| //--------------------------------------------------------------------------- |
| |
| enum StringAlignment |
| { |
| // Left edge for left-to-right text, |
| // right for right-to-left text, |
| // and top for vertical |
| StringAlignmentNear = 0, |
| StringAlignmentCenter = 1, |
| StringAlignmentFar = 2 |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // DriverStringOptions |
| //--------------------------------------------------------------------------- |
| |
| enum DriverStringOptions |
| { |
| DriverStringOptionsCmapLookup = 1, |
| DriverStringOptionsVertical = 2, |
| DriverStringOptionsRealizedAdvance = 4, |
| #ifndef DCR_USE_NEW_137252 |
| DriverStringOptionsCompensateResolution = 8 |
| #endif |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // Flush Intention flags |
| //--------------------------------------------------------------------------- |
| |
| enum FlushIntention |
| { |
| FlushIntentionFlush = 0, // Flush all batched rendering operations |
| FlushIntentionSync = 1 // Flush all batched rendering operations |
| // and wait for them to complete |
| }; |
| |
| #ifndef DCR_USE_NEW_175866 |
| |
| //--------------------------------------------------------------------------- |
| // Window Change Notification types |
| //--------------------------------------------------------------------------- |
| |
| enum WindowNotifyEnum |
| { |
| WindowNotifyEnumEnable = 0, |
| WindowNotifyEnumDisable, |
| WindowNotifyEnumPalette, |
| WindowNotifyEnumDisplay, |
| WindowNotifyEnumSysColor |
| }; |
| |
| #endif |
| |
| //--------------------------------------------------------------------------- |
| // Image encoder parameter related types |
| //--------------------------------------------------------------------------- |
| |
| #ifdef DCR_USE_NEW_145804 |
| enum EncoderParameterValueType |
| { |
| EncoderParameterValueTypeByte = 1, // 8-bit unsigned int |
| EncoderParameterValueTypeASCII = 2, // 8-bit byte containing one 7-bit ASCII |
| // code. NULL terminated. |
| EncoderParameterValueTypeShort = 3, // 16-bit unsigned int |
| EncoderParameterValueTypeLong = 4, // 32-bit unsigned int |
| EncoderParameterValueTypeRational = 5, // Two Longs. The first Long is the |
| // numerator, the second Long expresses the |
| // denomintor. |
| EncoderParameterValueTypeLongRange = 6, // Two longs which specify a range of |
| // integer values. The first Long specifies |
| // the lower end and the second one |
| // specifies the higher end. All values |
| // are inclusive at both ends |
| EncoderParameterValueTypeUndefined = 7, // 8-bit byte that can take any value |
| // depending on field definition |
| EncoderParameterValueTypeRationalRange = 8 // Two Rationals. The first Rational |
| // specifies the lower end and the second |
| // specifies the higher end. All values |
| // are inclusive at both ends |
| }; |
| #else |
| enum ValueType |
| { |
| ValueTypeByte = 1, // 8-bit unsigned int |
| ValueTypeASCII = 2, // 8-bit byte containing one 7-bit ASCII |
| // code. NULL terminated. |
| ValueTypeShort = 3, // 16-bit unsigned int |
| ValueTypeLong = 4, // 32-bit unsigned int |
| ValueTypeRational = 5, // Two Longs. The first Long is the |
| // numerator, the second Long expresses the |
| // denomintor. |
| ValueTypeLongRange = 6, // Two longs which specify a range of |
| // integer values. The first Long specifies |
| // the lower end and the second one |
| // specifies the higher end. All values |
| // are inclusive at both ends |
| ValueTypeUndefined = 7, // 8-bit byte that can take any value |
| // depending on field definition |
| ValueTypeRationalRange = 8 // Two Rationals. The first Rational |
| // specifies the lower end and the second |
| // specifies the higher end. All values |
| // are inclusive at both ends |
| }; |
| #endif |
| |
| //--------------------------------------------------------------------------- |
| // Image encoder value types |
| //--------------------------------------------------------------------------- |
| |
| enum EncoderValue |
| { |
| EncoderValueColorTypeCMYK, |
| EncoderValueColorTypeYCCK, |
| EncoderValueCompressionLZW, |
| EncoderValueCompressionCCITT3, |
| EncoderValueCompressionCCITT4, |
| EncoderValueCompressionRle, |
| EncoderValueCompressionNone, |
| EncoderValueScanMethodInterlaced, |
| EncoderValueScanMethodNonInterlaced, |
| EncoderValueVersionGif87, |
| EncoderValueVersionGif89, |
| EncoderValueRenderProgressive, |
| EncoderValueRenderNonProgressive, |
| EncoderValueTransformRotate90, |
| EncoderValueTransformRotate180, |
| EncoderValueTransformRotate270, |
| EncoderValueTransformFlipHorizontal, |
| EncoderValueTransformFlipVertical, |
| #ifdef DCR_USE_NEW_140861 |
| EncoderValueMultiFrame, |
| #else |
| EncodeValueMultiFrame, |
| #endif |
| EncoderValueLastFrame, |
| EncoderValueFlush, |
| #ifdef DCR_USE_NEW_140861 |
| EncoderValueFrameDimensionTime, |
| EncoderValueFrameDimensionResolution, |
| EncoderValueFrameDimensionPage |
| #else |
| EncodeValueFrameDimensionTime, |
| EncodeValueFrameDimensionResolution, |
| EncodeValueFrameDimensionPage |
| #endif |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // Graphics layout values (support for Middle East localization) |
| //--------------------------------------------------------------------------- |
| |
| enum GraphicsLayout |
| { |
| GraphicsLayoutNormal, |
| GraphicsLayoutMirrored, |
| GraphicsLayoutMirroredIgnoreImages, |
| GraphicsLayoutMirroredForceImages |
| }; |
| |
| //--------------------------------------------------------------------------- |
| // Image layout values (support for Middle East localization) |
| //--------------------------------------------------------------------------- |
| |
| enum ImageLayout |
| { |
| ImageLayoutNormal, |
| ImageLayoutIgnoreMirrored |
| }; |
| |
| enum EmfToWmfBitsFlags |
| { |
| EmfToWmfBitsFlagsDefault = 0x00000000, |
| EmfToWmfBitsFlagsEmbedEmf = 0x00000001, |
| EmfToWmfBitsFlagsIncludeAPM = 0x00000002, |
| EmfToWmfBitsFlagsNoXORClip = 0x00000004 |
| }; |
| |
| #endif // !_GDIPLUSENUMS_H |