|
|
1.1 ! root 1: /*static char *SCCSID = "@(#)pmddi.h 13.13 90/04/02";*/ ! 2: /*******************************Module*Header*******************************\ ! 3: * Module Name: PMDDI.H * ! 4: * * ! 5: * Include file that declares entry points, macros, and types for the * ! 6: * Graphics Engine. * ! 7: * * ! 8: * Version 1.10 Copyright International Business Machines Corp. 1981, 1988 * ! 9: * Version 1.10 Copyright Microsoft Corp. 1981, 1988 * ! 10: * * ! 11: *===========================================================================* ! 12: * * ! 13: * The following symbols are used in this file for conditional sections: * ! 14: * * ! 15: * INCL_DDIGRE - if you don't want OS2DEF, PMGPI, and PMDEV included * ! 16: * INCL_DDIDEFS - if you don't want the above, but do want GRE structs * ! 17: * * ! 18: * It is expected that callers of the Engine will want to define INCL_DDIGRE * ! 19: * and possibly INCL_DDIDEFS. The Engine itself and device drivers define * ! 20: * neither of these. * ! 21: * * ! 22: * Further defines must be made to specify which of the GRE function macros * ! 23: * should be defined. INCL_GREALL causes all of them to be defined. * ! 24: * * ! 25: * INCL_GRE_ARCS - Arcs functions * ! 26: * INCL_GRE_LINES - Line functions * ! 27: * INCL_GRE_MARKERS - etc. * ! 28: * INCL_GRE_SCANS * ! 29: * INCL_GRE_BITMAPS * ! 30: * INCL_GRE_STRINGS * ! 31: * INCL_GRE_PATHS * ! 32: * INCL_GRE_PICK * ! 33: * INCL_GRE_CLIP * ! 34: * INCL_GRE_REGIONS * ! 35: * INCL_GRE_XFORMS * ! 36: * INCL_GRE_DEVMISC * ! 37: * INCL_GRE_COLORTABLE * ! 38: * INCL_GRE_DEVICE * ! 39: * INCL_GRE_DCS * ! 40: * INCL_GRE_SETID * ! 41: * INCL_GRE_FONTS * ! 42: * INCL_GRE_JOURNALING * ! 43: * INCL_GRE_LCID * ! 44: * INCL_GRE_DEVSUPPORT * ! 45: * INCL_GRE_PALETTE * ! 46: \***************************************************************************/ ! 47: ! 48: /* exported Engine DDI functions */ ! 49: ! 50: ULONG PASCAL FAR SetDriverInfo( ULONG, LHANDLE, ULONG, HDC ); ! 51: ULONG PASCAL FAR GetDriverInfo( LHANDLE, ULONG, HDC ); ! 52: ULONG PASCAL FAR PostDeviceModes( PDRIVDATA, PSZ, PSZ, PSZ, ULONG ); ! 53: BOOL PASCAL FAR GreInitialize(VOID); ! 54: ! 55: /* define common types in the Engine and DDI */ ! 56: ! 57: typedef struct _RECTS { /* rcs */ ! 58: POINTS pts1; ! 59: POINTS pts2; ! 60: } RECTS; ! 61: typedef RECTS FAR *PRECTS; ! 62: ! 63: typedef struct _POINTFX { /* ptfx */ ! 64: FIXED x; ! 65: FIXED y; ! 66: } POINTFX; ! 67: typedef POINTFX FAR *PPOINTFX; ! 68: ! 69: typedef struct _RECTFX { /* rcfx */ ! 70: POINTFX ptfx1; ! 71: POINTFX ptfx2; ! 72: } RECTFX; ! 73: typedef RECTFX FAR *PRECTFX; ! 74: ! 75: typedef struct _XFORM { /* xform */ ! 76: FIXED fxM11; ! 77: FIXED fxM12; ! 78: FIXED fxM21; ! 79: FIXED fxM22; ! 80: LONG lM41; ! 81: LONG lM42; ! 82: } XFORM; ! 83: typedef XFORM FAR *PXFORM; ! 84: ! 85: typedef LONG LCID; /* locally-coded id */ ! 86: typedef LCID FAR *PLCID; ! 87: typedef LONG PHID; /* path id */ ! 88: typedef ULONG HDEVPAL; ! 89: ! 90: /* get GRE function macros */ ! 91: /* have INCL_GREALL defined to get all of these */ ! 92: ! 93: #ifdef INCL_GREALL ! 94: #define INCL_GRE_ARCS ! 95: #define INCL_GRE_LINES ! 96: #define INCL_GRE_MARKERS ! 97: #define INCL_GRE_SCANS ! 98: #define INCL_GRE_BITMAPS ! 99: #define INCL_GRE_STRINGS ! 100: #define INCL_GRE_PATHS ! 101: #define INCL_GRE_PICK ! 102: #define INCL_GRE_CLIP ! 103: #define INCL_GRE_REGIONS ! 104: #define INCL_GRE_XFORMS ! 105: #define INCL_GRE_DEVMISC ! 106: #define INCL_GRE_COLORTABLE ! 107: #define INCL_GRE_DEVICE ! 108: #define INCL_GRE_DCS ! 109: #define INCL_GRE_SETID ! 110: #define INCL_GRE_FONTS ! 111: #define INCL_GRE_JOURNALING ! 112: #define INCL_GRE_LCID ! 113: #define INCL_GRE_DEVSUPPORT ! 114: #define INCL_GRE_PALETTE ! 115: #endif /* INCL_GREALL */ ! 116: ! 117: #ifdef INCL_GRE_DEVMISC ! 118: #define INCL_GRE_DEVMISC1 ! 119: #define INCL_GRE_DEVMISC2 ! 120: #define INCL_GRE_DEVMISC3 ! 121: #endif /* INCL_GRE_DEVMISC */ ! 122: ! 123: /* Command Flags for high word of FunN */ ! 124: ! 125: #ifdef INCL_DDICOMFLAGS ! 126: #define COM_DRAW 0x0001 ! 127: #define COM_BOUND 0x0002 ! 128: #define COM_CORRELATE 0x0004 ! 129: #define COM_ALT_BOUND 0x0008 ! 130: #define COM_AREA 0x0010 ! 131: #define COM_PATH 0x0020 ! 132: #define COM_TRANSFORM 0x0040 ! 133: #define COM_RECORDING 0x0080 ! 134: #define COM_DEVICE 0x0100 ! 135: #endif /* INCL_DDICOMFLAGS */ ! 136: ! 137: #ifdef INCL_GRE_ARCS ! 138: ! 139: /* BoxBoundary */ ! 140: /* BoxInterior */ ! 141: /* BoxBoth */ ! 142: ! 143: typedef struct _BOXPARAMS { /* boxp */ ! 144: POINTL ptl; ! 145: SIZEL sizl; ! 146: } BOXPARAMS; ! 147: typedef BOXPARAMS FAR *PBOXPARAMS; ! 148: #endif /* INCL_GRE_ARCS */ ! 149: ! 150: #ifdef INCL_GRE_CLIP ! 151: ! 152: /* CopyClipRegion */ ! 153: ! 154: #define COPYCRGN_ALLINTERSECT 0L ! 155: #define COPYCRGN_VISRGN 1L ! 156: #define COPYCRGN_CLIPRGN 2L ! 157: ! 158: /* SetupDC */ ! 159: ! 160: #define SETUPDC_VISRGN 0x00000001L ! 161: #define SETUPDC_ORIGIN 0x00000002L ! 162: #define SETUPDC_ACCUMBOUNDSON 0x00000004L ! 163: #define SETUPDC_ACCUMBOUNDSOFF 0x00000008L ! 164: #define SETUPDC_RECALCCLIP 0x00000010L ! 165: #define SETUPDC_SETOWNER 0x00000020L ! 166: #define SETUPDC_CLEANDC 0x00000040L ! 167: ! 168: #endif /* INCL_GRE_CLIP */ ! 169: ! 170: #ifdef INCL_GRE_XFORMS ! 171: /* QueryViewportSize */ ! 172: ! 173: typedef struct _VIEWPORTSIZE { /* vs */ ! 174: ULONG cx; ! 175: ULONG cy; ! 176: } VIEWPORTSIZE; ! 177: typedef VIEWPORTSIZE FAR *PVIEWPORTSIZE; ! 178: ! 179: #endif /* INCL_GRE_XFORMS */ ! 180: ! 181: #ifdef INCL_GRE_DEVSUPPORT ! 182: ! 183: /* Constants for GreInitializeAttributes */ ! 184: ! 185: #define INAT_DEFAULTATTRIBUTES 1L ! 186: #define INAT_CURRENTATTRIBUTES 2L ! 187: ! 188: /* InvalidateVisRegion */ ! 189: ! 190: typedef struct _DC_BLOCK { /* ivr */ ! 191: ULONG hdc; ! 192: ULONG hddc; ! 193: } DC_BLOCK; ! 194: typedef DC_BLOCK FAR *PDC_BLOCK; ! 195: ! 196: #endif /* INCL_GRE_DEVSUPPORT */ ! 197: ! 198: #ifdef INCL_DDIMISC ! 199: ! 200: /* Display information resource structure (RT_DISPLAYINFO) */ ! 201: ! 202: typedef struct _DISPLAYINFO { /* dspinfo */ ! 203: USHORT cb; ! 204: SHORT cxIcon; ! 205: SHORT cyIcon; ! 206: SHORT cxPointer; ! 207: SHORT cyPointer; ! 208: SHORT cxBorder; ! 209: SHORT cyBorder; ! 210: SHORT cxHSlider; ! 211: SHORT cyVSlider; ! 212: SHORT cxSizeBorder; ! 213: SHORT cySizeBorder; ! 214: SHORT cxDeviceAlign; ! 215: SHORT cyDeviceAlign; ! 216: } DISPLAYINFO; ! 217: typedef DISPLAYINFO FAR *PDISPLAYINFO; ! 218: ! 219: /* Parameters for the DC Enable function */ ! 220: ! 221: typedef struct _DENPARAMS { /* den */ ! 222: ULONG ulStateInfo; ! 223: ULONG ulType; ! 224: ULONG ulHDC; ! 225: } DENPARAMS; ! 226: typedef DENPARAMS FAR *PDENPARAMS; ! 227: ! 228: ! 229: typedef struct _STYLERATIO { /* sr */ ! 230: BYTE dx; ! 231: BYTE dy; ! 232: } STYLERATIO; ! 233: typedef STYLERATIO FAR *PSTYLERATIO; ! 234: ! 235: /* Options flags for SetGlobalAttribute */ ! 236: ! 237: #define GATTR_DEFAULT 1L ! 238: ! 239: /* Attribute Types for SetGlobalAttribute */ ! 240: ! 241: #define ATYPE_COLOR 1L ! 242: #define ATYPE_BACK_COLOR 2L ! 243: #define ATYPE_MIX_MODE 3L ! 244: #define ATYPE_BACK_MIX_MODE 4L ! 245: ! 246: /* Options for CharStringPos */ ! 247: ! 248: #define CHS_START_XY 0x00000020L ! 249: #define CHS_ATTR_INFO 0x00000040L ! 250: ! 251: typedef struct _CSP_INFO { /* csp */ ! 252: LONG cSize; ! 253: LONG lColor; ! 254: LONG lBackColor; ! 255: } CSP_INFO; ! 256: typedef CSP_INFO FAR *PCSP_INFO; ! 257: ! 258: /* Set/GetProcessControl */ ! 259: ! 260: #define PCTL_DRAW 0x00000001L ! 261: #define PCTL_BOUND 0x00000002L ! 262: #define PCTL_CORRELATE 0x00000004L ! 263: #define PCTL_USERBOUNDS 0x00000008L ! 264: #define PCTL_AREA 0x00000010L ! 265: ! 266: /* ResetBounds */ ! 267: ! 268: #define RB_GPI 0x00000001L ! 269: #define RB_USER 0x00000002L ! 270: ! 271: /* GetBoundsData */ ! 272: ! 273: #define GBD_GPI 0L ! 274: #define GBD_USER 1L ! 275: ! 276: /* EndArea Cancel Option */ ! 277: ! 278: #define EA_DRAW 0x00000000L ! 279: #define EA_CANCEL 0x00000001L ! 280: ! 281: /* Bitblt Style */ ! 282: ! 283: #define BLTMODE_SRC_BITMAP 0x00010000L ! 284: #define BLTMODE_ATTRS_PRES 0x00020000L ! 285: #define BLTMODE_NO_PAL_MAP 0x00080000L ! 286: #define BBO_TARGWORLD 0x00000100L ! 287: ! 288: typedef struct _BITBLTPARAMETERS { /* bbp */ ! 289: RECTL rclTarg; ! 290: RECTL rclSrc; ! 291: } BITBLTPARAMETERS; ! 292: typedef BITBLTPARAMETERS FAR *PBITBLTPARAMETERS; ! 293: ! 294: typedef struct _BITBLTATTRS { /* bba */ ! 295: LONG cSize; ! 296: LONG lColor; ! 297: LONG lBackColor; ! 298: } BITBLTATTRS; ! 299: typedef BITBLTATTRS FAR *PBITBLTATTRS; ! 300: ! 301: /* LCIDs */ ! 302: ! 303: #define LCID_AVIO_1 (-2L) ! 304: #define LCID_AVIO_2 (-3L) ! 305: #define LCID_AVIO_3 (-4L) ! 306: ! 307: #define LCID_RANGE_GPI 1L ! 308: #define LCID_RANGE_AVIO 2L ! 309: #define LCID_RANGE_BOTH 3L ! 310: #define LCID_GRAPHICS_MIN 1 ! 311: #define LCID_GRAPHICS_MAX 254 ! 312: ! 313: #define LCIDT_NONE 0L ! 314: ! 315: /* ResetDC */ ! 316: ! 317: #define RDC_RGBMODE 0x1L ! 318: #define RDC_SETOWNERTOSHELL 0x2L ! 319: ! 320: /* SetRandomXform */ ! 321: ! 322: #define SX_UNITY 0L ! 323: #define SX_CAT_AFTER 1L ! 324: #define SX_CAT_BEFORE 2L ! 325: #define SX_OVERWRITE 3L ! 326: ! 327: /* transform accelerators */ ! 328: /* These bits are only valid if the MATRIX_SIMPLE bit is set. */ ! 329: /* The X and Y negate flags are only meaningful if MATRIX_UNITS is set.*/ ! 330: ! 331: #define MATRIX_SIMPLE 0x0001L /* two entries are zero */ ! 332: #define MATRIX_UNITS 0x0002L /* all entries are +1 or -1 */ ! 333: #define MATRIX_XY_EXCHANGE 0x0004L /* zeros are on the diagonal*/ ! 334: #define MATRIX_X_NEGATE 0x0008L /* X is hit by negative */ ! 335: #define MATRIX_Y_NEGATE 0x0010L /* Y is hit by negative */ ! 336: #define MATRIX_TRANSLATION 0x0020L /* non-zero translation */ ! 337: ! 338: /* NotifyClipChange */ ! 339: ! 340: #define NCC_CLEANDC 0x0002L /* clear DC dirty bit */ ! 341: ! 342: /* NotifyTransformChange */ ! 343: ! 344: typedef struct _NOTIFYTRANSFORMDATA { /* ntd */ ! 345: USHORT usType; ! 346: XFORM xform; ! 347: } NOTIFYTRANSFORMDATA; ! 348: typedef NOTIFYTRANSFORMDATA FAR *PNOTIFYTRANSFORMDATA; ! 349: ! 350: ! 351: /* ColorTable */ ! 352: ! 353: #define LCOL_SYSCOLORS 0x0010L ! 354: ! 355: ! 356: /* query device caps */ ! 357: ! 358: typedef struct _QCDARRAY { /* qcd */ ! 359: LONG iFormat; ! 360: LONG iSmallest; ! 361: LONG iLargest; ! 362: LONG cAvailable; ! 363: LONG cSpecifiable; ! 364: LONG iMax; ! 365: } QCDARRAY; ! 366: typedef QCDARRAY FAR *PQCDARRAY; ! 367: ! 368: #define CAPS_MIX_OR 0x00000001L ! 369: #define CAPS_MIX_COPY 0x00000002L ! 370: #define CAPS_MIX_UNDERPAINT 0x00000004L ! 371: #define CAPS_MIX_XOR 0x00000008L ! 372: #define CAPS_MIX_INVISIBLE 0x00000010L ! 373: #define CAPS_MIX_AND 0x00000020L ! 374: #define CAPS_MIX_OTHER 0x00000040L ! 375: ! 376: #define CAPS_DEV_FONT_SIM_BOLD 1L // for CAPS_DEVICE_FONT_SIM ! 377: #define CAPS_DEV_FONT_SIM_ITALIC 2L ! 378: #define CAPS_DEV_FONT_SIM_UNDERSCORE 4L ! 379: #define CAPS_DEV_FONT_SIM_STRIKEOUT 8L ! 380: ! 381: #define CAPS_BACKMIX_OR 0x00000001L ! 382: #define CAPS_BACKMIX_COPY 0x00000002L ! 383: #define CAPS_BACKMIX_UNDERPAINT 0x00000004L ! 384: #define CAPS_BACKMIX_XOR 0x00000008L ! 385: #define CAPS_BACKMIX_INVISIBLE 0x00000010L ! 386: ! 387: ! 388: /*#define CAPS_RASTER_BITBLT 0x00000001L defined in pmdev.h */ ! 389: /*#define CAPS_RASTER_BANDING 0x00000002L */ ! 390: /*#define CAPS_RASTER_STRETCHBLT 0x00000004L */ ! 391: /*#define CAPS_RASTER_SETPEL 0x00000010L */ ! 392: #define CAPS_FONT_OUTLINE_MANAGE 16L ! 393: #define CAPS_FONT_IMAGE_MANAGE 32L ! 394: #define SFONT_RASTER 100 ! 395: #define SFONT_OUTLINE 101 ! 396: #define FONT 1000 /* must not conflict with RT_XXX */ ! 397: /* constants in BSEDOS.H */ ! 398: ! 399: /* DCCaps */ ! 400: ! 401: #define DCCAPS_LINE 0x0100 ! 402: #define DCCAPS_CURVE 0x0200 ! 403: #define DCCAPS_AREA 0x0400 ! 404: #define DCCAPS_MARKER 0x0800 ! 405: #define DCCAPS_TEXT 0x1000 ! 406: ! 407: /* DeviceDeleteBitmap */ ! 408: #define BITMAP_USAGE_TRANSLATE 0x0004 ! 409: ! 410: /* DeleteBitmap return structure */ ! 411: typedef struct _DELETERETURN { /* dr */ ! 412: ULONG pInfo; ! 413: ULONG pBits; ! 414: } DELETERETURN; ! 415: typedef DELETERETURN FAR *PDELETERETURN; ! 416: ! 417: /* Short Line Header */ ! 418: ! 419: #define SLH_FORMAT_IS_16_DOT_16 1 ! 420: #define PSL_YMAJOR 0x8000 /* bit mask for usStyle */ ! 421: ! 422: typedef struct _SHORTLINEHEADER { /* slh */ ! 423: USHORT usStyle; ! 424: USHORT usFormat; ! 425: POINTS ptsStart; ! 426: POINTS ptsStop; ! 427: SHORT sxLeft; ! 428: SHORT sxRight; ! 429: struct _SHORTLINEHEADER FAR * pslhNext; ! 430: struct _SHORTLINEHEADER FAR * pslhPrev; ! 431: } SHORTLINEHEADER; ! 432: typedef SHORTLINEHEADER FAR *PSHORTLINEHEADER; ! 433: ! 434: /* Short Line */ ! 435: ! 436: typedef struct _SHORTLINE { /* sl */ ! 437: SHORTLINEHEADER slh; ! 438: SHORT ax[1]; ! 439: } SHORTLINE; ! 440: typedef SHORTLINE FAR *PSHORTLINE; ! 441: ! 442: typedef struct _SCANDATA { /* sd */ ! 443: PSHORTLINE pslFirstLeft; ! 444: PSHORTLINE pslLastLeft; ! 445: PSHORTLINE pslFirstRight; ! 446: PSHORTLINE pslLastRight; ! 447: ULONG c; ! 448: RECTL rclBound; ! 449: } SCANDATA; ! 450: typedef SCANDATA FAR *PSCANDATA; ! 451: ! 452: /* Index for Set/GetDriverInfo */ ! 453: ! 454: #define DI_HDC 0x00000000L ! 455: #define DI_HBITMAP 0x00000001L ! 456: ! 457: #endif /* INCL_DDIMISC */ ! 458: ! 459: #ifdef INCL_DDIMISC2 ! 460: ! 461: /* RealizeFont */ ! 462: ! 463: #define REALIZE_FONT 1 /* To be removed */ ! 464: #define REALIZE_ENGINE_FONT 2 ! 465: #define DELETE_FONT 3 ! 466: ! 467: #define RF_DEVICE_FONT 1 ! 468: #define RF_LOAD_ENGINE_FONT 2 ! 469: #define RF_DELETE_FONT 3 ! 470: #define RF_DELETE_ENGINE_FONT 4 ! 471: ! 472: #endif /* INCL_DDIMISC2 */ ! 473: ! 474: #ifdef INCL_DDIBUNDLES ! 475: ! 476: /* Device Line Bundle */ ! 477: ! 478: typedef struct _LINEDEFS { /* ldef */ ! 479: ULONG defType; ! 480: } LINEDEFS; ! 481: typedef LINEDEFS FAR *PLINDEFS; ! 482: ! 483: typedef struct _DLINEBUNDLE { /* dlbnd */ ! 484: SHORT cAttr; ! 485: SHORT cDefs; ! 486: LINEBUNDLE lbnd; ! 487: LINEDEFS ldef; ! 488: } DLINEBUNDLE; ! 489: typedef DLINEBUNDLE FAR *PDLINEBUNDLE; ! 490: ! 491: /* Device Area Bundle */ ! 492: ! 493: typedef struct _AREADEFS { /* adef */ ! 494: ULONG defSet; ! 495: UINT fFlags; ! 496: UINT CodePage; ! 497: } AREADEFS; ! 498: typedef AREADEFS FAR *PAREADEFS; ! 499: ! 500: typedef struct _DAREABUNDLE { /* dabnd */ ! 501: SHORT cAttr; ! 502: SHORT cDefs; ! 503: AREABUNDLE abnd; ! 504: AREADEFS adef; ! 505: } DAREABUNDLE; ! 506: typedef DAREABUNDLE FAR *PDAREABUNDLE; ! 507: ! 508: /* Device Character Bundle */ ! 509: ! 510: typedef struct _CHARDEFS { /* cdef */ ! 511: ULONG defSet; ! 512: UINT fFlags; ! 513: UINT CodePage; ! 514: UINT charSpacing; ! 515: } CHARDEFS; ! 516: typedef CHARDEFS FAR *PCHARDEFS; ! 517: ! 518: typedef struct _DCHARBUNDLE { /* dcbnd */ ! 519: SHORT cAttr; ! 520: SHORT cDefs; ! 521: CHARBUNDLE cbnd; ! 522: CHARDEFS cdef; ! 523: } DCHARBUNDLE; ! 524: typedef DCHARBUNDLE FAR *PDCHARBUNDLE; ! 525: ! 526: /* Device Image Bundle */ ! 527: ! 528: #ifdef BOGUS ! 529: typedef struct _IMAGEDEFS { /* idef */ ! 530: } IMAGEDEFS; ! 531: #endif /* BOGUS */ ! 532: ! 533: typedef struct _DIMAGEBUNDLE { /* dibnd */ ! 534: SHORT cAttr; ! 535: SHORT cDefs; ! 536: IMAGEBUNDLE ibnd; ! 537: /* IMAGEDEFS idef; */ ! 538: } DIMAGEBUNDLE; ! 539: typedef DIMAGEBUNDLE FAR *PDIMAGEBUNDLE; ! 540: ! 541: /* Device Marker Bundle */ ! 542: ! 543: typedef struct _MARKERDEFS { /* mdef */ ! 544: ULONG defSet; ! 545: UINT fFlags; ! 546: UINT CodePage; ! 547: } MARKERDEFS; ! 548: typedef MARKERDEFS FAR *PMARKERDEFS; ! 549: ! 550: typedef struct _DMARKERBUNDLE { /* dmbnd */ ! 551: SHORT cAttr; ! 552: SHORT cDefs; ! 553: MARKERBUNDLE mbnd; ! 554: MARKERDEFS mdef; ! 555: } DMARKERBUNDLE; ! 556: typedef DMARKERBUNDLE FAR *PDMARKERBUNDLE; ! 557: ! 558: ! 559: #endif /* INCL_DDIBUNDLES */ ! 560: ! 561: /* This stuff should go away soon. use INCL_FONTFILEFORMAT and include os2.h */ ! 562: #ifdef INCL_DDIFONTSTRUCS ! 563: #include <pmfont.h> ! 564: #endif /* INCL_DDIFONTSTRUCS */ ! 565: ! 566: /* This stuff should go away soon. use INCL_BITMAPFILEFORMAT and include os2.h */ ! 567: #ifdef INCL_DDIBITMAPFILE ! 568: #include <pmbitmap.h> ! 569: #endif /* INCL_DDIBITMAPFILE */ ! 570: ! 571: #ifdef INCL_DDIPATHS ! 572: ! 573: /* Signatures of Path data structures */ ! 574: ! 575: #define CURVE_IDENTIFIER 0x43 ! 576: #define SUBPATH_IDENTIFIER 0x53 ! 577: #define PATH_IDENTIFIER 0x50 ! 578: #define PATHSEGMENT_IDENTIFIER 0x5350 ! 579: ! 580: /* Curve types */ ! 581: ! 582: #define LINE_IDENTIFIER 0x4C ! 583: #define FILLET_SHARP_IDENTIFIER 0x46 ! 584: #define FILLET_EQN_IDENTIFIER 0x45 ! 585: #define CURVEATTR_IDENTIFIER 0x41 ! 586: ! 587: /* Subpath types */ ! 588: ! 589: #define SUBPATH_CLOSED 0x43 ! 590: #define SUBPATH_OPEN 0x4F ! 591: ! 592: /* Path types */ ! 593: ! 594: #define BEGINAREA_IDENTIFIER 0x41 ! 595: #define BEGINPATH_IDENTIFIER 0x50 ! 596: #define PATHSEGMENT_FORMAT_16_16 1 ! 597: ! 598: /* Flags for curve data structures */ ! 599: ! 600: #define CURVE_FIRST_IN_SUBPATH 0x0001 ! 601: #define CURVE_DO_FIRST_PEL 0x0002 ! 602: #define CURVE_GOES_UP 0x0004 ! 603: #define CURVE_IS_HORIZONTAL 0x0008 ! 604: #define CURVE_IS_X_MAJOR 0x0010 ! 605: #define CURVE_GOES_LEFT 0x0020 ! 606: #define CURVE_FIRST_CARVED 0x0040 ! 607: #define CURVE_HALF_COOKED 0x0400 ! 608: #define CURVE_IS_ABOVE_OR_RIGHT 0x0800 ! 609: /* Flags for SubPath data structures */ ! 610: ! 611: #define SUBPATH_DO_FIRST_PEL 0x0002 ! 612: ! 613: /* Flags for Path data structures */ ! 614: ! 615: #define PATH_HAS_LINES_PRESENT 0x4000 ! 616: #define PATH_HAS_CONICS_PRESENT 0x8000 ! 617: ! 618: /* Data structures to support the Path API */ ! 619: ! 620: typedef struct _CURVE { /* cv */ ! 621: BYTE bIdent; ! 622: BYTE bType; ! 623: USHORT usStyle; ! 624: USHORT fs; ! 625: struct _CURVE NEAR *npcvNext; ! 626: struct _CURVE NEAR *npcvPrev; ! 627: struct _CURVE NEAR *npcvAttrs; ! 628: POINTFX ptfxA; ! 629: POINTFX ptfxC; ! 630: BYTE Reserved2[16]; ! 631: } CURVE; ! 632: typedef CURVE FAR *PCURVE; ! 633: typedef CURVE NEAR *NPCURVE; ! 634: ! 635: typedef struct _LINE { /* ln */ ! 636: BYTE bIdent; ! 637: BYTE bType; ! 638: USHORT usStyle; ! 639: USHORT fs; ! 640: CURVE NEAR *npcvNext; ! 641: CURVE NEAR *npcvPrev; ! 642: CURVE NEAR *npcvAttrs; ! 643: POINTFX ptfxA; ! 644: POINTFX ptfxC; ! 645: POINTS ptsA; ! 646: POINTS ptsC; ! 647: FIXED lRslope; ! 648: BYTE Reserved2[4]; ! 649: } LINE; ! 650: typedef LINE FAR *PLINE; ! 651: typedef LINE NEAR *NPLINE; ! 652: ! 653: typedef struct _FILLETEQN { /* fse */ ! 654: BYTE bIdent; ! 655: BYTE bType; ! 656: USHORT usReferences; ! 657: POINTS ptsA; ! 658: POINTS ptsC; ! 659: POINTS ptsB; ! 660: USHORT usNumerator; ! 661: USHORT usDenominator; ! 662: LONG lAlpha; ! 663: LONG lBeta; ! 664: LONG lGamma; ! 665: LONG lDelta; ! 666: LONG lEpsilon; ! 667: LONG lZeta; ! 668: } FILLETEQN; ! 669: typedef FILLETEQN FAR *PFILLETEQN; ! 670: typedef FILLETEQN NEAR *NPFILLETEQN; ! 671: ! 672: typedef struct _FILLETSHARP { /* fs */ ! 673: BYTE bIdent; ! 674: BYTE bType; ! 675: USHORT usStyle; ! 676: USHORT fs; ! 677: CURVE NEAR *npcvNext; ! 678: CURVE NEAR *npcvPrev; ! 679: CURVE NEAR *npcvAttrs; ! 680: POINTFX ptfxA; ! 681: POINTFX ptfxC; ! 682: POINTFX ptfxB; ! 683: FIXED lSharpness; ! 684: FILLETEQN NEAR *npEquation; ! 685: BYTE Reserved2[2]; ! 686: } FILLETSHARP; ! 687: typedef FILLETSHARP FAR *PFILLETSHARP; ! 688: typedef FILLETSHARP NEAR *NPFILLETSHARP; ! 689: ! 690: #ifdef INCL_GPIPRIMITIVES ! 691: typedef struct _CURVEATTR { /* cva */ ! 692: BYTE bIdent; ! 693: BYTE bType; ! 694: ULONG flAttrs; /* which fields have new info */ ! 695: BYTE Reserved1[4]; ! 696: CURVE NEAR *npcvAttrs; ! 697: ULONG flDefs; /* which fields have default info */ ! 698: LINEBUNDLE lbnd; /* the info */ ! 699: BYTE Reserved2[2]; ! 700: } CURVEATTR; ! 701: typedef CURVEATTR FAR *PCURVEATTR; ! 702: typedef CURVEATTR NEAR *NPCURVEATTR; ! 703: #endif /* INCL_GPIPRIMITIVES */ ! 704: ! 705: typedef struct _SUBPATH { /* sp */ ! 706: BYTE bIdent; ! 707: BYTE bType; ! 708: USHORT usStyle; ! 709: USHORT fs; ! 710: struct _SUBPATH NEAR *npspNext; ! 711: struct _SUBPATH NEAR *npspPrev; ! 712: USHORT ccv; ! 713: ULONG flFlags; ! 714: CURVE NEAR *npcvFirst; ! 715: CURVE NEAR *npcvLast; ! 716: RECTS rcsBounding; ! 717: CURVE NEAR *npcvAttrs; ! 718: BYTE Reserved1[14]; ! 719: } SUBPATH; ! 720: typedef SUBPATH FAR *PSUBPATH; ! 721: typedef SUBPATH NEAR *NPSUBPATH; ! 722: ! 723: #define PH_FORMAT_IS_16_DOT_16 1 ! 724: ! 725: typedef struct _PATH { /* ph */ ! 726: BYTE bIdent; ! 727: BYTE bType; ! 728: USHORT usFormat; ! 729: USHORT usStyle; ! 730: USHORT fs; ! 731: SUBPATH NEAR *npspFirst; ! 732: SUBPATH NEAR *npspLast; ! 733: USHORT csp; ! 734: ULONG flFlags; ! 735: USHORT usDimension; ! 736: BYTE bSubpathType; ! 737: LONG alColor; ! 738: USHORT ausMixMode; ! 739: USHORT ausDefault; ! 740: POINTL aptlRefPoint ; ! 741: CURVE NEAR *npcvAttrs; ! 742: BYTE Reserved1[7]; ! 743: } PATH; ! 744: typedef PATH FAR *PPATH; ! 745: typedef PATH NEAR *NPPATH; ! 746: ! 747: typedef struct _PATHSEGMENT { /* phs */ ! 748: USHORT usIdent; ! 749: SHORT Reserved0; ! 750: CURVE NEAR *npcvFree; ! 751: USHORT ccvFree; ! 752: USHORT cReferences; ! 753: USHORT usSize; ! 754: PATH NEAR *npph; ! 755: BYTE Reserved1[2]; ! 756: FSRSEM fsrs; ! 757: } PATHSEGMENT; ! 758: typedef PATHSEGMENT FAR *PPATHSEGMENT; ! 759: typedef PATHSEGMENT NEAR *NPPATHSEGMENT; ! 760: ! 761: /* Argument to DrawCookedPath, etc. */ ! 762: ! 763: typedef struct _PIPELINEINFO { /* pi */ ! 764: CURVE FAR *pcv; ! 765: ULONG ccv; ! 766: } PIPELINEINFO; ! 767: typedef PIPELINEINFO FAR *PPIPELINEINFO; ! 768: typedef PIPELINEINFO NEAR *NPPIPELINEINFO; ! 769: #endif /* INCL_DDIPATHS */ ! 770: ! 771: #ifdef INCL_GRE_JOURNALING ! 772: #define JNL_TEMP_FILE 0x00000001L ! 773: #define JNL_PERM_FILE 0x00000002L ! 774: #define JNL_ENGINERAM_FILE 0x00000004L ! 775: #define JNL_USERRAM_FILE 0x00000008L ! 776: #define JNL_DRAW_OPTIMIZATION 0x00000010L ! 777: #define JNL_BOUNDS_OPTIMIZATION 0x00000020L ! 778: #endif /* INCL_GRE_JOURNALING */ ! 779: ! 780: ! 781: #ifdef INCL_GRE_DEVICE ! 782: ! 783: /* QueryDeviceBitmaps */ ! 784: ! 785: typedef struct _BITMAPFORMAT { /* bmf */ ! 786: ULONG cPlanes; ! 787: ULONG cBitCount; ! 788: } BITMAPFORMAT; ! 789: typedef BITMAPFORMAT FAR *PBITMAPFORMAT; ! 790: ! 791: #endif /* INCL_GRE_DEVICE */ ! 792: ! 793: #ifdef INCL_GRE_PALETTE ! 794: ! 795: typedef struct _PALETTEINFOHEADER { /* palinfohdr */ ! 796: ULONG flCmd; // options from creation ! 797: ULONG ulFormat; // specifies format of entries at creation ! 798: LONG lStart; // starting index from creation ! 799: LONG clColorData; // number of elements supplied at creation ! 800: } PALETTEINFOHEADER; ! 801: typedef PALETTEINFOHEADER NEAR *NPPALETTEINFOHEADER; ! 802: typedef PALETTEINFOHEADER FAR *PPALETTEINFOHEADER; ! 803: ! 804: typedef struct _PALETTEINFO { /* palinfo */ ! 805: ULONG flCmd; // options from creation ! 806: ULONG ulFormat; // specifies format of entries at creation ! 807: LONG lStart; // starting index from creation ! 808: LONG clColorData; // number of elements supplied at creation ! 809: RGB2 argb[1]; // the palette entries ! 810: } PALETTEINFO; ! 811: typedef PALETTEINFO NEAR *NPPALETTEINFO; ! 812: typedef PALETTEINFO FAR *PPALETTEINFO; ! 813: ! 814: /* flType values for RealizePalette */ ! 815: #define RP_FOREGROUND 1 ! 816: #define RP_FULL_DEFAULT_MODE 2 ! 817: #define RP_RESTRICTED_DEFAULT_MODE 4 ! 818: ! 819: #endif ! 820: ! 821: #ifdef INCL_GRE_BITMAPS ! 822: ! 823: #define LR_CLIPPED 2 ! 824: #define LR_NOTBORDER 0 ! 825: #define LR_BORDER 1 ! 826: #define LR_LEFT 2 ! 827: #define LR_RIGHT 4 ! 828: ! 829: #endif ! 830: ! 831: #include <pmddim.h>
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.