| /**************************************************************************\ | |
| * | |
| * 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 |