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

1.1     ! root        1: /***************************************************************************\
        !             2: *
        !             3: *   Copyright (c) IBM Corporation 1987, 1989
        !             4: *   Copyright (c) MicroSoft Corporation 1987,1989
        !             5: *
        !             6: * Module Name: PMGPI.H
        !             7: *
        !             8: * OS/2 Presentation Manager GPI constants, types and function declarations
        !             9: *
        !            10: *
        !            11: * =============================================================================
        !            12: *
        !            13: * The following symbols are used in this file for conditional sections.
        !            14: *
        !            15: *   INCL_GPI                Include all of the GPI
        !            16: *   INCL_GPICONTROL         Basic PS control
        !            17: *   INCL_GPICORRELATION     Picking, Boundary and Correlation
        !            18: *   INCL_GPISEGMENTS        Segment Control and Drawing
        !            19: *   INCL_GPISEGEDITING      Segment Editing via Elements
        !            20: *   INCL_GPITRANSFORMS      Transform and Transform Conversion
        !            21: *   INCL_GPIPATHS           Paths and Clipping with Paths
        !            22: *   INCL_GPILOGCOLORTABLE   Logical Color Tables
        !            23: *   INCL_GPIPRIMITIVES      Drawing Primitives and Primitive Attributes
        !            24: *   INCL_GPILCIDS           Phyical and Logical Fonts with Lcids
        !            25: *   INCL_GPIBITMAPS         Bitmaps and Pel Operations
        !            26: *   INCL_GPIREGIONS         Regions and Clipping with Regions
        !            27: *   INCL_GPIMETAFILES       MetaFiles
        !            28: *   INCL_GPIDEFAULTS        Default Primitive Attributes
        !            29: *   INCL_GPIERRORS          defined if INCL_ERRORS defined
        !            30: *
        !            31: * There is a symbol used in this file called INCL_DDIDEFS. This is used to
        !            32: * include only the definitions for the DDI. The programmer using the GPI
        !            33: * can ignore this symbol
        !            34: *
        !            35: * There is a symbol used in this file called INCL_SAADEFS. This is used to
        !            36: * include only the definitions for the SAA. The programmer using the GPI
        !            37: * can ignore this symbol
        !            38: *
        !            39: \***************************************************************************/
        !            40: 
        !            41: #if !(defined(INCL_32) || defined(INCL_16))
        !            42: #ifdef M_I386
        !            43:     #define INCL_32
        !            44: #else /* not M_I386 */
        !            45:     #define INCL_16
        !            46: #endif /* M_I386 */
        !            47: #endif /* INCL_32 || INCL_16 */
        !            48: 
        !            49: #ifdef INCL_GPI /* include whole of the GPI */
        !            50:     #define INCL_GPICONTROL
        !            51:     #define INCL_GPICORRELATION
        !            52:     #define INCL_GPISEGMENTS
        !            53:     #define INCL_GPISEGEDITING
        !            54:     #define INCL_GPITRANSFORMS
        !            55:     #define INCL_GPIPATHS
        !            56:     #define INCL_GPILOGCOLORTABLE
        !            57:     #define INCL_GPIPRIMITIVES
        !            58:     #define INCL_GPILCIDS
        !            59:     #define INCL_GPIBITMAPS
        !            60:     #define INCL_GPIREGIONS
        !            61:     #define INCL_GPIMETAFILES
        !            62:     #define INCL_GPIDEFAULTS
        !            63: #endif /* INCL_GPI */
        !            64: 
        !            65: #ifdef INCL_ERRORS /* if errors are required then allow GPI errors */
        !            66:     #define INCL_GPIERRORS
        !            67: #endif /* INCL_ERRORS */
        !            68: 
        !            69: #ifdef INCL_DDIDEFS /* if only DDI required then enable DDI part of GPI */
        !            70:     #define INCL_GPITRANSFORMS
        !            71:     #define INCL_GPIPATHS
        !            72:     #define INCL_GPILOGCOLORTABLE
        !            73:     #define INCL_GPIPRIMITIVES
        !            74:     #define INCL_GPILCIDS
        !            75:     #define INCL_GPIBITMAPS
        !            76:     #define INCL_GPIREGIONS
        !            77:     #define INCL_GPIERRORS
        !            78: #endif /* INCL_DDIDEFS */
        !            79: 
        !            80: #ifdef INCL_SAADEFS /* if only SAA required then enable SAA part of GPI */
        !            81:     #define INCL_GPICONTROL
        !            82:     #define INCL_GPICORRELATION
        !            83:     #define INCL_GPISEGMENTS
        !            84:     #define INCL_GPISEGEDITING
        !            85:     #define INCL_GPITRANSFORMS
        !            86:     #define INCL_GPIPATHS
        !            87:     #define INCL_GPILOGCOLORTABLE
        !            88:     #define INCL_GPIPRIMITIVES
        !            89:     #define INCL_GPILCIDS
        !            90:     #define INCL_GPIBITMAPS
        !            91:     #define INCL_GPIREGIONS
        !            92:     #define INCL_GPIMETAFILES
        !            93:     #define INCL_GPIERRORS
        !            94: #endif /* INCL_SAADEFS */
        !            95: 
        !            96: /* XLATOFF */
        !            97: #pragma pack(2)      /* pack on wordboundary */
        !            98: /* XLATON */
        !            99: 
        !           100: /* General GPI return values */
        !           101: #define GPI_ERROR                       0L
        !           102: #define GPI_OK                          1L
        !           103: #define GPI_ALTERROR                  (-1L)
        !           104: 
        !           105: /* fixed point number - implicit binary point between 2 and 3 hex digits */
        !           106: typedef  LONG FIXED;     /* fx */
        !           107: typedef  FIXED FAR *PFIXED;
        !           108: 
        !           109: /* fixed point number - implicit binary point between 1st and 2nd hex digits */
        !           110: typedef  USHORT FIXED88;  /* fx88 */
        !           111: 
        !           112: /* fixed point signed number - implicit binary point between bits 14 and 13. */
        !           113: /*                             Bit 15 is the sign bit.                       */
        !           114: /*                             Thus 1.0 is represented by 16384 (0x4000)     */
        !           115: /*                             and -1.0 is represented by -16384 (0xc000)    */
        !           116: typedef  USHORT FIXED114; /* fx114 */
        !           117: 
        !           118: /* make FIXED number from SHORT integer part and USHORT fractional part */
        !           119: #define MAKEFIXED(intpart,fractpart) MAKELONG(fractpart,intpart)
        !           120: /* extract fractional part from a fixed quantity */
        !           121: #define FIXEDFRAC(fx)                (LOUSHORT(fx))
        !           122: /* extract integer part from a fixed quantity */
        !           123: #define FIXEDINT(fx)                 ((SHORT)HIUSHORT(fx))
        !           124: 
        !           125: /* structure for size parameters e.g. for GpiCreatePS */
        !           126: typedef struct _SIZEL {         /* sizl */
        !           127:     LONG cx;
        !           128:     LONG cy;
        !           129: } SIZEL;
        !           130: typedef SIZEL FAR *PSIZEL;
        !           131: 
        !           132: /* return code on GpiQueryLogColorTable,GpiQueryRealColors and GpiQueryPel */
        !           133: #define CLR_NOINDEX                  (-254L)
        !           134: 
        !           135: #if (defined(INCL_GPICONTROL) || !defined(INCL_NOCOMMON))
        !           136: 
        !           137: /* units for GpiCreatePS and others */
        !           138: #define PU_ARBITRARY               0x0004L
        !           139: #define PU_PELS                    0x0008L
        !           140: #define PU_LOMETRIC                0x000CL
        !           141: #define PU_HIMETRIC                0x0010L
        !           142: #define PU_LOENGLISH               0x0014L
        !           143: #define PU_HIENGLISH               0x0018L
        !           144: #define PU_TWIPS                   0x001CL
        !           145: 
        !           146: /* format for GpiCreatePS */
        !           147: #define GPIF_DEFAULT                    0L
        !           148: #define GPIF_SHORT                 0x0100L
        !           149: #define GPIF_LONG                  0x0200L
        !           150: 
        !           151: 
        !           152: /* PS type for GpiCreatePS */
        !           153: #define GPIT_NORMAL                     0L
        !           154: #define GPIT_MICRO                 0x1000L
        !           155: 
        !           156: 
        !           157: /* implicit associate flag for GpiCreatePS */
        !           158: #define GPIA_NOASSOC                    0L
        !           159: #define GPIA_ASSOC                 0x4000L
        !           160: 
        !           161: #ifndef INCL_SAADEFS
        !           162: /* return error for GpiQueryDevice */
        !           163: #define HDC_ERROR                ((HDC)-1L)
        !           164: #endif /* no INCL_SAADEFS */
        !           165: 
        !           166: /* common GPICONTROL functions */
        !           167: /* XLATOFF */
        !           168: #ifdef INCL_16
        !           169:     #define GpiCreatePS Gpi16CreatePS
        !           170:     #define GpiDestroyPS Gpi16DestroyPS
        !           171:     #define GpiAssociate Gpi16Associate
        !           172:     #define GpiRestorePS Gpi16RestorePS
        !           173:     #define GpiSavePS Gpi16SavePS
        !           174:     #define GpiErase Gpi16Erase
        !           175: #endif /* INCL_16 */
        !           176: /* XLATON */
        !           177: HPS   APIENTRY GpiCreatePS( HAB hab, HDC hdc, PSIZEL psizlSize, ULONG flOptions );
        !           178: BOOL  APIENTRY GpiDestroyPS( HPS hps );
        !           179: BOOL  APIENTRY GpiAssociate( HPS hps, HDC hdc );
        !           180: BOOL  APIENTRY GpiRestorePS( HPS hps, LONG lPSid );
        !           181: LONG  APIENTRY GpiSavePS( HPS hps );
        !           182: BOOL  APIENTRY GpiErase( HPS hps );
        !           183: 
        !           184: #ifndef INCL_SAADEFS
        !           185: /* XLATOFF */
        !           186: #ifdef INCL_16
        !           187:     #define GpiQueryDevice Gpi16QueryDevice
        !           188: #endif /* INCL_16 */
        !           189: /* XLATON */
        !           190: HDC  APIENTRY GpiQueryDevice( HPS );
        !           191: #endif /* no INCL_SAADEFS */
        !           192: 
        !           193: #endif /* common GPICONTROL */
        !           194: #ifdef INCL_GPICONTROL
        !           195: 
        !           196: /* options for GpiResetPS */
        !           197: #define GRES_ATTRS                 0x0001L
        !           198: #define GRES_SEGMENTS              0x0002L
        !           199: #define GRES_ALL                   0x0004L
        !           200: 
        !           201: /* option masks for PS options used by GpiQueryPs */
        !           202: #define PS_UNITS                   0x00FCL
        !           203: #define PS_FORMAT                  0x0F00L
        !           204: #define PS_TYPE                    0x1000L
        !           205: #define PS_MODE                    0x2000L
        !           206: #define PS_ASSOCIATE               0x4000L
        !           207: #define PS_NORESET                 0x8000L
        !           208: 
        !           209: 
        !           210: /* error context returned by GpiErrorSegmentData */
        !           211: #define GPIE_SEGMENT                    0L
        !           212: #define GPIE_ELEMENT                    1L
        !           213: #define GPIE_DATA                       2L
        !           214: 
        !           215: #ifndef INCL_SAADEFS
        !           216: 
        !           217: /* control parameter for GpiSetDrawControl */
        !           218: #define DCTL_ERASE                      1L
        !           219: #define DCTL_DISPLAY                    2L
        !           220: #define DCTL_BOUNDARY                   3L
        !           221: #define DCTL_DYNAMIC                    4L
        !           222: #define DCTL_CORRELATE                  5L
        !           223: 
        !           224: /* constants for GpiSet/QueryDrawControl */
        !           225: #define DCTL_ERROR                     -1L
        !           226: #define DCTL_OFF                        0L
        !           227: #define DCTL_ON                         1L
        !           228: 
        !           229: /* constants for GpiSet/QueryStopDraw */
        !           230: #define SDW_ERROR                      -1L
        !           231: #define SDW_OFF                         0L
        !           232: #define SDW_ON                          1L
        !           233: 
        !           234: #endif /* no INCL_SAADEFS */
        !           235: 
        !           236: /* drawing for GpiSet/QueryDrawingMode */
        !           237: #define DM_ERROR                        0L
        !           238: #define DM_DRAW                         1L
        !           239: #define DM_RETAIN                       2L
        !           240: #define DM_DRAWANDRETAIN                3L
        !           241: 
        !           242: /*** other GPICONTROL functions */
        !           243: /* XLATOFF */
        !           244: #ifdef INCL_16
        !           245:     #define GpiResetPS Gpi16ResetPS
        !           246: #endif /* INCL_16 */
        !           247: /* XLATON */
        !           248: BOOL  APIENTRY GpiResetPS( HPS hps, ULONG flOptions );
        !           249: 
        !           250: #ifndef INCL_SAADEFS
        !           251: 
        !           252: /* XLATOFF */
        !           253: #ifdef INCL_16
        !           254:     #define GpiSetPS Gpi16SetPS
        !           255: #endif /* INCL_16 */
        !           256: /* XLATON */
        !           257: BOOL  APIENTRY GpiSetPS( HPS hps, PSIZEL psizlsize, ULONG flOptions );
        !           258: 
        !           259: #endif /* no INCL_SAADEFS */
        !           260: 
        !           261: /* XLATOFF */
        !           262: #ifdef INCL_16
        !           263:     #define GpiQueryPS Gpi16QueryPS
        !           264:     #define GpiErrorSegmentData Gpi16ErrorSegmentData
        !           265: #endif /* INCL_16 */
        !           266: /* XLATON */
        !           267: ULONG  APIENTRY GpiQueryPS( HPS hps, PSIZEL psizlSize );
        !           268: LONG   APIENTRY GpiErrorSegmentData( HPS hps, PLONG plSegment, PLONG plContext );
        !           269: 
        !           270: #ifndef INCL_SAADEFS
        !           271: 
        !           272: /* XLATOFF */
        !           273: #ifdef INCL_16
        !           274:     #define GpiQueryDrawControl Gpi16QueryDrawControl
        !           275:     #define GpiSetDrawControl Gpi16SetDrawControl
        !           276: #endif /* INCL_16 */
        !           277: /* XLATON */
        !           278: LONG  APIENTRY GpiQueryDrawControl( HPS hps, LONG lControl );
        !           279: BOOL  APIENTRY GpiSetDrawControl( HPS hps, LONG lControl, LONG lValue );
        !           280: 
        !           281: #endif /* no INCL_SAADEFS */
        !           282: 
        !           283: /* XLATOFF */
        !           284: #ifdef INCL_16
        !           285:     #define GpiQueryDrawingMode Gpi16QueryDrawingMode
        !           286:     #define GpiSetDrawingMode Gpi16SetDrawingMode
        !           287: #endif /* INCL_16 */
        !           288: /* XLATON */
        !           289: LONG  APIENTRY GpiQueryDrawingMode( HPS hps );
        !           290: BOOL  APIENTRY GpiSetDrawingMode( HPS hps, LONG lMode );
        !           291: 
        !           292: #ifndef INCL_SAADEFS
        !           293: 
        !           294: /* XLATOFF */
        !           295: #ifdef INCL_16
        !           296:     #define GpiQueryStopDraw Gpi16QueryStopDraw
        !           297:     #define GpiSetStopDraw Gpi16SetStopDraw
        !           298: #endif /* INCL_16 */
        !           299: /* XLATON */
        !           300: LONG  APIENTRY GpiQueryStopDraw( HPS hps );
        !           301: BOOL  APIENTRY GpiSetStopDraw( HPS hps, LONG lValue );
        !           302: 
        !           303: #endif /* no INCL_SAADEFS */
        !           304: 
        !           305: #endif /* non-common GPICONTROL */
        !           306: #ifdef INCL_GPICORRELATION
        !           307: 
        !           308: /* options for GpiSetPickApertureSize */
        !           309: #define PICKAP_DEFAULT                  0L
        !           310: #define PICKAP_REC                      2L
        !           311: 
        !           312: /* type of correlation for GpiCorrelateChain */
        !           313: #define PICKSEL_VISIBLE                 0L
        !           314: #define PICKSEL_ALL                     1L
        !           315: 
        !           316: /* return code to indicate correlate hit(s) */
        !           317: #define GPI_HITS                        2L
        !           318: 
        !           319: /*** picking,  correlation and boundary functions */
        !           320: /* XLATOFF */
        !           321: #ifdef INCL_16
        !           322:     #define GpiCorrelateChain Gpi16CorrelateChain
        !           323:     #define GpiQueryTag Gpi16QueryTag
        !           324:     #define GpiSetTag Gpi16SetTag
        !           325:     #define GpiQueryPickApertureSize Gpi16QueryPickApertureSize
        !           326:     #define GpiSetPickApertureSize Gpi16SetPickApertureSize
        !           327: #endif /* INCL_16 */
        !           328: /* XLATON */
        !           329: LONG  APIENTRY GpiCorrelateChain( HPS hps, LONG lType, PPOINTL pptlPick
        !           330:                                 , LONG lMaxHits, LONG lMaxDepth, PLONG pl2 );
        !           331: BOOL  APIENTRY GpiQueryTag( HPS hps, PLONG plTag );
        !           332: BOOL  APIENTRY GpiSetTag( HPS hps, LONG lTag );
        !           333: BOOL  APIENTRY GpiQueryPickApertureSize( HPS hps, PSIZEL psizlSize );
        !           334: BOOL  APIENTRY GpiSetPickApertureSize( HPS hps, LONG lOptions, PSIZEL psizlSize );
        !           335: 
        !           336: #ifndef INCL_SAADEFS
        !           337: /* XLATOFF */
        !           338: #ifdef INCL_16
        !           339:     #define GpiQueryPickAperturePosition Gpi16QueryPickAperturePosition
        !           340:     #define GpiSetPickAperturePosition Gpi16SetPickAperturePosition
        !           341:     #define GpiQueryBoundaryData Gpi16QueryBoundaryData
        !           342:     #define GpiResetBoundaryData Gpi16ResetBoundaryData
        !           343: #endif /* INCL_16 */
        !           344: /* XLATON */
        !           345: 
        !           346: BOOL  APIENTRY GpiQueryPickAperturePosition( HPS hps, PPOINTL pptlPoint );
        !           347: BOOL  APIENTRY GpiSetPickAperturePosition( HPS hps, PPOINTL pptlPick );
        !           348: BOOL  APIENTRY GpiQueryBoundaryData( HPS hps, PRECTL prclBoundary );
        !           349: BOOL  APIENTRY GpiResetBoundaryData( HPS hps );
        !           350: 
        !           351: #endif /* no INCL_SAADEFS */
        !           352: 
        !           353: /* XLATOFF */
        !           354: #ifdef INCL_16
        !           355:     #define GpiCorrelateFrom Gpi16CorrelateFrom
        !           356:     #define GpiCorrelateSegment Gpi16CorrelateSegment
        !           357: #endif /* INCL_16 */
        !           358: /* XLATON */
        !           359: LONG APIENTRY GpiCorrelateFrom( HPS hps, LONG lFirstSegment, LONG lLastSegment
        !           360:                               , LONG lType, PPOINTL pptlPick, LONG lMaxHits
        !           361:                               , LONG lMaxDepth, PLONG plSegTag );
        !           362: LONG APIENTRY GpiCorrelateSegment( HPS hps, LONG lSegment, LONG lType
        !           363:                                  , PPOINTL pptlPick, LONG lMaxHits
        !           364:                                  , LONG lMaxDepth, PLONG alSegTag );
        !           365: 
        !           366: #endif /* non-common_GPICORRELATION */
        !           367: #ifdef INCL_GPISEGMENTS
        !           368: 
        !           369: /* data formats for GpiPutData and GpiGetData */
        !           370: #define DFORM_NOCONV                    0L
        !           371: 
        !           372: #ifndef INCL_SAADEFS
        !           373: 
        !           374: #define DFORM_S370SHORT                 1L
        !           375: #define DFORM_PCSHORT                   2L
        !           376: #define DFORM_PCLONG                    4L
        !           377: 
        !           378: #endif /* no INCL_SAADEFS */
        !           379: 
        !           380: /* segment attributes used by GpiSet/QuerySegmentAttrs and others */
        !           381: #define ATTR_ERROR                    (-1L)
        !           382: #define ATTR_DETECTABLE                 1L
        !           383: #define ATTR_VISIBLE                    2L
        !           384: #define ATTR_CHAINED                    6L
        !           385: 
        !           386: #ifndef INCL_SAADEFS
        !           387: 
        !           388: #define ATTR_DYNAMIC                    8L
        !           389: 
        !           390: #endif /* no INCL_SAADEFS */
        !           391: 
        !           392: #define ATTR_FASTCHAIN                  9L
        !           393: #define ATTR_PROP_DETECTABLE           10L
        !           394: #define ATTR_PROP_VISIBLE              11L
        !           395: 
        !           396: /* attribute on/off values */
        !           397: #define ATTR_OFF                        0L
        !           398: #define ATTR_ON                         1L
        !           399: 
        !           400: /* segment priority used by GpiSetSegmentPriority and others */
        !           401: #define LOWER_PRI                     (-1L)
        !           402: #define HIGHER_PRI                      1L
        !           403: 
        !           404: /* XLATOFF */
        !           405: #ifdef INCL_16
        !           406:     #define GpiOpenSegment Gpi16OpenSegment
        !           407:     #define GpiCloseSegment Gpi16CloseSegment
        !           408:     #define GpiDeleteSegment Gpi16DeleteSegment
        !           409:     #define GpiQueryInitialSegmentAttrs Gpi16QueryInitialSegmentAttrs
        !           410:     #define GpiSetInitialSegmentAttrs Gpi16SetInitialSegmentAttrs
        !           411:     #define GpiQuerySegmentAttrs Gpi16QuerySegmentAttrs
        !           412:     #define GpiSetSegmentAttrs Gpi16SetSegmentAttrs
        !           413:     #define GpiQuerySegmentPriority Gpi16QuerySegmentPriority
        !           414:     #define GpiSetSegmentPriority Gpi16SetSegmentPriority
        !           415:     #define GpiDeleteSegments Gpi16DeleteSegments
        !           416:     #define GpiQuerySegmentNames Gpi16QuerySegmentNames
        !           417:     #define GpiGetData Gpi16GetData
        !           418:     #define GpiPutData Gpi16PutData
        !           419:     #define GpiDrawChain Gpi16DrawChain
        !           420:     #define GpiDrawFrom Gpi16DrawFrom
        !           421:     #define GpiDrawSegment Gpi16DrawSegment
        !           422: #endif /* INCL_16 */
        !           423: /* XLATON */
        !           424: /*** segment control functions */
        !           425: BOOL APIENTRY GpiOpenSegment( HPS hps, LONG lSegment );
        !           426: BOOL APIENTRY GpiCloseSegment( HPS hps );
        !           427: BOOL APIENTRY GpiDeleteSegment( HPS hps, LONG lSegid );
        !           428: LONG APIENTRY GpiQueryInitialSegmentAttrs( HPS hps, LONG lAttribute );
        !           429: BOOL APIENTRY GpiSetInitialSegmentAttrs( HPS hps, LONG lAttribute, LONG lValue );
        !           430: LONG APIENTRY GpiQuerySegmentAttrs( HPS hps, LONG lSegid, LONG lAttribute );
        !           431: BOOL APIENTRY GpiSetSegmentAttrs( HPS hps, LONG lSegid, LONG lAttribute
        !           432:                                 , LONG lValue );
        !           433: LONG APIENTRY GpiQuerySegmentPriority( HPS hps, LONG lRefSegid, LONG lOrder );
        !           434: BOOL APIENTRY GpiSetSegmentPriority( HPS hps, LONG lSegid, LONG lRefSegid
        !           435:                                    , LONG lOrder );
        !           436: BOOL APIENTRY GpiDeleteSegments( HPS hps, LONG lFirstSegment, LONG lLastSegment );
        !           437: LONG APIENTRY GpiQuerySegmentNames( HPS hps, LONG lFirstSegid, LONG lLastSegid
        !           438:                                   , LONG lMax, PLONG alSegids );
        !           439: 
        !           440: /*** draw functions for segments */
        !           441: LONG APIENTRY GpiGetData( HPS hps, LONG lSegid, PLONG plOffset
        !           442:                         , LONG lFormat, LONG lLength, PBYTE pbData );
        !           443: LONG APIENTRY GpiPutData( HPS hps, LONG lFormat, PLONG plCount, PBYTE pbData );
        !           444: BOOL APIENTRY GpiDrawChain( HPS hps );
        !           445: BOOL APIENTRY GpiDrawFrom( HPS hps, LONG lFirstSegment, LONG lLastSegment );
        !           446: BOOL APIENTRY GpiDrawSegment( HPS hps, LONG lSegment );
        !           447: 
        !           448: #ifndef INCL_SAADEFS
        !           449: 
        !           450: /* XLATOFF */
        !           451: #ifdef INCL_16
        !           452:     #define GpiDrawDynamics Gpi16DrawDynamics
        !           453:     #define GpiRemoveDynamics Gpi16RemoveDynamics
        !           454: #endif /* INCL_16 */
        !           455: /* XLATON */
        !           456: BOOL APIENTRY GpiDrawDynamics( HPS hps );
        !           457: BOOL APIENTRY GpiRemoveDynamics( HPS hps, LONG lFirstSegid, LONG lLastSegid );
        !           458: 
        !           459: #endif /* no INCL_SAADEFS */
        !           460: 
        !           461: #endif /* non-common GPISEGMENTS */
        !           462: #ifdef INCL_GPISEGEDITING
        !           463: 
        !           464: /* edit modes used by GpiSet/QueryEditMode */
        !           465: #define SEGEM_ERROR                         0L
        !           466: #define SEGEM_INSERT                        1L
        !           467: #define SEGEM_REPLACE                       2L
        !           468: 
        !           469: /*** segment editing by element functions */
        !           470: /* XLATOFF */
        !           471: #ifdef INCL_16
        !           472:     #define GpiBeginElement Gpi16BeginElement
        !           473:     #define GpiEndElement Gpi16EndElement
        !           474:     #define GpiLabel Gpi16Label
        !           475:     #define GpiElement Gpi16Element
        !           476:     #define GpiQueryElement Gpi16QueryElement
        !           477:     #define GpiDeleteElement Gpi16DeleteElement
        !           478:     #define GpiDeleteElementRange Gpi16DeleteElementRange
        !           479:     #define GpiDeleteElementsBetweenLabels Gpi16DeleteElementsBetweenLabe
        !           480:     #define GpiQueryEditMode Gpi16QueryEditMode
        !           481:     #define GpiSetEditMode Gpi16SetEditMode
        !           482:     #define GpiQueryElementPointer Gpi16QueryElementPointer
        !           483:     #define GpiSetElementPointer Gpi16SetElementPointer
        !           484:     #define GpiOffsetElementPointer Gpi16OffsetElementPointer
        !           485:     #define GpiQueryElementType Gpi16QueryElementType
        !           486:     #define GpiSetElementPointerAtLabel Gpi16SetElementPointerAtLabel
        !           487: #endif /* INCL_16 */
        !           488: /* XLATON */
        !           489: BOOL  APIENTRY GpiBeginElement( HPS hps, LONG lType, PSZ pszDesc );
        !           490: BOOL  APIENTRY GpiEndElement( HPS hps );
        !           491: BOOL  APIENTRY GpiLabel( HPS hps, LONG lLabel );
        !           492: LONG  APIENTRY GpiElement( HPS hps, LONG lType, PSZ pszDesc
        !           493:                          , LONG lLength, PBYTE pbData );
        !           494: LONG  APIENTRY GpiQueryElement( HPS hps, LONG lOff, LONG lMaxLength
        !           495:                               , PBYTE pbData );
        !           496: BOOL  APIENTRY GpiDeleteElement( HPS hps );
        !           497: BOOL  APIENTRY GpiDeleteElementRange( HPS hps, LONG lFirstElement
        !           498:                                     , LONG lLastElement );
        !           499: BOOL  APIENTRY GpiDeleteElementsBetweenLabels( HPS hps, LONG lFirstLabel
        !           500:                                              , LONG lLastLabel );
        !           501: LONG  APIENTRY GpiQueryEditMode( HPS hps );
        !           502: BOOL  APIENTRY GpiSetEditMode( HPS hps, LONG lMode );
        !           503: LONG  APIENTRY GpiQueryElementPointer( HPS hps );
        !           504: BOOL  APIENTRY GpiSetElementPointer( HPS hps, LONG lElement );
        !           505: BOOL  APIENTRY GpiOffsetElementPointer( HPS hps, LONG loffset );
        !           506: LONG  APIENTRY GpiQueryElementType( HPS hps, PLONG plType, LONG lLength
        !           507:                                   , PSZ pszData );
        !           508: BOOL  APIENTRY GpiSetElementPointerAtLabel( HPS hps, LONG lLabel );
        !           509: 
        !           510: #endif /* non-common GPISEGEDITING */
        !           511: #ifdef INCL_GPITRANSFORMS
        !           512: 
        !           513: /* co-ordinates space for GpiConvert */
        !           514: #define CVTC_WORLD                      1L
        !           515: #define CVTC_MODEL                      2L
        !           516: #define CVTC_DEFAULTPAGE                3L
        !           517: #define CVTC_PAGE                       4L
        !           518: #define CVTC_DEVICE                     5L
        !           519: 
        !           520: /* type of transformation for GpiSetSegmentTransformMatrix */
        !           521: #define TRANSFORM_REPLACE               0L
        !           522: #define TRANSFORM_ADD                   1L
        !           523: #define TRANSFORM_PREEMPT               2L
        !           524: 
        !           525: /* transform matrix */
        !           526: typedef struct _MATRIXLF {     /* matlf */
        !           527:     FIXED fxM11;
        !           528:     FIXED fxM12;
        !           529:     LONG  lM13;
        !           530:     FIXED fxM21;
        !           531:     FIXED fxM22;
        !           532:     LONG  lM23;
        !           533:     LONG  lM31;
        !           534:     LONG  lM32;
        !           535:     LONG  lM33;
        !           536: } MATRIXLF;
        !           537: typedef MATRIXLF FAR *PMATRIXLF;
        !           538: 
        !           539: #ifndef INCL_DDIDEFS
        !           540: 
        !           541: /* XLATOFF */
        !           542: #ifdef INCL_16
        !           543:     #define GpiQuerySegmentTransformMatrix Gpi16QuerySegmentTransformMatr
        !           544:     #define GpiSetSegmentTransformMatrix Gpi16SetSegmentTransformMatrix
        !           545:     #define GpiConvert Gpi16Convert
        !           546:     #define GpiConvertWithMatrix Gpi16ConvertWithMatrix
        !           547:     #define GpiQueryModelTransformMatrix Gpi16QueryModelTransformMatrix
        !           548:     #define GpiSetModelTransformMatrix Gpi16SetModelTransformMatrix
        !           549:     #define GpiCallSegmentMatrix Gpi16CallSegmentMatrix
        !           550:     #define GpiQueryDefaultViewMatrix Gpi16QueryDefaultViewMatrix
        !           551:     #define GpiSetDefaultViewMatrix Gpi16SetDefaultViewMatrix
        !           552:     #define GpiQueryPageViewport Gpi16QueryPageViewport
        !           553:     #define GpiSetPageViewport Gpi16SetPageViewport
        !           554:     #define GpiQueryViewingTransformMatrix Gpi16QueryViewingTransformMatr
        !           555:     #define GpiSetViewingTransformMatrix Gpi16SetViewingTransformMatrix
        !           556:     #define GpiTranslate Gpi16Translate
        !           557:     #define GpiScale Gpi16Scale
        !           558:     #define GpiRotate Gpi16Rotate
        !           559:     #define GpiSetGraphicsField Gpi16SetGraphicsField
        !           560:     #define GpiQueryGraphicsField Gpi16QueryGraphicsField
        !           561:     #define GpiSetViewingLimits Gpi16SetViewingLimits
        !           562:     #define GpiQueryViewingLimits Gpi16QueryViewingLimits
        !           563: #endif /* INCL_16 */
        !           564: /* XLATON */
        !           565: 
        !           566: /*** transform and transform conversion functions */
        !           567: BOOL  APIENTRY GpiQuerySegmentTransformMatrix( HPS hps, LONG lSegid, LONG lCount
        !           568:                                              , PMATRIXLF pmatlfArray );
        !           569: BOOL  APIENTRY GpiSetSegmentTransformMatrix( HPS hps, LONG lSegid, LONG lCount
        !           570:                                            , PMATRIXLF pmatlfarray
        !           571:                                            , LONG lOptions );
        !           572: BOOL  APIENTRY GpiConvert( HPS hps, LONG lSrc, LONG lTarg, LONG lCount
        !           573:                          , PPOINTL aptlPoints );
        !           574: BOOL  APIENTRY GpiConvertWithMatrix( HPS hps, LONG lCountp
        !           575:                                    , PPOINTL aptlPoints, LONG lCount
        !           576:                                    , PMATRIXLF pmatlfArray );
        !           577: BOOL  APIENTRY GpiQueryModelTransformMatrix( HPS hps, LONG lCount
        !           578:                                            , PMATRIXLF pmatlfArray );
        !           579: BOOL  APIENTRY GpiSetModelTransformMatrix( HPS hps, LONG lCount
        !           580:                                          , PMATRIXLF pmatlfArray, LONG lOptions );
        !           581: LONG  APIENTRY GpiCallSegmentMatrix( HPS hps, LONG lSegment, LONG lCount
        !           582:                                    , PMATRIXLF pmatlfArray, LONG lOptions );
        !           583: BOOL  APIENTRY GpiQueryDefaultViewMatrix( HPS hps, LONG lCount
        !           584:                                         , PMATRIXLF pmatlfArray );
        !           585: BOOL  APIENTRY GpiSetDefaultViewMatrix( HPS hps, LONG lCount
        !           586:                                       , PMATRIXLF pmatlfarray, LONG lOptions );
        !           587: BOOL  APIENTRY GpiQueryPageViewport( HPS hps, PRECTL prclViewport );
        !           588: BOOL  APIENTRY GpiSetPageViewport( HPS hps, PRECTL prclViewport );
        !           589: BOOL  APIENTRY GpiQueryViewingTransformMatrix( HPS hps, LONG lCount
        !           590:                                              , PMATRIXLF pmatlfArray );
        !           591: BOOL  APIENTRY GpiSetViewingTransformMatrix( HPS hps, LONG lCount
        !           592:                                            , PMATRIXLF pmatlfArray
        !           593:                                            , LONG lOptions );
        !           594: 
        !           595: /*** transform helper routines */
        !           596: BOOL APIENTRY GpiTranslate( HPS, PMATRIXLF, LONG, PPOINTL );
        !           597: BOOL APIENTRY GpiScale( HPS, PMATRIXLF, LONG, PFIXED, PPOINTL );
        !           598: BOOL APIENTRY GpiRotate( HPS, PMATRIXLF, LONG, FIXED, PPOINTL );
        !           599: 
        !           600: /*** general clipping functions */
        !           601: BOOL APIENTRY GpiSetGraphicsField( HPS hps, PRECTL prclField );
        !           602: BOOL APIENTRY GpiQueryGraphicsField( HPS hps, PRECTL prclField );
        !           603: BOOL APIENTRY GpiSetViewingLimits( HPS hps, PRECTL prclLimits );
        !           604: BOOL APIENTRY GpiQueryViewingLimits( HPS hps, PRECTL prclLimits );
        !           605: 
        !           606: #endif /* no INCL_DDIDEFS */
        !           607: 
        !           608: #endif /* non-common GPITRANSFORMS */
        !           609: #ifdef INCL_GPIPATHS
        !           610: 
        !           611: /* modes for GpiModifyPath */
        !           612: #define MPATH_STROKE                    6L
        !           613: 
        !           614: /* modes for GpiFillPath */
        !           615: #define FPATH_ALTERNATE                 0L
        !           616: #define FPATH_WINDING                   2L
        !           617: 
        !           618: /* modes for GpiSetClipPath */
        !           619: #define SCP_ALTERNATE                   0L
        !           620: #define SCP_WINDING                     2L
        !           621: #define SCP_AND                         4L
        !           622: #define SCP_RESET                       0L
        !           623: 
        !           624: #ifndef INCL_DDIDEFS
        !           625: 
        !           626: /*** Path and Clip Path functions */
        !           627: /* XLATOFF */
        !           628: #ifdef INCL_16
        !           629:     #define GpiBeginPath Gpi16BeginPath
        !           630:     #define GpiEndPath Gpi16EndPath
        !           631:     #define GpiCloseFigure Gpi16CloseFigure
        !           632:     #define GpiModifyPath Gpi16ModifyPath
        !           633:     #define GpiFillPath Gpi16FillPath
        !           634:     #define GpiSetClipPath Gpi16SetClipPath
        !           635:     #define GpiOutlinePath Gpi16OutlinePath
        !           636:     #define GpiPathToRegion Gpi16PathToRegion
        !           637: #endif /* INCL_16 */
        !           638: /* XLATON */
        !           639: BOOL  APIENTRY GpiBeginPath( HPS hps, LONG lPath );
        !           640: BOOL  APIENTRY GpiEndPath( HPS hps );
        !           641: BOOL  APIENTRY GpiCloseFigure( HPS hps );
        !           642: BOOL  APIENTRY GpiModifyPath( HPS hps, LONG lPath, LONG lMode );
        !           643: LONG  APIENTRY GpiFillPath( HPS hps, LONG lPath, LONG lOptions );
        !           644: BOOL  APIENTRY GpiSetClipPath( HPS hps, LONG lPath, LONG lOptions );
        !           645: LONG  APIENTRY GpiOutlinePath( HPS hps, LONG lPath, LONG lOptions );
        !           646: HRGN  APIENTRY GpiPathToRegion( HPS GpiH, LONG lPath, LONG lOptions );
        !           647: 
        !           648: #ifndef INCL_SAADEFS
        !           649: 
        !           650: /* XLATOFF */
        !           651: #ifdef INCL_16
        !           652:     #define GpiStrokePath Gpi16StrokePath
        !           653: #endif /* INCL_16 */
        !           654: /* XLATON */
        !           655: LONG  APIENTRY GpiStrokePath( HPS hps, LONG lPath, ULONG flOptions );
        !           656: 
        !           657: #endif /* no INCL_SAADEFS */
        !           658: 
        !           659: #endif /* no INCL_DDIDEFS */
        !           660: 
        !           661: #endif /* non-common GPIPATHS */
        !           662: #ifdef INCL_GPILOGCOLORTABLE
        !           663: 
        !           664: #ifndef INCL_GPIBITMAPS
        !           665:     #define INCL_GPIBITMAPS
        !           666: #endif /* INCL_GPIBITMAPS */
        !           667: 
        !           668: /* options for GpiCreateLogColorTable and others */
        !           669: #define LCOL_RESET                   0x0001L
        !           670: #define LCOL_REALIZABLE              0x0002L
        !           671: #define LCOL_PURECOLOR               0x0004L
        !           672: #define LCOL_OVERRIDE_DEFAULT_COLORS 0x0008L
        !           673: 
        !           674: /* format of logical lColor table for GpiCreateLogColorTable and others */
        !           675: #define LCOLF_DEFAULT                   0L
        !           676: #define LCOLF_INDRGB                    1L
        !           677: #define LCOLF_CONSECRGB                 2L
        !           678: #define LCOLF_RGB                       3L
        !           679: 
        !           680: /* options for GpiQueryRealColors and others */
        !           681: #define LCOLOPT_REALIZED           0x0001L
        !           682: #define LCOLOPT_INDEX              0x0002L
        !           683: 
        !           684: #ifndef INCL_SAADEFS
        !           685: 
        !           686: /* return codes from GpiQueryLogColorTable to indicate it is in RGB mode */
        !           687: #define QLCT_ERROR                    (-1L)
        !           688: #define QLCT_RGB                      (-2L)
        !           689: 
        !           690: /* GpiQueryLogColorTable index returned for colors not explicitly loaded */
        !           691: #define QLCT_NOTLOADED                (-1L)
        !           692: 
        !           693: #endif /* no INCL_SAADEFS */
        !           694: 
        !           695: /* return codes for GpiQueryColorData */
        !           696: #define QCD_LCT_FORMAT                  0L
        !           697: #define QCD_LCT_LOINDEX                 1L
        !           698: #define QCD_LCT_HIINDEX                 2L
        !           699: 
        !           700: /* Palette manager return values */
        !           701: #define PAL_ERROR                     (-1L)
        !           702: 
        !           703: /* color flags for GpiCreatePalette and others */
        !           704: #define PC_RESERVED                   0x01
        !           705: #define PC_EXPLICIT                   0x02
        !           706: 
        !           707: #ifndef INCL_DDIDEFS
        !           708: 
        !           709: /*** logical lColor table functions */
        !           710: /* XLATOFF */
        !           711: #ifdef INCL_16
        !           712:     #define GpiCreateLogColorTable Gpi16CreateLogColorTable
        !           713:     #define GpiRealizeColorTable Gpi16RealizeColorTable
        !           714:     #define GpiUnrealizeColorTable Gpi16UnrealizeColorTable
        !           715:     #define GpiQueryColorData Gpi16QueryColorData
        !           716: #endif /* INCL_16 */
        !           717: /* XLATON */
        !           718: BOOL  APIENTRY GpiCreateLogColorTable( HPS hps, ULONG flOptions, LONG lFormat
        !           719:                                      , LONG lStart, LONG lCount, PLONG alTable );
        !           720: #ifdef INCL_16
        !           721: BOOL  APIENTRY GpiRealizeColorTable( HPS hps );
        !           722: BOOL  APIENTRY GpiUnrealizeColorTable( HPS hps );
        !           723: #endif /* INCL_16 */
        !           724: BOOL  APIENTRY GpiQueryColorData( HPS hps, LONG lCount, PLONG alArray );
        !           725: 
        !           726: #ifndef INCL_SAADEFS
        !           727: 
        !           728: /* XLATOFF */
        !           729: #ifdef INCL_16
        !           730:     #define GpiQueryLogColorTable Gpi16QueryLogColorTable
        !           731: #endif /* INCL_16 */
        !           732: /* XLATON */
        !           733: LONG  APIENTRY GpiQueryLogColorTable( HPS hps, ULONG flOptions, LONG lStart
        !           734:                                     , LONG lCount, PLONG alArray );
        !           735: 
        !           736: #endif /* no INCL_SAADEFS */
        !           737: 
        !           738: /* XLATOFF */
        !           739: #ifdef INCL_16
        !           740:     #define GpiQueryRealColors Gpi16QueryRealColors
        !           741:     #define GpiQueryNearestColor Gpi16QueryNearestColor
        !           742:     #define GpiQueryColorIndex Gpi16QueryColorIndex
        !           743:     #define GpiQueryRGBColor Gpi16QueryRGBColor
        !           744: #endif /* INCL_16 */
        !           745: /* XLATON */
        !           746: LONG  APIENTRY GpiQueryRealColors( HPS hps, ULONG flOptions, LONG lStart
        !           747:                                  , LONG lCount, PLONG alColors );
        !           748: LONG  APIENTRY GpiQueryNearestColor( HPS hps, ULONG flOptions, LONG lRgbIn );
        !           749: LONG  APIENTRY GpiQueryColorIndex( HPS hps, ULONG flOptions, LONG lRgbColor );
        !           750: LONG  APIENTRY GpiQueryRGBColor( HPS hps, ULONG flOptions, LONG lColorIndex );
        !           751: 
        !           752: #ifndef INCL_SAADEFS
        !           753: 
        !           754: /*Palette manager functions */
        !           755: /* XLATOFF */
        !           756: #ifdef INCL_16
        !           757:     #define GpiCreatePalette Gpi16CreatePalette
        !           758:     #define GpiDeletePalette Gpi16DeletePalette
        !           759:     #define GpiSelectPalette Gpi16SelectPalette
        !           760:     #define GpiAnimatePalette Gpi16AnimatePalette
        !           761:     #define GpiSetPaletteEntries Gpi16SetPaletteEntries
        !           762:     #define GpiQueryPalette Gpi16QueryPalette
        !           763:     #define GpiQueryPaletteInfo Gpi16QueryPaletteInfo
        !           764: #endif /* INCL_16 */
        !           765: /* XLATON */
        !           766: HPAL APIENTRY GpiCreatePalette( HAB hab, ULONG flOptions, LONG lFormat,
        !           767:                                 LONG lStart, LONG lCount, PLONG alTable );
        !           768: 
        !           769: BOOL APIENTRY GpiDeletePalette( HPAL hpal );
        !           770: HPAL APIENTRY GpiSelectPalette( HPS hps, HPAL hpal );
        !           771: LONG APIENTRY GpiAnimatePalette( HPAL hpal, LONG lFormat, LONG lStart,
        !           772:                                  LONG lCount, PLONG alTable );
        !           773: BOOL APIENTRY GpiSetPaletteEntries( HPAL hpal, LONG lFormat, LONG lStart,
        !           774:                                     LONG lCount, PLONG alTable );
        !           775: HPAL APIENTRY GpiQueryPalette( HPS hps );
        !           776: LONG APIENTRY GpiQueryPaletteInfo( HPAL hpal, HPS hps, ULONG flOptions,
        !           777:                                    LONG lStart, LONG lCount, PLONG alArray );
        !           778: 
        !           779: 
        !           780: #endif /* no INCL_SAADEFS */
        !           781: 
        !           782: #endif /* no INCL_DDIDEFS */
        !           783: 
        !           784: #endif /* non-common GPILOGCOLORTABLE */
        !           785: #if (defined(INCL_GPIPRIMITIVES) || !defined(INCL_NOCOMMON))
        !           786: 
        !           787: /* default color table indices */
        !           788: 
        !           789: #define CLR_FALSE                     (-5L)
        !           790: #define CLR_TRUE                      (-4L)
        !           791: 
        !           792: #define CLR_ERROR                   (-255L)
        !           793: #define CLR_DEFAULT                   (-3L)
        !           794: #define CLR_WHITE                     (-2L)
        !           795: #define CLR_BLACK                     (-1L)
        !           796: #define CLR_BACKGROUND                  0L
        !           797: #define CLR_BLUE                        1L
        !           798: #define CLR_RED                         2L
        !           799: #define CLR_PINK                        3L
        !           800: #define CLR_GREEN                       4L
        !           801: #define CLR_CYAN                        5L
        !           802: #define CLR_YELLOW                      6L
        !           803: #define CLR_NEUTRAL                     7L
        !           804: 
        !           805: #define CLR_DARKGRAY                    8L
        !           806: #define CLR_DARKBLUE                    9L
        !           807: #define CLR_DARKRED                    10L
        !           808: #define CLR_DARKPINK                   11L
        !           809: #define CLR_DARKGREEN                  12L
        !           810: #define CLR_DARKCYAN                   13L
        !           811: #define CLR_BROWN                      14L
        !           812: #define CLR_PALEGRAY                   15L
        !           813: 
        !           814: /* rgb colors */
        !           815: #define RGB_ERROR                   (-255L)
        !           816: #define RGB_BLACK              0x00000000L
        !           817: #define RGB_BLUE               0x000000FFL
        !           818: #define RGB_GREEN              0x0000FF00L
        !           819: #define RGB_CYAN               0x0000FFFFL
        !           820: #define RGB_RED                0x00FF0000L
        !           821: #define RGB_PINK               0x00FF00FFL
        !           822: #define RGB_YELLOW             0x00FFFF00L
        !           823: #define RGB_WHITE              0x00FFFFFFL
        !           824: 
        !           825: /* control flags used by GpiBeginArea */
        !           826: #define BA_NOBOUNDARY                   0L
        !           827: #define BA_BOUNDARY                0x0001L
        !           828: 
        !           829: 
        !           830: #define BA_ALTERNATE                    0L
        !           831: #define BA_WINDING                 0x0002L
        !           832: 
        !           833: 
        !           834: /* fill options for GpiBox/GpiFullArc */
        !           835: #define DRO_FILL                        1L
        !           836: #define DRO_OUTLINE                     2L
        !           837: #define DRO_OUTLINEFILL                 3L
        !           838: 
        !           839: /* basic pattern symbols */
        !           840: #define PATSYM_ERROR                  (-1L)
        !           841: #define PATSYM_DEFAULT                  0L
        !           842: #define PATSYM_DENSE1                   1L
        !           843: #define PATSYM_DENSE2                   2L
        !           844: #define PATSYM_DENSE3                   3L
        !           845: #define PATSYM_DENSE4                   4L
        !           846: #define PATSYM_DENSE5                   5L
        !           847: #define PATSYM_DENSE6                   6L
        !           848: #define PATSYM_DENSE7                   7L
        !           849: #define PATSYM_DENSE8                   8L
        !           850: #define PATSYM_VERT                     9L
        !           851: #define PATSYM_HORIZ                   10L
        !           852: #define PATSYM_DIAG1                   11L
        !           853: #define PATSYM_DIAG2                   12L
        !           854: #define PATSYM_DIAG3                   13L
        !           855: #define PATSYM_DIAG4                   14L
        !           856: #define PATSYM_NOSHADE                 15L
        !           857: #define PATSYM_SOLID                   16L
        !           858: #ifndef INCL_SAADEFS
        !           859: #define PATSYM_HALFTONE                17L
        !           860: #endif /* no INCL_SAADEFS */
        !           861: #define PATSYM_HATCH                   18L
        !           862: #define PATSYM_DIAGHATCH               19L
        !           863: #define PATSYM_BLANK                   64L
        !           864: 
        !           865: /* lcid values for GpiSet/QueryPattern and others */
        !           866: #define LCID_ERROR                    (-1L)
        !           867: #define LCID_DEFAULT                    0L
        !           868: 
        !           869: #ifndef INCL_DDIDEFS
        !           870: 
        !           871: /* XLATOFF */
        !           872: #ifdef INCL_16
        !           873:     #define GpiSetColor Gpi16SetColor
        !           874:     #define GpiQueryColor Gpi16QueryColor
        !           875:     #define GpiBox Gpi16Box
        !           876:     #define GpiMove Gpi16Move
        !           877:     #define GpiLine Gpi16Line
        !           878:     #define GpiPolyLine Gpi16PolyLine
        !           879:     #define GpiSetPattern Gpi16SetPattern
        !           880:     #define GpiQueryPattern Gpi16QueryPattern
        !           881:     #define GpiBeginArea Gpi16BeginArea
        !           882:     #define GpiEndArea Gpi16EndArea
        !           883:     #define GpiCharString Gpi16CharString
        !           884:     #define GpiCharStringAt Gpi16CharStringAt
        !           885: #endif /* INCL_16 */
        !           886: /* XLATON */
        !           887: 
        !           888: /*** global primitive functions */
        !           889: BOOL  APIENTRY GpiSetColor( HPS hps, LONG lColor );
        !           890: LONG  APIENTRY GpiQueryColor( HPS hps );
        !           891: 
        !           892: /*** line primitive functions */
        !           893: LONG  APIENTRY GpiBox( HPS hps, LONG lControl, PPOINTL pptlPoint
        !           894:                      , LONG lHRound, LONG lVRound );
        !           895: 
        !           896: BOOL  APIENTRY GpiMove( HPS hps, PPOINTL pptlPoint );
        !           897: LONG  APIENTRY GpiLine( HPS hps, PPOINTL pptlEndPoint );
        !           898: LONG  APIENTRY GpiPolyLine( HPS hps, LONG lCount, PPOINTL aptlPoints );
        !           899: 
        !           900: /*** area primitive functions */
        !           901: BOOL  APIENTRY GpiSetPattern( HPS hps, LONG lPatternSymbol );
        !           902: LONG  APIENTRY GpiQueryPattern( HPS hps );
        !           903: BOOL  APIENTRY GpiBeginArea( HPS hps, ULONG flOptions );
        !           904: LONG  APIENTRY GpiEndArea( HPS hps );
        !           905: 
        !           906: /*** character primitive functions */
        !           907: LONG  APIENTRY GpiCharString( HPS hps, LONG lCount, PCH pchString );
        !           908: LONG  APIENTRY GpiCharStringAt( HPS hps, PPOINTL pptlPoint
        !           909:                               , LONG lCount, PCH pchString );
        !           910: 
        !           911: #endif /* no INCL_DDIDEFS */
        !           912: 
        !           913: #endif /* common GPIPRIMTIVES */
        !           914: #ifdef INCL_GPIPRIMITIVES
        !           915: 
        !           916: /* mode for GpiSetAttrMode */
        !           917: #define AM_ERROR                      (-1L)
        !           918: #define AM_PRESERVE                     0L
        !           919: #define AM_NOPRESERVE                   1L
        !           920: 
        !           921: /* foreground mixes */
        !           922: #define FM_ERROR                      (-1L)
        !           923: #define FM_DEFAULT                      0L
        !           924: #define FM_OR                           1L
        !           925: #define FM_OVERPAINT                    2L
        !           926: #define FM_LEAVEALONE                   5L
        !           927: 
        !           928: 
        !           929: #define FM_XOR                          4L
        !           930: #define FM_AND                          6L
        !           931: #define FM_SUBTRACT                     7L
        !           932: #define FM_MASKSRCNOT                   8L
        !           933: #define FM_ZERO                         9L
        !           934: #define FM_NOTMERGESRC                 10L
        !           935: #define FM_NOTXORSRC                   11L
        !           936: #define FM_INVERT                      12L
        !           937: #define FM_MERGESRCNOT                 13L
        !           938: #define FM_NOTCOPYSRC                  14L
        !           939: #define FM_MERGENOTSRC                 15L
        !           940: #define FM_NOTMASKSRC                  16L
        !           941: #define FM_ONE                         17L
        !           942: 
        !           943: 
        !           944: /* background mixes */
        !           945: #define BM_ERROR                      (-1L)
        !           946: #define BM_DEFAULT                      0L
        !           947: #define BM_OVERPAINT                    2L
        !           948: #define BM_LEAVEALONE                   5L
        !           949: 
        !           950: 
        !           951: #define BM_OR                           1L
        !           952: #define BM_XOR                          4L
        !           953: 
        !           954: 
        !           955: /* basic line type styles */
        !           956: #define LINETYPE_ERROR                (-1L)
        !           957: #define LINETYPE_DEFAULT                0L
        !           958: #define LINETYPE_DOT                    1L
        !           959: #define LINETYPE_SHORTDASH              2L
        !           960: #define LINETYPE_DASHDOT                3L
        !           961: #define LINETYPE_DOUBLEDOT              4L
        !           962: #define LINETYPE_LONGDASH               5L
        !           963: #define LINETYPE_DASHDOUBLEDOT          6L
        !           964: #define LINETYPE_SOLID                  7L
        !           965: #define LINETYPE_INVISIBLE              8L
        !           966: #ifndef INCL_SAADEFS
        !           967: #define LINETYPE_ALTERNATE              9L
        !           968: #endif /* no INCL_SAADEFS */
        !           969: 
        !           970: /* cosmetic line widths */
        !           971: #define LINEWIDTH_ERROR               (-1L)
        !           972: #define LINEWIDTH_DEFAULT               0L
        !           973: #define LINEWIDTH_NORMAL       0x00010000L   /* MAKEFIXED(1,0) */
        !           974: #define LINEWIDTH_THICK        0x00020000L   /* MAKEFIXED(2,0) */
        !           975: 
        !           976: /* actual line widths */
        !           977: #define LINEWIDTHGEOM_ERROR           (-1L)
        !           978: 
        !           979: /* line end styles */
        !           980: #define LINEEND_ERROR                 (-1L)
        !           981: #define LINEEND_DEFAULT                 0L
        !           982: #define LINEEND_FLAT                    1L
        !           983: #define LINEEND_SQUARE                  2L
        !           984: #define LINEEND_ROUND                   3L
        !           985: 
        !           986: /* line join styles */
        !           987: #define LINEJOIN_ERROR                (-1L)
        !           988: #define LINEJOIN_DEFAULT                0L
        !           989: #define LINEJOIN_BEVEL                  1L
        !           990: #define LINEJOIN_ROUND                  2L
        !           991: #define LINEJOIN_MITRE                  3L
        !           992: 
        !           993: /* character directions */
        !           994: #define CHDIRN_ERROR                  (-1L)
        !           995: #define CHDIRN_DEFAULT                  0L
        !           996: #define CHDIRN_LEFTRIGHT                1L
        !           997: #define CHDIRN_TOPBOTTOM                2L
        !           998: #define CHDIRN_RIGHTLEFT                3L
        !           999: #define CHDIRN_BOTTOMTOP                4L
        !          1000: 
        !          1001: /* character modes */
        !          1002: #define CM_ERROR                      (-1L)
        !          1003: #define CM_DEFAULT                      0L
        !          1004: #define CM_MODE1                        1L
        !          1005: #define CM_MODE2                        2L
        !          1006: #define CM_MODE3                        3L
        !          1007: 
        !          1008: /* basic marker symbols */
        !          1009: #define MARKSYM_ERROR                 (-1L)
        !          1010: #define MARKSYM_DEFAULT                 0L
        !          1011: #define MARKSYM_CROSS                   1L
        !          1012: #define MARKSYM_PLUS                    2L
        !          1013: #define MARKSYM_DIAMOND                 3L
        !          1014: #define MARKSYM_SQUARE                  4L
        !          1015: #define MARKSYM_SIXPOINTSTAR            5L
        !          1016: #define MARKSYM_EIGHTPOINTSTAR          6L
        !          1017: #define MARKSYM_SOLIDDIAMOND            7L
        !          1018: #define MARKSYM_SOLIDSQUARE             8L
        !          1019: #define MARKSYM_DOT                     9L
        !          1020: #define MARKSYM_SMALLCIRCLE            10L
        !          1021: #define MARKSYM_BLANK                  64L
        !          1022: 
        !          1023: /* formatting options for GpiCharStringPosAt */
        !          1024: #define CHS_OPAQUE                 0x0001L
        !          1025: #define CHS_VECTOR                 0x0002L
        !          1026: #define CHS_LEAVEPOS               0x0008L
        !          1027: #define CHS_CLIP                   0x0010L
        !          1028: #define CHS_UNDERSCORE             0x0200L
        !          1029: #define CHS_STRIKEOUT              0x0400L
        !          1030: 
        !          1031: /* bundle codes for GpiSetAttributes and GpiQueryAttributes */
        !          1032: #define PRIM_LINE                       1L
        !          1033: #define PRIM_CHAR                       2L
        !          1034: #define PRIM_MARKER                     3L
        !          1035: #define PRIM_AREA                       4L
        !          1036: #define PRIM_IMAGE                      5L
        !          1037: 
        !          1038: /* line bundle mask bits */
        !          1039: #define LBB_COLOR                  0x0001L
        !          1040: #define LBB_MIX_MODE               0x0004L
        !          1041: #define LBB_WIDTH                  0x0010L
        !          1042: #define LBB_GEOM_WIDTH             0x0020L
        !          1043: #define LBB_TYPE                   0x0040L
        !          1044: #define LBB_END                    0x0080L
        !          1045: #define LBB_JOIN                   0x0100L
        !          1046: 
        !          1047: /* character bundle mask bits */
        !          1048: #define CBB_COLOR                  0x0001L
        !          1049: #define CBB_BACK_COLOR             0x0002L
        !          1050: #define CBB_MIX_MODE               0x0004L
        !          1051: #define CBB_BACK_MIX_MODE          0x0008L
        !          1052: #define CBB_SET                    0x0010L
        !          1053: #define CBB_MODE                   0x0020L
        !          1054: #define CBB_BOX                    0x0040L
        !          1055: #define CBB_ANGLE                  0x0080L
        !          1056: #define CBB_SHEAR                  0x0100L
        !          1057: #define CBB_DIRECTION              0x0200L
        !          1058: #define CBB_RESERVED               0x0400L
        !          1059: #define CBB_EXTRA                  0x0800L
        !          1060: #define CBB_BREAK_EXTRA            0x1000L
        !          1061: 
        !          1062: /* marker bundle mask bits */
        !          1063: #define MBB_COLOR                  0x0001L
        !          1064: #define MBB_BACK_COLOR             0x0002L
        !          1065: #define MBB_MIX_MODE               0x0004L
        !          1066: #define MBB_BACK_MIX_MODE          0x0008L
        !          1067: #define MBB_SET                    0x0010L
        !          1068: #define MBB_SYMBOL                 0x0020L
        !          1069: #define MBB_BOX                    0x0040L
        !          1070: 
        !          1071: /* pattern bundle mask bits */
        !          1072: #define ABB_COLOR                  0x0001L
        !          1073: #define ABB_BACK_COLOR             0x0002L
        !          1074: #define ABB_MIX_MODE               0x0004L
        !          1075: #define ABB_BACK_MIX_MODE          0x0008L
        !          1076: #define ABB_SET                    0x0010L
        !          1077: #define ABB_SYMBOL                 0x0020L
        !          1078: #define ABB_REF_POINT              0x0040L
        !          1079: 
        !          1080: /* image bundle mask bits */
        !          1081: #define IBB_COLOR                  0x0001L
        !          1082: #define IBB_BACK_COLOR             0x0002L
        !          1083: #define IBB_MIX_MODE               0x0004L
        !          1084: #define IBB_BACK_MIX_MODE          0x0008L
        !          1085: 
        !          1086: /* structure for GpiSetArcParams and GpiQueryArcParams */
        !          1087: typedef struct _ARCPARAMS {    /* arcp */
        !          1088:     LONG lP;
        !          1089:     LONG lQ;
        !          1090:     LONG lR;
        !          1091:     LONG lS;
        !          1092: } ARCPARAMS;
        !          1093: typedef ARCPARAMS FAR *PARCPARAMS;
        !          1094: 
        !          1095: /* variation of SIZE used for FIXEDs */
        !          1096: typedef struct _SIZEF {       /* sizfx */
        !          1097:     FIXED cx;
        !          1098:     FIXED cy;
        !          1099: } SIZEF;
        !          1100: typedef SIZEF FAR *PSIZEF;
        !          1101: 
        !          1102: /* structure for gradient parameters e.g. for GpiSetCharAngle */
        !          1103: typedef struct _GRADIENTL {     /* gradl */
        !          1104:     LONG x;
        !          1105:     LONG y;
        !          1106: } GRADIENTL;
        !          1107: typedef GRADIENTL FAR *PGRADIENTL;
        !          1108: 
        !          1109: #ifdef R201
        !          1110: 
        !          1111: /* line bundle for GpiSetAttributes and GpiQueryAttributes */
        !          1112: typedef struct _LINEBUNDLE {    /* lbnd */
        !          1113:     LONG    lColor;
        !          1114:     LONG    lBackColor;
        !          1115:     USHORT  usMixMode;
        !          1116:     USHORT  usBackMixMode;
        !          1117:     FIXED   fxWidth;
        !          1118:     LONG    lGeomWidth;
        !          1119:     USHORT  usType;
        !          1120:     USHORT  usEnd;
        !          1121:     USHORT  usJoin;
        !          1122: } LINEBUNDLE;
        !          1123: typedef LINEBUNDLE FAR *PLINEBUNDLE;
        !          1124: 
        !          1125: #else
        !          1126: 
        !          1127: /* line bundle for GpiSetAttributes and GpiQueryAttributes */
        !          1128: typedef struct _LINEBUNDLE {    /* lbnd */
        !          1129:     LONG    lColor;
        !          1130:     LONG    lReserved;
        !          1131:     USHORT  usMixMode;
        !          1132:     USHORT  usReserved;
        !          1133:     FIXED   fxWidth;
        !          1134:     LONG    lGeomWidth;
        !          1135:     USHORT  usType;
        !          1136:     USHORT  usEnd;
        !          1137:     USHORT  usJoin;
        !          1138: } LINEBUNDLE;
        !          1139: typedef LINEBUNDLE FAR *PLINEBUNDLE;
        !          1140: 
        !          1141: #endif /* R201 */
        !          1142: 
        !          1143: /* character bundle for GpiSetAttributes and GpiQueryAttributes */
        !          1144: typedef struct _CHARBUNDLE {    /* cbnd */
        !          1145:     LONG      lColor;
        !          1146:     LONG      lBackColor;
        !          1147:     USHORT    usMixMode;
        !          1148:     USHORT    usBackMixMode;
        !          1149:     USHORT    usSet;
        !          1150:     USHORT    usPrecision;
        !          1151:     SIZEF     sizfxCell;
        !          1152:     POINTL    ptlAngle;
        !          1153:     POINTL    ptlShear;
        !          1154:     USHORT    usDirection;
        !          1155:     USHORT    usReserved;
        !          1156:     FIXED     fxExtra;
        !          1157:     FIXED     fxBreakExtra;
        !          1158: } CHARBUNDLE;
        !          1159: typedef CHARBUNDLE FAR *PCHARBUNDLE;
        !          1160: 
        !          1161: /* marker bundle for GpiSetAttributes and GpiQueryAttributes */
        !          1162: typedef struct _MARKERBUNDLE {  /* mbnd */
        !          1163:     LONG   lColor;
        !          1164:     LONG   lBackColor;
        !          1165:     USHORT usMixMode;
        !          1166:     USHORT usBackMixMode;
        !          1167:     USHORT usSet;
        !          1168:     USHORT usSymbol;
        !          1169:     SIZEF  sizfxCell;
        !          1170: } MARKERBUNDLE;
        !          1171: typedef MARKERBUNDLE FAR *PMARKERBUNDLE;
        !          1172: 
        !          1173: /* pattern bundle for GpiSetAttributes and GpiQueryAttributes */
        !          1174: typedef struct _AREABUNDLE { /* pbnd */
        !          1175:     LONG   lColor;
        !          1176:     LONG   lBackColor;
        !          1177:     USHORT usMixMode;
        !          1178:     USHORT usBackMixMode;
        !          1179:     USHORT usSet;
        !          1180:     USHORT usSymbol;
        !          1181:     POINTL ptlRefPoint ;
        !          1182: } AREABUNDLE;
        !          1183: typedef AREABUNDLE FAR *PAREABUNDLE;
        !          1184: 
        !          1185: /* image bundle for GpiSetAttributes and GpiQueryAttributes */
        !          1186: typedef struct _IMAGEBUNDLE {   /* ibmd */
        !          1187:     LONG   lColor;
        !          1188:     LONG   lBackColor;
        !          1189:     USHORT usMixMode;
        !          1190:     USHORT usBackMixMode;
        !          1191: } IMAGEBUNDLE;
        !          1192: typedef IMAGEBUNDLE FAR *PIMAGEBUNDLE;
        !          1193: 
        !          1194: /* pointer to any bundle used by GpiSet/QueryAttrs */
        !          1195: typedef PVOID PBUNDLE;
        !          1196: 
        !          1197: /* array indices for GpiQueryTextBox */
        !          1198: #define TXTBOX_TOPLEFT                  0L
        !          1199: #define TXTBOX_BOTTOMLEFT               1L
        !          1200: #define TXTBOX_TOPRIGHT                 2L
        !          1201: #define TXTBOX_BOTTOMRIGHT              3L
        !          1202: #define TXTBOX_CONCAT                   4L
        !          1203: /* array count for GpiQueryTextBox */
        !          1204: #define TXTBOX_COUNT                    5L
        !          1205: 
        !          1206: /* return codes for GpiPtVisible */
        !          1207: #define PVIS_ERROR                      0L
        !          1208: #define PVIS_INVISIBLE                  1L
        !          1209: #define PVIS_VISIBLE                    2L
        !          1210: 
        !          1211: /* return codes for GpiRectVisible */
        !          1212: #define RVIS_ERROR                      0L
        !          1213: #define RVIS_INVISIBLE                  1L
        !          1214: #define RVIS_PARTIAL                    2L
        !          1215: #define RVIS_VISIBLE                    3L
        !          1216: 
        !          1217: #ifndef INCL_DDIDEFS
        !          1218: 
        !          1219: /* XLATOFF */
        !          1220: #ifdef INCL_16
        !          1221:     #define GpiSetAttrMode Gpi16SetAttrMode
        !          1222:     #define GpiQueryAttrMode Gpi16QueryAttrMode
        !          1223:     #define GpiSetAttrs Gpi16SetAttrs
        !          1224: #endif /* INCL_16 */
        !          1225: /* XLATON */
        !          1226: 
        !          1227: /*** attribute mode functions */
        !          1228: BOOL  APIENTRY GpiSetAttrMode( HPS hps, LONG lMode );
        !          1229: LONG  APIENTRY GpiQueryAttrMode( HPS hps );
        !          1230: /*** bundle primitive functions */
        !          1231: BOOL  APIENTRY GpiSetAttrs( HPS hps, LONG lPrimType, ULONG flAttrMask
        !          1232:                           , ULONG flDefMask, PBUNDLE ppbunAttrs );
        !          1233: #ifndef INCL_SAADEFS
        !          1234: 
        !          1235: /* XLATOFF */
        !          1236: #ifdef INCL_16
        !          1237:     #define GpiQueryAttrs Gpi16QueryAttrs
        !          1238: #endif /* INCL_16 */
        !          1239: /* XLATON */
        !          1240: LONG  APIENTRY GpiQueryAttrs( HPS hps, LONG lPrimType
        !          1241:                             , ULONG flAttrMask, PBUNDLE ppbunAttrs );
        !          1242: 
        !          1243: #endif /* no INCL_SAADEFS */
        !          1244: 
        !          1245: /* XLATOFF */
        !          1246: #ifdef INCL_16
        !          1247:     #define GpiSetBackColor Gpi16SetBackColor
        !          1248:     #define GpiQueryBackColor Gpi16QueryBackColor
        !          1249:     #define GpiSetMix Gpi16SetMix
        !          1250:     #define GpiQueryMix Gpi16QueryMix
        !          1251:     #define GpiSetBackMix Gpi16SetBackMix
        !          1252:     #define GpiQueryBackMix Gpi16QueryBackMix
        !          1253:     #define GpiSetLineType Gpi16SetLineType
        !          1254:     #define GpiQueryLineType Gpi16QueryLineType
        !          1255:     #define GpiSetLineWidth Gpi16SetLineWidth
        !          1256:     #define GpiQueryLineWidth Gpi16QueryLineWidth
        !          1257:     #define GpiSetLineWidthGeom Gpi16SetLineWidthGeom
        !          1258:     #define GpiQueryLineWidthGeom Gpi16QueryLineWidthGeom
        !          1259:     #define GpiSetLineEnd Gpi16SetLineEnd
        !          1260:     #define GpiQueryLineEnd Gpi16QueryLineEnd
        !          1261:     #define GpiSetLineJoin Gpi16SetLineJoin
        !          1262:     #define GpiQueryLineJoin Gpi16QueryLineJoin
        !          1263:     #define GpiSetCurrentPosition Gpi16SetCurrentPosition
        !          1264:     #define GpiQueryCurrentPosition Gpi16QueryCurrentPosition
        !          1265:     #define GpiSetArcParams Gpi16SetArcParams
        !          1266:     #define GpiQueryArcParams Gpi16QueryArcParams
        !          1267:     #define GpiPointArc Gpi16PointArc
        !          1268:     #define GpiFullArc Gpi16FullArc
        !          1269:     #define GpiPartialArc Gpi16PartialArc
        !          1270:     #define GpiPolyFillet Gpi16PolyFillet
        !          1271:     #define GpiPolySpline Gpi16PolySpline
        !          1272:     #define GpiPolyFilletSharp Gpi16PolyFilletSharp
        !          1273:     #define GpiSetPatternSet Gpi16SetPatternSet
        !          1274:     #define GpiQueryPatternSet Gpi16QueryPatternSet
        !          1275:     #define GpiSetPatternRefPoint Gpi16SetPatternRefPoint
        !          1276:     #define GpiQueryPatternRefPoint Gpi16QueryPatternRefPoint
        !          1277:     #define GpiQueryCharStringPos Gpi16QueryCharStringPos
        !          1278:     #define GpiQueryCharStringPosAt Gpi16QueryCharStringPosAt
        !          1279:     #define GpiQueryTextBox Gpi16QueryTextBox
        !          1280:     #define GpiQueryDefCharBox Gpi16QueryDefCharBox
        !          1281:     #define GpiSetCharSet Gpi16SetCharSet
        !          1282:     #define GpiQueryCharSet Gpi16QueryCharSet
        !          1283:     #define GpiSetCharBox Gpi16SetCharBox
        !          1284:     #define GpiQueryCharBox Gpi16QueryCharBox
        !          1285:     #define GpiSetCharAngle Gpi16SetCharAngle
        !          1286:     #define GpiQueryCharAngle Gpi16QueryCharAngle
        !          1287:     #define GpiSetCharShear Gpi16SetCharShear
        !          1288:     #define GpiQueryCharShear Gpi16QueryCharShear
        !          1289:     #define GpiSetCharDirection Gpi16SetCharDirection
        !          1290:     #define GpiQueryCharDirection Gpi16QueryCharDirection
        !          1291:     #define GpiSetCharMode Gpi16SetCharMode
        !          1292:     #define GpiQueryCharMode Gpi16QueryCharMode
        !          1293:     #define GpiCharStringPos Gpi16CharStringPos
        !          1294:     #define GpiCharStringPosAt Gpi16CharStringPosAt
        !          1295:     #define GpiSetCharExtra Gpi16SetCharExtra
        !          1296:     #define GpiSetCharBreakExtra Gpi16SetCharBreakExtra
        !          1297:     #define GpiQueryCharExtra Gpi16QueryCharExtra
        !          1298:     #define GpiQueryCharBreakExtra Gpi16QueryCharBreakExtra
        !          1299:     #define GpiMarker Gpi16Marker
        !          1300:     #define GpiPolyMarker Gpi16PolyMarker
        !          1301:     #define GpiSetMarker Gpi16SetMarker
        !          1302:     #define GpiSetMarkerBox Gpi16SetMarkerBox
        !          1303:     #define GpiSetMarkerSet Gpi16SetMarkerSet
        !          1304:     #define GpiQueryMarker Gpi16QueryMarker
        !          1305:     #define GpiQueryMarkerBox Gpi16QueryMarkerBox
        !          1306:     #define GpiQueryMarkerSet Gpi16QueryMarkerSet
        !          1307:     #define GpiImage Gpi16Image
        !          1308:     #define GpiPop Gpi16Pop
        !          1309:     #define GpiPtVisible Gpi16PtVisible
        !          1310:     #define GpiRectVisible Gpi16RectVisible
        !          1311:     #define GpiComment Gpi16Comment
        !          1312: #endif /* INCL_16 */
        !          1313: /* XLATON */
        !          1314: 
        !          1315: /*** global primitive functions */
        !          1316: BOOL  APIENTRY GpiSetBackColor( HPS hps, LONG lColor );
        !          1317: LONG  APIENTRY GpiQueryBackColor( HPS hps );
        !          1318: BOOL  APIENTRY GpiSetMix( HPS hps, LONG lMixMode );
        !          1319: LONG  APIENTRY GpiQueryMix( HPS hps );
        !          1320: BOOL  APIENTRY GpiSetBackMix( HPS hps, LONG lMixMode );
        !          1321: LONG  APIENTRY GpiQueryBackMix( HPS hps );
        !          1322: 
        !          1323: /*** line primitive functions */
        !          1324: BOOL  APIENTRY GpiSetLineType( HPS hps, LONG lLineType );
        !          1325: LONG  APIENTRY GpiQueryLineType( HPS hps );
        !          1326: BOOL  APIENTRY GpiSetLineWidth( HPS hps, FIXED fxLineWidth );
        !          1327: FIXED APIENTRY GpiQueryLineWidth( HPS hps );
        !          1328: 
        !          1329: BOOL  APIENTRY GpiSetLineWidthGeom( HPS hps, LONG lLineWidth );
        !          1330: LONG  APIENTRY GpiQueryLineWidthGeom( HPS hps );
        !          1331: BOOL  APIENTRY GpiSetLineEnd( HPS hps, LONG lLineEnd );
        !          1332: LONG  APIENTRY GpiQueryLineEnd( HPS hps );
        !          1333: BOOL  APIENTRY GpiSetLineJoin( HPS hps, LONG lLineJoin );
        !          1334: LONG  APIENTRY GpiQueryLineJoin( HPS hps );
        !          1335: 
        !          1336: BOOL  APIENTRY GpiSetCurrentPosition( HPS hps, PPOINTL pptlPoint );
        !          1337: BOOL  APIENTRY GpiQueryCurrentPosition( HPS hps, PPOINTL pptlPoint );
        !          1338: 
        !          1339: /*** arc primitive functions */
        !          1340: BOOL  APIENTRY GpiSetArcParams( HPS hps, PARCPARAMS parcpArcParams );
        !          1341: BOOL  APIENTRY GpiQueryArcParams( HPS hps, PARCPARAMS parcpArcParams );
        !          1342: 
        !          1343: LONG  APIENTRY GpiPointArc( HPS hps, PPOINTL pptl2 );
        !          1344: 
        !          1345: LONG  APIENTRY GpiFullArc( HPS hps, LONG lControl, FIXED fxMultiplier );
        !          1346: LONG  APIENTRY GpiPartialArc( HPS hps, PPOINTL pptlCenter, FIXED fxMultiplier
        !          1347:                             , FIXED fxStartAngle, FIXED fxSweepAngle );
        !          1348: LONG  APIENTRY GpiPolyFillet( HPS hps, LONG lCount, PPOINTL aptlPoints );
        !          1349: LONG  APIENTRY GpiPolySpline( HPS hps, LONG lCount, PPOINTL aptlPoints );
        !          1350: LONG  APIENTRY GpiPolyFilletSharp( HPS hps, LONG lCount, PPOINTL aptlPoints
        !          1351:                                  , PFIXED afxPoints );
        !          1352: 
        !          1353: /*** area primitive functions */
        !          1354: BOOL  APIENTRY GpiSetPatternSet( HPS hps, LONG lSet );
        !          1355: LONG  APIENTRY GpiQueryPatternSet( HPS hps );
        !          1356: BOOL  APIENTRY GpiSetPatternRefPoint( HPS hps, PPOINTL pptlRefPoint );
        !          1357: BOOL  APIENTRY GpiQueryPatternRefPoint( HPS hps, PPOINTL pptlRefPoint );
        !          1358: 
        !          1359: /*** character primitive functions */
        !          1360: 
        !          1361: BOOL  APIENTRY GpiQueryCharStringPos( HPS hps, ULONG flOptions, LONG lCount
        !          1362:                                     , PCH pchString, PLONG alXincrements
        !          1363:                                     , PPOINTL aptlPositions );
        !          1364: BOOL  APIENTRY GpiQueryCharStringPosAt( HPS hps, PPOINTL pptlStart
        !          1365:                                       , ULONG flOptions, LONG lCount
        !          1366:                                       , PCH pchString, PLONG alXincrements
        !          1367:                                       , PPOINTL aptlPositions );
        !          1368: BOOL  APIENTRY GpiQueryTextBox( HPS hps, LONG lCount1, PCH pchString
        !          1369:                               , LONG lCount2, PPOINTL aptlPoints );
        !          1370: BOOL  APIENTRY GpiQueryDefCharBox( HPS hps, PSIZEL psizlSize );
        !          1371: BOOL  APIENTRY GpiSetCharSet( HPS hps, LONG llcid );
        !          1372: LONG  APIENTRY GpiQueryCharSet( HPS hps );
        !          1373: BOOL  APIENTRY GpiSetCharBox( HPS hps, PSIZEF psizfxBox );
        !          1374: BOOL  APIENTRY GpiQueryCharBox( HPS hps, PSIZEF psizfxSize );
        !          1375: BOOL  APIENTRY GpiSetCharAngle( HPS hps, PGRADIENTL pgradlAngle );
        !          1376: BOOL  APIENTRY GpiQueryCharAngle( HPS hps, PGRADIENTL pgradlAngle );
        !          1377: BOOL  APIENTRY GpiSetCharShear( HPS hps, PPOINTL pptlAngle );
        !          1378: BOOL  APIENTRY GpiQueryCharShear( HPS hps, PPOINTL pptlShear );
        !          1379: BOOL  APIENTRY GpiSetCharDirection( HPS hps, LONG lDirection );
        !          1380: LONG  APIENTRY GpiQueryCharDirection( HPS hps );
        !          1381: BOOL  APIENTRY GpiSetCharMode( HPS hps, LONG lMode );
        !          1382: LONG  APIENTRY GpiQueryCharMode( HPS hps );
        !          1383: 
        !          1384: LONG  APIENTRY GpiCharStringPos( HPS hps, PRECTL prclRect, ULONG flOptions
        !          1385:                                , LONG lCount, PCH pchString, PLONG alAdx );
        !          1386: LONG  APIENTRY GpiCharStringPosAt( HPS hps, PPOINTL pptlStart, PRECTL prclRect
        !          1387:                                  , ULONG flOptions, LONG lCount, PCH pchString
        !          1388:                                  , PLONG alAdx );
        !          1389: BOOL  APIENTRY GpiSetCharExtra       (HPS hps, FIXED  Extra);
        !          1390: BOOL  APIENTRY GpiSetCharBreakExtra  (HPS hps, FIXED  BreakExtra);
        !          1391: BOOL  APIENTRY GpiQueryCharExtra     (HPS hps, PFIXED Extra);
        !          1392: BOOL  APIENTRY GpiQueryCharBreakExtra(HPS hps, PFIXED BreakExtra);
        !          1393: 
        !          1394: /*** marker primitive functions  */
        !          1395: LONG  APIENTRY GpiMarker( HPS hps, PPOINTL pptlPoint );
        !          1396: LONG  APIENTRY GpiPolyMarker( HPS hps, LONG lCount, PPOINTL aptlPoints );
        !          1397: BOOL  APIENTRY GpiSetMarker( HPS hps, LONG lSymbol );
        !          1398: BOOL  APIENTRY GpiSetMarkerBox( HPS hps, PSIZEF psizfxSize );
        !          1399: BOOL  APIENTRY GpiSetMarkerSet( HPS hps, LONG lSet );
        !          1400: LONG  APIENTRY GpiQueryMarker( HPS hps );
        !          1401: BOOL  APIENTRY GpiQueryMarkerBox( HPS hps, PSIZEF psizfxSize );
        !          1402: LONG  APIENTRY GpiQueryMarkerSet( HPS hps );
        !          1403: 
        !          1404: /*** image primitive functions */
        !          1405: LONG  APIENTRY GpiImage( HPS hps, LONG lFormat, PSIZEL psizlImageSize
        !          1406:                        , LONG lLength, PBYTE pbData );
        !          1407: 
        !          1408: /*** miscellaneous primitive functions */
        !          1409: BOOL  APIENTRY GpiPop( HPS hps, LONG lCount );
        !          1410: LONG  APIENTRY GpiPtVisible( HPS hps, PPOINTL pptlPoint );
        !          1411: LONG  APIENTRY GpiRectVisible( HPS hps, PRECTL prclRectangle );
        !          1412: BOOL  APIENTRY GpiComment( HPS hps, LONG lLength, PBYTE pbData );
        !          1413: 
        !          1414: #endif /* no INCL_DDIDEFS */
        !          1415: 
        !          1416: #endif /* non-common GPIPRIMITIVES */
        !          1417: #ifdef INCL_GPILCIDS
        !          1418: 
        !          1419: /* return codes from GpiCreateLogFont */
        !          1420: #define FONT_DEFAULT                    1L
        !          1421: #define FONT_MATCH                      2L
        !          1422: 
        !          1423: /* lcid type for GpiQuerySetIds */
        !          1424: #define LCIDT_FONT                      6L
        !          1425: 
        !          1426: #define LCIDT_BITMAP                    7L
        !          1427: 
        !          1428: /* constant used to delete all lcids by GpiDeleteSetId */
        !          1429: #define LCID_ALL                      (-1L)
        !          1430: 
        !          1431: /* kerning data returned by GpiQueryKerningPairs */
        !          1432: #ifdef INCL_32
        !          1433: typedef struct _KERNINGPAIRS {  /* krnpr */
        !          1434:     SHORT sFirstChar;
        !          1435:     SHORT sSecondChar;
        !          1436:     LONG  lKerningAmount;
        !          1437: } KERNINGPAIRS;
        !          1438: #else
        !          1439: typedef struct _KERNINGPAIRS {  /* krnpr */
        !          1440:     SHORT sFirstChar;
        !          1441:     SHORT sSecondChar;
        !          1442:     SHORT sKerningAmount;
        !          1443: } KERNINGPAIRS;
        !          1444: #endif
        !          1445: typedef KERNINGPAIRS FAR *PKERNINGPAIRS;
        !          1446: 
        !          1447: /* data required by GpiQueryFaceString */
        !          1448: typedef struct _FACENAMEDESC {  /* fnd */
        !          1449:     USHORT usSize;
        !          1450:     USHORT usWeightClass;
        !          1451:     USHORT usWidthClass;
        !          1452:     USHORT usReserved;
        !          1453:     ULONG  flOptions;
        !          1454: } FACENAMEDESC;
        !          1455: typedef FACENAMEDESC FAR *PFACENAMEDESC;
        !          1456: 
        !          1457: /* FACENAMEDESC 'WeightClass' options for GpiQueryFaceString */
        !          1458: #define FWEIGHT_DONT_CARE      0L
        !          1459: #define FWEIGHT_ULTRA_LIGHT    1L
        !          1460: #define FWEIGHT_EXTRA_LIGHT    2L
        !          1461: #define FWEIGHT_LIGHT          3L
        !          1462: #define FWEIGHT_SEMI_LIGHT     4L
        !          1463: #define FWEIGHT_NORMAL         5L
        !          1464: #define FWEIGHT_SEMI_BOLD      6L
        !          1465: #define FWEIGHT_BOLD           7L
        !          1466: #define FWEIGHT_EXTRA_BOLD     8L
        !          1467: #define FWEIGHT_ULTRA_BOLD     9L
        !          1468: 
        !          1469: /* FACENAMEDESC 'WidthClass' options for GpiQueryFaceString */
        !          1470: #define FWIDTH_DONT_CARE       0L
        !          1471: #define FWIDTH_ULTRA_CONDENSED 1L
        !          1472: #define FWIDTH_EXTRA_CONDENSED 2L
        !          1473: #define FWIDTH_CONDENSED       3L
        !          1474: #define FWIDTH_SEMI_CONDENSED  4L
        !          1475: #define FWIDTH_NORMAL          5L
        !          1476: #define FWIDTH_SEMI_EXPANDED   6L
        !          1477: #define FWIDTH_EXPANDED        7L
        !          1478: #define FWIDTH_EXTRA_EXPANDED  8L
        !          1479: #define FWIDTH_ULTRA_EXPANDED  9L
        !          1480: 
        !          1481: /* FACENAMEDESC 'options' for GpiQueryFaceString */
        !          1482: #define FTYPE_ITALIC            0x0001
        !          1483: #define FTYPE_ITALIC_DONT_CARE  0x0002
        !          1484: #define FTYPE_OBLIQUE           0x0004
        !          1485: #define FTYPE_OBLIQUE_DONT_CARE 0x0008
        !          1486: #define FTYPE_ROUNDED           0x0010
        !          1487: #define FTYPE_ROUNDED_DONT_CARE 0x0020
        !          1488: 
        !          1489: /* actions for GpiQueryFontAction */
        !          1490: #define QFA_PUBLIC      1L
        !          1491: #define QFA_PRIVATE     2L
        !          1492: #define QFA_ERROR       GPI_ALTERROR
        !          1493: 
        !          1494: /* options for GpiQueryFonts */
        !          1495: #define QF_PUBLIC                  0x0001L
        !          1496: #define QF_PRIVATE                 0x0002L
        !          1497: #define QF_NO_GENERIC              0x0004L
        !          1498: #define QF_NO_DEVICE               0x0008L
        !          1499: 
        !          1500: #ifndef INCL_SAADEFS
        !          1501: 
        !          1502: /* font file descriptions for GpiQueryFontFileDescriptions */
        !          1503: typedef CHAR FFDESCS[2][FACESIZE]; /* ffdescs */
        !          1504: typedef FFDESCS FAR *PFFDESCS;
        !          1505: 
        !          1506: #endif /* no INCL_SAADEFS */
        !          1507: 
        !          1508: #ifndef INCL_DDIDEFS
        !          1509: 
        !          1510: /*** physical and logical font functions */
        !          1511: /* XLATOFF */
        !          1512: #ifdef INCL_16
        !          1513:     #define GpiCreateLogFont Gpi16CreateLogFont
        !          1514:     #define GpiDeleteSetId Gpi16DeleteSetId
        !          1515:     #define GpiLoadFonts Gpi16LoadFonts
        !          1516:     #define GpiUnloadFonts Gpi16UnloadFonts
        !          1517:     #define GpiQueryFonts Gpi16QueryFonts
        !          1518:     #define GpiQueryFontMetrics Gpi16QueryFontMetrics
        !          1519:     #define GpiQueryKerningPairs Gpi16QueryKerningPairs
        !          1520:     #define GpiQueryWidthTable Gpi16QueryWidthTable
        !          1521:     #define GpiQueryNumberSetIds Gpi16QueryNumberSetIds
        !          1522:     #define GpiQuerySetIds Gpi16QuerySetIds
        !          1523:     #define GpiQueryFaceString Gpi16QueryFaceString
        !          1524:     #define GpiQueryLogicalFont Gpi16QueryLogicalFont
        !          1525:     #define GpiQueryFontAction Gpi16QueryFontAction
        !          1526:     #define GpiLoadPublicFonts Gpi16LoadPublicFonts
        !          1527:     #define GpiUnloadPublicFonts Gpi16UnloadPublicFonts
        !          1528: #endif /* INCL_16 */
        !          1529: /* XLATON */
        !          1530: LONG  APIENTRY GpiCreateLogFont( HPS hps, PSTR8 pName, LONG lLcid
        !          1531:                                , PFATTRS pfatAttrs );
        !          1532: BOOL  APIENTRY GpiDeleteSetId( HPS hps, LONG lLcid );
        !          1533: BOOL  APIENTRY GpiLoadFonts( HAB hab, PSZ pszFilename );
        !          1534: BOOL  APIENTRY GpiUnloadFonts( HAB hab, PSZ pszFilename );
        !          1535: LONG  APIENTRY GpiQueryFonts( HPS hps, ULONG flOptions, PSZ pszFacename
        !          1536:                             , PLONG plReqFonts, LONG lMetricsLength
        !          1537:                             , PFONTMETRICS afmMetrics );
        !          1538: BOOL  APIENTRY GpiQueryFontMetrics( HPS hps, LONG lMetricsLength
        !          1539:                                   , PFONTMETRICS pfmMetrics );
        !          1540: LONG  APIENTRY GpiQueryKerningPairs( HPS hps, LONG lCount
        !          1541:                                    , PKERNINGPAIRS akrnprData );
        !          1542: BOOL  APIENTRY GpiQueryWidthTable( HPS hps, LONG lFirstChar, LONG lCount
        !          1543:                                  , PLONG alData );
        !          1544: LONG  APIENTRY GpiQueryNumberSetIds( HPS hps );
        !          1545: BOOL  APIENTRY GpiQuerySetIds( HPS hps, LONG lCount, PLONG alTypes
        !          1546:                              , PSTR8 aNames, PLONG allcids );
        !          1547: 
        !          1548: ULONG APIENTRY GpiQueryFaceString(HPS PS, PSZ FamilyName,
        !          1549:                                   PFACENAMEDESC attrs, LONG length,
        !          1550:                                   PSZ CompoundFaceName);
        !          1551: 
        !          1552: BOOL  APIENTRY GpiQueryLogicalFont(HPS PS, LONG lcid, PSTR8 name,
        !          1553:                                    PFATTRS attrs, LONG length);
        !          1554: 
        !          1555: ULONG APIENTRY GpiQueryFontAction(HAB anchor, ULONG options);
        !          1556: 
        !          1557: BOOL  APIENTRY GpiLoadPublicFonts( HAB, PSZ );
        !          1558: BOOL  APIENTRY GpiUnloadPublicFonts( HAB, PSZ );
        !          1559: 
        !          1560: #ifndef INCL_SAADEFS
        !          1561: /* XLATOFF */
        !          1562: #ifdef INCL_16
        !          1563:     #define GpiSetCp Gpi16SetCp
        !          1564:     #define GpiQueryCp Gpi16QueryCp
        !          1565:     #define GpiQueryFontFileDescriptions Gpi16QueryFontFileDescriptions
        !          1566: #endif /* INCL_16 */
        !          1567: /* XLATON */
        !          1568: BOOL    APIENTRY GpiSetCp( HPS hps, USHORT usCodePage );
        !          1569: USHORT  APIENTRY GpiQueryCp( HPS hps );
        !          1570: LONG    APIENTRY GpiQueryFontFileDescriptions( HAB hab, PSZ pszFilename
        !          1571:                                              , PLONG plCount
        !          1572:                                              , PFFDESCS affdescsNames );
        !          1573: #endif /* no INCL_SAADEFS */
        !          1574: 
        !          1575: #endif /* no INCL_DDIDEFS */
        !          1576: 
        !          1577: #endif /* non-common GPILCIDS */
        !          1578: 
        !          1579: #if (defined(INCL_GPIBITMAPS) || !defined(INCL_NOCOMMON))
        !          1580: 
        !          1581:     #include <pmbitmap.h>
        !          1582: #endif
        !          1583: 
        !          1584: #ifdef INCL_GPIREGIONS
        !          1585: 
        !          1586: /* options for GpiCombineRegion */
        !          1587: #define CRGN_OR                         1L
        !          1588: #define CRGN_COPY                       2L
        !          1589: #define CRGN_XOR                        4L
        !          1590: #define CRGN_AND                        6L
        !          1591: #define CRGN_DIFF                       7L
        !          1592: 
        !          1593: /* usDirection of returned region data for GpiQueryRegionRects */
        !          1594: #define RECTDIR_LFRT_TOPBOT             1L
        !          1595: #define RECTDIR_RTLF_TOPBOT             2L
        !          1596: #define RECTDIR_LFRT_BOTTOP             3L
        !          1597: #define RECTDIR_RTLF_BOTTOP             4L
        !          1598: 
        !          1599: /* control data for GpiQueryRegionRects */
        !          1600: #ifdef INCL_32
        !          1601: typedef struct _RGNRECT {       /* rgnrc */
        !          1602:     ULONG  ircStart;
        !          1603:     ULONG  crc;
        !          1604:     ULONG  crcReturned;
        !          1605:     USHORT usDirection;
        !          1606: } RGNRECT;
        !          1607: #else
        !          1608: typedef struct _RGNRECT {       /* rgnrc */
        !          1609:     USHORT ircStart;
        !          1610:     USHORT crc;
        !          1611:     USHORT crcReturned;
        !          1612:     USHORT usDirection;
        !          1613: } RGNRECT;
        !          1614: #endif
        !          1615: typedef RGNRECT FAR *PRGNRECT;
        !          1616: 
        !          1617: /* return code to indicate type of region for GpiCombineRegion and others */
        !          1618: #define RGN_ERROR                       0L
        !          1619: #define RGN_NULL                        1L
        !          1620: #define RGN_RECT                        2L
        !          1621: #define RGN_COMPLEX                     3L
        !          1622: 
        !          1623: /* return codes for GpiPtInRegion */
        !          1624: #define PRGN_ERROR                      0L
        !          1625: #define PRGN_OUTSIDE                    1L
        !          1626: #define PRGN_INSIDE                     2L
        !          1627: 
        !          1628: /* return codes for GpiRectInRegion */
        !          1629: #define RRGN_ERROR                      0L
        !          1630: #define RRGN_OUTSIDE                    1L
        !          1631: #define RRGN_PARTIAL                    2L
        !          1632: #define RRGN_INSIDE                     3L
        !          1633: 
        !          1634: /* return codes for GpiEqualRegion */
        !          1635: #define EQRGN_ERROR                     0L
        !          1636: #define EQRGN_NOTEQUAL                  1L
        !          1637: #define EQRGN_EQUAL                     2L
        !          1638: 
        !          1639: /* error return code for GpiSetRegion */
        !          1640: #define HRGN_ERROR              ((HRGN)-1L)
        !          1641: 
        !          1642: #ifndef INCL_DDIDEFS
        !          1643: 
        !          1644: /* XLATOFF */
        !          1645: #ifdef INCL_16
        !          1646:     #define GpiCombineRegion Gpi16CombineRegion
        !          1647:     #define GpiCreateRegion Gpi16CreateRegion
        !          1648:     #define GpiDestroyRegion Gpi16DestroyRegion
        !          1649:     #define GpiEqualRegion Gpi16EqualRegion
        !          1650:     #define GpiOffsetRegion Gpi16OffsetRegion
        !          1651:     #define GpiPaintRegion Gpi16PaintRegion
        !          1652:     #define GpiFrameRegion Gpi16FrameRegion
        !          1653:     #define GpiPtInRegion Gpi16PtInRegion
        !          1654:     #define GpiQueryRegionBox Gpi16QueryRegionBox
        !          1655:     #define GpiQueryRegionRects Gpi16QueryRegionRects
        !          1656:     #define GpiRectInRegion Gpi16RectInRegion
        !          1657:     #define GpiSetRegion Gpi16SetRegion
        !          1658:     #define GpiSetClipRegion Gpi16SetClipRegion
        !          1659: #endif /* INCL_16 */
        !          1660: /* XLATON */
        !          1661: 
        !          1662: /*** main region functions */
        !          1663: LONG  APIENTRY GpiCombineRegion( HPS hps, HRGN hrgnDest, HRGN hrgnSrc1
        !          1664:                                , HRGN hrgnSrc2, LONG lMode );
        !          1665: HRGN  APIENTRY GpiCreateRegion( HPS hps, LONG lCount, PRECTL arclRectangles );
        !          1666: BOOL  APIENTRY GpiDestroyRegion( HPS hps, HRGN hrgn );
        !          1667: LONG  APIENTRY GpiEqualRegion( HPS hps, HRGN hrgnSrc1, HRGN hrgnSrc2 );
        !          1668: BOOL  APIENTRY GpiOffsetRegion( HPS hps, HRGN Hrgn, PPOINTL pptlOffset );
        !          1669: LONG  APIENTRY GpiPaintRegion( HPS hps, HRGN hrgn );
        !          1670: LONG  APIENTRY GpiFrameRegion( HPS hps, HRGN hrgn, PSIZEL thickness );
        !          1671: LONG  APIENTRY GpiPtInRegion( HPS hps, HRGN hrgn, PPOINTL pptlPoint );
        !          1672: LONG  APIENTRY GpiQueryRegionBox( HPS hps, HRGN hrgn, PRECTL prclBound );
        !          1673: BOOL  APIENTRY GpiQueryRegionRects( HPS hps, HRGN hrgn, PRECTL prclBound
        !          1674:                                   , PRGNRECT prgnrcControl, PRECTL prclRect );
        !          1675: LONG  APIENTRY GpiRectInRegion( HPS hps, HRGN hrgn, PRECTL prclRect );
        !          1676: BOOL  APIENTRY GpiSetRegion( HPS hps, HRGN hrgn, LONG lcount
        !          1677:                            , PRECTL arclRectangles );
        !          1678: 
        !          1679: /*** clip region functions */
        !          1680: LONG  APIENTRY GpiSetClipRegion( HPS hps, HRGN hrgn, PHRGN phrgnOld );
        !          1681: 
        !          1682: #ifndef INCL_SAADEFS
        !          1683: 
        !          1684: /* XLATOFF */
        !          1685: #ifdef INCL_16
        !          1686:     #define GpiQueryClipRegion Gpi16QueryClipRegion
        !          1687:     #define GpiQueryClipBox Gpi16QueryClipBox
        !          1688: #endif /* INCL_16 */
        !          1689: /* XLATON */
        !          1690: HRGN  APIENTRY GpiQueryClipRegion( HPS hps );
        !          1691: LONG  APIENTRY GpiQueryClipBox( HPS hps, PRECTL prclBound );
        !          1692: 
        !          1693: #endif /* no INCL_SAADEFS */
        !          1694: 
        !          1695: /* XLATOFF */
        !          1696: #ifdef INCL_16
        !          1697:     #define GpiExcludeClipRectangle Gpi16ExcludeClipRectangle
        !          1698:     #define GpiIntersectClipRectangle Gpi16IntersectClipRectangle
        !          1699: #endif /* INCL_16 */
        !          1700: /* XLATON */
        !          1701: LONG  APIENTRY GpiExcludeClipRectangle( HPS hps, PRECTL prclRectangle );
        !          1702: LONG  APIENTRY GpiIntersectClipRectangle( HPS hps, PRECTL prclRectangle );
        !          1703: 
        !          1704: #ifndef INCL_SAADEFS
        !          1705: 
        !          1706: /* XLATOFF */
        !          1707: #ifdef INCL_16
        !          1708:     #define GpiOffsetClipRegion Gpi16OffsetClipRegion
        !          1709: #endif /* INCL_16 */
        !          1710: /* XLATON */
        !          1711: LONG  APIENTRY GpiOffsetClipRegion( HPS hps, PPOINTL pptlPoint );
        !          1712: 
        !          1713: #endif /* no INCL_SAADEFS */
        !          1714: 
        !          1715: #endif /* no INCL_DDIDEFS */
        !          1716: 
        !          1717: #endif /* non-common GPIREGIONS */
        !          1718: #ifdef INCL_GPIMETAFILES
        !          1719: 
        !          1720: #ifndef INCL_DDIDEFS
        !          1721: 
        !          1722: /* constants for index values of options array for GpiPlayMetaFile */
        !          1723: #define PMF_SEGBASE                     0
        !          1724: #define PMF_LOADTYPE                    1
        !          1725: #define PMF_RESOLVE                     2
        !          1726: #define PMF_LCIDS                       3
        !          1727: #define PMF_RESET                       4
        !          1728: #define PMF_SUPPRESS                    5
        !          1729: #define PMF_COLORTABLES                 6
        !          1730: #define PMF_COLORREALIZABLE             7
        !          1731: #define PMF_DEFAULTS                    8
        !          1732: 
        !          1733: /* options for GpiPlayMetaFile */
        !          1734: #define RS_DEFAULT                      0L
        !          1735: #define RS_NODISCARD                    1L
        !          1736: #define LC_DEFAULT                      0L
        !          1737: #define LC_NOLOAD                       1L
        !          1738: #define LC_LOADDISC                     3L
        !          1739: #define LT_DEFAULT                      0L
        !          1740: #define LT_NOMODIFY                     1L
        !          1741: #define LT_ORIGINALVIEW                 4L
        !          1742: #define RES_DEFAULT                     0L
        !          1743: #define RES_NORESET                     1L
        !          1744: #define RES_RESET                       2L
        !          1745: #define SUP_DEFAULT                     0L
        !          1746: #define SUP_NOSUPPRESS                  1L
        !          1747: #define SUP_SUPPRESS                    2L
        !          1748: #define CTAB_DEFAULT                    0L
        !          1749: #define CTAB_NOMODIFY                   1L
        !          1750: #define CTAB_REPLACE                    3L
        !          1751: #define CTAB_REPLACEPALETTE             4L
        !          1752: #define CREA_DEFAULT                    0L
        !          1753: #define CREA_REALIZE                    1L
        !          1754: #define CREA_NOREALIZE                  2L
        !          1755: #define CREA_DOREALIZE                  3L
        !          1756: 
        !          1757: #ifndef INCL_SAADEFS
        !          1758: 
        !          1759: #define DDEF_DEFAULT                    0L
        !          1760: #define DDEF_IGNORE                     1L
        !          1761: #define DDEF_LOADDISC                   3L
        !          1762: #define RSP_DEFAULT                     0L
        !          1763: #define RSP_NODISCARD                   1L
        !          1764: 
        !          1765: #endif /* no INCL_SAADEFS */
        !          1766: 
        !          1767: /*** MetaFile functions */
        !          1768: /* XLATOFF */
        !          1769: #ifdef INCL_16
        !          1770:     #define GpiCopyMetaFile Gpi16CopyMetaFile
        !          1771:     #define GpiDeleteMetaFile Gpi16DeleteMetaFile
        !          1772:     #define GpiLoadMetaFile Gpi16LoadMetaFile
        !          1773:     #define GpiPlayMetaFile Gpi16PlayMetaFile
        !          1774:     #define GpiQueryMetaFileBits Gpi16QueryMetaFileBits
        !          1775:     #define GpiQueryMetaFileLength Gpi16QueryMetaFileLength
        !          1776:     #define GpiSaveMetaFile Gpi16SaveMetaFile
        !          1777: #endif /* INCL_16 */
        !          1778: /* XLATON */
        !          1779: HMF   APIENTRY GpiCopyMetaFile( HMF hmf );
        !          1780: BOOL  APIENTRY GpiDeleteMetaFile( HMF hmf );
        !          1781: HMF   APIENTRY GpiLoadMetaFile( HAB hab, PSZ pszFilename );
        !          1782: LONG  APIENTRY GpiPlayMetaFile( HPS hps, HMF hmf, LONG lCount1
        !          1783:                               , PLONG alOptarray, PLONG plSegCount
        !          1784:                               , LONG lCount2, PSZ pszDesc );
        !          1785: BOOL  APIENTRY GpiQueryMetaFileBits( HMF hmf, LONG lOffset, LONG lLength
        !          1786:                                    , PBYTE pbData );
        !          1787: LONG  APIENTRY GpiQueryMetaFileLength( HMF hmf );
        !          1788: BOOL  APIENTRY GpiSaveMetaFile( HMF hmf, PSZ pszFilename );
        !          1789: 
        !          1790: 
        !          1791: #ifndef INCL_SAADEFS
        !          1792: 
        !          1793: /* XLATOFF */
        !          1794: #ifdef INCL_16
        !          1795:     #define GpiSetMetaFileBits Gpi16SetMetaFileBits
        !          1796: #endif /* INCL_16 */
        !          1797: /* XLATON */
        !          1798: BOOL  APIENTRY GpiSetMetaFileBits( HMF hmf, LONG lOffset, LONG lLength
        !          1799:                                  , PBYTE pbBuffer );
        !          1800: 
        !          1801: #endif /* no INCL_SAADEFS */
        !          1802: 
        !          1803: #endif /* no INCL_DDIDEFS */
        !          1804: 
        !          1805: #endif /* non-common GPIMETAFILES */
        !          1806: 
        !          1807: #ifdef INCL_GPIDEFAULTS
        !          1808: 
        !          1809: /*** default functions */
        !          1810: /* XLATOFF */
        !          1811: #ifdef INCL_16
        !          1812:     #define GpiQueryDefArcParams Gpi16QueryDefArcParams
        !          1813:     #define GpiQueryDefAttrs Gpi16QueryDefAttrs
        !          1814:     #define GpiQueryDefTag Gpi16QueryDefTag
        !          1815:     #define GpiQueryDefViewingLimits Gpi16QueryDefViewingLimits
        !          1816:     #define GpiSetDefArcParams Gpi16SetDefArcParams
        !          1817:     #define GpiSetDefAttrs Gpi16SetDefAttrs
        !          1818:     #define GpiSetDefTag Gpi16SetDefTag
        !          1819:     #define GpiSetDefViewingLimits Gpi16SetDefViewingLimits
        !          1820: #endif /* INCL_16 */
        !          1821: /* XLATON */
        !          1822: BOOL  APIENTRY GpiQueryDefArcParams( HPS hps, PARCPARAMS parcpArcParams );
        !          1823: BOOL  APIENTRY GpiQueryDefAttrs( HPS hps, LONG lPrimType, ULONG flAttrMask
        !          1824:                                , PBUNDLE ppbunAttrs );
        !          1825: BOOL  APIENTRY GpiQueryDefTag( HPS hps, PLONG plTag );
        !          1826: BOOL  APIENTRY GpiQueryDefViewingLimits( HPS hps, PRECTL prclLimits );
        !          1827: 
        !          1828: BOOL  APIENTRY GpiSetDefArcParams( HPS hps, PARCPARAMS parcpArcParams );
        !          1829: BOOL  APIENTRY GpiSetDefAttrs( HPS hps, LONG lPrimType, ULONG flAttrMask
        !          1830:                              , PBUNDLE ppbunAttrs );
        !          1831: BOOL  APIENTRY GpiSetDefTag( HPS hps, LONG lTag );
        !          1832: BOOL  APIENTRY GpiSetDefViewingLimits( HPS hps, PRECTL prclLimits );
        !          1833: 
        !          1834: 
        !          1835: #endif /* GPIDEFAULTS */
        !          1836: 
        !          1837: /* XLATOFF */
        !          1838: #pragma pack()    /* reset to default packing */
        !          1839: /* XLATON */
        !          1840: 
        !          1841: #ifdef INCL_GPIERRORS
        !          1842: 
        !          1843: #include <pmerr.h>
        !          1844: 
        !          1845: #endif /* non-common GPIERRORS */

unix.superglobalmegacorp.com

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