Annotation of os232sdk/toolkt20/c/os2h/pmddi.h, revision 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.