Annotation of os232sdk/toolkt20/c/os2h/pmddi.h, revision 1.1.1.1

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>

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.