[3072] | 1 | /**************************************************************************\
|
---|
| 2 | *
|
---|
| 3 | * Copyright (c) 1998-2000, Microsoft Corp. All Rights Reserved.
|
---|
| 4 | *
|
---|
| 5 | * Module Name:
|
---|
| 6 | *
|
---|
| 7 | * GdiplusEnums.h
|
---|
| 8 | *
|
---|
| 9 | * Abstract:
|
---|
| 10 | *
|
---|
| 11 | * Various enumeration types
|
---|
| 12 | *
|
---|
| 13 | \**************************************************************************/
|
---|
| 14 |
|
---|
| 15 | #ifndef _GDIPLUSENUMS_H
|
---|
| 16 | #define _GDIPLUSENUMS_H
|
---|
| 17 |
|
---|
| 18 |
|
---|
| 19 | //--------------------------------------------------------------------------
|
---|
| 20 | // Default bezier flattening tolerance in device pixels.
|
---|
| 21 | //--------------------------------------------------------------------------
|
---|
| 22 |
|
---|
| 23 | const float FlatnessDefault = 1.0f/4.0f;
|
---|
| 24 |
|
---|
| 25 | //--------------------------------------------------------------------------
|
---|
| 26 | // Graphics and Container State cookies
|
---|
| 27 | //--------------------------------------------------------------------------
|
---|
| 28 |
|
---|
| 29 | typedef UINT GraphicsState;
|
---|
| 30 | typedef UINT GraphicsContainer;
|
---|
| 31 |
|
---|
| 32 | //--------------------------------------------------------------------------
|
---|
| 33 | // Fill mode constants
|
---|
| 34 | //--------------------------------------------------------------------------
|
---|
| 35 |
|
---|
| 36 | enum FillMode
|
---|
| 37 | {
|
---|
| 38 | FillModeAlternate, // 0
|
---|
| 39 | FillModeWinding // 1
|
---|
| 40 | };
|
---|
| 41 |
|
---|
| 42 | //--------------------------------------------------------------------------
|
---|
| 43 | // Quality mode constants
|
---|
| 44 | //--------------------------------------------------------------------------
|
---|
| 45 |
|
---|
| 46 | enum QualityMode
|
---|
| 47 | {
|
---|
| 48 | QualityModeInvalid = -1,
|
---|
| 49 | QualityModeDefault = 0,
|
---|
| 50 | QualityModeLow = 1, // for apps that need the best performance
|
---|
| 51 | QualityModeHigh = 2 // for apps that need the best rendering quality
|
---|
| 52 | };
|
---|
| 53 |
|
---|
| 54 | //--------------------------------------------------------------------------
|
---|
| 55 | // Alpha compositing mode constants
|
---|
| 56 | //--------------------------------------------------------------------------
|
---|
| 57 |
|
---|
| 58 | enum CompositingMode
|
---|
| 59 | {
|
---|
| 60 | CompositingModeSourceOver, // 0
|
---|
| 61 | CompositingModeSourceCopy // 1
|
---|
| 62 | };
|
---|
| 63 |
|
---|
| 64 | //--------------------------------------------------------------------------
|
---|
| 65 | // Alpha compositing quality constants
|
---|
| 66 | //--------------------------------------------------------------------------
|
---|
| 67 |
|
---|
| 68 | enum CompositingQuality
|
---|
| 69 | {
|
---|
| 70 | CompositingQualityInvalid = QualityModeInvalid,
|
---|
| 71 | CompositingQualityDefault = QualityModeDefault,
|
---|
| 72 | CompositingQualityHighSpeed = QualityModeLow,
|
---|
| 73 | CompositingQualityHighQuality = QualityModeHigh,
|
---|
| 74 | CompositingQualityGammaCorrected,
|
---|
| 75 | CompositingQualityAssumeLinear
|
---|
| 76 | };
|
---|
| 77 |
|
---|
| 78 | //--------------------------------------------------------------------------
|
---|
| 79 | // Unit constants
|
---|
| 80 | //--------------------------------------------------------------------------
|
---|
| 81 |
|
---|
| 82 | enum Unit
|
---|
| 83 | {
|
---|
| 84 | UnitWorld, // 0 -- World coordinate (non-physical unit)
|
---|
| 85 | UnitDisplay, // 1 -- Variable -- for PageTransform only
|
---|
| 86 | UnitPixel, // 2 -- Each unit is one device pixel.
|
---|
| 87 | UnitPoint, // 3 -- Each unit is a printer's point, or 1/72 inch.
|
---|
| 88 | UnitInch, // 4 -- Each unit is 1 inch.
|
---|
| 89 | UnitDocument, // 5 -- Each unit is 1/300 inch.
|
---|
| 90 | UnitMillimeter // 6 -- Each unit is 1 millimeter.
|
---|
| 91 | };
|
---|
| 92 |
|
---|
| 93 | //--------------------------------------------------------------------------
|
---|
| 94 | // MetafileFrameUnit
|
---|
| 95 | //
|
---|
| 96 | // The frameRect for creating a metafile can be specified in any of these
|
---|
| 97 | // units. There is an extra frame unit value (MetafileFrameUnitGdi) so
|
---|
| 98 | // that units can be supplied in the same units that GDI expects for
|
---|
| 99 | // frame rects -- these units are in .01 (1/100ths) millimeter units
|
---|
| 100 | // as defined by GDI.
|
---|
| 101 | //--------------------------------------------------------------------------
|
---|
| 102 | enum MetafileFrameUnit
|
---|
| 103 | {
|
---|
| 104 | MetafileFrameUnitPixel = UnitPixel,
|
---|
| 105 | MetafileFrameUnitPoint = UnitPoint,
|
---|
| 106 | MetafileFrameUnitInch = UnitInch,
|
---|
| 107 | MetafileFrameUnitDocument = UnitDocument,
|
---|
| 108 | MetafileFrameUnitMillimeter = UnitMillimeter,
|
---|
| 109 | MetafileFrameUnitGdi // GDI compatible .01 MM units
|
---|
| 110 | };
|
---|
| 111 |
|
---|
| 112 | //--------------------------------------------------------------------------
|
---|
| 113 | // Coordinate space identifiers
|
---|
| 114 | //--------------------------------------------------------------------------
|
---|
| 115 |
|
---|
| 116 | enum CoordinateSpace
|
---|
| 117 | {
|
---|
| 118 | CoordinateSpaceWorld, // 0
|
---|
| 119 | CoordinateSpacePage, // 1
|
---|
| 120 | CoordinateSpaceDevice // 2
|
---|
| 121 | };
|
---|
| 122 |
|
---|
| 123 | //--------------------------------------------------------------------------
|
---|
| 124 | // Various wrap modes for brushes
|
---|
| 125 | //--------------------------------------------------------------------------
|
---|
| 126 |
|
---|
| 127 | enum WrapMode
|
---|
| 128 | {
|
---|
| 129 | WrapModeTile, // 0
|
---|
| 130 | WrapModeTileFlipX, // 1
|
---|
| 131 | WrapModeTileFlipY, // 2
|
---|
| 132 | WrapModeTileFlipXY, // 3
|
---|
| 133 | WrapModeClamp // 4
|
---|
| 134 | };
|
---|
| 135 |
|
---|
| 136 | //--------------------------------------------------------------------------
|
---|
| 137 | // Various hatch styles
|
---|
| 138 | //--------------------------------------------------------------------------
|
---|
| 139 |
|
---|
| 140 | enum HatchStyle
|
---|
| 141 | {
|
---|
| 142 | HatchStyleHorizontal, // 0
|
---|
| 143 | HatchStyleVertical, // 1
|
---|
| 144 | HatchStyleForwardDiagonal, // 2
|
---|
| 145 | HatchStyleBackwardDiagonal, // 3
|
---|
| 146 | HatchStyleCross, // 4
|
---|
| 147 | HatchStyleDiagonalCross, // 5
|
---|
| 148 | HatchStyle05Percent, // 6
|
---|
| 149 | HatchStyle10Percent, // 7
|
---|
| 150 | HatchStyle20Percent, // 8
|
---|
| 151 | HatchStyle25Percent, // 9
|
---|
| 152 | HatchStyle30Percent, // 10
|
---|
| 153 | HatchStyle40Percent, // 11
|
---|
| 154 | HatchStyle50Percent, // 12
|
---|
| 155 | HatchStyle60Percent, // 13
|
---|
| 156 | HatchStyle70Percent, // 14
|
---|
| 157 | HatchStyle75Percent, // 15
|
---|
| 158 | HatchStyle80Percent, // 16
|
---|
| 159 | HatchStyle90Percent, // 17
|
---|
| 160 | HatchStyleLightDownwardDiagonal, // 18
|
---|
| 161 | HatchStyleLightUpwardDiagonal, // 19
|
---|
| 162 | HatchStyleDarkDownwardDiagonal, // 20
|
---|
| 163 | HatchStyleDarkUpwardDiagonal, // 21
|
---|
| 164 | HatchStyleWideDownwardDiagonal, // 22
|
---|
| 165 | HatchStyleWideUpwardDiagonal, // 23
|
---|
| 166 | HatchStyleLightVertical, // 24
|
---|
| 167 | HatchStyleLightHorizontal, // 25
|
---|
| 168 | HatchStyleNarrowVertical, // 26
|
---|
| 169 | HatchStyleNarrowHorizontal, // 27
|
---|
| 170 | HatchStyleDarkVertical, // 28
|
---|
| 171 | HatchStyleDarkHorizontal, // 29
|
---|
| 172 | HatchStyleDashedDownwardDiagonal, // 30
|
---|
| 173 | HatchStyleDashedUpwardDiagonal, // 31
|
---|
| 174 | HatchStyleDashedHorizontal, // 32
|
---|
| 175 | HatchStyleDashedVertical, // 33
|
---|
| 176 | HatchStyleSmallConfetti, // 34
|
---|
| 177 | HatchStyleLargeConfetti, // 35
|
---|
| 178 | HatchStyleZigZag, // 36
|
---|
| 179 | HatchStyleWave, // 37
|
---|
| 180 | HatchStyleDiagonalBrick, // 38
|
---|
| 181 | HatchStyleHorizontalBrick, // 39
|
---|
| 182 | HatchStyleWeave, // 40
|
---|
| 183 | HatchStylePlaid, // 41
|
---|
| 184 | HatchStyleDivot, // 42
|
---|
| 185 | HatchStyleDottedGrid, // 43
|
---|
| 186 | HatchStyleDottedDiamond, // 44
|
---|
| 187 | HatchStyleShingle, // 45
|
---|
| 188 | HatchStyleTrellis, // 46
|
---|
| 189 | HatchStyleSphere, // 47
|
---|
| 190 | HatchStyleSmallGrid, // 48
|
---|
| 191 | HatchStyleSmallCheckerBoard, // 49
|
---|
| 192 | HatchStyleLargeCheckerBoard, // 50
|
---|
| 193 | HatchStyleOutlinedDiamond, // 51
|
---|
| 194 | HatchStyleSolidDiamond, // 52
|
---|
| 195 |
|
---|
| 196 | HatchStyleTotal, // must be after all unique hatch styles
|
---|
| 197 |
|
---|
| 198 | HatchStyleLargeGrid = HatchStyleCross, // 4 an alias for the cross style
|
---|
| 199 |
|
---|
| 200 | HatchStyleMin = HatchStyleHorizontal,
|
---|
| 201 | HatchStyleMax = HatchStyleTotal - 1,
|
---|
| 202 | };
|
---|
| 203 |
|
---|
| 204 | //--------------------------------------------------------------------------
|
---|
| 205 | // Dash style constants
|
---|
| 206 | //--------------------------------------------------------------------------
|
---|
| 207 |
|
---|
| 208 | enum DashStyle
|
---|
| 209 | {
|
---|
| 210 | DashStyleSolid, // 0
|
---|
| 211 | DashStyleDash, // 1
|
---|
| 212 | DashStyleDot, // 2
|
---|
| 213 | DashStyleDashDot, // 3
|
---|
| 214 | DashStyleDashDotDot, // 4
|
---|
| 215 | DashStyleCustom // 5
|
---|
| 216 | };
|
---|
| 217 |
|
---|
| 218 | //--------------------------------------------------------------------------
|
---|
| 219 | // Dash cap constants
|
---|
| 220 | //--------------------------------------------------------------------------
|
---|
| 221 |
|
---|
| 222 | enum DashCap
|
---|
| 223 | {
|
---|
| 224 | DashCapFlat = 0,
|
---|
| 225 | DashCapRound = 2,
|
---|
| 226 | DashCapTriangle = 3
|
---|
| 227 | };
|
---|
| 228 |
|
---|
| 229 | //--------------------------------------------------------------------------
|
---|
| 230 | // Line cap constants (only the lowest 8 bits are used).
|
---|
| 231 | //--------------------------------------------------------------------------
|
---|
| 232 |
|
---|
| 233 | enum LineCap
|
---|
| 234 | {
|
---|
| 235 | LineCapFlat = 0,
|
---|
| 236 | LineCapSquare = 1,
|
---|
| 237 | LineCapRound = 2,
|
---|
| 238 | LineCapTriangle = 3,
|
---|
| 239 |
|
---|
| 240 | LineCapNoAnchor = 0x10, // corresponds to flat cap
|
---|
| 241 | LineCapSquareAnchor = 0x11, // corresponds to square cap
|
---|
| 242 | LineCapRoundAnchor = 0x12, // corresponds to round cap
|
---|
| 243 | LineCapDiamondAnchor = 0x13, // corresponds to triangle cap
|
---|
| 244 | LineCapArrowAnchor = 0x14, // no correspondence
|
---|
| 245 |
|
---|
| 246 | LineCapCustom = 0xff, // custom cap
|
---|
| 247 |
|
---|
| 248 | LineCapAnchorMask = 0xf0 // mask to check for anchor or not.
|
---|
| 249 | };
|
---|
| 250 |
|
---|
| 251 | //--------------------------------------------------------------------------
|
---|
| 252 | // Custom Line cap type constants
|
---|
| 253 | //--------------------------------------------------------------------------
|
---|
| 254 |
|
---|
| 255 | enum CustomLineCapType
|
---|
| 256 | {
|
---|
| 257 | CustomLineCapTypeDefault = 0,
|
---|
| 258 | CustomLineCapTypeAdjustableArrow = 1
|
---|
| 259 | };
|
---|
| 260 |
|
---|
| 261 | //--------------------------------------------------------------------------
|
---|
| 262 | // Line join constants
|
---|
| 263 | //--------------------------------------------------------------------------
|
---|
| 264 |
|
---|
| 265 | enum LineJoin
|
---|
| 266 | {
|
---|
| 267 | LineJoinMiter = 0,
|
---|
| 268 | LineJoinBevel = 1,
|
---|
| 269 | LineJoinRound = 2,
|
---|
| 270 | LineJoinMiterClipped = 3
|
---|
| 271 | };
|
---|
| 272 |
|
---|
| 273 | //--------------------------------------------------------------------------
|
---|
| 274 | // Path point types (only the lowest 8 bits are used.)
|
---|
| 275 | // The lowest 3 bits are interpreted as point type
|
---|
| 276 | // The higher 5 bits are reserved for flags.
|
---|
| 277 | //--------------------------------------------------------------------------
|
---|
| 278 |
|
---|
| 279 | enum PathPointType
|
---|
| 280 | {
|
---|
| 281 | PathPointTypeStart = 0, // move
|
---|
| 282 | PathPointTypeLine = 1, // line
|
---|
| 283 | PathPointTypeBezier = 3, // default Beizer (= cubic Bezier)
|
---|
| 284 | PathPointTypePathTypeMask = 0x07, // type mask (lowest 3 bits).
|
---|
| 285 | PathPointTypeDashMode = 0x10, // currently in dash mode.
|
---|
| 286 | PathPointTypePathMarker = 0x20, // a marker for the path.
|
---|
| 287 | PathPointTypeCloseSubpath = 0x80, // closed flag
|
---|
| 288 |
|
---|
| 289 | // Path types used for advanced path.
|
---|
| 290 |
|
---|
| 291 | PathPointTypeBezier2 = 2, // quadratic Beizer
|
---|
| 292 | PathPointTypeBezier3 = 3, // cubic Bezier
|
---|
| 293 | PathPointTypeBezier4 = 4, // quartic (4th order) Beizer
|
---|
| 294 | PathPointTypeBezier5 = 5, // quintic (5th order) Bezier
|
---|
| 295 | PathPointTypeBezier6 = 6 // hexaic (6th order) Bezier
|
---|
| 296 | };
|
---|
| 297 |
|
---|
| 298 |
|
---|
| 299 | //--------------------------------------------------------------------------
|
---|
| 300 | // WarpMode constants
|
---|
| 301 | //--------------------------------------------------------------------------
|
---|
| 302 |
|
---|
| 303 | enum WarpMode
|
---|
| 304 | {
|
---|
| 305 | WarpModePerspective, // 0
|
---|
| 306 | WarpModeBilinear // 1
|
---|
| 307 | };
|
---|
| 308 |
|
---|
| 309 | //--------------------------------------------------------------------------
|
---|
| 310 | // LineGradient Mode
|
---|
| 311 | //--------------------------------------------------------------------------
|
---|
| 312 |
|
---|
| 313 | enum LinearGradientMode
|
---|
| 314 | {
|
---|
| 315 | LinearGradientModeHorizontal, // 0
|
---|
| 316 | LinearGradientModeVertical, // 1
|
---|
| 317 | LinearGradientModeForwardDiagonal, // 2
|
---|
| 318 | LinearGradientModeBackwardDiagonal // 3
|
---|
| 319 | };
|
---|
| 320 |
|
---|
| 321 | //--------------------------------------------------------------------------
|
---|
| 322 | // Region Comine Modes
|
---|
| 323 | //--------------------------------------------------------------------------
|
---|
| 324 |
|
---|
| 325 | enum CombineMode
|
---|
| 326 | {
|
---|
| 327 | CombineModeReplace, // 0
|
---|
| 328 | CombineModeIntersect, // 1
|
---|
| 329 | CombineModeUnion, // 2
|
---|
| 330 | CombineModeXor, // 3
|
---|
| 331 | CombineModeExclude, // 4
|
---|
| 332 | CombineModeComplement // 5 (does exclude from)
|
---|
| 333 | };
|
---|
| 334 |
|
---|
| 335 | //--------------------------------------------------------------------------
|
---|
| 336 | // Image types
|
---|
| 337 | //--------------------------------------------------------------------------
|
---|
| 338 |
|
---|
| 339 | enum ImageType
|
---|
| 340 | {
|
---|
| 341 | ImageTypeUnknown, // 0
|
---|
| 342 | ImageTypeBitmap, // 1
|
---|
| 343 | ImageTypeMetafile // 2
|
---|
| 344 | };
|
---|
| 345 |
|
---|
| 346 | //--------------------------------------------------------------------------
|
---|
| 347 | // Interpolation modes
|
---|
| 348 | //--------------------------------------------------------------------------
|
---|
| 349 |
|
---|
| 350 | enum InterpolationMode
|
---|
| 351 | {
|
---|
| 352 | InterpolationModeInvalid = QualityModeInvalid,
|
---|
| 353 | InterpolationModeDefault = QualityModeDefault,
|
---|
| 354 | InterpolationModeLowQuality = QualityModeLow,
|
---|
| 355 | InterpolationModeHighQuality = QualityModeHigh,
|
---|
| 356 | InterpolationModeBilinear,
|
---|
| 357 | InterpolationModeBicubic,
|
---|
| 358 | InterpolationModeNearestNeighbor,
|
---|
| 359 | InterpolationModeHighQualityBilinear,
|
---|
| 360 | InterpolationModeHighQualityBicubic
|
---|
| 361 | };
|
---|
| 362 |
|
---|
| 363 | //--------------------------------------------------------------------------
|
---|
| 364 | // Pen types
|
---|
| 365 | //--------------------------------------------------------------------------
|
---|
| 366 | enum PenAlignment
|
---|
| 367 | {
|
---|
| 368 | PenAlignmentCenter = 0,
|
---|
| 369 | PenAlignmentInset = 1,
|
---|
| 370 | PenAlignmentOutset = 2,
|
---|
| 371 | PenAlignmentLeft = 3,
|
---|
| 372 | PenAlignmentRight = 4
|
---|
| 373 | };
|
---|
| 374 |
|
---|
| 375 | //--------------------------------------------------------------------------
|
---|
| 376 | // Brush types
|
---|
| 377 | //--------------------------------------------------------------------------
|
---|
| 378 |
|
---|
| 379 | enum BrushType
|
---|
| 380 | {
|
---|
| 381 | BrushTypeSolidColor = 0,
|
---|
| 382 | BrushTypeHatchFill = 1,
|
---|
| 383 | BrushTypeTextureFill = 2,
|
---|
| 384 | BrushTypePathGradient = 3,
|
---|
| 385 | BrushTypeLinearGradient = 4
|
---|
| 386 | };
|
---|
| 387 |
|
---|
| 388 | //--------------------------------------------------------------------------
|
---|
| 389 | // Pen's Fill types
|
---|
| 390 | //--------------------------------------------------------------------------
|
---|
| 391 |
|
---|
| 392 | enum PenType
|
---|
| 393 | {
|
---|
| 394 | PenTypeSolidColor = BrushTypeSolidColor,
|
---|
| 395 | PenTypeHatchFill = BrushTypeHatchFill,
|
---|
| 396 | PenTypeTextureFill = BrushTypeTextureFill,
|
---|
| 397 | PenTypePathGradient = BrushTypePathGradient,
|
---|
| 398 | PenTypeLinearGradient = BrushTypeLinearGradient,
|
---|
| 399 | PenTypeUnknown = -1
|
---|
| 400 | };
|
---|
| 401 |
|
---|
| 402 | //--------------------------------------------------------------------------
|
---|
| 403 | // Matrix Order
|
---|
| 404 | //--------------------------------------------------------------------------
|
---|
| 405 |
|
---|
| 406 | enum MatrixOrder
|
---|
| 407 | {
|
---|
| 408 | MatrixOrderPrepend = 0,
|
---|
| 409 | MatrixOrderAppend = 1
|
---|
| 410 | };
|
---|
| 411 |
|
---|
| 412 | //--------------------------------------------------------------------------
|
---|
| 413 | // Generic font families
|
---|
| 414 | //--------------------------------------------------------------------------
|
---|
| 415 |
|
---|
| 416 | enum GenericFontFamily
|
---|
| 417 | {
|
---|
| 418 | GenericFontFamilySerif,
|
---|
| 419 | GenericFontFamilySansSerif,
|
---|
| 420 | GenericFontFamilyMonospace
|
---|
| 421 |
|
---|
| 422 | };
|
---|
| 423 |
|
---|
| 424 | //--------------------------------------------------------------------------
|
---|
| 425 | // FontStyle: face types and common styles
|
---|
| 426 | //--------------------------------------------------------------------------
|
---|
| 427 |
|
---|
| 428 | // These should probably be flags
|
---|
| 429 |
|
---|
| 430 | // Must have:
|
---|
| 431 | // Regular = 0
|
---|
| 432 | // Bold = 1
|
---|
| 433 | // Italic = 2
|
---|
| 434 | // BoldItalic = 3
|
---|
| 435 |
|
---|
| 436 | enum FontStyle
|
---|
| 437 | {
|
---|
| 438 | FontStyleRegular = 0,
|
---|
| 439 | FontStyleBold = 1,
|
---|
| 440 | FontStyleItalic = 2,
|
---|
| 441 | FontStyleBoldItalic = 3,
|
---|
| 442 | FontStyleUnderline = 4,
|
---|
| 443 | FontStyleStrikeout = 8
|
---|
| 444 | };
|
---|
| 445 |
|
---|
| 446 | //---------------------------------------------------------------------------
|
---|
| 447 | // Smoothing Mode
|
---|
| 448 | //---------------------------------------------------------------------------
|
---|
| 449 |
|
---|
| 450 | enum SmoothingMode
|
---|
| 451 | {
|
---|
| 452 | SmoothingModeInvalid = QualityModeInvalid,
|
---|
| 453 | SmoothingModeDefault = QualityModeDefault,
|
---|
| 454 | SmoothingModeHighSpeed = QualityModeLow,
|
---|
| 455 | SmoothingModeHighQuality = QualityModeHigh,
|
---|
| 456 | SmoothingModeNone,
|
---|
| 457 | SmoothingModeAntiAlias
|
---|
| 458 | };
|
---|
| 459 |
|
---|
| 460 | //---------------------------------------------------------------------------
|
---|
| 461 | // Pixel Format Mode
|
---|
| 462 | //---------------------------------------------------------------------------
|
---|
| 463 |
|
---|
| 464 | enum PixelOffsetMode
|
---|
| 465 | {
|
---|
| 466 | PixelOffsetModeInvalid = QualityModeInvalid,
|
---|
| 467 | PixelOffsetModeDefault = QualityModeDefault,
|
---|
| 468 | PixelOffsetModeHighSpeed = QualityModeLow,
|
---|
| 469 | PixelOffsetModeHighQuality = QualityModeHigh,
|
---|
| 470 | PixelOffsetModeNone, // no pixel offset
|
---|
| 471 | PixelOffsetModeHalf // offset by -0.5, -0.5 for fast anti-alias perf
|
---|
| 472 | };
|
---|
| 473 |
|
---|
| 474 | //---------------------------------------------------------------------------
|
---|
| 475 | // Text Rendering Hint
|
---|
| 476 | //---------------------------------------------------------------------------
|
---|
| 477 |
|
---|
| 478 | enum TextRenderingHint
|
---|
| 479 | {
|
---|
| 480 | #ifdef DCR_USE_NEW_186764
|
---|
| 481 | TextRenderingHintSystemDefault = 0, // Glyph with system default rendering hint
|
---|
| 482 | TextRenderingHintSingleBitPerPixelGridFit, // Glyph bitmap with hinting
|
---|
| 483 | #else
|
---|
| 484 | TextRenderingHintSingleBitPerPixelGridFit = 0, // Glyph bitmap with hinting
|
---|
| 485 | #endif // DCR_USE_NEW_186764
|
---|
| 486 | TextRenderingHintSingleBitPerPixel, // Glyph bitmap without hinting
|
---|
| 487 | TextRenderingHintAntiAliasGridFit, // Glyph anti-alias bitmap with hinting
|
---|
| 488 | TextRenderingHintAntiAlias, // Glyph anti-alias bitmap without hinting
|
---|
| 489 | TextRenderingHintClearTypeGridFit // Glyph CT bitmap with hinting
|
---|
| 490 | };
|
---|
| 491 |
|
---|
| 492 | //---------------------------------------------------------------------------
|
---|
| 493 | // Metafile Types
|
---|
| 494 | //---------------------------------------------------------------------------
|
---|
| 495 | enum MetafileType
|
---|
| 496 | {
|
---|
| 497 | MetafileTypeInvalid, // Invalid metafile
|
---|
| 498 | MetafileTypeWmf, // Standard WMF
|
---|
| 499 | MetafileTypeWmfAldus, // Aldus Placeable Metafile format
|
---|
| 500 | MetafileTypeEmf, // EMF (not EMF+)
|
---|
| 501 | MetafileTypeEmfPlusOnly, // EMF+ without dual, down-level records
|
---|
| 502 | MetafileTypeEmfPlusDual // EMF+ with dual, down-level records
|
---|
| 503 | };
|
---|
| 504 |
|
---|
| 505 | // Specifies the type of EMF to record
|
---|
| 506 | enum EmfType
|
---|
| 507 | {
|
---|
| 508 | EmfTypeEmfOnly = MetafileTypeEmf, // no EMF+, only EMF
|
---|
| 509 | EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly, // no EMF, only EMF+
|
---|
| 510 | EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual // both EMF+ and EMF
|
---|
| 511 | };
|
---|
| 512 |
|
---|
| 513 | // All persistent objects must have a type listed here
|
---|
| 514 | enum ObjectType
|
---|
| 515 | {
|
---|
| 516 | ObjectTypeInvalid,
|
---|
| 517 | ObjectTypeBrush,
|
---|
| 518 | ObjectTypePen,
|
---|
| 519 | ObjectTypePath,
|
---|
| 520 | ObjectTypeRegion,
|
---|
| 521 | ObjectTypeImage,
|
---|
| 522 | ObjectTypeFont,
|
---|
| 523 | ObjectTypeStringFormat,
|
---|
| 524 | ObjectTypeImageAttributes,
|
---|
| 525 | ObjectTypeCustomLineCap,
|
---|
| 526 |
|
---|
| 527 | ObjectTypeMax = ObjectTypeCustomLineCap,
|
---|
| 528 | ObjectTypeMin = ObjectTypeBrush
|
---|
| 529 | };
|
---|
| 530 |
|
---|
| 531 | inline BOOL
|
---|
| 532 | ObjectTypeIsValid(
|
---|
[3074] | 533 | enum ObjectType type
|
---|
[3072] | 534 | )
|
---|
| 535 | {
|
---|
| 536 | return ((type >= ObjectTypeMin) && (type <= ObjectTypeMax));
|
---|
| 537 | }
|
---|
| 538 |
|
---|
| 539 | //---------------------------------------------------------------------------
|
---|
| 540 | // EMF+ Records
|
---|
| 541 | //---------------------------------------------------------------------------
|
---|
| 542 |
|
---|
| 543 | // We have to change the WMF record numbers so that they don't conflict with
|
---|
| 544 | // the EMF and EMF+ record numbers.
|
---|
| 545 | /*enum EmfPlusRecordType;*/
|
---|
| 546 | #define GDIP_EMFPLUS_RECORD_BASE 0x00004000
|
---|
| 547 | #define GDIP_WMF_RECORD_BASE 0x00010000
|
---|
| 548 | #define GDIP_WMF_RECORD_TO_EMFPLUS(n) (/*(EmfPlusRecordType)*/((n) | GDIP_WMF_RECORD_BASE))
|
---|
| 549 | #define GDIP_EMFPLUS_RECORD_TO_WMF(n) ((n) & (~GDIP_WMF_RECORD_BASE))
|
---|
| 550 | #define GDIP_IS_WMF_RECORDTYPE(n) (((n) & GDIP_WMF_RECORD_BASE) != 0)
|
---|
| 551 |
|
---|
| 552 | enum EmfPlusRecordType
|
---|
| 553 | {
|
---|
| 554 | // Since we have to enumerate GDI records right along with GDI+ records,
|
---|
| 555 | // we list all the GDI records here so that they can be part of the
|
---|
| 556 | // same enumeration type which is used in the enumeration callback.
|
---|
| 557 |
|
---|
| 558 | WmfRecordTypeSetBkColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR),
|
---|
| 559 | WmfRecordTypeSetBkMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE),
|
---|
| 560 | WmfRecordTypeSetMapMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPMODE),
|
---|
| 561 | WmfRecordTypeSetROP2 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETROP2),
|
---|
| 562 | WmfRecordTypeSetRelAbs = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETRELABS),
|
---|
| 563 | WmfRecordTypeSetPolyFillMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPOLYFILLMODE),
|
---|
| 564 | WmfRecordTypeSetStretchBltMode = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE),
|
---|
| 565 | WmfRecordTypeSetTextCharExtra = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA),
|
---|
| 566 | WmfRecordTypeSetTextColor = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR),
|
---|
| 567 | WmfRecordTypeSetTextJustification = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION),
|
---|
| 568 | WmfRecordTypeSetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG),
|
---|
| 569 | WmfRecordTypeSetWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT),
|
---|
| 570 | WmfRecordTypeSetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG),
|
---|
| 571 | WmfRecordTypeSetViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTEXT),
|
---|
| 572 | WmfRecordTypeOffsetWindowOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETWINDOWORG),
|
---|
| 573 | WmfRecordTypeScaleWindowExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEWINDOWEXT),
|
---|
| 574 | WmfRecordTypeOffsetViewportOrg = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETVIEWPORTORG),
|
---|
| 575 | WmfRecordTypeScaleViewportExt = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEVIEWPORTEXT),
|
---|
| 576 | WmfRecordTypeLineTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_LINETO),
|
---|
| 577 | WmfRecordTypeMoveTo = GDIP_WMF_RECORD_TO_EMFPLUS(META_MOVETO),
|
---|
| 578 | WmfRecordTypeExcludeClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXCLUDECLIPRECT),
|
---|
| 579 | WmfRecordTypeIntersectClipRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_INTERSECTCLIPRECT),
|
---|
| 580 | WmfRecordTypeArc = GDIP_WMF_RECORD_TO_EMFPLUS(META_ARC),
|
---|
| 581 | WmfRecordTypeEllipse = GDIP_WMF_RECORD_TO_EMFPLUS(META_ELLIPSE),
|
---|
| 582 | WmfRecordTypeFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_FLOODFILL),
|
---|
| 583 | WmfRecordTypePie = GDIP_WMF_RECORD_TO_EMFPLUS(META_PIE),
|
---|
| 584 | WmfRecordTypeRectangle = GDIP_WMF_RECORD_TO_EMFPLUS(META_RECTANGLE),
|
---|
| 585 | WmfRecordTypeRoundRect = GDIP_WMF_RECORD_TO_EMFPLUS(META_ROUNDRECT),
|
---|
| 586 | WmfRecordTypePatBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_PATBLT),
|
---|
| 587 | WmfRecordTypeSaveDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_SAVEDC),
|
---|
| 588 | WmfRecordTypeSetPixel = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPIXEL),
|
---|
| 589 | WmfRecordTypeOffsetClipRgn = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETCLIPRGN),
|
---|
| 590 | WmfRecordTypeTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_TEXTOUT),
|
---|
| 591 | WmfRecordTypeBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_BITBLT),
|
---|
| 592 | WmfRecordTypeStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHBLT),
|
---|
| 593 | WmfRecordTypePolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYGON),
|
---|
| 594 | WmfRecordTypePolyline = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYLINE),
|
---|
| 595 | WmfRecordTypeEscape = GDIP_WMF_RECORD_TO_EMFPLUS(META_ESCAPE),
|
---|
| 596 | WmfRecordTypeRestoreDC = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESTOREDC),
|
---|
| 597 | WmfRecordTypeFillRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FILLREGION),
|
---|
| 598 | WmfRecordTypeFrameRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_FRAMEREGION),
|
---|
| 599 | WmfRecordTypeInvertRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_INVERTREGION),
|
---|
| 600 | WmfRecordTypePaintRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_PAINTREGION),
|
---|
| 601 | WmfRecordTypeSelectClipRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTCLIPREGION),
|
---|
| 602 | WmfRecordTypeSelectObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTOBJECT),
|
---|
| 603 | WmfRecordTypeSetTextAlign = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTALIGN),
|
---|
| 604 | WmfRecordTypeDrawText = GDIP_WMF_RECORD_TO_EMFPLUS(0x062F), // META_DRAWTEXT
|
---|
| 605 | WmfRecordTypeChord = GDIP_WMF_RECORD_TO_EMFPLUS(META_CHORD),
|
---|
| 606 | WmfRecordTypeSetMapperFlags = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPPERFLAGS),
|
---|
| 607 | WmfRecordTypeExtTextOut = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTTEXTOUT),
|
---|
| 608 | WmfRecordTypeSetDIBToDev = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETDIBTODEV),
|
---|
| 609 | WmfRecordTypeSelectPalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTPALETTE),
|
---|
| 610 | WmfRecordTypeRealizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_REALIZEPALETTE),
|
---|
| 611 | WmfRecordTypeAnimatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_ANIMATEPALETTE),
|
---|
| 612 | WmfRecordTypeSetPalEntries = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPALENTRIES),
|
---|
| 613 | WmfRecordTypePolyPolygon = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYPOLYGON),
|
---|
| 614 | WmfRecordTypeResizePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE),
|
---|
| 615 | WmfRecordTypeDIBBitBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT),
|
---|
| 616 | WmfRecordTypeDIBStretchBlt = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT),
|
---|
| 617 | WmfRecordTypeDIBCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH),
|
---|
| 618 | WmfRecordTypeStretchDIB = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB),
|
---|
| 619 | WmfRecordTypeExtFloodFill = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL),
|
---|
| 620 | WmfRecordTypeSetLayout = GDIP_WMF_RECORD_TO_EMFPLUS(0x0149), // META_SETLAYOUT
|
---|
| 621 | WmfRecordTypeResetDC = GDIP_WMF_RECORD_TO_EMFPLUS(0x014C), // META_RESETDC
|
---|
| 622 | WmfRecordTypeStartDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x014D), // META_STARTDOC
|
---|
| 623 | WmfRecordTypeStartPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x004F), // META_STARTPAGE
|
---|
| 624 | WmfRecordTypeEndPage = GDIP_WMF_RECORD_TO_EMFPLUS(0x0050), // META_ENDPAGE
|
---|
| 625 | WmfRecordTypeAbortDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x0052), // META_ABORTDOC
|
---|
| 626 | WmfRecordTypeEndDoc = GDIP_WMF_RECORD_TO_EMFPLUS(0x005E), // META_ENDDOC
|
---|
| 627 | WmfRecordTypeDeleteObject = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT),
|
---|
| 628 | WmfRecordTypeCreatePalette = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE),
|
---|
| 629 | WmfRecordTypeCreateBrush = GDIP_WMF_RECORD_TO_EMFPLUS(0x00F8), // META_CREATEBRUSH
|
---|
| 630 | WmfRecordTypeCreatePatternBrush = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH),
|
---|
| 631 | WmfRecordTypeCreatePenIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT),
|
---|
| 632 | WmfRecordTypeCreateFontIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT),
|
---|
| 633 | WmfRecordTypeCreateBrushIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT),
|
---|
| 634 | WmfRecordTypeCreateBitmapIndirect = GDIP_WMF_RECORD_TO_EMFPLUS(0x02FD), // META_CREATEBITMAPINDIRECT
|
---|
| 635 | WmfRecordTypeCreateBitmap = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE), // META_CREATEBITMAP
|
---|
| 636 | WmfRecordTypeCreateRegion = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION),
|
---|
| 637 |
|
---|
| 638 | EmfRecordTypeHeader = EMR_HEADER,
|
---|
| 639 | EmfRecordTypePolyBezier = EMR_POLYBEZIER,
|
---|
| 640 | EmfRecordTypePolygon = EMR_POLYGON,
|
---|
| 641 | EmfRecordTypePolyline = EMR_POLYLINE,
|
---|
| 642 | EmfRecordTypePolyBezierTo = EMR_POLYBEZIERTO,
|
---|
| 643 | EmfRecordTypePolyLineTo = EMR_POLYLINETO,
|
---|
| 644 | EmfRecordTypePolyPolyline = EMR_POLYPOLYLINE,
|
---|
| 645 | EmfRecordTypePolyPolygon = EMR_POLYPOLYGON,
|
---|
| 646 | EmfRecordTypeSetWindowExtEx = EMR_SETWINDOWEXTEX,
|
---|
| 647 | EmfRecordTypeSetWindowOrgEx = EMR_SETWINDOWORGEX,
|
---|
| 648 | EmfRecordTypeSetViewportExtEx = EMR_SETVIEWPORTEXTEX,
|
---|
| 649 | EmfRecordTypeSetViewportOrgEx = EMR_SETVIEWPORTORGEX,
|
---|
| 650 | EmfRecordTypeSetBrushOrgEx = EMR_SETBRUSHORGEX,
|
---|
| 651 | EmfRecordTypeEOF = EMR_EOF,
|
---|
| 652 | EmfRecordTypeSetPixelV = EMR_SETPIXELV,
|
---|
| 653 | EmfRecordTypeSetMapperFlags = EMR_SETMAPPERFLAGS,
|
---|
| 654 | EmfRecordTypeSetMapMode = EMR_SETMAPMODE,
|
---|
| 655 | EmfRecordTypeSetBkMode = EMR_SETBKMODE,
|
---|
| 656 | EmfRecordTypeSetPolyFillMode = EMR_SETPOLYFILLMODE,
|
---|
| 657 | EmfRecordTypeSetROP2 = EMR_SETROP2,
|
---|
| 658 | EmfRecordTypeSetStretchBltMode = EMR_SETSTRETCHBLTMODE,
|
---|
| 659 | EmfRecordTypeSetTextAlign = EMR_SETTEXTALIGN,
|
---|
| 660 | EmfRecordTypeSetColorAdjustment = EMR_SETCOLORADJUSTMENT,
|
---|
| 661 | EmfRecordTypeSetTextColor = EMR_SETTEXTCOLOR,
|
---|
| 662 | EmfRecordTypeSetBkColor = EMR_SETBKCOLOR,
|
---|
| 663 | EmfRecordTypeOffsetClipRgn = EMR_OFFSETCLIPRGN,
|
---|
| 664 | EmfRecordTypeMoveToEx = EMR_MOVETOEX,
|
---|
| 665 | EmfRecordTypeSetMetaRgn = EMR_SETMETARGN,
|
---|
| 666 | EmfRecordTypeExcludeClipRect = EMR_EXCLUDECLIPRECT,
|
---|
| 667 | EmfRecordTypeIntersectClipRect = EMR_INTERSECTCLIPRECT,
|
---|
| 668 | EmfRecordTypeScaleViewportExtEx = EMR_SCALEVIEWPORTEXTEX,
|
---|
| 669 | EmfRecordTypeScaleWindowExtEx = EMR_SCALEWINDOWEXTEX,
|
---|
| 670 | EmfRecordTypeSaveDC = EMR_SAVEDC,
|
---|
| 671 | EmfRecordTypeRestoreDC = EMR_RESTOREDC,
|
---|
| 672 | EmfRecordTypeSetWorldTransform = EMR_SETWORLDTRANSFORM,
|
---|
| 673 | EmfRecordTypeModifyWorldTransform = EMR_MODIFYWORLDTRANSFORM,
|
---|
| 674 | EmfRecordTypeSelectObject = EMR_SELECTOBJECT,
|
---|
| 675 | EmfRecordTypeCreatePen = EMR_CREATEPEN,
|
---|
| 676 | EmfRecordTypeCreateBrushIndirect = EMR_CREATEBRUSHINDIRECT,
|
---|
| 677 | EmfRecordTypeDeleteObject = EMR_DELETEOBJECT,
|
---|
| 678 | EmfRecordTypeAngleArc = EMR_ANGLEARC,
|
---|
| 679 | EmfRecordTypeEllipse = EMR_ELLIPSE,
|
---|
| 680 | EmfRecordTypeRectangle = EMR_RECTANGLE,
|
---|
| 681 | EmfRecordTypeRoundRect = EMR_ROUNDRECT,
|
---|
| 682 | EmfRecordTypeArc = EMR_ARC,
|
---|
| 683 | EmfRecordTypeChord = EMR_CHORD,
|
---|
| 684 | EmfRecordTypePie = EMR_PIE,
|
---|
| 685 | EmfRecordTypeSelectPalette = EMR_SELECTPALETTE,
|
---|
| 686 | EmfRecordTypeCreatePalette = EMR_CREATEPALETTE,
|
---|
| 687 | EmfRecordTypeSetPaletteEntries = EMR_SETPALETTEENTRIES,
|
---|
| 688 | EmfRecordTypeResizePalette = EMR_RESIZEPALETTE,
|
---|
| 689 | EmfRecordTypeRealizePalette = EMR_REALIZEPALETTE,
|
---|
| 690 | EmfRecordTypeExtFloodFill = EMR_EXTFLOODFILL,
|
---|
| 691 | EmfRecordTypeLineTo = EMR_LINETO,
|
---|
| 692 | EmfRecordTypeArcTo = EMR_ARCTO,
|
---|
| 693 | EmfRecordTypePolyDraw = EMR_POLYDRAW,
|
---|
| 694 | EmfRecordTypeSetArcDirection = EMR_SETARCDIRECTION,
|
---|
| 695 | EmfRecordTypeSetMiterLimit = EMR_SETMITERLIMIT,
|
---|
| 696 | EmfRecordTypeBeginPath = EMR_BEGINPATH,
|
---|
| 697 | EmfRecordTypeEndPath = EMR_ENDPATH,
|
---|
| 698 | EmfRecordTypeCloseFigure = EMR_CLOSEFIGURE,
|
---|
| 699 | EmfRecordTypeFillPath = EMR_FILLPATH,
|
---|
| 700 | EmfRecordTypeStrokeAndFillPath = EMR_STROKEANDFILLPATH,
|
---|
| 701 | EmfRecordTypeStrokePath = EMR_STROKEPATH,
|
---|
| 702 | EmfRecordTypeFlattenPath = EMR_FLATTENPATH,
|
---|
| 703 | EmfRecordTypeWidenPath = EMR_WIDENPATH,
|
---|
| 704 | EmfRecordTypeSelectClipPath = EMR_SELECTCLIPPATH,
|
---|
| 705 | EmfRecordTypeAbortPath = EMR_ABORTPATH,
|
---|
| 706 | EmfRecordTypeReserved_069 = 69, // Not Used
|
---|
| 707 | EmfRecordTypeGdiComment = EMR_GDICOMMENT,
|
---|
| 708 | EmfRecordTypeFillRgn = EMR_FILLRGN,
|
---|
| 709 | EmfRecordTypeFrameRgn = EMR_FRAMERGN,
|
---|
| 710 | EmfRecordTypeInvertRgn = EMR_INVERTRGN,
|
---|
| 711 | EmfRecordTypePaintRgn = EMR_PAINTRGN,
|
---|
| 712 | EmfRecordTypeExtSelectClipRgn = EMR_EXTSELECTCLIPRGN,
|
---|
| 713 | EmfRecordTypeBitBlt = EMR_BITBLT,
|
---|
| 714 | EmfRecordTypeStretchBlt = EMR_STRETCHBLT,
|
---|
| 715 | EmfRecordTypeMaskBlt = EMR_MASKBLT,
|
---|
| 716 | EmfRecordTypePlgBlt = EMR_PLGBLT,
|
---|
| 717 | EmfRecordTypeSetDIBitsToDevice = EMR_SETDIBITSTODEVICE,
|
---|
| 718 | EmfRecordTypeStretchDIBits = EMR_STRETCHDIBITS,
|
---|
| 719 | EmfRecordTypeExtCreateFontIndirect = EMR_EXTCREATEFONTINDIRECTW,
|
---|
| 720 | EmfRecordTypeExtTextOutA = EMR_EXTTEXTOUTA,
|
---|
| 721 | EmfRecordTypeExtTextOutW = EMR_EXTTEXTOUTW,
|
---|
| 722 | EmfRecordTypePolyBezier16 = EMR_POLYBEZIER16,
|
---|
| 723 | EmfRecordTypePolygon16 = EMR_POLYGON16,
|
---|
| 724 | EmfRecordTypePolyline16 = EMR_POLYLINE16,
|
---|
| 725 | EmfRecordTypePolyBezierTo16 = EMR_POLYBEZIERTO16,
|
---|
| 726 | EmfRecordTypePolylineTo16 = EMR_POLYLINETO16,
|
---|
| 727 | EmfRecordTypePolyPolyline16 = EMR_POLYPOLYLINE16,
|
---|
| 728 | EmfRecordTypePolyPolygon16 = EMR_POLYPOLYGON16,
|
---|
| 729 | EmfRecordTypePolyDraw16 = EMR_POLYDRAW16,
|
---|
| 730 | EmfRecordTypeCreateMonoBrush = EMR_CREATEMONOBRUSH,
|
---|
| 731 | EmfRecordTypeCreateDIBPatternBrushPt = EMR_CREATEDIBPATTERNBRUSHPT,
|
---|
| 732 | EmfRecordTypeExtCreatePen = EMR_EXTCREATEPEN,
|
---|
| 733 | EmfRecordTypePolyTextOutA = EMR_POLYTEXTOUTA,
|
---|
| 734 | EmfRecordTypePolyTextOutW = EMR_POLYTEXTOUTW,
|
---|
| 735 | EmfRecordTypeSetICMMode = 98, // EMR_SETICMMODE,
|
---|
| 736 | EmfRecordTypeCreateColorSpace = 99, // EMR_CREATECOLORSPACE,
|
---|
| 737 | EmfRecordTypeSetColorSpace = 100, // EMR_SETCOLORSPACE,
|
---|
| 738 | EmfRecordTypeDeleteColorSpace = 101, // EMR_DELETECOLORSPACE,
|
---|
| 739 | EmfRecordTypeGLSRecord = 102, // EMR_GLSRECORD,
|
---|
| 740 | EmfRecordTypeGLSBoundedRecord = 103, // EMR_GLSBOUNDEDRECORD,
|
---|
| 741 | EmfRecordTypePixelFormat = 104, // EMR_PIXELFORMAT,
|
---|
| 742 | EmfRecordTypeDrawEscape = 105, // EMR_RESERVED_105,
|
---|
| 743 | EmfRecordTypeExtEscape = 106, // EMR_RESERVED_106,
|
---|
| 744 | EmfRecordTypeStartDoc = 107, // EMR_RESERVED_107,
|
---|
| 745 | EmfRecordTypeSmallTextOut = 108, // EMR_RESERVED_108,
|
---|
| 746 | EmfRecordTypeForceUFIMapping = 109, // EMR_RESERVED_109,
|
---|
| 747 | EmfRecordTypeNamedEscape = 110, // EMR_RESERVED_110,
|
---|
| 748 | EmfRecordTypeColorCorrectPalette = 111, // EMR_COLORCORRECTPALETTE,
|
---|
| 749 | EmfRecordTypeSetICMProfileA = 112, // EMR_SETICMPROFILEA,
|
---|
| 750 | EmfRecordTypeSetICMProfileW = 113, // EMR_SETICMPROFILEW,
|
---|
| 751 | EmfRecordTypeAlphaBlend = 114, // EMR_ALPHABLEND,
|
---|
| 752 | EmfRecordTypeSetLayout = 115, // EMR_SETLAYOUT,
|
---|
| 753 | EmfRecordTypeTransparentBlt = 116, // EMR_TRANSPARENTBLT,
|
---|
| 754 | EmfRecordTypeReserved_117 = 117, // Not Used
|
---|
| 755 | EmfRecordTypeGradientFill = 118, // EMR_GRADIENTFILL,
|
---|
| 756 | EmfRecordTypeSetLinkedUFIs = 119, // EMR_RESERVED_119,
|
---|
| 757 | EmfRecordTypeSetTextJustification = 120, // EMR_RESERVED_120,
|
---|
| 758 | EmfRecordTypeColorMatchToTargetW = 121, // EMR_COLORMATCHTOTARGETW,
|
---|
| 759 | EmfRecordTypeCreateColorSpaceW = 122, // EMR_CREATECOLORSPACEW,
|
---|
| 760 | EmfRecordTypeMax = 122,
|
---|
| 761 | EmfRecordTypeMin = 1,
|
---|
| 762 |
|
---|
| 763 | // That is the END of the GDI EMF records.
|
---|
| 764 |
|
---|
| 765 | // Now we start the list of EMF+ records. We leave quite
|
---|
| 766 | // a bit of room here for the addition of any new GDI
|
---|
| 767 | // records that may be added later.
|
---|
| 768 |
|
---|
| 769 | EmfPlusRecordTypeInvalid = GDIP_EMFPLUS_RECORD_BASE,
|
---|
| 770 | EmfPlusRecordTypeHeader,
|
---|
| 771 | EmfPlusRecordTypeEndOfFile,
|
---|
| 772 |
|
---|
| 773 | EmfPlusRecordTypeComment,
|
---|
| 774 |
|
---|
| 775 | EmfPlusRecordTypeGetDC, // the application grabbed the metafile dc
|
---|
| 776 |
|
---|
| 777 | EmfPlusRecordTypeMultiFormatStart,
|
---|
| 778 | EmfPlusRecordTypeMultiFormatSection,
|
---|
| 779 | EmfPlusRecordTypeMultiFormatEnd,
|
---|
| 780 |
|
---|
| 781 | // For all persistent objects
|
---|
| 782 | EmfPlusRecordTypeObject, // brush,pen,path,region,image,font,string-format
|
---|
| 783 |
|
---|
| 784 | // Drawing Records
|
---|
| 785 | EmfPlusRecordTypeClear,
|
---|
| 786 | EmfPlusRecordTypeFillRects,
|
---|
| 787 | EmfPlusRecordTypeDrawRects,
|
---|
| 788 | EmfPlusRecordTypeFillPolygon,
|
---|
| 789 | EmfPlusRecordTypeDrawLines,
|
---|
| 790 | EmfPlusRecordTypeFillEllipse,
|
---|
| 791 | EmfPlusRecordTypeDrawEllipse,
|
---|
| 792 | EmfPlusRecordTypeFillPie,
|
---|
| 793 | EmfPlusRecordTypeDrawPie,
|
---|
| 794 | EmfPlusRecordTypeDrawArc,
|
---|
| 795 | EmfPlusRecordTypeFillRegion,
|
---|
| 796 | EmfPlusRecordTypeFillPath,
|
---|
| 797 | EmfPlusRecordTypeDrawPath,
|
---|
| 798 | EmfPlusRecordTypeFillClosedCurve,
|
---|
| 799 | EmfPlusRecordTypeDrawClosedCurve,
|
---|
| 800 | EmfPlusRecordTypeDrawCurve,
|
---|
| 801 | EmfPlusRecordTypeDrawBeziers,
|
---|
| 802 | EmfPlusRecordTypeDrawImage,
|
---|
| 803 | EmfPlusRecordTypeDrawImagePoints,
|
---|
| 804 | EmfPlusRecordTypeDrawString,
|
---|
| 805 |
|
---|
| 806 | // Graphics State Records
|
---|
| 807 | EmfPlusRecordTypeSetRenderingOrigin,
|
---|
| 808 | EmfPlusRecordTypeSetAntiAliasMode,
|
---|
| 809 | EmfPlusRecordTypeSetTextRenderingHint,
|
---|
| 810 | #ifdef DCR_USE_NEW_188922
|
---|
| 811 | EmfPlusRecordTypeSetTextContrast,
|
---|
| 812 | #else
|
---|
| 813 | EmfPlusRecordTypeSetGammaValue,
|
---|
| 814 | #endif // DCR_USE_NEW_188922
|
---|
| 815 | EmfPlusRecordTypeSetInterpolationMode,
|
---|
| 816 | EmfPlusRecordTypeSetPixelOffsetMode,
|
---|
| 817 | EmfPlusRecordTypeSetCompositingMode,
|
---|
| 818 | EmfPlusRecordTypeSetCompositingQuality,
|
---|
| 819 | EmfPlusRecordTypeSave,
|
---|
| 820 | EmfPlusRecordTypeRestore,
|
---|
| 821 | EmfPlusRecordTypeBeginContainer,
|
---|
| 822 | EmfPlusRecordTypeBeginContainerNoParams,
|
---|
| 823 | EmfPlusRecordTypeEndContainer,
|
---|
| 824 | EmfPlusRecordTypeSetWorldTransform,
|
---|
| 825 | EmfPlusRecordTypeResetWorldTransform,
|
---|
| 826 | EmfPlusRecordTypeMultiplyWorldTransform,
|
---|
| 827 | EmfPlusRecordTypeTranslateWorldTransform,
|
---|
| 828 | EmfPlusRecordTypeScaleWorldTransform,
|
---|
| 829 | EmfPlusRecordTypeRotateWorldTransform,
|
---|
| 830 | EmfPlusRecordTypeSetPageTransform,
|
---|
| 831 | EmfPlusRecordTypeResetClip,
|
---|
| 832 | EmfPlusRecordTypeSetClipRect,
|
---|
| 833 | EmfPlusRecordTypeSetClipPath,
|
---|
| 834 | EmfPlusRecordTypeSetClipRegion,
|
---|
| 835 | EmfPlusRecordTypeOffsetClip,
|
---|
| 836 |
|
---|
| 837 | // New record types must be added here (at the end) -- do not add above,
|
---|
| 838 | // since that will invalidate previous metafiles!
|
---|
| 839 | EmfPlusRecordTypeDrawDriverString,
|
---|
| 840 |
|
---|
| 841 | // Have this here so you don't need to keep changing the value of
|
---|
| 842 | // EmfPlusRecordTypeMax every time you add a new record.
|
---|
| 843 |
|
---|
| 844 | EmfPlusRecordTotal,
|
---|
| 845 |
|
---|
| 846 | EmfPlusRecordTypeMax = EmfPlusRecordTotal-1,
|
---|
| 847 | EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader,
|
---|
| 848 | };
|
---|
| 849 |
|
---|
| 850 | //---------------------------------------------------------------------------
|
---|
| 851 | // StringFormatFlags
|
---|
| 852 | //---------------------------------------------------------------------------
|
---|
| 853 |
|
---|
| 854 | //---------------------------------------------------------------------------
|
---|
| 855 | // String format flags
|
---|
| 856 | //
|
---|
| 857 | // DirectionRightToLeft - For horizontal text, the reading order is
|
---|
| 858 | // right to left. This value is called
|
---|
| 859 | // the base embedding level by the Unicode
|
---|
| 860 | // bidirectional engine.
|
---|
| 861 | // For vertical text, columns are read from
|
---|
| 862 | // right to left.
|
---|
| 863 | // By default, horizontal or vertical text is
|
---|
| 864 | // read from left to right.
|
---|
| 865 | //
|
---|
| 866 | // DirectionVertical - Individual lines of text are vertical. In
|
---|
| 867 | // each line, characters progress from top to
|
---|
| 868 | // bottom.
|
---|
| 869 | // By default, lines of text are horizontal,
|
---|
| 870 | // each new line below the previous line.
|
---|
| 871 | //
|
---|
| 872 | // NoFitBlackBox - Allows parts of glyphs to overhang the
|
---|
| 873 | // bounding rectangle.
|
---|
| 874 | // By default glyphs are first aligned
|
---|
| 875 | // inside the margines, then any glyphs which
|
---|
| 876 | // still overhang the bounding box are
|
---|
| 877 | // repositioned to avoid any overhang.
|
---|
| 878 | // For example when an italic
|
---|
| 879 | // lower case letter f in a font such as
|
---|
| 880 | // Garamond is aligned at the far left of a
|
---|
| 881 | // rectangle, the lower part of the f will
|
---|
| 882 | // reach slightly further left than the left
|
---|
| 883 | // edge of the rectangle. Setting this flag
|
---|
| 884 | // will ensure the character aligns visually
|
---|
| 885 | // with the lines above and below, but may
|
---|
| 886 | // cause some pixels outside the formatting
|
---|
| 887 | // rectangle to be clipped or painted.
|
---|
| 888 | //
|
---|
| 889 | #ifndef DCR_USE_NEW_137252
|
---|
| 890 | // NumberContextArabic - Causes any initial numeric in the string to
|
---|
| 891 | // be analysed for bidirection layout as if
|
---|
| 892 | // it was preceeded by Arabic text.
|
---|
| 893 | //
|
---|
| 894 | // DisableKashidaJustification - Arabic text will not be justified by the
|
---|
| 895 | // insertion of kashidas (i.e. extending the
|
---|
| 896 | // joining line between characters). Instead
|
---|
| 897 | // Arabic script will be justified by the
|
---|
| 898 | // widening of the whitespace between words.
|
---|
| 899 | //
|
---|
| 900 | #endif
|
---|
| 901 | // DisplayFormatControl - Causes control characters such as the
|
---|
| 902 | // left-to-right mark to be shown in the
|
---|
| 903 | // output with a representative glyph.
|
---|
| 904 | //
|
---|
| 905 | #ifndef DCR_USE_NEW_137252
|
---|
| 906 | // DisableKerning - Disables Truetype and OpenType kerning.
|
---|
| 907 | //
|
---|
| 908 | // DisableLigatures - Disables Truetype and OpenType ligatures.
|
---|
| 909 | //
|
---|
| 910 | // LayoutLegacyBidi - Causes the bidirection algorithm to use
|
---|
| 911 | // slightly different classifications for
|
---|
| 912 | // '+', '-' and '/' that make their layout
|
---|
| 913 | // much closer to that expected by files
|
---|
| 914 | // generated in Windows or by Windows
|
---|
| 915 | // applications.
|
---|
| 916 | //
|
---|
| 917 | // NoChanges - A text imager created with this flag set
|
---|
| 918 | // does not support those APIs that change
|
---|
| 919 | // it's contents or formatting, but for most
|
---|
| 920 | // simple text will be significantly faster in
|
---|
| 921 | // performing measurement and drawing
|
---|
| 922 | // functions.
|
---|
| 923 | //
|
---|
| 924 | #endif
|
---|
| 925 | // NoFontFallback - Disables fallback to alternate fonts for
|
---|
| 926 | // characters not supported in the requested
|
---|
| 927 | // font. Any missing characters will be
|
---|
| 928 | // be displayed with the fonts missing glyph,
|
---|
| 929 | // usually an open square.
|
---|
| 930 | //
|
---|
| 931 | // NoWrap - Disables wrapping of text between lines
|
---|
| 932 | // when formatting within a rectangle.
|
---|
| 933 | // NoWrap is implied when a point is passed
|
---|
| 934 | // instead of a rectangle, or when the
|
---|
| 935 | // specified rectangle has a zero line length.
|
---|
| 936 | //
|
---|
| 937 | // NoClip - By default text is clipped to the
|
---|
| 938 | // formatting rectangle. Setting NoClip
|
---|
| 939 | // allows overhanging pixels to affect the
|
---|
| 940 | // device outside the formatting rectangle.
|
---|
| 941 | // Pixels at the end of the line may be
|
---|
| 942 | // affected if the glyphs overhang their
|
---|
| 943 | // cells, and either the NoFitBlackBox flag
|
---|
| 944 | // has been set, or the glyph extends to far
|
---|
| 945 | // to be fitted.
|
---|
| 946 | // Pixels above/before the first line or
|
---|
| 947 | // below/after the last line may be affected
|
---|
| 948 | // if the glyphs extend beyond their cell
|
---|
| 949 | // ascent / descent. This can occur rarely
|
---|
| 950 | // with unusual diacritic mark combinations.
|
---|
| 951 |
|
---|
| 952 | //---------------------------------------------------------------------------
|
---|
| 953 |
|
---|
| 954 | enum StringFormatFlags
|
---|
| 955 | {
|
---|
| 956 | StringFormatFlagsDirectionRightToLeft = 0x00000001,
|
---|
| 957 | StringFormatFlagsDirectionVertical = 0x00000002,
|
---|
| 958 | StringFormatFlagsNoFitBlackBox = 0x00000004,
|
---|
| 959 | #ifndef DCR_USE_NEW_137252
|
---|
| 960 | StringFormatFlagsNumberContextArabic = 0x00000008,
|
---|
| 961 | StringFormatFlagsDisableKashidaJustification = 0x00000010,
|
---|
| 962 | #endif
|
---|
| 963 | StringFormatFlagsDisplayFormatControl = 0x00000020,
|
---|
| 964 | #ifndef DCR_USE_NEW_137252
|
---|
| 965 | StringFormatFlagsDisableKerning = 0x00000040,
|
---|
| 966 | StringFormatFlagsDisableLigatures = 0x00000080,
|
---|
| 967 | StringFormatFlagsLayoutLegacyBidi = 0x00000100,
|
---|
| 968 | StringFormatFlagsNoChanges = 0x00000200,
|
---|
| 969 | #endif
|
---|
| 970 | StringFormatFlagsNoFontFallback = 0x00000400,
|
---|
| 971 | StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
|
---|
| 972 | StringFormatFlagsNoWrap = 0x00001000,
|
---|
| 973 | StringFormatFlagsLineLimit = 0x00002000,
|
---|
| 974 |
|
---|
| 975 | StringFormatFlagsNoClip = 0x00004000
|
---|
| 976 | };
|
---|
| 977 |
|
---|
| 978 | //---------------------------------------------------------------------------
|
---|
| 979 | // StringTrimming
|
---|
| 980 | //---------------------------------------------------------------------------
|
---|
| 981 |
|
---|
| 982 | enum StringTrimming {
|
---|
| 983 | StringTrimmingNone = 0,
|
---|
| 984 | StringTrimmingCharacter = 1,
|
---|
| 985 | StringTrimmingWord = 2,
|
---|
| 986 | StringTrimmingEllipsisCharacter = 3,
|
---|
| 987 | StringTrimmingEllipsisWord = 4,
|
---|
| 988 | StringTrimmingEllipsisPath = 5
|
---|
| 989 | };
|
---|
| 990 |
|
---|
| 991 | #ifndef DCR_USE_NEW_137252
|
---|
| 992 | //---------------------------------------------------------------------------
|
---|
| 993 | // String units
|
---|
| 994 | //
|
---|
| 995 | // String units are like length units in CSS, they may be absolute, or
|
---|
| 996 | // they may be relative to a font size.
|
---|
| 997 | //
|
---|
| 998 | //---------------------------------------------------------------------------
|
---|
| 999 |
|
---|
| 1000 | enum StringUnit {
|
---|
| 1001 | StringUnitWorld = UnitWorld,
|
---|
| 1002 | StringUnitDisplay = UnitDisplay,
|
---|
| 1003 | StringUnitPixel = UnitPixel,
|
---|
| 1004 | StringUnitPoint = UnitPoint,
|
---|
| 1005 | StringUnitInch = UnitInch,
|
---|
| 1006 | StringUnitDocument = UnitDocument,
|
---|
| 1007 | StringUnitMillimeter = UnitMillimeter,
|
---|
| 1008 | StringUnitEm = 32
|
---|
| 1009 | };
|
---|
| 1010 | #endif
|
---|
| 1011 |
|
---|
| 1012 | #ifndef DCR_USE_NEW_152154
|
---|
| 1013 | //---------------------------------------------------------------------------
|
---|
| 1014 | // Line spacing flags
|
---|
| 1015 | //---------------------------------------------------------------------------
|
---|
| 1016 |
|
---|
| 1017 | enum LineSpacing {
|
---|
| 1018 | LineSpacingWorld = UnitWorld,
|
---|
| 1019 | LineSpacingDisplay = UnitDisplay,
|
---|
| 1020 | LineSpacingPixel = UnitPixel,
|
---|
| 1021 | LineSpacingPoint = UnitPoint,
|
---|
| 1022 | LineSpacingInch = UnitInch,
|
---|
| 1023 | LineSpacingDocument = UnitDocument,
|
---|
| 1024 | LineSpacingMillimeter = UnitMillimeter,
|
---|
| 1025 |
|
---|
| 1026 | LineSpacingRecommended = 32,
|
---|
| 1027 | LineSpacingAtLeast = 33,
|
---|
| 1028 | LineSpacingAtLeastMultiple = 34,
|
---|
| 1029 | LineSpacingCell = 35,
|
---|
| 1030 | LineSpacingCellAtLeast = 36,
|
---|
| 1031 | LineSpacingCellAtLeastMultiple = 37
|
---|
| 1032 | };
|
---|
| 1033 |
|
---|
| 1034 | /// The following methods of linespacing are relative to the font size
|
---|
| 1035 | //
|
---|
| 1036 | // =========== Method =========== =============== Relative to ===============
|
---|
| 1037 | //
|
---|
| 1038 | // LineSpacingRecommended recommended line spacing specified by font
|
---|
| 1039 | // LineSpacingAtLeast max(recommended, tallest glyph cell)
|
---|
| 1040 | // LineSpacingAtLeastMultiple smallest multiple of recommended big enough
|
---|
| 1041 | // for all glyph cells on the line
|
---|
| 1042 | // LineSpacingCell cell height
|
---|
| 1043 | // LineSpacingCellAtLeast max(font cell height, tallest glyph cell)
|
---|
| 1044 | // LineSpacingCellAtLeastMultiple smallest multiple of cell height big enough
|
---|
| 1045 | // for all glyph cells on the line
|
---|
| 1046 | #endif
|
---|
| 1047 |
|
---|
| 1048 |
|
---|
| 1049 | //---------------------------------------------------------------------------
|
---|
| 1050 | // National language digit substitution
|
---|
| 1051 | //---------------------------------------------------------------------------
|
---|
| 1052 |
|
---|
| 1053 | enum StringDigitSubstitute
|
---|
| 1054 | {
|
---|
| 1055 | StringDigitSubstituteUser = 0, // As NLS setting
|
---|
| 1056 | StringDigitSubstituteNone = 1,
|
---|
| 1057 | StringDigitSubstituteNational = 2,
|
---|
| 1058 | StringDigitSubstituteTraditional = 3
|
---|
| 1059 | };
|
---|
| 1060 |
|
---|
| 1061 | //---------------------------------------------------------------------------
|
---|
| 1062 | // Hotkey prefix interpretation
|
---|
| 1063 | //---------------------------------------------------------------------------
|
---|
| 1064 |
|
---|
| 1065 | enum HotkeyPrefix
|
---|
| 1066 | {
|
---|
| 1067 | HotkeyPrefixNone = 0,
|
---|
| 1068 | HotkeyPrefixShow = 1,
|
---|
| 1069 | HotkeyPrefixHide = 2
|
---|
| 1070 | };
|
---|
| 1071 |
|
---|
| 1072 | //---------------------------------------------------------------------------
|
---|
| 1073 | // Text alignment flags
|
---|
| 1074 | //---------------------------------------------------------------------------
|
---|
| 1075 |
|
---|
| 1076 | enum StringAlignment
|
---|
| 1077 | {
|
---|
| 1078 | // Left edge for left-to-right text,
|
---|
| 1079 | // right for right-to-left text,
|
---|
| 1080 | // and top for vertical
|
---|
| 1081 | StringAlignmentNear = 0,
|
---|
| 1082 | StringAlignmentCenter = 1,
|
---|
| 1083 | StringAlignmentFar = 2
|
---|
| 1084 | };
|
---|
| 1085 |
|
---|
| 1086 | //---------------------------------------------------------------------------
|
---|
| 1087 | // DriverStringOptions
|
---|
| 1088 | //---------------------------------------------------------------------------
|
---|
| 1089 |
|
---|
| 1090 | enum DriverStringOptions
|
---|
| 1091 | {
|
---|
| 1092 | DriverStringOptionsCmapLookup = 1,
|
---|
| 1093 | DriverStringOptionsVertical = 2,
|
---|
| 1094 | DriverStringOptionsRealizedAdvance = 4,
|
---|
| 1095 | #ifndef DCR_USE_NEW_137252
|
---|
| 1096 | DriverStringOptionsCompensateResolution = 8
|
---|
| 1097 | #endif
|
---|
| 1098 | };
|
---|
| 1099 |
|
---|
| 1100 | //---------------------------------------------------------------------------
|
---|
| 1101 | // Flush Intention flags
|
---|
| 1102 | //---------------------------------------------------------------------------
|
---|
| 1103 |
|
---|
| 1104 | enum FlushIntention
|
---|
| 1105 | {
|
---|
| 1106 | FlushIntentionFlush = 0, // Flush all batched rendering operations
|
---|
| 1107 | FlushIntentionSync = 1 // Flush all batched rendering operations
|
---|
| 1108 | // and wait for them to complete
|
---|
| 1109 | };
|
---|
| 1110 |
|
---|
| 1111 | #ifndef DCR_USE_NEW_175866
|
---|
| 1112 |
|
---|
| 1113 | //---------------------------------------------------------------------------
|
---|
| 1114 | // Window Change Notification types
|
---|
| 1115 | //---------------------------------------------------------------------------
|
---|
| 1116 |
|
---|
| 1117 | enum WindowNotifyEnum
|
---|
| 1118 | {
|
---|
| 1119 | WindowNotifyEnumEnable = 0,
|
---|
| 1120 | WindowNotifyEnumDisable,
|
---|
| 1121 | WindowNotifyEnumPalette,
|
---|
| 1122 | WindowNotifyEnumDisplay,
|
---|
| 1123 | WindowNotifyEnumSysColor
|
---|
| 1124 | };
|
---|
| 1125 |
|
---|
| 1126 | #endif
|
---|
| 1127 |
|
---|
| 1128 | //---------------------------------------------------------------------------
|
---|
| 1129 | // Image encoder parameter related types
|
---|
| 1130 | //---------------------------------------------------------------------------
|
---|
| 1131 |
|
---|
| 1132 | #ifdef DCR_USE_NEW_145804
|
---|
| 1133 | enum EncoderParameterValueType
|
---|
| 1134 | {
|
---|
| 1135 | EncoderParameterValueTypeByte = 1, // 8-bit unsigned int
|
---|
| 1136 | EncoderParameterValueTypeASCII = 2, // 8-bit byte containing one 7-bit ASCII
|
---|
| 1137 | // code. NULL terminated.
|
---|
| 1138 | EncoderParameterValueTypeShort = 3, // 16-bit unsigned int
|
---|
| 1139 | EncoderParameterValueTypeLong = 4, // 32-bit unsigned int
|
---|
| 1140 | EncoderParameterValueTypeRational = 5, // Two Longs. The first Long is the
|
---|
| 1141 | // numerator, the second Long expresses the
|
---|
| 1142 | // denomintor.
|
---|
| 1143 | EncoderParameterValueTypeLongRange = 6, // Two longs which specify a range of
|
---|
| 1144 | // integer values. The first Long specifies
|
---|
| 1145 | // the lower end and the second one
|
---|
| 1146 | // specifies the higher end. All values
|
---|
| 1147 | // are inclusive at both ends
|
---|
| 1148 | EncoderParameterValueTypeUndefined = 7, // 8-bit byte that can take any value
|
---|
| 1149 | // depending on field definition
|
---|
| 1150 | EncoderParameterValueTypeRationalRange = 8 // Two Rationals. The first Rational
|
---|
| 1151 | // specifies the lower end and the second
|
---|
| 1152 | // specifies the higher end. All values
|
---|
| 1153 | // are inclusive at both ends
|
---|
| 1154 | };
|
---|
| 1155 | #else
|
---|
| 1156 | enum ValueType
|
---|
| 1157 | {
|
---|
| 1158 | ValueTypeByte = 1, // 8-bit unsigned int
|
---|
| 1159 | ValueTypeASCII = 2, // 8-bit byte containing one 7-bit ASCII
|
---|
| 1160 | // code. NULL terminated.
|
---|
| 1161 | ValueTypeShort = 3, // 16-bit unsigned int
|
---|
| 1162 | ValueTypeLong = 4, // 32-bit unsigned int
|
---|
| 1163 | ValueTypeRational = 5, // Two Longs. The first Long is the
|
---|
| 1164 | // numerator, the second Long expresses the
|
---|
| 1165 | // denomintor.
|
---|
| 1166 | ValueTypeLongRange = 6, // Two longs which specify a range of
|
---|
| 1167 | // integer values. The first Long specifies
|
---|
| 1168 | // the lower end and the second one
|
---|
| 1169 | // specifies the higher end. All values
|
---|
| 1170 | // are inclusive at both ends
|
---|
| 1171 | ValueTypeUndefined = 7, // 8-bit byte that can take any value
|
---|
| 1172 | // depending on field definition
|
---|
| 1173 | ValueTypeRationalRange = 8 // Two Rationals. The first Rational
|
---|
| 1174 | // specifies the lower end and the second
|
---|
| 1175 | // specifies the higher end. All values
|
---|
| 1176 | // are inclusive at both ends
|
---|
| 1177 | };
|
---|
| 1178 | #endif
|
---|
| 1179 |
|
---|
| 1180 | //---------------------------------------------------------------------------
|
---|
| 1181 | // Image encoder value types
|
---|
| 1182 | //---------------------------------------------------------------------------
|
---|
| 1183 |
|
---|
| 1184 | enum EncoderValue
|
---|
| 1185 | {
|
---|
| 1186 | EncoderValueColorTypeCMYK,
|
---|
| 1187 | EncoderValueColorTypeYCCK,
|
---|
| 1188 | EncoderValueCompressionLZW,
|
---|
| 1189 | EncoderValueCompressionCCITT3,
|
---|
| 1190 | EncoderValueCompressionCCITT4,
|
---|
| 1191 | EncoderValueCompressionRle,
|
---|
| 1192 | EncoderValueCompressionNone,
|
---|
| 1193 | EncoderValueScanMethodInterlaced,
|
---|
| 1194 | EncoderValueScanMethodNonInterlaced,
|
---|
| 1195 | EncoderValueVersionGif87,
|
---|
| 1196 | EncoderValueVersionGif89,
|
---|
| 1197 | EncoderValueRenderProgressive,
|
---|
| 1198 | EncoderValueRenderNonProgressive,
|
---|
| 1199 | EncoderValueTransformRotate90,
|
---|
| 1200 | EncoderValueTransformRotate180,
|
---|
| 1201 | EncoderValueTransformRotate270,
|
---|
| 1202 | EncoderValueTransformFlipHorizontal,
|
---|
| 1203 | EncoderValueTransformFlipVertical,
|
---|
| 1204 | #ifdef DCR_USE_NEW_140861
|
---|
| 1205 | EncoderValueMultiFrame,
|
---|
| 1206 | #else
|
---|
| 1207 | EncodeValueMultiFrame,
|
---|
| 1208 | #endif
|
---|
| 1209 | EncoderValueLastFrame,
|
---|
| 1210 | EncoderValueFlush,
|
---|
| 1211 | #ifdef DCR_USE_NEW_140861
|
---|
| 1212 | EncoderValueFrameDimensionTime,
|
---|
| 1213 | EncoderValueFrameDimensionResolution,
|
---|
| 1214 | EncoderValueFrameDimensionPage
|
---|
| 1215 | #else
|
---|
| 1216 | EncodeValueFrameDimensionTime,
|
---|
| 1217 | EncodeValueFrameDimensionResolution,
|
---|
| 1218 | EncodeValueFrameDimensionPage
|
---|
| 1219 | #endif
|
---|
| 1220 | };
|
---|
| 1221 |
|
---|
| 1222 | //---------------------------------------------------------------------------
|
---|
| 1223 | // Graphics layout values (support for Middle East localization)
|
---|
| 1224 | //---------------------------------------------------------------------------
|
---|
| 1225 |
|
---|
| 1226 | enum GraphicsLayout
|
---|
| 1227 | {
|
---|
| 1228 | GraphicsLayoutNormal,
|
---|
| 1229 | GraphicsLayoutMirrored,
|
---|
| 1230 | GraphicsLayoutMirroredIgnoreImages,
|
---|
| 1231 | GraphicsLayoutMirroredForceImages
|
---|
| 1232 | };
|
---|
| 1233 |
|
---|
| 1234 | //---------------------------------------------------------------------------
|
---|
| 1235 | // Image layout values (support for Middle East localization)
|
---|
| 1236 | //---------------------------------------------------------------------------
|
---|
| 1237 |
|
---|
| 1238 | enum ImageLayout
|
---|
| 1239 | {
|
---|
| 1240 | ImageLayoutNormal,
|
---|
| 1241 | ImageLayoutIgnoreMirrored
|
---|
| 1242 | };
|
---|
| 1243 |
|
---|
| 1244 | enum EmfToWmfBitsFlags
|
---|
| 1245 | {
|
---|
| 1246 | EmfToWmfBitsFlagsDefault = 0x00000000,
|
---|
| 1247 | EmfToWmfBitsFlagsEmbedEmf = 0x00000001,
|
---|
| 1248 | EmfToWmfBitsFlagsIncludeAPM = 0x00000002,
|
---|
| 1249 | EmfToWmfBitsFlagsNoXORClip = 0x00000004
|
---|
| 1250 | };
|
---|
| 1251 |
|
---|
| 1252 | #endif // !_GDIPLUSENUMS_H
|
---|