1115 lines
47 KiB
C
1115 lines
47 KiB
C
/**************************************************************************\
|
|
*
|
|
* Copyright (c) 1998-2000, Microsoft Corp. All Rights Reserved.
|
|
*
|
|
* Module Name:
|
|
*
|
|
* GdiplusEnums.hpp
|
|
*
|
|
* Abstract:
|
|
*
|
|
* Various enumeration types
|
|
*
|
|
* Revision History:
|
|
*
|
|
* 12/11/1998 davidx
|
|
* Created it.
|
|
*
|
|
\**************************************************************************/
|
|
|
|
#ifndef _GDIPLUSENUMS_H
|
|
#define _GDIPLUSENUMS_H
|
|
|
|
//--------------------------------------------------------------------------
|
|
// 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
|
|
};
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Dash style constants
|
|
//--------------------------------------------------------------------------
|
|
|
|
enum DashStyle
|
|
{
|
|
DashStyleSolid, // 0
|
|
DashStyleDash, // 1
|
|
DashStyleDot, // 2
|
|
DashStyleDashDot, // 3
|
|
DashStyleDashDotDot, // 4
|
|
DashStyleCustom // 5
|
|
};
|
|
|
|
//--------------------------------------------------------------------------
|
|
// 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
|
|
};
|
|
|
|
//--------------------------------------------------------------------------
|
|
// 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
|
|
{
|
|
TextRenderingHintSingleBitPerPixelGridFit = 0, // Glyph bitmap with hinting
|
|
TextRenderingHintSingleBitPerPixel, // Glyph bitmap without hinting
|
|
TextRenderingHintAntiAliasGridFit, // Glyph anti-alias bitmap without hinting
|
|
TextRenderingHintAntiAlias, // Glyph anti-alias bitmap with 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,
|
|
ObjectTypeMax = ObjectTypeImageAttributes,
|
|
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),
|
|
WmfRecordTypeOffsetCilpRgn = 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),
|
|
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
|
|
WmfRecordTypeDeleteObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT),
|
|
WmfRecordTypeCreatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE),
|
|
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),
|
|
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,
|
|
EmfPlusRecordTypeSetTextGammaValue,
|
|
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.
|
|
//
|
|
// 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.
|
|
//
|
|
// DisplayFormatControl - Causes control characters such as the
|
|
// left-to-right mark to be shown in the
|
|
// output with a representative glyph.
|
|
//
|
|
// 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.
|
|
//
|
|
// 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,
|
|
StringFormatFlagsNumberContextArabic = 0x00000008,
|
|
StringFormatFlagsDisableKashidaJustification = 0x00000010,
|
|
StringFormatFlagsDisplayFormatControl = 0x00000020,
|
|
StringFormatFlagsDisableKerning = 0x00000040,
|
|
StringFormatFlagsDisableLigatures = 0x00000080,
|
|
StringFormatFlagsLayoutLegacyBidi = 0x00000100,
|
|
StringFormatFlagsNoChanges = 0x00000200,
|
|
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
|
|
};
|
|
|
|
//---------------------------------------------------------------------------
|
|
// 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
|
|
};
|
|
|
|
//---------------------------------------------------------------------------
|
|
// 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
|
|
|
|
//---------------------------------------------------------------------------
|
|
// 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,
|
|
DriverStringOptionsCompensateResolution = 8
|
|
};
|
|
|
|
//---------------------------------------------------------------------------
|
|
// 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
|
|
};
|
|
|
|
//---------------------------------------------------------------------------
|
|
// Window Change Notification types
|
|
//---------------------------------------------------------------------------
|
|
|
|
enum WindowNotifyEnum
|
|
{
|
|
WindowNotifyEnumEnable = 0,
|
|
WindowNotifyEnumDisable,
|
|
WindowNotifyEnumPalette,
|
|
WindowNotifyEnumDisplay,
|
|
WindowNotifyEnumSysColor
|
|
};
|
|
|
|
//---------------------------------------------------------------------------
|
|
// Image encoder parameter related types
|
|
//---------------------------------------------------------------------------
|
|
|
|
#ifdef DCR_USE_NEW_145804
|
|
enum EncoderParameterValueType
|
|
#else
|
|
enum ValueType
|
|
#endif
|
|
{
|
|
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
|
|
};
|
|
|
|
//---------------------------------------------------------------------------
|
|
// 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
|
|
};
|
|
|
|
#endif // !_GDIPLUSENUMS_H
|