Annotation of os232sdk/toolkt20/c/os2h/pmord.h, revision 1.1

1.1     ! root        1: /****************************** Module Header ******************************\
        !             2: *
        !             3: *   IBM/MicroSoft Confidential
        !             4: *
        !             5: *   Copyright (c) IBM Corporation 1987, 1989
        !             6: *   Copyright (c) MicroSoft Corporation 1987,1989
        !             7: *
        !             8: * Module Name: PMORD.H
        !             9: *
        !            10: * This is the include file which defines all the structures and constants
        !            11: * that can be used to build or intepret GOCA orders for the GPI
        !            12: *
        !            13: *
        !            14: * ==========================================================================
        !            15: *
        !            16: * The orders fall into 4 categories :-
        !            17: *
        !            18: * 1) 1-byte orders
        !            19: *
        !            20: * 2) 2-byte orders    - second byte contains the value
        !            21: *
        !            22: * 3) Long orders      - second byte gives the order length, subsequent bytes
        !            23: *                       contain the values (up to 256 bytes long)
        !            24: *
        !            25: * 4) Very long orders - third and fourth bytes gives the order length,
        !            26: *                       subsequent bytes contain the values (up to 64K long)
        !            27: *
        !            28: \***************************************************************************/
        !            29: 
        !            30: #if !(defined(INCL_32) || defined(INCL_16))
        !            31: #ifdef M_I386
        !            32:     #define INCL_32
        !            33: #else /* not M_I386 */
        !            34:     #define INCL_16
        !            35: #endif /* M_I386 */
        !            36: #endif /* INCL_32 || INCL_16 */
        !            37: 
        !            38: /* XLATOFF */
        !            39: #pragma pack(1)      /* pack on byte boundary                    @P3A*/
        !            40: /* XLATON */
        !            41: 
        !            42: /***************************************************************************\
        !            43: *
        !            44: * Miscellaneous structures used in this file
        !            45: *
        !            46: \***************************************************************************/
        !            47: 
        !            48: /* form of RECTL with shorts instead of longs */
        !            49: typedef struct _RECT1S {      /* rcs */
        !            50:     SHORT xLeft;
        !            51:     SHORT yBottom;
        !            52:     SHORT xRight;
        !            53:     SHORT yTop;
        !            54: } RECT1S;
        !            55: 
        !            56: /* form of POINTL with 1 byte offsets instead of longs */
        !            57: typedef struct _ODPOINT {       /* odpt */
        !            58:   CHAR   dx;
        !            59:   CHAR   dy;
        !            60: } ODPOINT;
        !            61: 
        !            62: /* form of SIZEL with shorts instead of longs */
        !            63: typedef struct _SIZES {         /* sizs */
        !            64:   SHORT  cx;
        !            65:   SHORT  cy;
        !            66: } SIZES;
        !            67: 
        !            68: 
        !            69: /* unsigned two-byte swapped integer */
        !            70: typedef struct _SWPUSHORT {     /* swpus */
        !            71:   UCHAR  HiByte;
        !            72:   UCHAR  LoByte;
        !            73: } SWPUSHORT;
        !            74: 
        !            75: /***************************************************************************\
        !            76: *
        !            77: * 1-byte orders
        !            78: *
        !            79: \***************************************************************************/
        !            80: 
        !            81: /* macro to tell whether this is a 1-byte order */
        !            82: #define BYTE_ORDER(oc)   ((oc)==OCODE_GNOP1 || (oc)==OCODE_GESD)
        !            83: 
        !            84: /* 1-byte order codes */
        !            85: #define OCODE_GNOP1    0x00            /* No-operation                */
        !            86: #define OCODE_GESD     0xFF            /* End symbol definition       */
        !            87: 
        !            88: /***************************************************************************\
        !            89: *
        !            90: * 2-byte orders
        !            91: *
        !            92: \***************************************************************************/
        !            93: 
        !            94: /* definitions to help determine whether an order code is a 2-byte order */
        !            95: #define OCODE2_1       0x80
        !            96: #define OCODE2_2       0x88
        !            97: 
        !            98: #define SHORT_ORDER(oc)  ((((oc)^OCODE2_1)&OCODE2_2)==OCODE2_2)
        !            99: 
        !           100: /* General 2-byte order structure */
        !           101: typedef struct _ORDER {         /* ord */
        !           102:   UCHAR  idCode;
        !           103:   UCHAR  uchData;
        !           104: } ORDER;
        !           105: 
        !           106: /* 2-byte order codes */
        !           107: #define OCODE_GBAR     0x68            /* Begin area                  */
        !           108: #define OCODE_GCFIG    0x7D            /* Close figure                */
        !           109: #define OCODE_GEEL     0x49            /* End element                 */
        !           110: #define OCODE_GEPTH    0x7F            /* End path                    */
        !           111: #define OCODE_GEPROL   0x3E            /* End prologue                */
        !           112: #define OCODE_GPOP     0x3F            /* Pop                         */
        !           113: #define OCODE_GSBMX    0x0D            /* Set background mix          */
        !           114: #define OCODE_GPSBMX   0x4D            /* Push & set b/g mix          */
        !           115: #define OCODE_GSCD     0x3A            /* Set char direction          */
        !           116: #define OCODE_GPSCD    0x7A            /* Push & set char direction   */
        !           117: #define OCODE_GSCR     0x39            /* Set char precision          */
        !           118: #define OCODE_GPSCR    0x79            /* Push & set char precision   */
        !           119: #define OCODE_GSCS     0x38            /* Set char set                */
        !           120: #define OCODE_GPSCS    0x78            /* Push & set char set         */
        !           121: #define OCODE_GSCOL    0x0A            /* Set color                   */
        !           122: #define OCODE_GPSCOL   0x4A            /* Push & set color            */
        !           123: #define OCODE_GSLE     0x1A            /* Set line end                */
        !           124: #define OCODE_GPSLE    0x5A            /* Push & set line end         */
        !           125: #define OCODE_GSLJ     0x1B            /* Set line join               */
        !           126: #define OCODE_GPSLJ    0x5B            /* Push & set line join        */
        !           127: #define OCODE_GSLT     0x18            /* Set line type               */
        !           128: #define OCODE_GPSLT    0x58            /* Push & set line type        */
        !           129: #define OCODE_GSLW     0x19            /* Set line width              */
        !           130: #define OCODE_GPSLW    0x59            /* Push & set line width       */
        !           131: #define OCODE_GSMP     0x3B            /* Set marker precision        */
        !           132: #define OCODE_GPSMP    0x7B            /* Push & set marker precision */
        !           133: #define OCODE_GSMS     0x3C            /* Set marker set              */
        !           134: #define OCODE_GPSMS    0x7C            /* Push & set marker set       */
        !           135: #define OCODE_GSMT     0x29            /* Set marker symbol           */
        !           136: #define OCODE_GPSMT    0x69            /* Push & set marker symbol    */
        !           137: #define OCODE_GSMX     0x0C            /* Set mix                     */
        !           138: #define OCODE_GPSMX    0x4C            /* Push & set mix              */
        !           139: #define OCODE_GSPS     0x08            /* Set pattern set             */
        !           140: #define OCODE_GPSPS    0x48            /* Push & set pattern set      */
        !           141: #define OCODE_GSPT     0x28            /* Set pattern symbol          */
        !           142: #define OCODE_GPSPT    0x09            /* Push & set pattern symbol   */
        !           143: 
        !           144: /* constants for 2-byte orders */
        !           145: 
        !           146: /* Begin area */
        !           147: #define GBAR_RESERVED   0x80
        !           148: #define GBAR_BOUNDARY   0xC0
        !           149: #define GBAR_NOBOUNDARY 0x80
        !           150: #define GBAR_WINDING    0xA0
        !           151: #define GBAR_ALTERNATE  0x80
        !           152: 
        !           153: /* Set Character Precision */
        !           154: #define GSCR_PRECISION  0x0F
        !           155: 
        !           156: /***************************************************************************\
        !           157: *
        !           158: * Long orders
        !           159: *
        !           160: \***************************************************************************/
        !           161: 
        !           162: /* definitions to help determine whether an order code is a long order */
        !           163: 
        !           164: #define OCODE_VLONG    0xFE
        !           165: 
        !           166: #define LONG_ORDER(oc) (!((oc)==OCODE_VLONG||BYTE_ORDER(oc)||SHORT_ORDER(oc)))
        !           167: 
        !           168: /* long order structure */
        !           169: #define LORDER_ML 253
        !           170: typedef struct _LORDER {        /* lord */
        !           171:   UCHAR  idCode;
        !           172:   UCHAR  uchLength;
        !           173:   UCHAR  uchData[LORDER_ML];
        !           174: } LORDER;
        !           175: 
        !           176: /* Long orders for which the length of data is normally zero */
        !           177: #define OCODE_GEAR     0x60            /* End Area                    */
        !           178: #define OCODE_GEIMG    0x93            /* End Image                   */
        !           179: 
        !           180: /* Long orders for which the data is contained in a type already defined */
        !           181: 
        !           182: /* Character String */
        !           183: #define OCODE_GCCHST   0x83            /* char string at curr posn    */
        !           184: #define GCCHST_MC      255             /* Max len of string in bytes  */
        !           185: 
        !           186: #define OCODE_GCHST    0xC3            /* char string at given pos    */
        !           187: #define GCHST_SMC      251             /* Max len of string (S)       */
        !           188: #define GCHST_LMC      247             /* Max len of string (L)       */
        !           189: 
        !           190: /* Character String Move */
        !           191: #define OCODE_GCCHSTM  0xB1            /* char string move at c.p.    */
        !           192: #define GCCHSTM_MC     255             /* Max len of string in byte   */
        !           193: 
        !           194: #define OCODE_GCHSTM   0xF1            /* char string move at g.p.    */
        !           195: #define GCHSTM_SMC     251             /* Max len of string (S)       */
        !           196: #define GCHSTM_LMC     247             /* Max len of string (L)       */
        !           197: 
        !           198: /* Comment */
        !           199: #define OCODE_GCOMT    0x01            /* Comment                     */
        !           200: #define GCOMT_ML       255             /* Maximum len of comment data */
        !           201: 
        !           202: /* Image */
        !           203: #define OCODE_GIMD     0x92            /* Image data                  */
        !           204: #define GIMD_ML        255             /* Maximum len of image data   */
        !           205: 
        !           206: /* Full Arc */
        !           207: #define OCODE_GCFARC   0x87            /* full arc at current posn    */
        !           208: #define OCODE_GFARC    0xC7            /* full arc at given posn      */
        !           209: 
        !           210: /* Label */
        !           211: #define OCODE_GLABL    0xD3            /* Label                       */
        !           212: 
        !           213: /* Set Current Position */
        !           214: #define OCODE_GSCP     0x21            /* Set current position        */
        !           215: #define OCODE_GPSCP    0x61            /* Push and set curr posn      */
        !           216: 
        !           217: /* Bezier spline */
        !           218: #define OCODE_GCBEZ    0xA5            /* Bezier spline at curr pos   */
        !           219: #define GCBEZ_SMB      21              /* Max number of splines (S)   */
        !           220: #define GCBEZ_LMB      10              /* Max number of splines (L)   */
        !           221: 
        !           222: #define OCODE_GBEZ     0xE5            /* Bezier spline at given pos  */
        !           223: #define GBEZ_SMB       20              /* Max number of splines (S)   */
        !           224: #define GBEZ_LMB       10              /* Max number of splines (L)   */
        !           225: 
        !           226: /* Fillet */
        !           227: #define OCODE_GCFLT    0x85            /* fillet at current posn      */
        !           228: #define GCFLT_SMP      63              /* Max number of points (S)    */
        !           229: #define GCFLT_LMP      31              /* Max number of points (L)    */
        !           230: 
        !           231: #define OCODE_GFLT     0xC5            /* fillet at given position    */
        !           232: #define GFLT_SMP       62              /* Max number of points (S)    */
        !           233: #define GFLT_LMP       30              /* Max number of points (L)    */
        !           234: 
        !           235: /* Polyline */
        !           236: #define OCODE_GCLINE   0x81            /* polyline at current posn    */
        !           237: #define GCLINE_SMP     63              /* Max number of points (S)    */
        !           238: #define GCLINE_LMP     31              /* Max number of points (L)    */
        !           239: 
        !           240: #define OCODE_GLINE    0xC1            /* polyline at given posn      */
        !           241: #define GLINE_SMP      62              /* Max number of points (S)    */
        !           242: #define GLINE_LMP      30              /* Max number of points (L)    */
        !           243: 
        !           244: /* Polymarker */
        !           245: #define OCODE_GCMRK    0x82            /* marker at current posn      */
        !           246: #define GCMRK_SMP      63              /* Max number of points (S)    */
        !           247: #define GCMRK_LMP      31              /* Max number of points (L)    */
        !           248: 
        !           249: #define OCODE_GMRK     0xC2            /* marker at given posn        */
        !           250: #define GMRK_SMP       62              /* Max number of points (S)    */
        !           251: #define GMRK_LMP       30              /* Max number of points (L)    */
        !           252: 
        !           253: /* Relative Line */
        !           254: #define OCODE_GCRLINE  0xA1            /* Relative line at curr pos   */
        !           255: #define GCRLINE_MP     127             /* Max number of points        */
        !           256: 
        !           257: #define OCODE_GRLINE   0xE1            /* Relative line at givn pos   */
        !           258: #define GRLINE_SMP     125             /* Max number of points (S)    */
        !           259: #define GRLINE_LMP     123             /* Max number of points (L)    */
        !           260: 
        !           261: /* Set Background Color */
        !           262: #define OCODE_GSBCOL   0x25            /* Set background color        */
        !           263: #define OCODE_GPSBCOL  0x65            /* Push and set b/g color      */
        !           264: 
        !           265: /* Set Extended Color */
        !           266: #define OCODE_GSECOL   0x26            /* Set extended color          */
        !           267: #define OCODE_GPSECOL  0x66            /* Push and set ext color      */
        !           268: 
        !           269: /* Extended Color values */
        !           270: #define SECOL_DEFAULT0  0x0000
        !           271: #define SECOL_DEFAULT1  0xFF00
        !           272: #define SECOL_NEUTRAL   0xFF07
        !           273: #define SECOL_RESET     0xFF08
        !           274: 
        !           275: /* Set Character Angle */
        !           276: #define OCODE_GSCA     0x34            /* Set character angle         */
        !           277: #define OCODE_GPSCA    0x74            /* Push and set char angle     */
        !           278: 
        !           279: /* Set Character Shear */
        !           280: #define OCODE_GSCH     0x35            /* Set character shear         */
        !           281: #define OCODE_GPSCH    0x75            /* Push and set char shear     */
        !           282: 
        !           283: /* Set Fractional Line Width */
        !           284: #define OCODE_GSFLW    0x11            /* Set fractional line width   */
        !           285: #define OCODE_GPSFLW   0x51            /* Push and set frac l width   */
        !           286: 
        !           287: /* Set Pick Identifier */
        !           288: #define OCODE_GSPIK    0x43            /* Set pick identifier         */
        !           289: #define OCODE_GPSPIK   0x23            /* Push and set pick id        */
        !           290: 
        !           291: 
        !           292: /* Long Orders for which a structure can be defined for the data */
        !           293: 
        !           294: /* Arc */
        !           295: #define OCODE_GCARC    0x86            /* Arc at Current Position     */
        !           296: #define OCODE_GARC     0xC6            /* Arc at Given Position       */
        !           297: 
        !           298: typedef struct _ORDERS_GCARC {  /* osgcarc */
        !           299:   POINTS ptInter;
        !           300:   POINTS ptEnd;
        !           301: } ORDERS_GCARC;
        !           302: 
        !           303: typedef struct _ORDERL_GCARC {  /* olgcarc */
        !           304:   POINTL ptInter;
        !           305:   POINTL ptEnd;
        !           306: } ORDERL_GCARC;
        !           307: 
        !           308: /* Begin Element */
        !           309: #define OCODE_GBEL     0xD2            /* Begin Element               */
        !           310: 
        !           311: #define GBEL_DL        251
        !           312: typedef struct _ORDER_GBEL {    /* ogbel */
        !           313:   LONG   lElementType;
        !           314:   CHAR   achDesc[GBEL_DL];
        !           315: } ORDER_GBEL;
        !           316: 
        !           317: /* Begin Image */
        !           318: #define OCODE_GCBIMG   0x91            /* Begin Image at curr posn    */
        !           319: #define OCODE_GBIMG    0xD1            /* Begin Image at given posn   */
        !           320: 
        !           321: typedef struct _ORDER_GCBIMG {  /* ogbimg */
        !           322:   UCHAR     uchFormat;
        !           323:   UCHAR     uchReserved;
        !           324:   SWPUSHORT cx;
        !           325:   SWPUSHORT cy;
        !           326: } ORDER_GCBIMG;
        !           327: 
        !           328: /* Begin Path */
        !           329: #define OCODE_GBPTH    0xD0            /* Begin Path                  */
        !           330: 
        !           331: typedef struct _ORDER_GBPTH {   /* ogbpth */
        !           332:   USHORT usReserved;
        !           333:   LONG   idPath;
        !           334: } ORDER_GBPTH;
        !           335: 
        !           336: /* Box */
        !           337: #define OCODE_GCBOX    0x80            /* Box at current position     */
        !           338: #define OCODE_GBOX     0xC0            /* Box at given position       */
        !           339: 
        !           340: typedef struct _ORDERS_GCBOX {  /* osgcbox */
        !           341:   UCHAR  fbFlags;
        !           342:   UCHAR  uchReserved;
        !           343:   POINTS ptCorner;
        !           344:   SHORT  hAxis;
        !           345:   SHORT  vAxis;
        !           346: } ORDERS_GCBOX;
        !           347: 
        !           348: typedef struct _ORDERL_GCBOX {  /* olgcbox */
        !           349:   UCHAR  fbFlags;
        !           350:   UCHAR  uchReserved;
        !           351:   POINTL ptCorner;
        !           352:   LONG   hAxis;
        !           353:   LONG   vAxis;
        !           354: } ORDERL_GCBOX;
        !           355: 
        !           356: #define GCBOX_FILL     0x40
        !           357: #define GCBOX_BOUNDARY 0x20
        !           358: 
        !           359: /* Call Segment */
        !           360: #define OCODE_GCALLS   0x07            /* call segment                */
        !           361: 
        !           362: typedef struct _ORDER_GCALLS {  /* ogcalls */
        !           363:   USHORT sReserved;
        !           364:   LONG   idSegment;
        !           365: } ORDER_GCALLS;
        !           366: 
        !           367: /* Fill Path */
        !           368: #define OCODE_GFPTH    0xD7            /* Fill path                   */
        !           369: typedef struct _ORDER_GFPTH {  /* ogfpth */
        !           370:   UCHAR  fbFlags;
        !           371:   UCHAR  uchReserved;
        !           372:   LONG   idPath;
        !           373: } ORDER_GFPTH;
        !           374: 
        !           375: #define GFPTH_ALTERNATE 0x00
        !           376: #define GFPTH_WINDING   0x40
        !           377: #define GFPTH_MODIFY    0x20
        !           378: 
        !           379: /* Outline Path */
        !           380: #define OCODE_GOPTH    0xD4            /* Outline Path                */
        !           381: typedef struct _ORDER_GOPTH {  /* ogopth */
        !           382:   UCHAR  fbFlags;
        !           383:   UCHAR  uchReserved;
        !           384:   LONG   idPath;
        !           385: } ORDER_GOPTH;
        !           386: 
        !           387: /* Modify Path */
        !           388: #define OCODE_GMPTH 0xD8               /* modify path                 */
        !           389: 
        !           390: typedef struct _ORDER_GMPTH {   /* ogmpth */
        !           391:   UCHAR  uchMode;
        !           392:   UCHAR  uchReserved;
        !           393:   LONG   idPath;
        !           394: } ORDER_GMPTH;
        !           395: 
        !           396: #define GMPTH_STROKE    0x06
        !           397: 
        !           398: /* Partial Arc */
        !           399: #define OCODE_GCPARC   0xA3            /* Partial arc at curr posn    */
        !           400: #define OCODE_GPARC    0xE3            /* Partial arc at given posn   */
        !           401: 
        !           402: typedef struct _ORDERS_GCPARC { /* osgcparc */
        !           403:   POINTS   ptCenter;
        !           404:   FIXED88  ufx88Multiplier;
        !           405:   LONG     usStartAngle;
        !           406:   LONG     usSweepAngle;
        !           407: } ORDERS_GCPARC;
        !           408: 
        !           409: typedef struct _ORDERL_GCPARC { /* olgcparc */
        !           410:   POINTL   ptCenter;
        !           411:   FIXED    ufxMultiplier;
        !           412:   LONG     usStartAngle;
        !           413:   LONG     usSweepAngle;
        !           414: } ORDERL_GCPARC;
        !           415: 
        !           416: /* Set Clip Path */
        !           417: #define OCODE_GSCPTH   0xB4            /* Set clip path               */
        !           418: 
        !           419: typedef struct _ORDER_GSCPTH {  /* ogscpth */
        !           420:   UCHAR  fbFlags;
        !           421:   UCHAR  uchReserved;
        !           422:   LONG   idPath;
        !           423: } ORDER_GSCPTH;
        !           424: 
        !           425: #define GSCPTH_ALTERNATE 0x00
        !           426: #define GSCPTH_WINDING   0x40
        !           427: #define GSCPTH_RESET     0x00
        !           428: #define GSCPTH_INTERSECT 0x20
        !           429: 
        !           430: /* Set Arc Parameters */
        !           431: #define OCODE_GSAP     0x22            /* Set arc parameters          */
        !           432: #define OCODE_GPSAP    0x62            /* Push and set arc params     */
        !           433: 
        !           434: typedef struct _ORDERS_GSAP {   /* osgsap */
        !           435:   SHORT  p;
        !           436:   SHORT  q;
        !           437:   SHORT  r;
        !           438:   SHORT  s;
        !           439: } ORDERS_GSAP;
        !           440: 
        !           441: typedef struct _ORDERL_GSAP {   /* olgsap */
        !           442:   LONG   p;
        !           443:   LONG   q;
        !           444:   LONG   r;
        !           445:   LONG   s;
        !           446: } ORDERL_GSAP;
        !           447: 
        !           448: /* Set Background Indexed Color */
        !           449: #define OCODE_GSBICOL  0xA7            /* Set b/g indexed color       */
        !           450: #define OCODE_GPSBICOL 0xE7            /* Push and set b/g ind color  */
        !           451: #define OCODE_GSICOL   0xA6            /* Set indexed color           */
        !           452: #define OCODE_GPSICOL  0xE6            /* Push and set indexd color   */
        !           453: 
        !           454: typedef struct _ORDER_GSBICOL { /* ogbicol */
        !           455:   UCHAR  fbFlags;
        !           456:   UCHAR  auchColor[3];
        !           457: } ORDER_GSBICOL;
        !           458: 
        !           459: #define SICOL_SPECIFY  0x00
        !           460: #define SICOL_SPECIAL  0x40
        !           461: #define SICOL_DEFAULT  0x80
        !           462: #define SICOL_BLACK    1
        !           463: #define SICOL_WHITE    2
        !           464: #define SICOL_ONES     4
        !           465: #define SICOL_ZEROES   5
        !           466: 
        !           467: /* Set Character Cell */
        !           468: #define OCODE_GSCC     0x33            /* Set character cell          */
        !           469: #define OCODE_GPSCC    0x03            /* Push and set char cell      */
        !           470: 
        !           471: typedef struct _ORDERS_GSCC {   /* osgscc */
        !           472:   SHORT  cxInt;
        !           473:   SHORT  cyInt;
        !           474:   USHORT cxFract;
        !           475:   USHORT cyFract;
        !           476:   UCHAR  fbFlags;
        !           477:   UCHAR  uchReserved;
        !           478: } ORDERS_GSCC;
        !           479: 
        !           480: typedef struct _ORDERL_GSCC {   /* olgscc */
        !           481:   LONG   cxInt;
        !           482:   LONG   cyInt;
        !           483:   USHORT cxFract;
        !           484:   USHORT cyFract;
        !           485:   UCHAR  fbFlags;
        !           486:   UCHAR  uchReserved;
        !           487: } ORDERL_GSCC;
        !           488: 
        !           489: #define GSCC_ZERODEF   0x00
        !           490: #define GSCC_ZEROZERO  0x80
        !           491: 
        !           492: /* Set Marker Cell */
        !           493: #define OCODE_GSMC     0x37            /* Set marker cell             */
        !           494: #define OCODE_GPSMC    0x77            /* Push and set marker cell    */
        !           495: 
        !           496: typedef struct _ORDERS_GSMC {   /* osgsmc */
        !           497:   SHORT  cx;
        !           498:   SHORT  cy;
        !           499:   UCHAR  fbFlags;
        !           500:   UCHAR  uchReserved;
        !           501: } ORDERS_GSMC;
        !           502: 
        !           503: typedef struct _ORDERL_GSMC {   /* olgsmc */
        !           504:   LONG   cx;
        !           505:   LONG   cy;
        !           506:   UCHAR  fbFlags;
        !           507:   UCHAR  uchReserved;
        !           508: } ORDERL_GSMC;
        !           509: 
        !           510: #define GSMC_ZERODEF   0x00
        !           511: #define GSMC_ZEROZERO  0x80
        !           512: 
        !           513: /* Set Pattern Reference Point */
        !           514: #define OCODE_GSPRP    0xA0            /* Set pattern ref point       */
        !           515: #define OCODE_GPSPRP   0xE0            /* Push and set patt ref pt    */
        !           516: 
        !           517: typedef struct _ORDERS_GSPRP {  /* osgsprp */
        !           518:   UCHAR fbFlags;
        !           519:   UCHAR uchReserved;
        !           520:   POINTS ptPos;
        !           521: } ORDERS_GSPRP;
        !           522: 
        !           523: typedef struct _ORDERL_GSPRP {  /* olgsprp */
        !           524:   UCHAR fbFlags;
        !           525:   UCHAR uchReserved;
        !           526:   POINTL ptPos;
        !           527: } ORDERL_GSPRP;
        !           528: 
        !           529: #define GSPRP_DEFAULT  0x80
        !           530: #define GSPRP_SPECIFY  0x00
        !           531: 
        !           532: 
        !           533: /* Set Individual Attribute */
        !           534: #define OCODE_GSIA     0x14            /* Set individual attribute    */
        !           535: #define OCODE_GPSIA    0x54            /* Push and set ind attr       */
        !           536: 
        !           537: #define GSIA_VL 3
        !           538: typedef struct _ORDER_GSIA {    /* ogsia */
        !           539:   UCHAR  uchAttrType;
        !           540:   UCHAR  uchPrimType;
        !           541:   UCHAR  fbFlags;
        !           542:   UCHAR  auchValue[GSIA_VL];
        !           543: } ORDER_GSIA;
        !           544: 
        !           545: #define GSIA_COLOR     0x01
        !           546: #define GSIA_BCOLOR    0x02
        !           547: #define GSIA_MIX       0x03
        !           548: #define GSIA_BMIX      0x04
        !           549: #define GSIA_LINE      0x01
        !           550: #define GSIA_CHAR      0x02
        !           551: #define GSIA_MARKER    0x03
        !           552: #define GSIA_PATTERN   0x04
        !           553: #define GSIA_IMAGE     0x05
        !           554: #define GSIA_SPECIFY   0x00
        !           555: #define GSIA_SPECIAL   0x40
        !           556: #define GSIA_DEFAULT   0x80
        !           557: #define GSIA_BLACK     1
        !           558: #define GSIA_WHITE     2
        !           559: #define GSIA_ONES      4
        !           560: #define GSIA_ZEROES    5
        !           561: 
        !           562: 
        !           563: /* Set Model /Viewing Transform */
        !           564: #define OCODE_GSTM     0x24            /* Set model transform         */
        !           565: #define OCODE_GPSTM    0x64            /* Push and set model tfm      */
        !           566: 
        !           567: #define OCODE_GSTV     0x31            /* Set Viewing Transform       */
        !           568: 
        !           569: #define GSTM_ML        16
        !           570: typedef struct _ORDERS_GSTM {    /* osgstm */
        !           571:   UCHAR  uchReserved;
        !           572:   UCHAR  fbFlags;
        !           573:   USHORT fsMask;
        !           574:   SHORT  asMatrix[GSTM_ML];
        !           575: } ORDERS_GSTM;
        !           576: 
        !           577: typedef struct _ORDERL_GSTM {    /* olgstm */
        !           578:   UCHAR  uchReserved;
        !           579:   UCHAR  fbFlags;
        !           580:   USHORT fsMask;
        !           581:   LONG   alMatrix[GSTM_ML];
        !           582: } ORDERL_GSTM;
        !           583: 
        !           584: #define GSTM_M11     0x8000
        !           585: #define GSTM_M12     0x4000
        !           586: #define GSTM_M13     0x2000
        !           587: #define GSTM_M14     0x1000
        !           588: #define GSTM_M21     0x0800
        !           589: #define GSTM_M22     0x0400
        !           590: #define GSTM_M23     0x0200
        !           591: #define GSTM_M24     0x0100
        !           592: #define GSTM_M31     0x0080
        !           593: #define GSTM_M32     0x0040
        !           594: #define GSTM_M33     0x0020
        !           595: #define GSTM_M34     0x0010
        !           596: #define GSTM_M41     0x0008
        !           597: #define GSTM_M42     0x0004
        !           598: #define GSTM_M43     0x0002
        !           599: #define GSTM_M44     0x0001
        !           600: 
        !           601: #define GSTM_UNITY     0x00
        !           602: #define GSTM_AFTER     0x01
        !           603: #define GSTM_BEFORE    0x02
        !           604: #define GSTM_OVERWRITE 0x03
        !           605: 
        !           606: #define GSTV_OVERWRITE 0x00
        !           607: #define GSTV_AFTER     0x04
        !           608: 
        !           609: /* Set Segment Boundary, Viewing Window */
        !           610: 
        !           611: #define OCODE_GSSB     0x32            /* Set segment boundary        */
        !           612: #define OCODE_GSVW     0x27            /* Set viewing window          */
        !           613: #define OCODE_GPSVW    0x67            /* Push and set view window    */
        !           614: 
        !           615: #define GSSB_ML        4
        !           616: typedef struct _ORDERS_GSSB {   /* osgssb */
        !           617:   UCHAR  fbFlags;
        !           618:   UCHAR  fbMask;
        !           619:   SHORT  alMatrix[GSSB_ML];
        !           620: } ORDERS_GSSB;
        !           621: 
        !           622: typedef struct _ORDERL_GSSB {   /* olgssb */
        !           623:   UCHAR  fbFLags;
        !           624:   UCHAR  fbMask;
        !           625:   LONG   alMatrix[GSSB_ML];
        !           626: } ORDERL_GSSB;
        !           627: 
        !           628: #define GSSB_XLEFT     0x20
        !           629: #define GSSB_XRIGHT    0x10
        !           630: #define GSSB_YBOTTOM   0x08
        !           631: #define GSSB_YTOP      0x04
        !           632: 
        !           633: #define GSVW_INTERSECT 0x00
        !           634: #define GSVW_REPLACE   0x80
        !           635: 
        !           636: /* Set Segment Characteristics */
        !           637: #define OCODE_GSGCH    0x04            /* Set segment characteristics */
        !           638: 
        !           639: #define GSGCH_ML       254
        !           640: typedef struct _ORDER_GSGCH {   /* ogsgch */
        !           641:   UCHAR  uchIdent;
        !           642:   UCHAR  auchData[GSGCH_ML];
        !           643: } ORDER_GSGCH;
        !           644: 
        !           645: /* Set Stroke Line Width */
        !           646: #define OCODE_GSSLW    0x15            /* Set stroke line width       */
        !           647: #define OCODE_GPSSLW   0x55            /* Push and set strk l width   */
        !           648: 
        !           649: typedef struct _ORDERS_GSSLW {  /* osgsslw */
        !           650:   UCHAR  fbFlags;
        !           651:   UCHAR  uchReserved;
        !           652:   SHORT  LineWidth;
        !           653: } ORDERS_GSSLW;
        !           654: 
        !           655: typedef struct _ORDERL_GSSLW {  /* olgsslw */
        !           656:   UCHAR  fbFlags;
        !           657:   UCHAR  uchReserved;
        !           658:   LONG   LineWidth;
        !           659: } ORDERL_GSSLW;
        !           660: 
        !           661: #define GSSLW_DEFAULT  0x80
        !           662: #define GSSLW_SPECIFY  0x00
        !           663: 
        !           664: /* Sharp Fillet at Current Position */
        !           665: #define OCODE_GCSFLT   0xA4            /* Sharp fillet at curr pos    */
        !           666: #define OCODE_GSFLT    0xE4            /* Sharp fillet at given pos   */
        !           667: 
        !           668: #define GCSFLT_SMF     21
        !           669: #define GSFLT_SMF      20
        !           670: 
        !           671: typedef struct _ORDERS_GCSFLT { /* osgcsflt */
        !           672:   POINTS apt[2*GCSFLT_SMF];
        !           673:   FIXED  afxSharpness[GCSFLT_SMF];
        !           674: } ORDERS_GCSFLT;
        !           675: 
        !           676: #define GCSFLT_LMF     12
        !           677: #define GSFLT_LMF      12
        !           678: 
        !           679: typedef struct _ORDERL_GCSFLT { /* olgcsflt */
        !           680:   POINTL apt[2*GCSFLT_SMF];
        !           681:   FIXED  afxSharpness[GCSFLT_SMF];
        !           682: } ORDERL_GCSFLT;
        !           683: 
        !           684: /* Bitblt */
        !           685: #define OCODE_GBBLT    0xD6            /* Bitblt                      */
        !           686: 
        !           687: typedef struct _ORDERS_GBBLT {   /* osgbblt */
        !           688:   USHORT  fsFlags;
        !           689:   USHORT  usMix;
        !           690:   HBITMAP hbmSrc;
        !           691:   LONG    lOptions;
        !           692:   RECT1S  rcsTargetRect;
        !           693:   RECTL   rclSourceRect;
        !           694: } ORDERS_GBBLT;
        !           695: 
        !           696: typedef struct _ORDERL_GBBLT {   /* olgbblt */
        !           697:   USHORT  fsFlags;
        !           698:   USHORT  usMix;
        !           699:   HBITMAP hbmSrc;
        !           700:   LONG    lOptions;
        !           701:   RECTL   rclTargetRect;
        !           702:   RECTL   rclSourceRect;
        !           703: } ORDERL_GBBLT;
        !           704: 
        !           705: /* Char & break extra */                                         /* @P4A*/
        !           706: #define OCODE_GSCE     0x17            /* Set char extra                */
        !           707: #define OCODE_GPSCE    0x57            /* Push and set char extra       */
        !           708: #define OCODE_GSCBE    0x05            /* Set char break extra          */
        !           709: #define OCODE_GPSCBE   0x45            /* Push and set char break extra */
        !           710: 
        !           711: typedef struct _ORDER_GSCBE  {   /* osgsce */
        !           712:   UCHAR   fbFlags;
        !           713:   UCHAR   uchReserved;
        !           714:   FIXED   ufxextra;
        !           715: } ORDER_GSCE, ORDER_GPSCE, ORDER_GSCBE, ORDER_GPSCBE;
        !           716: 
        !           717: /* Escape */
        !           718: #define OCODE_GESCP    0xD5            /* Escape                      */
        !           719: 
        !           720: /*
        !           721:  * type describes type of escape order, identifier gives the escape
        !           722:  * order if the type is registered
        !           723:  */
        !           724: #define GESCP_ML       253
        !           725: typedef struct _ORDER_GESCP {   /* ogescp */
        !           726:   UCHAR  uchType;
        !           727:   UCHAR  uchIdent;
        !           728:   UCHAR  auchData[GESCP_ML];           /* Escape data                 */
        !           729: } ORDER_GESCP;
        !           730: 
        !           731: #define GESCP_REG      0x80            /* identifier is registered    */
        !           732: 
        !           733: /* Escape (Bitblt) */
        !           734: #define GEBB_REGID     0x02            /* uchIdent - Bitblt           */
        !           735: 
        !           736: #define ETYPE_GEBB          0x800200D5L
        !           737: 
        !           738: #define GEBB_LMP       29
        !           739: typedef struct _ORDERL_GEBB {   /* olgebb */
        !           740:   UCHAR   fbFlags;
        !           741:   USHORT  usMix;
        !           742:   UCHAR   cPoints;
        !           743:   HBITMAP hbmSrc;
        !           744:   LONG    lReserved;
        !           745:   LONG    lOptions;
        !           746:   POINTL  aptPoints[GEBB_LMP];
        !           747: } ORDERL_GEBB;
        !           748: 
        !           749: /* Escape (Set Pel) */
        !           750: #define GEPEL_REGID    0x01            /* uchIdent - Set Pel          */
        !           751: 
        !           752: #define ETYPE_GEPEL         0x800100D5L
        !           753: 
        !           754: /* Escape (DrawBits) */                                                /* @D1A*/
        !           755: #define GEDB_REGID     0x04          /* uchIdent - DrawBits */         /* @D1A*/
        !           756:                                                                        /* @D1A*/
        !           757: #define ETYPE_GEDB          0x800400D5L                                /* @D1A*/
        !           758:                                                                        /* @D1A*/
        !           759: typedef struct _ORDERL_GEDB {   /* olgedb */                           /* @D1A*/
        !           760:   USHORT      fsFlags;                                                 /* @D1A*/
        !           761:   USHORT      usMix;                                                   /* @D1A*/
        !           762:   PVOID       pBits;                                                   /* @D1A*/
        !           763:   PBITMAPINFO2 pbmi;                                                   /* @D3C*/
        !           764:   LONG        lOptions;                                                /* @D1A*/
        !           765:   RECTL       rclTargetRect;                                           /* @D1A*/
        !           766:   RECTL       rclSourceRect;                                           /* @D1A*/
        !           767: } ORDERL_GEDB;                                                         /* @D1A*/
        !           768: 
        !           769: 
        !           770: /* Escape (FloodFill) */                                               /* @D2A*/
        !           771: #define GEFF_REGID     0x03          /* uchIdent - FloodFill */        /* @D2A*/
        !           772: 
        !           773: #define ETYPE_GEFF          0x800300D5L                                /* @D2A*/
        !           774: 
        !           775: typedef struct _ORDERL_GEFF {   /* olgeff */                           /* @D2A*/
        !           776:   UCHAR       fsFlags;                                                 /* @D2A*/
        !           777:   UCHAR       auchColor[3];                                            /* @D2A*/
        !           778: } ORDERL_GEFF;                                                         /* @D2A*/
        !           779: 
        !           780: 
        !           781: /* Element Types for attribute bundles */
        !           782: #define ETYPE_LINEBUNDLE    0x0000FD01L
        !           783: #define ETYPE_CHARBUNDLE    0x0000FD02L
        !           784: #define ETYPE_MARKERBUNDLE  0x0000FD03L
        !           785: #define ETYPE_AREABUNDLE    0x0000FD04L
        !           786: #define ETYPE_IMAGEBUNDLE   0x0000FD05L
        !           787: 
        !           788: 
        !           789: /***************************************************************************\
        !           790: *
        !           791: * Very long orders
        !           792: *
        !           793: \***************************************************************************/
        !           794: 
        !           795: /* macro to tell whether this is a very long order */
        !           796: #define VLONG_ORDER(oc)  ((oc)==OCODE_VLONG)
        !           797: 
        !           798: /* Very long order structure */
        !           799: #define VORDER_ML 65531
        !           800: typedef struct _VORDER {        /* vord */
        !           801:   UCHAR     idCode;
        !           802:   UCHAR     uchQualifier;
        !           803:   SWPUSHORT uchLength;
        !           804:   UCHAR     uchData[VORDER_ML];
        !           805: } VORDER;
        !           806: 
        !           807: /* Character String Extended */
        !           808: #define OCODEQ_GCCHSTE  0xB0           /* Qualifier - current posn    */
        !           809: #define OCODEQ_GCHSTE   0xF0           /* Qualifier - given position  */
        !           810: 
        !           811: #define ETYPE_GCCHSTE       0x0000FEB0L
        !           812: #define ETYPE_GCHSTE        0x0000FEF0L
        !           813: 
        !           814: typedef struct _ORDERS_GCCHSTE { /* osgcchste */
        !           815:   UCHAR     fbFlags;
        !           816:   UCHAR     uchReserved;
        !           817:   POINTS    ptRect[2];
        !           818:   SWPUSHORT cchString;
        !           819:   CHAR      achString[1];
        !           820:   SHORT     adx[1];
        !           821: } ORDERS_GCCHSTE;
        !           822: 
        !           823: typedef struct _ORDERL_GCCHSTE { /* olgcchste */
        !           824:   UCHAR     fbFlags;
        !           825:   UCHAR     uchReserved;
        !           826:   POINTL    ptRect[2];
        !           827:   SWPUSHORT cchString;
        !           828:   CHAR      achString[1];
        !           829:   LONG      adx[1];
        !           830: } ORDERL_GCCHSTE;
        !           831: 
        !           832: #define GCCHSTE_DRAWRECT      0x80
        !           833: #define GCCHSTE_NORECT        0x00
        !           834: #define GCCHSTE_CLIP          0x40
        !           835: #define GCCHSTE_NOCLIP        0x00
        !           836: #define GCCHSTE_DEEMPHASIZE   0x20            /* Reserved        @P2C*/
        !           837: #define GCCHSTE_NODEEMPHASIZE 0x00
        !           838: #define GCCHSTE_LEAVEPOS      0x10
        !           839: #define GCCHSTE_MOVEPOS       0x00
        !           840: #define GCCHSTE_UNDERSCORE    0x08                            /* @P2A*/
        !           841: #define GCCHSTE_NOUNDERSCORE  0x00                            /* @P2A*/
        !           842: #define GCCHSTE_STRIKEOUT     0x04                            /* @P2A*/
        !           843: #define GCCHSTE_NOSTRIKEOUT   0x00                            /* @P2A*/
        !           844: 
        !           845: /* Extended Escape */
        !           846: #define OCODEQ_GEESCP   0xD5           /* Qualifier - extended escape */
        !           847: 
        !           848: #define GEESCP_ML      65533
        !           849: typedef struct _ORDER_GEESCP {  /* ogeescp */
        !           850:   UCHAR  uchType;
        !           851:   UCHAR  uchIdent;
        !           852:   UCHAR  auchData[GEESCP_ML];
        !           853: } ORDER_GEESCP;
        !           854:                                    /*                            @P3A*/
        !           855: /* XLATOFF */
        !           856: #pragma pack()    /* reset to default packing                    @P3A*/
        !           857: /* XLATON */

unix.superglobalmegacorp.com

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