1 /* This file is part of the KDE project 2 * 3 * Copyright (C) 2010-11 Inge Wallin <inge@lysator.liu.se> 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Library General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU Library General Public License 16 * along with this library; see the file COPYING.LIB. If not, write to 17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * Boston, MA 02110-1301, USA 19 */ 20 21 22 #ifndef WMFENUMS_H 23 #define WMFENUMS_H 24 25 26 /** 27 Namespace for Windows Metafile (WMF) classes 28 */ 29 namespace Libwmf 30 { 31 32 33 // ---------------------------------------------------------------- 34 // Enums 35 36 /** 37 WMF 2.1.1.1 RecordType Enumeration 38 39 The RecordType Enumeration defines the types of records that can be used in WMF metafiles. 40 */ 41 42 enum RecordType { 43 META_EOF = 0x0000, 44 META_SETBKCOLOR = 0x0201, 45 META_SETBKMODE = 0x0102, 46 META_SETMAPMODE = 0x0103, 47 META_SETROP2 = 0x0104, 48 META_SETRELABS = 0x0105, 49 META_SETPOLYFILLMODE = 0x0106, 50 META_SETSTRETCHBLTMODE = 0x0107, 51 META_SETTEXTCHAREXTRA = 0x0108, 52 META_SETTEXTCOLOR = 0x0209, 53 META_SETTEXTJUSTIFICATION = 0x020A, 54 META_SETWINDOWORG = 0x020B, 55 META_SETWINDOWEXT = 0x020C, 56 META_SETVIEWPORTORG = 0x020D, 57 META_SETVIEWPORTEXT = 0x020E, 58 META_OFFSETWINDOWORG = 0x020F, 59 META_SCALEWINDOWEXT = 0x0410, 60 META_OFFSETVIEWPORTORG = 0x0211, 61 META_SCALEVIEWPORTEXT = 0x0412, 62 META_LINETO = 0x0213, 63 META_MOVETO = 0x0214, 64 META_EXCLUDECLIPRECT = 0x0415, 65 META_INTERSECTCLIPRECT = 0x0416, 66 META_ARC = 0x0817, 67 META_ELLIPSE = 0x0418, 68 META_FLOODFILL = 0x0419, 69 META_PIE = 0x081A, 70 META_RECTANGLE = 0x041B, 71 META_ROUNDRECT = 0x061C, 72 META_PATBLT = 0x061D, 73 META_SAVEDC = 0x001E, 74 META_SETPIXEL = 0x041F, 75 META_OFFSETCLIPRGN = 0x0220, 76 META_TEXTOUT = 0x0521, 77 META_BITBLT = 0x0922, 78 META_STRETCHBLT = 0x0B23, 79 META_POLYGON = 0x0324, 80 META_POLYLINE = 0x0325, 81 META_ESCAPE = 0x0626, 82 META_RESTOREDC = 0x0127, 83 META_FILLREGION = 0x0228, 84 META_FRAMEREGION = 0x0429, 85 META_INVERTREGION = 0x012A, 86 META_PAINTREGION = 0x012B, 87 META_SELECTCLIPREGION = 0x012C, 88 META_SELECTOBJECT = 0x012D, 89 META_SETTEXTALIGN = 0x012E, 90 // No 2F 91 META_CHORD = 0x0830, 92 META_SETMAPPERFLAGS = 0x0231, 93 META_EXTTEXTOUT = 0x0a32, 94 META_SETDIBTODEV = 0x0d33, 95 META_SELECTPALETTE = 0x0234, 96 META_REALIZEPALETTE = 0x0035, 97 META_ANIMATEPALETTE = 0x0436, 98 META_SETPALENTRIES = 0x0037, 99 META_POLYPOLYGON = 0x0538, 100 META_RESIZEPALETTE = 0x0139, 101 META_DIBBITBLT = 0x0940, 102 META_DIBSTRETCHBLT = 0x0b41, 103 META_DIBCREATEPATTERNBRUSH = 0x0142, 104 META_STRETCHDIB = 0x0f43, 105 // No 44 - 47 106 META_EXTFLOODFILL = 0x0548, 107 META_SETLAYOUT = 0x0149, 108 // Some strange things in the 4a-5f range, that is not documented, 109 // but the old code has a few unimplemented functions here. 110 111 // BIG GAP HERE 112 META_DELETEOBJECT = 0x01f0, 113 // No f1-f6 114 META_CREATEPALETTE = 0x00f7, 115 META_CREATEBRUSH = 0x00f8, // Can't find this in [MS-WMF].pdf, but is unimplemented here. 116 META_CREATEPATTERNBRUSH = 0x01F9, 117 META_CREATEPENINDIRECT = 0x02FA, 118 META_CREATEFONTINDIRECT = 0x02FB, 119 META_CREATEBRUSHINDIRECT = 0x02FC, 120 META_CREATEREGION = 0x06FF 121 }; 122 123 // MS-WMF 2.1.1.2 Binary RasterOperation Enumeration 124 125 enum WmfBinaryRasterOperation { 126 R2_BLACK = 0x0001, 127 R2_NOTMERGEPEN = 0x0002, 128 R2_MASKNOTPEN = 0x0003, 129 R2_NOTCOPYPEN = 0x0004, 130 R2_MASKPENNOT = 0x0005, 131 R2_NOT = 0x0006, 132 R2_XORPEN = 0x0007, 133 R2_NOTMASKPEN = 0x0008, 134 R2_MASKPEN = 0x0009, 135 R2_NOTXORPEN = 0x000A, 136 R2_NOP = 0x000B, 137 R2_MERGENOTPEN = 0x000C, 138 R2_COPYPEN = 0x000D, 139 R2_MERGEPENNOT = 0x000E, 140 R2_MERGEPEN = 0x000F, 141 R2_WHITE = 0x0010 142 }; 143 144 145 /** 146 WMF 2.1.1.3 BitCount Enumeration 147 148 The BitCount Enumeration specifies the number of bits that define 149 each pixel and the maximum number of colors in a device-independent 150 bitmap (DIB). 151 */ 152 enum WmfBitCount { 153 BI_BITCOUNT_0 = 0x0000, 154 BI_BITCOUNT_1 = 0x0001, 155 BI_BITCOUNT_2 = 0x0004, 156 BI_BITCOUNT_3 = 0x0008, 157 BI_BITCOUNT_4 = 0x0010, 158 BI_BITCOUNT_5 = 0x0018, 159 BI_BITCOUNT_6 = 0x0020 160 }; 161 162 163 /** 164 MS-WMF 2.1.1.4 BrushStyle Enumeration 165 166 The BrushStyle Enumeration specifies the different possible brush 167 types that can be used in graphics operations. For more 168 information, see the specification of the Brush Object (section 2.2.1.1). 169 */ 170 171 enum WmfBrushStyle { 172 BS_SOLID = 0x0000, 173 BS_NULL = 0x0001, 174 BS_HATCHED = 0x0002, 175 BS_PATTERN = 0x0003, 176 BS_INDEXED = 0x0004, 177 BS_DIBPATTERN = 0x0005, 178 BS_DIBPATTERNPT = 0x0006, 179 BS_PATTERN8X8 = 0x0007, 180 BS_DIBPATTERN8X8 = 0x0008, 181 BS_MONOPATTERN = 0x0009 182 }; 183 184 185 /** 186 MS-WMF 2.1.1.5 CharacterSet Enumeration 187 188 The CharacterSet Enumeration defines the possible sets of character 189 glyphs that are defined in fonts for graphics output. 190 */ 191 192 enum WmfCharacterSet { 193 ANSI_CHARSET = 0x00000000, 194 DEFAULT_CHARSET = 0x00000001, 195 SYMBOL_CHARSET = 0x00000002, 196 MAC_CHARSET = 0x0000004D, 197 SHIFTJIS_CHARSET = 0x00000080, 198 HANGUL_CHARSET = 0x00000081, 199 JOHAB_CHARSET = 0x00000082, 200 GB2312_CHARSET = 0x00000086, 201 CHINESEBIG5_CHARSET = 0x00000088, 202 GREEK_CHARSET = 0x000000A1, 203 TURKISH_CHARSET = 0x000000A2, 204 VIETNAMESE_CHARSET = 0x000000A3, 205 HEBREW_CHARSET = 0x000000B1, 206 ARABIC_CHARSET = 0x000000B2, 207 BALTIC_CHARSET = 0x000000BA, 208 RUSSIAN_CHARSET = 0x000000CC, 209 THAI_CHARSET = 0x000000DE, 210 EASTEUROPE_CHARSET = 0x000000EE, 211 OEM_CHARSET = 0x000000FF 212 }; 213 214 215 /** 216 MS-WMF 2.1.1.6 ColorUsage Enumeration 217 218 The ColorUsage Enumeration specifies whether a color table exists 219 in a device -independent bitmap (DIB) and how to interpret its values. 220 */ 221 222 enum WmfColorUsage { 223 DIB_RGB_COLORS = 0x0000, 224 DIB_PAL_COLORS = 0x0001, 225 DIB_PAL_INDICES = 0x0002 226 }; 227 228 229 /** 230 MS-WMF 2.1.1.7 Compression Enumeration 231 232 The Compression Enumeration specifies the type of compression for a 233 bitmap image. 234 */ 235 236 enum WmfCompression { 237 BI_RGB = 0x0000, 238 BI_RLE8 = 0x0001, 239 BI_RLE4 = 0x0002, 240 BI_BITFIELDS = 0x0003, 241 BI_JPEG = 0x0004, 242 BI_PNG = 0x0005, 243 BI_CMYK = 0x000B, 244 BI_CMYKRLE8 = 0x000C, 245 BI_CMYKRLE4 = 0x000D 246 }; 247 248 249 /** 250 MS-WMF 2.1.1.8 FamilyFont Enumeration 251 252 The FamilyFont enumeration specifies the font family. Font families 253 describe the look of a font in a general way. They are intended for 254 specifying fonts when the exact typeface desired is not available. 255 */ 256 257 typedef enum { 258 FF_DONTCARE = 0x00, 259 FF_ROMAN = 0x01, 260 FF_SWISS = 0x02, 261 FF_MODERN = 0x03, 262 FF_SCRIPT = 0x04, 263 FF_DECORATIVE = 0x05 264 } WmfFamilyFont; 265 266 267 /** 268 MS-WMF 2.1.1.9 FloodFill Enumeration 269 270 The FloodFill Enumeration specifies the type of fill operation to 271 be performed. 272 */ 273 274 enum WmfFloodFill { 275 FLOODFILLBORDER = 0x0000, 276 FLOODFILLSURFACE = 0x0001 277 }; 278 279 280 /** 281 MS-WMF 2.1.1.10 FontQuality Enumeration 282 283 The FontQuality Enumeration specifies how closely the attributes of 284 the logical font should match those of the physical font when 285 rendering text. 286 */ 287 288 enum WmfFontQuality { 289 DEFAULT_QUALITY = 0x00, 290 DRAFT_QUALITY = 0x01, 291 PROOF_QUALITY = 0x02, 292 NONANTIALIASED_QUALITY = 0x03, 293 ANTIALIASED_QUALITY = 0x04, 294 CLEARTYPE_QUALITY = 0x05 295 }; 296 297 298 /* 299 MS-WMF 2.1.1.11 GamutMappingIntent Enumeration 300 301 The GamutMappingIntent Enumeration specifies the relationship 302 between logical and physical colors. 303 */ 304 305 enum WmfGamutMappingIntent { 306 LCS_GM_ABS_COLORIMETRIC = 0x00000008, 307 LCS_GM_BUSINESS = 0x00000001, 308 LCS_GM_GRAPHICS = 0x00000002, 309 LCS_GM_IMAGES = 0x00000004 310 }; 311 312 313 /** 314 MS-WMF 2.1.1.12 HatchStyle Enumeration 315 316 The HatchStyle Enumeration specifies the hatch pattern. 317 */ 318 319 enum WmfHatchStyle { 320 HS_HORIZONTAL = 0x0000, 321 HS_VERTICAL = 0x0001, 322 HS_FDIAGONAL = 0x0002, 323 HS_BDIAGONAL = 0x0003, 324 HS_CROSS = 0x0004, 325 HS_DIAGCROSS = 0x0005 326 }; 327 328 329 /** 330 MS-WMF 2.1.1.13 Layout Enumeration 331 332 The Layout Enumeration defines options for controlling the 333 direction in which text and graphics are drawn. 334 */ 335 336 enum WmfLayout { 337 LAYOUT_LTR = 0x0000, 338 LAYOUT_RTL = 0x0001, 339 LAYOUT_BTT = 0x0002, 340 LAYOUT_VBH = 0x0004, 341 LAYOUT_BITMAPORIENTATIONPRESERVED = 0x0008 342 }; 343 344 345 /** 346 MS-WMF 2.1.1.14 LogicalColorSpace Enumeration 347 348 The LogicalColorSpace Enumeration specifies the type of color space. 349 */ 350 351 enum WmfLogicalColorSpace { 352 LCS_CALIBRATED_RGB = 0x00000000, 353 LCS_sRGB = 0x73524742, 354 LCS_WINDOWS_COLOR_SPACE = 0x57696E20 355 }; 356 357 358 /** 359 MS-WMF 2.1.1.15 LogicalColorSpaceV5 Enumeration 360 361 The LogicalColorSpaceV5 Enumeration is used to specify where to 362 find color profile information for a DeviceIndependentBitmap (DIB) 363 Object (section 2.2.2.9) that has a header of type BitmapV5Header 364 Object (section 2.2.2.5). 365 */ 366 367 enum WmfLogicalColorSpaceV5 { 368 LCS_PROFILE_LINKED = 0x4C494E4B, 369 LCS_PROFILE_EMBEDDED = 0x4D424544 370 }; 371 372 373 /** 374 MS-WMF 2.1.1.16 MapMode Enumeration 375 376 The MapMode Enumeration defines how logical units are mapped to 377 physical units; that is, assuming that the origins in both the 378 logical and physical coordinate systems are at the same point on 379 the drawing surface, what is the physical coordinate (x',y') that 380 corresponds to logical coordinate (x,y). 381 */ 382 383 enum WmfMapMode { 384 MM_TEXT = 0x0001, 385 MM_LOMETRIC = 0x0002, 386 MM_HIMETRIC = 0x0003, 387 MM_LOENGLISH = 0x0004, 388 MM_HIENGLISH = 0x0005, 389 MM_TWIPS = 0x0006, 390 MM_ISOTROPIC = 0x0007, 391 MM_ANISOTROPIC = 0x0008 392 }; 393 394 395 /** 396 MS-WMF 2.1.1.18 Metafile Type Enumeration 397 398 The MetafileType Enumeration specifies where the metafile is stored. 399 */ 400 401 enum WmfMetafileType { 402 MEMORYMETAFILE = 0x0001, 403 DISKMETAFILE = 0x0002 404 }; 405 406 407 /** 408 MS-WMF 2.1.1.19 MetafileVersion Enumeration 409 410 The MetafileVersion Enumeration defines values that specify support 411 for device-independent bitmaps (DIBs) in metafiles. 412 */ 413 414 enum WmfMetafileVersion { 415 METAVERSION100 = 0x0100, 416 METAVERSION300 = 0x0300 417 }; 418 419 420 /** 421 MS-WMF 2.1.1.20 MixMode Enumeration 422 423 The MixMode Enumeration specifies the background mix mode for text, 424 hatched brushes, and other nonsolid pen styles. 425 */ 426 427 enum WmfMixMode { 428 TRANSPARENT = 0x0001, 429 OPAQUE = 0x0002 430 }; 431 432 433 /** 434 MS-WMF 2.1.1.21 OutPrecision Enumeration 435 436 The OutPrecision enumeration defines values for output precision, 437 which is the requirement for the font mapper to match specific font 438 parameters, including height, width, character orientation, 439 escapement, pitch, and font type. 440 */ 441 442 enum WmfOutPrecision { 443 OUT_DEFAULT_PRECIS = 0x00000000, 444 OUT_STRING_PRECIS = 0x00000001, 445 OUT_STROKE_PRECIS = 0x00000003, 446 OUT_TT_PRECIS = 0x00000004, 447 OUT_DEVICE_PRECIS = 0x00000005, 448 OUT_RASTER_PRECIS = 0x00000006, 449 OUT_TT_ONLY_PRECIS = 0x00000007, 450 OUT_OUTLINE_PRECIS = 0x00000008, 451 OUT_SCREEN_OUTLINE_PRECIS = 0x00000009, 452 OUT_PS_ONLY_PRECIS = 0x0000000A 453 }; 454 455 456 /** 457 MS-WMF 2.1.1.22 PaletteEntryFlag Enumeration 458 459 The PaletteEntryFlag Enumeration specifies how the palette entry should be used. 460 */ 461 462 enum WmfPaletteEntryFlag { 463 PC_RESERVED = 0x01, 464 PC_EXPLICIT = 0x02, 465 PC_NOCOLLAPSE = 0x04 466 }; 467 468 469 /** 470 MS-WMF 2.1.1.23 Pe nStyle Enumeration 471 472 The 16-bit PenStyle Enumeration is used to specify different types 473 of pens that can be used in graphics operations. 474 475 Various styles can be combined by using a logical OR statement, one 476 from each subsection of Style, EndCap, Join, and Type (Cosmetic). 477 */ 478 479 enum WmfPenStyle { 480 PS_COSMETIC = 0x0000, 481 PS_ENDCAP_ROUND = 0x0000, 482 PS_JOIN_ROUND = 0x0000, 483 PS_SOLID = 0x0000, 484 PS_DASH = 0x0001, 485 PS_DOT = 0x0002, 486 PS_DASHDOT = 0x0003, 487 PS_DASHDOTDOT = 0x0004, 488 PS_NULL = 0x0005, 489 PS_INSIDEFRAME = 0x0006, 490 PS_USERSTYLE = 0x0007, 491 PS_ALTERNATE = 0x0008, 492 PS_ENDCAP_SQUARE = 0x0100, 493 PS_ENDCAP_FLAT = 0x0200, 494 PS_JOIN_BEVEL = 0x1000, 495 PS_JOIN_MITER = 0x2000 496 }; 497 498 499 /** 500 MS-WMF 2.1.1.24 PitchFont Enumeration 501 502 The PitchFont enumeration defines values that are used for 503 specifying characteristics of a font. The values are used to 504 indicate whether the characters in a font have a fixed or variable 505 width, or pitch. 506 */ 507 508 enum WmfPitchFont { 509 DEFAULT_PITCH = 0, 510 FIXED_PITCH = 1, 511 VARIABLE_PITCH = 2 512 }; 513 514 515 /* 516 MS-WMF 2.1.1.25 PolyFillMode Enumeration 517 518 The PolyFillMode Enumeration specifies the method used for filling 519 a polygon. 520 */ 521 522 enum WmfPolyFillMode { 523 ALTERNATE = 0x0001, 524 WINDING = 0x0002 525 }; 526 527 528 /** 529 MS-WMF 2.1.1.29 StretchMode Enumeration 530 531 The StretchMode Enumeration specifies the bitmap stretching mode, 532 which defines how the system combines rows or columns of a bitmap 533 with existing pixels. 534 */ 535 536 enum WmfStretchMode { 537 BLACKONWHITE = 0x0001, 538 WHITEONBLACK = 0x0002, 539 COLORONCOLOR = 0x0003, 540 HALFTONE = 0x0004 541 }; 542 543 544 /** 545 MS-WMF 2.1.1.30 Ternary RasterOperation Enumeration 546 547 The TernaryRasterOperation Enumeration specifies ternary raster 548 operation codes, which define how to combine the bits in a source 549 bitmap with the bits in a destination bitmap. 550 */ 551 552 enum WmfTernaryRasterOperation { 553 BLACKNESS = 0x00, 554 DPSOON = 0x01, 555 DPSONA = 0x02, 556 PSON = 0x03, 557 SDPONA = 0x04, 558 DPON = 0x05, 559 PDSXNON = 0x06, 560 PDSAON = 0x07, 561 SDPNAA = 0x08, 562 PDSXON = 0x09, 563 DPNA = 0x0A, 564 PSDNAON = 0x0B, 565 SPNA = 0x0C, 566 PDSNAON = 0x0D, 567 PDSONON = 0x0E, 568 PN = 0x0F, 569 PDSONA = 0x10, 570 NOTSRCERASE = 0x11, 571 SDPXNON = 0x12, 572 SDPAON = 0x13, 573 DPSXNON = 0x14, 574 DPSAON = 0x15, 575 PSDPSANAXX = 0x16, 576 SSPXDSXAXN = 0x17, 577 SPXPDXA = 0x18, 578 SDPSANAXN = 0x19, 579 PDSPAOX = 0x1A, 580 SDPSXAXN = 0x1B, 581 PSDPAOX = 0x1C, 582 DSPDXAXN = 0x1D, 583 PDSOX = 0x1E, 584 PDSOAN = 0x1F, 585 DPSNAA = 0x20, 586 SDPXON = 0x21, 587 DSNA = 0x22, 588 SPDNAON = 0x23, 589 SPXDSXA = 0x24, 590 PDSPANAXN = 0x25, 591 SDPSAOX = 0x26, 592 SDPSXNOX = 0x27, 593 DPSXA = 0x28, 594 PSDPSAOXXN = 0x29, 595 DPSANA = 0x2A, 596 SSPXPDXAXN = 0x2B, 597 SPDSOAX = 0x2C, 598 PSDNOX = 0x2D, 599 PSDPXOX = 0x2E, 600 PSDNOAN = 0x2F, 601 PSNA = 0x30, 602 SDPNAON = 0x31, 603 SDPSOOX = 0x32, 604 NOTSRCCOPY = 0x33, 605 SPDSAOX = 0x34, 606 SPDSXNOX = 0x35, 607 SDPOX = 0x36, 608 SDPOAN = 0x37, 609 PSDPOAX = 0x38, 610 SPDNOX = 0x39, 611 SPDSXOX = 0x3A, 612 SPDNOAN = 0x3B, 613 PSX = 0x3C, 614 SPDSONOX = 0x3D, 615 SPDSNAOX = 0x3E, 616 PSAN = 0x3F, 617 PSDNAA = 0x40, 618 DPSXON = 0x41, 619 SDXPDXA = 0x42, 620 SPDSANAXN = 0x43, 621 SRCERASE = 0x44, 622 DPSNAON = 0x45, 623 DSPDAOX = 0x46, 624 PSDPXAXN = 0x47, 625 SDPXA = 0x48, 626 PDSPDAOXXN = 0x49, 627 DPSDOAX = 0x4A, 628 PDSNOX = 0x4B, 629 SDPANA = 0x4C, 630 SSPXDSXOXN = 0x4D, 631 PDSPXOX = 0x4E, 632 PDSNOAN = 0x4F, 633 PDNA = 0x50, 634 DSPNAON = 0x51, 635 DPSDAOX = 0x52, 636 SPDSXAXN = 0x53, 637 DPSONON = 0x54, 638 DSTINVERT = 0x55, 639 DPSOX = 0x56, 640 DPSOAN = 0x57, 641 PDSPOAX = 0x58, 642 DPSNOX = 0x59, 643 PATINVERT = 0x5A, 644 DPSDONOX = 0x5B, 645 DPSDXOX = 0x5C, 646 DPSNOAN = 0x5D, 647 DPSDNAOX = 0x5E, 648 DPAN = 0x5F, 649 PDSXA = 0x60, 650 DSPDSAOXXN = 0x61, 651 DSPDOAX = 0x62, 652 SDPNOX = 0x63, 653 SDPSOAX = 0x64, 654 DSPNOX = 0x65, 655 SRCINVERT = 0x66, 656 SDPSONOX = 0x67, 657 DSPDSONOXXN = 0x68, 658 PDSXXN = 0x69, 659 DPSAX = 0x6A, 660 PSDPSOAXXN = 0x6B, 661 SDPAX = 0x6C, 662 PDSPDOAXXN = 0x6D, 663 SDPSNOAX = 0x6E, 664 PDXNAN = 0x6F, 665 PDSANA = 0x70, 666 SSDXPDXAXN = 0x71, 667 SDPSXOX = 0x72, 668 SDPNOAN = 0x73, 669 DSPDXOX = 0x74, 670 DSPNOAN = 0x75, 671 SDPSNAOX = 0x76, 672 DSAN = 0x77, 673 PDSAX = 0x78, 674 DSPDSOAXXN = 0x79, 675 DPSDNOAX = 0x7A, 676 SDPXNAN = 0x7B, 677 SPDSNOAX = 0x7C, 678 DPSXNAN = 0x7D, 679 SPXDSXO = 0x7E, 680 DPSAAN = 0x7F, 681 DPSAA = 0x80, 682 SPXDSXON = 0x81, 683 DPSXNA = 0x82, 684 SPDSNOAXN = 0x83, 685 SDPXNA = 0x84, 686 PDSPNOAXN = 0x85, 687 DSPDSOAXX = 0x86, 688 PDSAXN = 0x87, 689 SRCAND = 0x88, 690 SDPSNAOXN = 0x89, 691 DSPNOA = 0x8A, 692 DSPDXOXN = 0x8B, 693 SDPNOA = 0x8C, 694 SDPSXOXN = 0x8D, 695 SSDXPDXAX = 0x8E, 696 PDSANAN = 0x8F, 697 PDSXNA = 0x90, 698 SDPSNOAXN = 0x91, 699 DPSDPOAXX = 0x92, 700 SPDAXN = 0x93, 701 PSDPSOAXX = 0x94, 702 DPSAXN = 0x95, 703 DPSXX = 0x96, 704 PSDPSONOXX = 0x97, 705 SDPSONOXN = 0x98, 706 DSXN = 0x99, 707 DPSNAX = 0x9A, 708 SDPSOAXN = 0x9B, 709 SPDNAX = 0x9C, 710 DSPDOAXN = 0x9D, 711 DSPDSAOXX = 0x9E, 712 PDSXAN = 0x9F, 713 DPA = 0xA0, 714 PDSPNAOXN = 0xA1, 715 DPSNOA = 0xA2, 716 DPSDXOXN = 0xA3, 717 PDSPONOXN = 0xA4, 718 PDXN = 0xA5, 719 DSPNAX = 0xA6, 720 PDSPOAXN = 0xA7, 721 DPSOA = 0xA8, 722 DPSOXN = 0xA9, 723 D = 0xAA, 724 DPSONO = 0xAB, 725 SPDSXAX = 0xAC, 726 DPSDAOXN = 0xAD, 727 DSPNAO = 0xAE, 728 DPNO = 0xAF, 729 PDSNOA = 0xB0, 730 PDSPXOXN = 0xB1, 731 SSPXDSXOX = 0xB2, 732 SDPANAN = 0xB3, 733 PSDNAX = 0xB4, 734 DPSDOAXN = 0xB5, 735 DPSDPAOXX = 0xB6, 736 SDPXAN = 0xB7, 737 PSDPXAX = 0xB8, 738 DSPDAOXN = 0xB9, 739 DPSNAO = 0xBA, 740 MERGEPAINT = 0xBB, 741 SPDSANAX = 0xBC, 742 SDXPDXAN = 0xBD, 743 DPSXO = 0xBE, 744 DPSANO = 0xBF, 745 MERGECOPY = 0xC0, 746 SPDSNAOXN = 0xC1, 747 SPDSONOXN = 0xC2, 748 PSXN = 0xC3, 749 SPDNOA = 0xC4, 750 SPDSXOXN = 0xC5, 751 SDPNAX = 0xC6, 752 PSDPOAXN = 0xC7, 753 SDPOA = 0xC8, 754 SPDOXN = 0xC9, 755 DPSDXAX = 0xCA, 756 SPDSAOXN = 0xCB, 757 SRCCOPY = 0xCC, 758 SDPONO = 0xCD, 759 SDPNAO = 0xCE, 760 SPNO = 0xCF, 761 PSDNOA = 0xD0, 762 PSDPXOXN = 0xD1, 763 764 PDSNAX = 0xD2, 765 SPDSOAXN = 0xD3, 766 SSPXPDXAX = 0xD4, 767 DPSANAN = 0xD5, 768 PSDPSAOXX = 0xD6, 769 DPSXAN = 0xD7, 770 PDSPXAX = 0xD8, 771 SDPSAOXN = 0xD9, 772 DPSDANAX = 0xDA, 773 SPXDSXAN = 0xDB, 774 SPDNAO = 0xDC, 775 SDNO = 0xDD, 776 SDPXO = 0xDE, 777 SDPANO = 0xDF, 778 PDSOA = 0xE0, 779 PDSOXN = 0xE1, 780 DSPDXAX = 0xE2, 781 PSDPAOXN = 0xE3, 782 SDPSXAX = 0xE4, 783 PDSPAOXN = 0xE5, 784 SDPSANAX = 0xE6, 785 SPXPDXAN = 0xE7, 786 SSPXDSXAX = 0xE8, 787 DSPDSANAXXN = 0xE9, 788 DPSAO = 0xEA, 789 DPSXNO = 0xEB, 790 SDPAO = 0xEC, 791 SDPXNO = 0xED, 792 SRCPAINT = 0xEE, 793 SDPNOO = 0xEF, 794 PATCOPY = 0xF0, 795 PDSONO = 0xF1, 796 PDSNAO = 0xF2, 797 PSNO = 0xF3, 798 PSDNAO = 0xF4, 799 PDNO = 0xF5, 800 PDSXO = 0xF6, 801 PDSANO = 0xF7, 802 PDSAO = 0xF8, 803 PDSXNO = 0xF9, 804 DPO = 0xFA, 805 PATPAINT = 0xFB, 806 PSO = 0xFC, 807 PSDNOO = 0xFD, 808 DPSOO = 0xFE, 809 WHITENESS = 0xFF 810 }; 811 812 813 // ---------------------------------------------------------------- 814 // Flags 815 816 817 /** 818 MS-WMF 2.1.2.1 ClipPrecision Flags 819 820 ClipPrecision Flags specify clipping precision, which defines how 821 to clip characters that are partially outside a clipping 822 region. These flags can be combined to specify multiple options. 823 */ 824 825 #define CLIP_DEFAULT_PRECIS 0x00000000 826 #define CLIP_CHARACTER_PRECIS 0x00000001 827 #define CLIP_STROKE_PRECIS 0x00000002 828 #define CLIP_LH_ANGLES 0x00000010 829 #define CLIP_TT_ALWAYS 0x00000020 830 #define CLIP_DFA_DISABLE 0x00000040 831 #define CLIP_EMBEDDED 0x00000080 832 833 834 /** 835 MS-WMF 2.1.2.2 ExtTextOutOptions Flags 836 837 ExtTextOutOptions Flags specify various characteristics of the 838 output of text. These flags can be combined to specify multiple options. 839 */ 840 841 #define ETO_OPAQUE 0x0002 842 #define ETO_CLIPPED 0x0004 843 #define ETO_GLYPH_INDEX 0x0010 844 #define ETO_RTLREADING 0x0080 845 #define ETO_NUMERICSLOCAL 0x0400 846 #define ETO_NUMERICSLATIN 0x0800 847 #define ETO_PDY 0x2000 848 849 850 /** 851 MS-WMF 2.1.2.3 TextAlignmentMode Flags 852 853 TextAlignmentMode Flags specify the relationship between a 854 reference point and a bounding rectangle, for text alignment. These 855 flags can be combined to specify multiple options, with the 856 restriction that only one flag can be chosen that alters the 857 drawing position in the playback device context. 858 859 Horizontal text alignment is performed when the font has a 860 horizontal default baseline. 861 */ 862 863 #define TA_NOUPDATECP 0x0000 /// Do not update Current Point (default) 864 #define TA_LEFT 0x0000 /// The reference point is on the left edge of the bounding rectangle 865 #define TA_TOP 0x0000 /// The reference point is on the top edge of the bounding rectangle 866 #define TA_UPDATECP 0x0001 /// Use Current Point. The Current Point must be updated 867 #define TA_RIGHT 0x0002 /// The reference point is on the right edge of the bounding rectangle 868 #define TA_CENTER 0x0006 /// The reference point is at the center of the bounding rectangle 869 #define TA_BOTTOM 0x0008 /// The reference point is on the bottom edge of the bounding rectangle 870 #define TA_BASELINE 0x0018 /// The reference point is on the baseline 871 #define TA_RTLREADING 0x0100 /// The text is laid out in Right-to-Left direction. 872 873 // Some useful masks, not part of the specification: 874 #define TA_HORZMASK 0x0006 875 #define TA_VERTMASK 0x0018 876 877 878 879 // MS-WMF 2.1.2.4 VerticalTextAlignmentMode Flags 880 // 881 // VerticalTextAlignmentMode Flags specify the relationship between a 882 // reference point and a bounding rectangle, for text alignment. These 883 // flags can be combined to specify multiple options, with the 884 // restriction that only one flag can be chosen that alters the 885 // drawing position in the playback device context. 886 // 887 // Vertical text alignment is performed when the font has a vertical 888 // default baseline, such as Kanji. 889 890 #define VTA_TOP 0x0000 891 #define VTA_RIGHT 0x0000 892 #define VTA_BOTTOM 0x0002 893 #define VTA_CENTER 0x0006 894 #define VTA_LEFT 0x0008 895 #define VTA_BASELINE 0x0018 896 897 898 } 899 900 #endif // KOWMFENUMS_H 901