Annotation of pmsdk/include/pmgpi.h, revision 1.1.1.2

1.1       root        1: /***************************************************************************\
                      2: *
                      3: * Module Name: PMGPI.H
                      4: *
                      5: * OS/2 Presentation Manager GPI constants, types and function declarations
                      6: *
1.1.1.2 ! root        7: * Copyright (c) 1989  Microsoft Corporation
1.1       root        8: *
                      9: * =============================================================================
                     10: *
                     11: * The following symbols are used in this file for conditional sections.
                     12: *
                     13: *   INCL_GPI                Include all of the GPI
                     14: *   INCL_GPICONTROL         Basic PS control
                     15: *   INCL_GPICORRELATION     Picking, Boundary and Correlation
                     16: *   INCL_GPISEGMENTS        Segment Control and Drawing
                     17: *   INCL_GPISEGEDITING      Segment Editing via Elements
                     18: *   INCL_GPITRANSFORMS      Transform and Transform Conversion
                     19: *   INCL_GPIPATHS           Paths and Clipping with Paths
                     20: *   INCL_GPILOGCOLORTABLE   Logical Color Tables
                     21: *   INCL_GPIPRIMITIVES      Drawing Primitives and Primitive Attributes
                     22: *   INCL_GPILCIDS           Phyical and Logical Fonts with Lcids
                     23: *   INCL_GPIBITMAPS         Bitmaps and Pel Operations
                     24: *   INCL_GPIREGIONS         Regions and Clipping with Regions
                     25: *   INCL_GPIMETAFILES       Metafiles
                     26: *   INCL_GPIERRORS          defined if INCL_ERRORS defined
                     27: *
                     28: * There is a symbol used in this file called INCL_DDIDEFS. This is used to
                     29: * include only the definitions for the DDI. The programmer using the GPI
                     30: * can ignore this symbol
                     31: *
                     32: * There is a symbol used in this file called INCL_SAADEFS. This is used to
                     33: * include only the definitions for the SAA. The programmer using the GPI
                     34: * can ignore this symbol
                     35: *
                     36: \***************************************************************************/
1.1.1.2 ! root       37: 
1.1       root       38: #ifdef INCL_GPI /* include whole of the GPI */
                     39:     #define INCL_GPICONTROL
                     40:     #define INCL_GPICORRELATION
                     41:     #define INCL_GPISEGMENTS
                     42:     #define INCL_GPISEGEDITING
                     43:     #define INCL_GPITRANSFORMS
                     44:     #define INCL_GPIPATHS
                     45:     #define INCL_GPILOGCOLORTABLE
                     46:     #define INCL_GPIPRIMITIVES
                     47:     #define INCL_GPILCIDS
                     48:     #define INCL_GPIBITMAPS
                     49:     #define INCL_GPIREGIONS
                     50:     #define INCL_GPIMETAFILES
                     51: #endif /* INCL_GPI */
1.1.1.2 ! root       52: 
1.1       root       53: #ifdef INCL_ERRORS /* if errors are required then allow GPI errors */
                     54:     #define INCL_GPIERRORS
                     55: #endif /* INCL_ERRORS */
1.1.1.2 ! root       56: 
1.1       root       57: #ifdef INCL_DDIDEFS /* if only DDI required then enable DDI part of GPI */
                     58:     #define INCL_GPITRANSFORMS
                     59:     #define INCL_GPIPATHS
                     60:     #define INCL_GPILOGCOLORTABLE
                     61:     #define INCL_GPIPRIMITIVES
                     62:     #define INCL_GPILCIDS
                     63:     #define INCL_GPIBITMAPS
                     64:     #define INCL_GPIREGIONS
                     65:     #define INCL_GPIERRORS
                     66: #endif /* INCL_DDIDEFS */
1.1.1.2 ! root       67: 
1.1       root       68: #ifdef INCL_SAADEFS /* if only SAA required then enable SAA part of GPI */
                     69:     #define INCL_GPICONTROL
                     70:     #define INCL_GPICORRELATION
                     71:     #define INCL_GPISEGMENTS
1.1.1.2 ! root       72:     #define INCL_GPISEGEDITING
1.1       root       73:     #define INCL_GPITRANSFORMS
1.1.1.2 ! root       74:     #define INCL_GPIPATHS
        !            75:     #define INCL_GPILOGCOLORTABLE
1.1       root       76:     #define INCL_GPIPRIMITIVES
                     77:     #define INCL_GPILCIDS
1.1.1.2 ! root       78:     #define INCL_GPIBITMAPS
        !            79:     #define INCL_GPIREGIONS
1.1       root       80:     #define INCL_GPIMETAFILES
                     81:     #define INCL_GPIERRORS
                     82: #endif /* INCL_SAADEFS */
1.1.1.2 ! root       83: 
1.1       root       84: /* General GPI return values */
                     85: #define GPI_ERROR     0L
                     86: #define GPI_OK        1L
                     87: #define GPI_ALTERROR  (-1L)
1.1.1.2 ! root       88: 
1.1       root       89: /* fixed point number - implicit binary point between 2 and 3 hex digits */
                     90: typedef  LONG FIXED;     /* fx */
                     91: typedef  FIXED FAR *PFIXED;
1.1.1.2 ! root       92: 
        !            93: /* fixed point number - implicit binary point between 1st and 2nd hex digits */
        !            94: typedef  USHORT FIXED88;  /* fx88 */
        !            95: 
        !            96: /* fixed point signed number - implicit binary point between bits 14 and 13. */
        !            97: /*                             Bit 15 is the sign bit.                       */
        !            98: /*                             Thus 1.0 is represented by 16384 (0x4000)     */
        !            99: /*                             and -1.0 is represented by -16384 (0xc000)    */
        !           100: typedef  USHORT FIXED114; /* fx114 */
        !           101: 
1.1       root      102: /* make FIXED number from SHORT integer part and USHORT fractional part */
                    103: #define MAKEFIXED(intpart,fractpart) MAKELONG(fractpart,intpart)
                    104: /* extract fractional part from a fixed quantity */
                    105: #define FIXEDFRAC(fx)                (LOUSHORT(fx))
                    106: /* extract integer part from a fixed quantity */
                    107: #define FIXEDINT(fx)                 ((SHORT)HIUSHORT(fx))
1.1.1.2 ! root      108: 
1.1       root      109: /* structure for size parameters e.g. for GpiCreatePS */
                    110: typedef struct _SIZEL {         /* sizl */
                    111:     LONG cx;
                    112:     LONG cy;
                    113: } SIZEL;
                    114: typedef SIZEL FAR *PSIZEL;
1.1.1.2 ! root      115: 
        !           116: /* return code on GpiQueryLogColorTable,GpiQueryRealColors and GpiQueryPel */
1.1       root      117: #define CLR_NOINDEX  (-254L)
1.1.1.2 ! root      118: 
        !           119: #if (defined(INCL_GPICONTROL) || !defined(INCL_NOCOMMON))
        !           120: 
1.1       root      121: /* units for GpiCreatePS and others */
                    122: #define PU_ARBITRARY    0x0004L
                    123: #define PU_PELS         0x0008L
                    124: #define PU_LOMETRIC     0x000CL
                    125: #define PU_HIMETRIC     0x0010L
                    126: #define PU_LOENGLISH    0x0014L
                    127: #define PU_HIENGLISH    0x0018L
                    128: #define PU_TWIPS        0x001CL
1.1.1.2 ! root      129: 
1.1       root      130: /* format for GpiCreatePS */
                    131: #define GPIF_DEFAULT    0L
                    132: #ifndef INCL_SAADEFS
                    133: #define GPIF_SHORT      0x0100L
                    134: #define GPIF_LONG       0x0200L
                    135: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      136: 
1.1       root      137: /* PS type for GpiCreatePS */
                    138: #define GPIT_NORMAL     0L
                    139: #ifndef INCL_SAADEFS
                    140: #define GPIT_MICRO      0x1000L
                    141: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      142: 
1.1       root      143: /* implicit associate flag for GpiCreatePS */
                    144: #define GPIA_NOASSOC    0L
                    145: #define GPIA_ASSOC      0x4000L
1.1.1.2 ! root      146: 
1.1       root      147: #ifndef INCL_SAADEFS
                    148: /* return error for GpiQueryDevice */
                    149: #define HDC_ERROR        ((HDC)-1L)
                    150: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      151: 
1.1       root      152: /*** common GPICONTROL functions */
                    153: HPS   APIENTRY GpiCreatePS( HAB, HDC, PSIZEL, ULONG );
                    154: BOOL  APIENTRY GpiDestroyPS( HPS );
                    155: BOOL  APIENTRY GpiAssociate( HPS, HDC );
                    156: BOOL APIENTRY GpiRestorePS( HPS, LONG );
                    157: LONG APIENTRY GpiSavePS( HPS );
                    158: BOOL APIENTRY GpiErase( HPS );
1.1.1.2 ! root      159: 
        !           160: #ifndef INCL_SAADEFS
1.1       root      161: HDC  APIENTRY GpiQueryDevice( HPS );
                    162: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      163: 
1.1       root      164: #endif /* common GPICONTROL */
                    165: #ifdef INCL_GPICONTROL
1.1.1.2 ! root      166: 
1.1       root      167: /* options for GpiResetPS */
                    168: #define GRES_ATTRS      0x0001L
                    169: #define GRES_SEGMENTS   0x0002L
                    170: #define GRES_ALL        0x0004L
1.1.1.2 ! root      171: 
1.1       root      172: /* option masks for PS options used by GpiQueryPs */
                    173: #define PS_UNITS        0x00FCL
                    174: #define PS_FORMAT       0x0F00L
                    175: #define PS_TYPE         0x1000L
                    176: #define PS_MODE         0x2000L
                    177: #define PS_ASSOCIATE    0x4000L
1.1.1.2 ! root      178: 
1.1       root      179: /* error context returned by GpiErrorSegmentData */
                    180: #define GPIE_SEGMENT    0L
                    181: #define GPIE_ELEMENT    1L
                    182: #define GPIE_DATA       2L
1.1.1.2 ! root      183: 
        !           184: #ifndef INCL_SAADEFS
        !           185: 
1.1       root      186: /* control parameter for GpiSetDrawControl */
                    187: #define DCTL_ERASE            1L
                    188: #define DCTL_DISPLAY          2L
                    189: #define DCTL_BOUNDARY         3L
                    190: #define DCTL_DYNAMIC          4L
                    191: #define DCTL_CORRELATE        5L
1.1.1.2 ! root      192: 
1.1       root      193: /* constants for GpiSet/QueryDrawControl */
                    194: #define DCTL_ERROR -1L
                    195: #define DCTL_OFF    0L
                    196: #define DCTL_ON     1L
1.1.1.2 ! root      197: 
1.1       root      198: /* constants for GpiSet/QueryStopDraw */
                    199: #define SDW_ERROR -1L
                    200: #define SDW_OFF    0L
                    201: #define SDW_ON     1L
1.1.1.2 ! root      202: 
        !           203: #endif /* no INCL_SAADEFS */
        !           204: 
1.1       root      205: /* drawing for GpiSet/QueryDrawingMode */
                    206: #define DM_ERROR         0L
                    207: #define DM_DRAW          1L
                    208: #define DM_RETAIN        2L
                    209: #define DM_DRAWANDRETAIN 3L
1.1.1.2 ! root      210: 
1.1       root      211: /*** other GPICONTROL functions */
                    212: BOOL  APIENTRY GpiResetPS( HPS, ULONG );
1.1.1.2 ! root      213: 
        !           214: #ifndef INCL_SAADEFS
        !           215: 
1.1       root      216: BOOL  APIENTRY GpiSetPS( HPS, PSIZEL, ULONG );
1.1.1.2 ! root      217: 
        !           218: #endif /* no INCL_SAADEFS */
        !           219: 
1.1       root      220: ULONG APIENTRY GpiQueryPS( HPS, PSIZEL );
                    221: LONG APIENTRY GpiErrorSegmentData( HPS, PLONG, PLONG );
1.1.1.2 ! root      222: 
        !           223: #ifndef INCL_SAADEFS
        !           224: 
1.1       root      225: LONG APIENTRY GpiQueryDrawControl( HPS, LONG );
                    226: BOOL APIENTRY GpiSetDrawControl( HPS, LONG, LONG );
1.1.1.2 ! root      227: 
        !           228: #endif /* no INCL_SAADEFS */
        !           229: 
1.1       root      230: LONG APIENTRY GpiQueryDrawingMode( HPS );
                    231: BOOL APIENTRY GpiSetDrawingMode( HPS, LONG );
1.1.1.2 ! root      232: 
        !           233: #ifndef INCL_SAADEFS
        !           234: 
1.1       root      235: LONG APIENTRY GpiQueryStopDraw( HPS );
                    236: BOOL APIENTRY GpiSetStopDraw( HPS, LONG );
1.1.1.2 ! root      237: 
1.1       root      238: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      239: 
1.1       root      240: #endif /* non-common GPICONTROL */
                    241: #ifdef INCL_GPICORRELATION
1.1.1.2 ! root      242: 
1.1       root      243: /* options for GpiSetPickApertureSize */
                    244: #define PICKAP_DEFAULT          0L
                    245: #define PICKAP_REC              2L
1.1.1.2 ! root      246: 
1.1       root      247: /* type of correlation for GpiCorrelateChain */
                    248: #define PICKSEL_VISIBLE         0L
                    249: #define PICKSEL_ALL             1L
1.1.1.2 ! root      250: 
1.1       root      251: /* return code to indicate correlate hit(s) */
                    252: #define GPI_HITS    2L
1.1.1.2 ! root      253: 
1.1       root      254: /*** picking,  correlation and boundary functions */
                    255: LONG APIENTRY GpiCorrelateChain(  HPS, LONG, PPOINTL, LONG, LONG, PLONG );
                    256: BOOL APIENTRY GpiQueryTag( HPS, PLONG );
                    257: BOOL APIENTRY GpiSetTag( HPS, LONG );
                    258: BOOL APIENTRY GpiQueryPickApertureSize( HPS, PSIZEL );
                    259: BOOL APIENTRY GpiSetPickApertureSize( HPS, LONG, PSIZEL );
1.1.1.2 ! root      260: 
1.1       root      261: #ifndef INCL_SAADEFS
1.1.1.2 ! root      262: 
1.1       root      263: BOOL APIENTRY GpiQueryPickAperturePosition( HPS, PPOINTL );
                    264: BOOL APIENTRY GpiSetPickAperturePosition( HPS, PPOINTL );
                    265: BOOL APIENTRY GpiQueryBoundaryData( HPS, PRECTL );
                    266: BOOL APIENTRY GpiResetBoundaryData( HPS );
1.1.1.2 ! root      267: 
        !           268: #endif /* no INCL_SAADEFS */
        !           269: 
1.1       root      270: LONG APIENTRY GpiCorrelateFrom(  HPS, LONG, LONG, LONG, PPOINTL
                    271:                               , LONG, LONG, PLONG );
                    272: LONG APIENTRY GpiCorrelateSegment( HPS, LONG, LONG, PPOINTL
                    273:                                  , LONG, LONG, PLONG );
1.1.1.2 ! root      274: 
1.1       root      275: #endif /* non-common_GPICORRELATION */
                    276: #ifdef INCL_GPISEGMENTS
1.1.1.2 ! root      277: 
1.1       root      278: /* data formats for GpiPutData and GpiGetData */
                    279: #define DFORM_NOCONV    0L
1.1.1.2 ! root      280: 
1.1       root      281: #ifndef INCL_SAADEFS
1.1.1.2 ! root      282: 
1.1       root      283: #define DFORM_S370SHORT 1L
                    284: #define DFORM_PCSHORT   2L
                    285: #define DFORM_PCLONG    4L
1.1.1.2 ! root      286: 
1.1       root      287: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      288: 
1.1       root      289: /* segment attributes used by GpiSet/QuerySegmentAttrs and others */
                    290: #define ATTR_ERROR           (-1L)
                    291: #define ATTR_DETECTABLE      1L
                    292: #define ATTR_VISIBLE         2L
                    293: #define ATTR_CHAINED         6L
1.1.1.2 ! root      294: 
1.1       root      295: #ifndef INCL_SAADEFS
1.1.1.2 ! root      296: 
1.1       root      297: #define ATTR_DYNAMIC         8L
1.1.1.2 ! root      298: 
        !           299: #endif /* no INCL_SAADEFS */
        !           300: 
1.1       root      301: #define ATTR_FASTCHAIN       9L
                    302: #define ATTR_PROP_DETECTABLE 10L
                    303: #define ATTR_PROP_VISIBLE    11L
1.1.1.2 ! root      304: 
1.1       root      305: /* attribute on/off values */
                    306: #define ATTR_OFF  0L
                    307: #define ATTR_ON   1L
1.1.1.2 ! root      308: 
1.1       root      309: /* segment priority used by GpiSetSegmentPriority and others */
                    310: #define LOWER_PRI       (-1L)
                    311: #define HIGHER_PRI      1L
1.1.1.2 ! root      312: 
1.1       root      313: /*** segment control functions */
                    314: BOOL APIENTRY GpiOpenSegment( HPS, LONG );
                    315: BOOL APIENTRY GpiCloseSegment( HPS );
                    316: BOOL APIENTRY GpiDeleteSegment( HPS, LONG );
                    317: LONG APIENTRY GpiQueryInitialSegmentAttrs( HPS, LONG );
                    318: BOOL APIENTRY GpiSetInitialSegmentAttrs( HPS, LONG, LONG );
                    319: LONG APIENTRY GpiQuerySegmentAttrs( HPS, LONG, LONG );
                    320: BOOL APIENTRY GpiSetSegmentAttrs( HPS, LONG, LONG, LONG );
                    321: LONG APIENTRY GpiQuerySegmentPriority( HPS, LONG, LONG );
                    322: BOOL APIENTRY GpiSetSegmentPriority( HPS, LONG, LONG, LONG );
1.1.1.2 ! root      323: BOOL APIENTRY GpiDeleteSegments( HPS, LONG, LONG );
        !           324: LONG APIENTRY GpiQuerySegmentNames( HPS, LONG, LONG, LONG, PLONG );
        !           325: 
1.1       root      326: /*** draw functions for segments */
                    327: LONG APIENTRY GpiGetData( HPS, LONG, PLONG, LONG, LONG, PBYTE );
                    328: LONG APIENTRY GpiPutData( HPS, LONG, PLONG, PBYTE );
                    329: BOOL APIENTRY GpiDrawChain( HPS );
                    330: BOOL APIENTRY GpiDrawFrom( HPS, LONG, LONG );
                    331: BOOL APIENTRY GpiDrawSegment( HPS, LONG );
1.1.1.2 ! root      332: 
        !           333: #ifndef INCL_SAADEFS
        !           334: 
1.1       root      335: BOOL APIENTRY GpiDrawDynamics( HPS );
                    336: BOOL APIENTRY GpiRemoveDynamics( HPS, LONG, LONG );
1.1.1.2 ! root      337: 
1.1       root      338: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      339: 
1.1       root      340: #endif /* non-common GPISEGMENTS */
                    341: #ifdef INCL_GPISEGEDITING
1.1.1.2 ! root      342: 
1.1       root      343: /* edit modes used by GpiSet/QueryEditMode */
                    344: #define SEGEM_ERROR     0L
                    345: #define SEGEM_INSERT    1L
                    346: #define SEGEM_REPLACE   2L
1.1.1.2 ! root      347: 
1.1       root      348: /*** segment editing by element functions */
                    349: BOOL APIENTRY GpiBeginElement( HPS, LONG, PSZ );
                    350: BOOL APIENTRY GpiEndElement( HPS );
                    351: BOOL APIENTRY GpiLabel( HPS, LONG );
                    352: LONG APIENTRY GpiElement( HPS, LONG, PSZ, LONG, PBYTE );
                    353: LONG APIENTRY GpiQueryElement( HPS, LONG, LONG, PBYTE );
                    354: BOOL APIENTRY GpiDeleteElement( HPS );
                    355: BOOL APIENTRY GpiDeleteElementRange( HPS, LONG, LONG );
                    356: BOOL APIENTRY GpiDeleteElementsBetweenLabels( HPS, LONG, LONG );
                    357: LONG APIENTRY GpiQueryEditMode( HPS );
                    358: BOOL APIENTRY GpiSetEditMode( HPS, LONG );
                    359: LONG APIENTRY GpiQueryElementPointer( HPS );
                    360: BOOL APIENTRY GpiSetElementPointer( HPS, LONG );
                    361: BOOL APIENTRY GpiOffsetElementPointer( HPS, LONG );
                    362: LONG APIENTRY GpiQueryElementType( HPS, PLONG, LONG, PSZ );
                    363: BOOL APIENTRY GpiSetElementPointerAtLabel( HPS, LONG );
1.1.1.2 ! root      364: 
1.1       root      365: #endif /* non-common GPISEGEDITING */
                    366: #ifdef INCL_GPITRANSFORMS
1.1.1.2 ! root      367: 
1.1       root      368: /* co-ordinates space for GpiConvert */
                    369: #define CVTC_WORLD              1L
                    370: #define CVTC_MODEL              2L
                    371: #define CVTC_DEFAULTPAGE        3L
                    372: #define CVTC_PAGE               4L
                    373: #define CVTC_DEVICE             5L
1.1.1.2 ! root      374: 
1.1       root      375: /* type of transformation for GpiSetSegmentTransformMatrix */
                    376: #define TRANSFORM_REPLACE       0L
                    377: #define TRANSFORM_ADD           1L
                    378: #define TRANSFORM_PREEMPT       2L
1.1.1.2 ! root      379: 
1.1       root      380: /* transform matrix */
                    381: typedef struct _MATRIXLF {     /* matlf */
                    382:     FIXED fxM11;
                    383:     FIXED fxM12;
                    384:     LONG  lM13;
                    385:     FIXED fxM21;
                    386:     FIXED fxM22;
                    387:     LONG  lM23;
                    388:     LONG  lM31;
                    389:     LONG  lM32;
                    390:     LONG  lM33;
                    391: } MATRIXLF;
                    392: typedef MATRIXLF FAR *PMATRIXLF;
1.1.1.2 ! root      393: 
1.1       root      394: #ifndef INCL_DDIDEFS
1.1.1.2 ! root      395: 
1.1       root      396: /*** transform and transform conversion functions */
                    397: BOOL APIENTRY GpiQuerySegmentTransformMatrix( HPS, LONG, LONG, PMATRIXLF );
                    398: BOOL APIENTRY GpiSetSegmentTransformMatrix( HPS, LONG, LONG, PMATRIXLF, LONG );
                    399: BOOL APIENTRY GpiConvert( HPS, LONG, LONG, LONG, PPOINTL );
                    400: BOOL APIENTRY GpiQueryModelTransformMatrix( HPS, LONG, PMATRIXLF );
                    401: BOOL APIENTRY GpiSetModelTransformMatrix( HPS, LONG, PMATRIXLF, LONG );
                    402: LONG APIENTRY GpiCallSegmentMatrix( HPS, LONG, LONG, PMATRIXLF, LONG );
                    403: BOOL APIENTRY GpiQueryDefaultViewMatrix( HPS, LONG, PMATRIXLF );
                    404: BOOL APIENTRY GpiSetDefaultViewMatrix( HPS, LONG, PMATRIXLF, LONG );
                    405: BOOL APIENTRY GpiQueryPageViewport( HPS, PRECTL );
                    406: BOOL APIENTRY GpiSetPageViewport( HPS, PRECTL );
                    407: BOOL APIENTRY GpiQueryViewingTransformMatrix( HPS, LONG, PMATRIXLF );
                    408: BOOL APIENTRY GpiSetViewingTransformMatrix( HPS, LONG, PMATRIXLF, LONG );
1.1.1.2 ! root      409: 
1.1       root      410: /*** general clipping functions */
                    411: BOOL APIENTRY GpiSetGraphicsField( HPS, PRECTL );
                    412: BOOL APIENTRY GpiQueryGraphicsField( HPS, PRECTL );
                    413: BOOL APIENTRY GpiSetViewingLimits( HPS, PRECTL );
                    414: BOOL APIENTRY GpiQueryViewingLimits( HPS, PRECTL );
1.1.1.2 ! root      415: 
1.1       root      416: #endif /* no INCL_DDIDEFS */
1.1.1.2 ! root      417: 
1.1       root      418: #endif /* non-common GPITRANSFORMS */
                    419: #ifdef INCL_GPIPATHS
1.1.1.2 ! root      420: 
1.1       root      421: /* modes for GpiModifyPath */
                    422: #define MPATH_STROKE            6L
1.1.1.2 ! root      423: 
1.1       root      424: /* modes for GpiFillPath */
                    425: #define FPATH_ALTERNATE         0L
                    426: #define FPATH_WINDING           2L
1.1.1.2 ! root      427: 
1.1       root      428: /* modes for GpiSetClipPath */
                    429: #define SCP_ALTERNATE           0L
                    430: #define SCP_WINDING             2L
                    431: #define SCP_AND                 4L
                    432: #define SCP_RESET               0L
1.1.1.2 ! root      433: 
1.1       root      434: #ifndef INCL_DDIDEFS
1.1.1.2 ! root      435: 
1.1       root      436: /*** Path and Clip Path functions */
                    437: BOOL APIENTRY GpiBeginPath( HPS, LONG );
                    438: BOOL APIENTRY GpiEndPath( HPS );
                    439: BOOL APIENTRY GpiCloseFigure( HPS );
                    440: BOOL APIENTRY GpiModifyPath( HPS, LONG, LONG );
                    441: LONG APIENTRY GpiFillPath( HPS, LONG, LONG );
                    442: BOOL APIENTRY GpiSetClipPath( HPS, LONG, LONG );
1.1.1.2 ! root      443: 
        !           444: #ifndef INCL_SAADEFS
        !           445: 
1.1       root      446: LONG APIENTRY GpiStrokePath( HPS, LONG, ULONG );
1.1.1.2 ! root      447: 
1.1       root      448: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      449: 
        !           450: #endif /* no INCL_DDIDEFS */
        !           451: 
1.1       root      452: #endif /* non-common GPIPATHS */
                    453: #ifdef INCL_GPILOGCOLORTABLE
1.1.1.2 ! root      454: 
1.1       root      455: /* options for GpiCreateLogColorTable and others */
                    456: #define LCOL_RESET              0x0001L
                    457: #define LCOL_REALIZABLE         0x0002L
                    458: #define LCOL_PURECOLOR          0x0004L
1.1.1.2 ! root      459: 
1.1       root      460: /* format of logical lColor table for GpiCreateLogColorTable and others */
                    461: #define LCOLF_DEFAULT           0L
                    462: #define LCOLF_INDRGB            1L
                    463: #define LCOLF_CONSECRGB         2L
                    464: #define LCOLF_RGB               3L
1.1.1.2 ! root      465: 
1.1       root      466: /* options for GpiQueryRealColors and others */
                    467: #define LCOLOPT_REALIZED        0x0001L
                    468: #define LCOLOPT_INDEX           0x0002L
1.1.1.2 ! root      469: 
        !           470: #ifndef INCL_SAADEFS
        !           471: 
1.1       root      472: /* return codes from GpiQueryLogColorTable to indicate it is in RGB mode */
                    473: #define QLCT_ERROR   (-1L)
                    474: #define QLCT_RGB     (-2L)
1.1.1.2 ! root      475: 
1.1       root      476: /* GpiQueryLogColorTable index returned for colors not explicitly loaded */
                    477: #define QLCT_NOTLOADED (-1L)
1.1.1.2 ! root      478: 
        !           479: #endif /* no INCL_SAADEFS */
        !           480: 
1.1       root      481: /* return codes for GpiQueryColorData */
                    482: #define QCD_LCT_FORMAT    0L
                    483: #define QCD_LCT_LOINDEX   1L
                    484: #define QCD_LCT_HIINDEX   2L
1.1.1.2 ! root      485: 
1.1       root      486: #ifndef INCL_DDIDEFS
1.1.1.2 ! root      487: 
1.1       root      488: /*** logical lColor table functions */
                    489: BOOL APIENTRY GpiCreateLogColorTable( HPS, ULONG, LONG, LONG, LONG, PLONG );
                    490: BOOL APIENTRY GpiRealizeColorTable( HPS );
                    491: BOOL APIENTRY GpiUnrealizeColorTable( HPS );
                    492: BOOL APIENTRY GpiQueryColorData( HPS, LONG, PLONG );
1.1.1.2 ! root      493: 
        !           494: #ifndef INCL_SAADEFS
        !           495: 
1.1       root      496: LONG APIENTRY GpiQueryLogColorTable( HPS, ULONG, LONG, LONG, PLONG );
1.1.1.2 ! root      497: 
        !           498: #endif /* no INCL_SAADEFS */
        !           499: 
1.1       root      500: LONG APIENTRY GpiQueryRealColors( HPS, ULONG, LONG, LONG, PLONG );
                    501: LONG APIENTRY GpiQueryNearestColor( HPS, ULONG, LONG );
                    502: LONG APIENTRY GpiQueryColorIndex( HPS, ULONG, LONG );
                    503: LONG APIENTRY GpiQueryRGBColor( HPS, ULONG, LONG );
1.1.1.2 ! root      504: 
1.1       root      505: #endif /* no INCL_DDIDEFS */
1.1.1.2 ! root      506: 
1.1       root      507: #endif /* non-common GPILOGCOLORTABLE */
1.1.1.2 ! root      508: #if (defined(INCL_GPIPRIMITIVES) || !defined(INCL_NOCOMMON))
        !           509: 
1.1       root      510: /* default color table indices */
1.1.1.2 ! root      511: 
1.1       root      512: #define CLR_FALSE               (-5L)
                    513: #define CLR_TRUE                (-4L)
1.1.1.2 ! root      514: 
1.1       root      515: #define CLR_ERROR               (-255L)
                    516: #define CLR_DEFAULT             (-3L)
                    517: #define CLR_WHITE               (-2L)
                    518: #define CLR_BLACK               (-1L)
                    519: #define CLR_BACKGROUND          0L
                    520: #define CLR_BLUE                1L
                    521: #define CLR_RED                 2L
                    522: #define CLR_PINK                3L
                    523: #define CLR_GREEN               4L
                    524: #define CLR_CYAN                5L
                    525: #define CLR_YELLOW              6L
                    526: #define CLR_NEUTRAL             7L
1.1.1.2 ! root      527: 
1.1       root      528: #define CLR_DARKGRAY            8L
1.1.1.2 ! root      529: #define CLR_DARKBLUE            9L
        !           530: #define CLR_DARKRED            10L
        !           531: #define CLR_DARKPINK           11L
1.1       root      532: #define CLR_DARKGREEN          12L
                    533: #define CLR_DARKCYAN           13L
                    534: #define CLR_BROWN              14L
                    535: #define CLR_PALEGRAY           15L
1.1.1.2 ! root      536: 
1.1       root      537: /* rgb colors */
                    538: #define RGB_ERROR               (-255L)
                    539: #define RGB_BLACK               0x00000000L
                    540: #define RGB_BLUE                0x000000FFL
                    541: #define RGB_GREEN               0x0000FF00L
                    542: #define RGB_CYAN                0x0000FFFFL
                    543: #define RGB_RED                 0x00FF0000L
                    544: #define RGB_PINK                0x00FF00FFL
                    545: #define RGB_YELLOW              0x00FFFF00L
                    546: #define RGB_WHITE               0x00FFFFFFL
1.1.1.2 ! root      547: 
1.1       root      548: /* control flags used by GpiBeginArea */
                    549: #define BA_NOBOUNDARY   0L
                    550: #define BA_BOUNDARY     0x0001L
1.1.1.2 ! root      551: 
1.1       root      552: #ifndef INCL_SAADEFS
                    553: #define BA_ALTERNATE    0L
                    554: #define BA_WINDING      0x0002L
1.1.1.2 ! root      555: 
        !           556: #endif /* no INCL_SAADEFS */
        !           557: 
1.1       root      558: /* fill options for GpiBox/GpiFullArc */
                    559: #define DRO_FILL        1L
                    560: #define DRO_OUTLINE     2L
                    561: #define DRO_OUTLINEFILL 3L
1.1.1.2 ! root      562: 
1.1       root      563: /* basic pattern symbols */
                    564: #define PATSYM_ERROR           (-1L)
                    565: #define PATSYM_DEFAULT         0L
                    566: #define PATSYM_DENSE1          1L
                    567: #define PATSYM_DENSE2          2L
                    568: #define PATSYM_DENSE3          3L
                    569: #define PATSYM_DENSE4          4L
                    570: #define PATSYM_DENSE5          5L
                    571: #define PATSYM_DENSE6          6L
                    572: #define PATSYM_DENSE7          7L
                    573: #define PATSYM_DENSE8          8L
                    574: #define PATSYM_VERT            9L
                    575: #define PATSYM_HORIZ           10L
                    576: #define PATSYM_DIAG1           11L
                    577: #define PATSYM_DIAG2           12L
                    578: #define PATSYM_DIAG3           13L
                    579: #define PATSYM_DIAG4           14L
                    580: #define PATSYM_NOSHADE         15L
                    581: #define PATSYM_SOLID           16L
                    582: #define PATSYM_BLANK           64L
                    583: #ifndef INCL_SAADEFS
                    584: #define PATSYM_HALFTONE        17L
                    585: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      586: 
1.1       root      587: /* lcid values for GpiSet/QueryPattern and others */
                    588: #define LCID_ERROR             (-1L)
                    589: #define LCID_DEFAULT           0L
1.1.1.2 ! root      590: 
1.1       root      591: #ifndef INCL_DDIDEFS
1.1.1.2 ! root      592: 
1.1       root      593: /*** global primitive functions */
                    594: BOOL APIENTRY GpiSetColor( HPS, LONG );
                    595: LONG APIENTRY GpiQueryColor( HPS );
1.1.1.2 ! root      596: 
1.1       root      597: /*** line primitive functions */
                    598: LONG APIENTRY GpiBox( HPS, LONG, PPOINTL, LONG, LONG );
1.1.1.2 ! root      599: 
1.1       root      600: BOOL APIENTRY GpiMove( HPS, PPOINTL );
                    601: LONG APIENTRY GpiLine( HPS, PPOINTL );
                    602: LONG APIENTRY GpiPolyLine( HPS, LONG, PPOINTL );
1.1.1.2 ! root      603: 
1.1       root      604: /*** area primitive functions */
                    605: BOOL APIENTRY GpiSetPattern( HPS, LONG );
                    606: LONG APIENTRY GpiQueryPattern( HPS );
                    607: BOOL APIENTRY GpiBeginArea( HPS, ULONG );
                    608: LONG APIENTRY GpiEndArea( HPS );
1.1.1.2 ! root      609: 
1.1       root      610: /*** character primitive functions */
                    611: LONG APIENTRY GpiCharString( HPS, LONG, PCH );
                    612: LONG APIENTRY GpiCharStringAt( HPS, PPOINTL, LONG, PCH );
1.1.1.2 ! root      613: 
1.1       root      614: #endif /* no INCL_DDIDEFS */
1.1.1.2 ! root      615: 
1.1       root      616: #endif /* common GPIPRIMTIVES */
                    617: #ifdef INCL_GPIPRIMITIVES
1.1.1.2 ! root      618: 
1.1       root      619: /* mode for GpiSetAttrMode */
                    620: #define AM_ERROR          (-1L)
                    621: #define AM_PRESERVE       0L
                    622: #define AM_NOPRESERVE     1L
1.1.1.2 ! root      623: 
1.1       root      624: /* foreground mixes */
                    625: #define FM_ERROR               (-1L)
                    626: #define FM_DEFAULT             0L
                    627: #define FM_OR                  1L
                    628: #define FM_OVERPAINT           2L
                    629: #define FM_LEAVEALONE          5L
1.1.1.2 ! root      630: 
1.1       root      631: #ifndef INCL_SAADEFS
1.1.1.2 ! root      632: 
1.1       root      633: #define FM_XOR                 4L
                    634: #define FM_AND                 6L
                    635: #define FM_SUBTRACT            7L
                    636: #define FM_MASKSRCNOT          8L
                    637: #define FM_ZERO                9L
                    638: #define FM_NOTMERGESRC         10L
                    639: #define FM_NOTXORSRC           11L
                    640: #define FM_INVERT              12L
                    641: #define FM_MERGESRCNOT         13L
                    642: #define FM_NOTCOPYSRC          14L
                    643: #define FM_MERGENOTSRC         15L
                    644: #define FM_NOTMASKSRC          16L
                    645: #define FM_ONE                 17L
1.1.1.2 ! root      646: 
1.1       root      647: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      648: 
1.1       root      649: /* background mixes */
                    650: #define BM_ERROR               (-1L)
                    651: #define BM_DEFAULT             0L
                    652: #define BM_OVERPAINT           2L
                    653: #define BM_LEAVEALONE          5L
1.1.1.2 ! root      654: 
1.1       root      655: #ifndef INCL_SAADEFS
                    656: #define BM_OR                  1L
                    657: #define BM_XOR                 4L
                    658: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      659: 
1.1       root      660: /* basic line type styles */
                    661: #define LINETYPE_ERROR          (-1L)
                    662: #define LINETYPE_DEFAULT        0L
                    663: #define LINETYPE_DOT            1L
                    664: #define LINETYPE_SHORTDASH      2L
                    665: #define LINETYPE_DASHDOT        3L
                    666: #define LINETYPE_DOUBLEDOT      4L
                    667: #define LINETYPE_LONGDASH       5L
                    668: #define LINETYPE_DASHDOUBLEDOT  6L
                    669: #define LINETYPE_SOLID          7L
                    670: #define LINETYPE_INVISIBLE      8L
                    671: #ifndef INCL_SAADEFS
                    672: #define LINETYPE_ALTERNATE      9L
                    673: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      674: 
1.1       root      675: /* cosmetic line widths */
                    676: #define LINEWIDTH_ERROR         (-1L)
                    677: #define LINEWIDTH_DEFAULT       0L
                    678: #define LINEWIDTH_NORMAL        0x00010000L   /* MAKEFIXED(1,0) */
1.1.1.2 ! root      679: 
1.1       root      680: /* actual line widths */
                    681: #define LINEWIDTHGEOM_ERROR     (-1L)
1.1.1.2 ! root      682: 
1.1       root      683: /* line end styles */
                    684: #define LINEEND_ERROR           (-1L)
                    685: #define LINEEND_DEFAULT         0L
                    686: #define LINEEND_FLAT            1L
                    687: #define LINEEND_SQUARE          2L
                    688: #define LINEEND_ROUND           3L
1.1.1.2 ! root      689: 
1.1       root      690: /* line join styles */
                    691: #define LINEJOIN_ERROR          (-1L)
                    692: #define LINEJOIN_DEFAULT        0L
                    693: #define LINEJOIN_BEVEL          1L
                    694: #define LINEJOIN_ROUND          2L
                    695: #define LINEJOIN_MITRE          3L
1.1.1.2 ! root      696: 
        !           697: /* character directions */
1.1       root      698: #define CHDIRN_ERROR            (-1L)
                    699: #define CHDIRN_DEFAULT          0L
                    700: #define CHDIRN_LEFTRIGHT        1L
                    701: #define CHDIRN_TOPBOTTOM        2L
                    702: #define CHDIRN_RIGHTLEFT        3L
                    703: #define CHDIRN_BOTTOMTOP        4L
1.1.1.2 ! root      704: 
1.1       root      705: /* character modes */
                    706: #define CM_ERROR                (-1L)
                    707: #define CM_DEFAULT              0L
                    708: #define CM_MODE1                1L
                    709: #define CM_MODE2                2L
                    710: #define CM_MODE3                3L
1.1.1.2 ! root      711: 
1.1       root      712: /* basic marker symbols */
                    713: #define MARKSYM_ERROR           (-1L)
                    714: #define MARKSYM_DEFAULT         0L
                    715: #define MARKSYM_CROSS           1L
                    716: #define MARKSYM_PLUS            2L
                    717: #define MARKSYM_DIAMOND         3L
                    718: #define MARKSYM_SQUARE          4L
                    719: #define MARKSYM_SIXPOINTSTAR    5L
                    720: #define MARKSYM_EIGHTPOINTSTAR  6L
                    721: #define MARKSYM_SOLIDDIAMOND    7L
                    722: #define MARKSYM_SOLIDSQUARE     8L
                    723: #define MARKSYM_DOT             9L
                    724: #define MARKSYM_SMALLCIRCLE     10L
                    725: #define MARKSYM_BLANK           64L
1.1.1.2 ! root      726: 
1.1       root      727: /* formatting options for GpiCharStringPosAt */
                    728: #define CHS_OPAQUE              0x0001L
                    729: #define CHS_VECTOR              0x0002L
                    730: #define CHS_LEAVEPOS            0x0008L
                    731: #define CHS_CLIP                0x0010L
1.1.1.2 ! root      732: 
1.1       root      733: /* bundle codes for GpiSetAttributes and GpiQueryAttributes */
                    734: #define PRIM_LINE               1L
                    735: #define PRIM_CHAR               2L
                    736: #define PRIM_MARKER             3L
                    737: #define PRIM_AREA               4L
                    738: #define PRIM_IMAGE              5L
1.1.1.2 ! root      739: 
1.1       root      740: /* line bundle mask bits */
                    741: #define LBB_COLOR               0x0001L
                    742: #define LBB_MIX_MODE            0x0004L
                    743: #define LBB_WIDTH               0x0010L
                    744: #define LBB_GEOM_WIDTH          0x0020L
                    745: #define LBB_TYPE                0x0040L
                    746: #define LBB_END                 0x0080L
                    747: #define LBB_JOIN                0x0100L
1.1.1.2 ! root      748: 
1.1       root      749: /* character bundle mask bits */
                    750: #define CBB_COLOR               0x0001L
                    751: #define CBB_BACK_COLOR          0x0002L
                    752: #define CBB_MIX_MODE            0x0004L
                    753: #define CBB_BACK_MIX_MODE       0x0008L
                    754: #define CBB_SET                 0x0010L
                    755: #define CBB_MODE                0x0020L
                    756: #define CBB_BOX                 0x0040L
                    757: #define CBB_ANGLE               0x0080L
                    758: #define CBB_SHEAR               0x0100L
                    759: #define CBB_DIRECTION           0x0200L
1.1.1.2 ! root      760: 
1.1       root      761: /* marker bundle mask bits */
                    762: #define MBB_COLOR               0x0001L
                    763: #define MBB_BACK_COLOR          0x0002L
                    764: #define MBB_MIX_MODE            0x0004L
                    765: #define MBB_BACK_MIX_MODE       0x0008L
                    766: #define MBB_SET                 0x0010L
                    767: #define MBB_SYMBOL              0x0020L
                    768: #define MBB_BOX                 0x0040L
1.1.1.2 ! root      769: 
1.1       root      770: /* pattern bundle mask bits */
                    771: #define ABB_COLOR               0x0001L
                    772: #define ABB_BACK_COLOR          0x0002L
                    773: #define ABB_MIX_MODE            0x0004L
                    774: #define ABB_BACK_MIX_MODE       0x0008L
                    775: #define ABB_SET                 0x0010L
                    776: #define ABB_SYMBOL              0x0020L
                    777: #define ABB_REF_POINT           0x0040L
1.1.1.2 ! root      778: 
1.1       root      779: /* image bundle mask bits */
                    780: #define IBB_COLOR               0x0001L
                    781: #define IBB_BACK_COLOR          0x0002L
                    782: #define IBB_MIX_MODE            0x0004L
                    783: #define IBB_BACK_MIX_MODE       0x0008L
1.1.1.2 ! root      784: 
1.1       root      785: /* structure for GpiSetArcParams and GpiQueryArcParams */
                    786: typedef struct _ARCPARAMS {    /* arcp */
                    787:     LONG lP;
                    788:     LONG lQ;
                    789:     LONG lR;
                    790:     LONG lS;
                    791: } ARCPARAMS;
                    792: typedef ARCPARAMS FAR *PARCPARAMS;
1.1.1.2 ! root      793: 
1.1       root      794: /* variation of SIZE used for FIXEDs */
                    795: typedef struct _SIZEF {       /* sizfx */
                    796:     FIXED cx;
                    797:     FIXED cy;
                    798: } SIZEF;
                    799: typedef SIZEF FAR *PSIZEF;
1.1.1.2 ! root      800: 
1.1       root      801: /* structure for gradient parameters e.g. for GpiSetCharAngle */
                    802: typedef struct _GRADIENTL {     /* gradl */
                    803:     LONG x;
                    804:     LONG y;
                    805: } GRADIENTL;
                    806: typedef GRADIENTL FAR *PGRADIENTL;
1.1.1.2 ! root      807: 
1.1       root      808: /* line bundle for GpiSetAttributes and GpiQueryAttributes */
                    809: typedef struct _LINEBUNDLE {    /* lbnd */
                    810:     LONG    lColor;
                    811:     LONG    lReserved;
                    812:     USHORT  usMixMode;
                    813:     USHORT  usReserved;
                    814:     FIXED   fxWidth;
                    815:     LONG    lGeomWidth;
                    816:     USHORT  usType;
                    817:     USHORT  usEnd;
                    818:     USHORT  usJoin;
                    819: } LINEBUNDLE;
1.1.1.2 ! root      820: 
1.1       root      821: /* character bundle for GpiSetAttributes and GpiQueryAttributes */
                    822: typedef struct _CHARBUNDLE {    /* cbnd */
                    823:     LONG      lColor;
                    824:     LONG      lBackColor;
                    825:     USHORT    usMixMode;
                    826:     USHORT    usBackMixMode;
                    827:     USHORT    usSet;
                    828:     USHORT    usPrecision;
                    829:     SIZEF     sizfxCell;
                    830:     POINTL    ptlAngle;
                    831:     POINTL    ptlShear;
                    832:     USHORT    usDirection;
                    833: } CHARBUNDLE;
1.1.1.2 ! root      834: 
1.1       root      835: /* marker bundle for GpiSetAttributes and GpiQueryAttributes */
                    836: typedef struct _MARKERBUNDLE {  /* mbnd */
                    837:     LONG   lColor;
                    838:     LONG   lBackColor;
                    839:     USHORT usMixMode;
                    840:     USHORT usBackMixMode;
                    841:     USHORT usSet;
                    842:     USHORT usSymbol;
                    843:     SIZEF  sizfxCell;
                    844: } MARKERBUNDLE;
1.1.1.2 ! root      845: 
1.1       root      846: /* pattern bundle for GpiSetAttributes and GpiQueryAttributes */
                    847: typedef struct _AREABUNDLE { /* pbnd */
                    848:     LONG   lColor;
                    849:     LONG   lBackColor;
                    850:     USHORT usMixMode;
                    851:     USHORT usBackMixMode;
                    852:     USHORT usSet;
                    853:     USHORT usSymbol;
                    854:     POINTL ptlRefPoint ;
                    855: } AREABUNDLE;
1.1.1.2 ! root      856: 
1.1       root      857: /* image bundle for GpiSetAttributes and GpiQueryAttributes */
                    858: typedef struct _IMAGEBUNDLE {   /* ibmd */
                    859:     LONG   lColor;
                    860:     LONG   lBackColor;
                    861:     USHORT usMixMode;
                    862:     USHORT usBackMixMode;
                    863: } IMAGEBUNDLE;
1.1.1.2 ! root      864: 
1.1       root      865: /* pointer to any bundle used by GpiSet/QueryAttrs */
                    866: typedef PVOID PBUNDLE;
1.1.1.2 ! root      867: 
1.1       root      868: /* array indices for GpiQueryTextBox */
                    869: #define TXTBOX_TOPLEFT      0L
                    870: #define TXTBOX_BOTTOMLEFT   1L
                    871: #define TXTBOX_TOPRIGHT     2L
                    872: #define TXTBOX_BOTTOMRIGHT  3L
                    873: #define TXTBOX_CONCAT       4L
                    874: /* array count for GpiQueryTextBox */
                    875: #define TXTBOX_COUNT        5L
1.1.1.2 ! root      876: 
1.1       root      877: /* return codes for GpiPtVisible */
                    878: #define PVIS_ERROR       0L
                    879: #define PVIS_INVISIBLE   1L
                    880: #define PVIS_VISIBLE     2L
1.1.1.2 ! root      881: 
1.1       root      882: /* return codes for GpiRectVisible */
                    883: #define RVIS_ERROR       0L
                    884: #define RVIS_INVISIBLE   1L
                    885: #define RVIS_PARTIAL     2L
                    886: #define RVIS_VISIBLE     3L
1.1.1.2 ! root      887: 
1.1       root      888: #ifndef INCL_DDIDEFS
1.1.1.2 ! root      889: 
1.1       root      890: /*** attribute mode functions */
                    891: BOOL APIENTRY GpiSetAttrMode( HPS, LONG );
                    892: LONG APIENTRY GpiQueryAttrMode( HPS );
                    893: /*** bundle primitive functions */
                    894: BOOL APIENTRY GpiSetAttrs( HPS, LONG, ULONG, ULONG, PBUNDLE );
1.1.1.2 ! root      895: #ifndef INCL_SAADEFS
        !           896: 
1.1       root      897: LONG APIENTRY GpiQueryAttrs( HPS, LONG, ULONG, PBUNDLE );
1.1.1.2 ! root      898: 
1.1       root      899: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root      900: 
1.1       root      901: /*** global primitive functions */
                    902: BOOL APIENTRY GpiSetBackColor( HPS, LONG );
                    903: LONG APIENTRY GpiQueryBackColor( HPS );
                    904: BOOL APIENTRY GpiSetMix( HPS, LONG );
                    905: LONG APIENTRY GpiQueryMix( HPS );
                    906: BOOL APIENTRY GpiSetBackMix( HPS, LONG );
                    907: LONG APIENTRY GpiQueryBackMix( HPS );
1.1.1.2 ! root      908: 
1.1       root      909: /*** line primitive functions */
                    910: BOOL  APIENTRY GpiSetLineType( HPS, LONG );
                    911: LONG  APIENTRY GpiQueryLineType( HPS );
                    912: BOOL  APIENTRY GpiSetLineWidth( HPS, FIXED );
                    913: FIXED APIENTRY GpiQueryLineWidth( HPS );
1.1.1.2 ! root      914: 
1.1       root      915: BOOL APIENTRY GpiSetLineWidthGeom( HPS, LONG );
                    916: LONG APIENTRY GpiQueryLineWidthGeom( HPS );
                    917: BOOL APIENTRY GpiSetLineEnd( HPS, LONG );
                    918: LONG APIENTRY GpiQueryLineEnd( HPS );
                    919: BOOL APIENTRY GpiSetLineJoin( HPS, LONG );
                    920: LONG APIENTRY GpiQueryLineJoin( HPS );
1.1.1.2 ! root      921: 
1.1       root      922: BOOL APIENTRY GpiSetCurrentPosition( HPS, PPOINTL );
                    923: BOOL APIENTRY GpiQueryCurrentPosition( HPS, PPOINTL );
1.1.1.2 ! root      924: 
1.1       root      925: /*** arc primitive functions */
                    926: BOOL APIENTRY GpiSetArcParams( HPS, PARCPARAMS );
                    927: BOOL APIENTRY GpiQueryArcParams( HPS, PARCPARAMS );
1.1.1.2 ! root      928: 
        !           929: #ifndef INCL_SAADEFS
        !           930: 
1.1       root      931: LONG APIENTRY GpiPointArc( HPS, PPOINTL );
1.1.1.2 ! root      932: 
        !           933: #endif /* no INCL_SAADEFS */
        !           934: 
1.1       root      935: LONG APIENTRY GpiFullArc( HPS, LONG, FIXED );
                    936: LONG APIENTRY GpiPartialArc( HPS, PPOINTL, FIXED, FIXED, FIXED );
                    937: LONG APIENTRY GpiPolyFilletSharp( HPS, LONG, PPOINTL, PFIXED );
                    938: LONG APIENTRY GpiPolySpline( HPS, LONG, PPOINTL );
                    939: LONG APIENTRY GpiPolyFillet( HPS, LONG, PPOINTL );
1.1.1.2 ! root      940: 
1.1       root      941: /*** area primitive functions */
                    942: BOOL APIENTRY GpiSetPatternSet( HPS, LONG );
                    943: LONG APIENTRY GpiQueryPatternSet( HPS );
                    944: BOOL APIENTRY GpiSetPatternRefPoint( HPS, PPOINTL );
                    945: BOOL APIENTRY GpiQueryPatternRefPoint( HPS, PPOINTL );
1.1.1.2 ! root      946: 
1.1       root      947: /*** character primitive functions */
1.1.1.2 ! root      948: 
1.1       root      949: BOOL APIENTRY GpiQueryCharStringPos( HPS, ULONG, LONG, PCH, PLONG, PPOINTL );
                    950: BOOL APIENTRY GpiQueryCharStringPosAt( HPS, PPOINTL, ULONG, LONG, PCH, PLONG, PPOINTL );
                    951: BOOL APIENTRY GpiQueryTextBox( HPS, LONG, PCH, LONG, PPOINTL );
                    952: BOOL APIENTRY GpiQueryDefCharBox( HPS, PSIZEL );
                    953: BOOL APIENTRY GpiSetCharSet( HPS, LONG );
                    954: LONG APIENTRY GpiQueryCharSet( HPS );
                    955: BOOL APIENTRY GpiSetCharBox( HPS, PSIZEF );
                    956: BOOL APIENTRY GpiQueryCharBox( HPS, PSIZEF );
                    957: BOOL APIENTRY GpiSetCharAngle( HPS, PGRADIENTL );
                    958: BOOL APIENTRY GpiQueryCharAngle( HPS, PGRADIENTL );
                    959: BOOL APIENTRY GpiSetCharShear( HPS, PPOINTL );
                    960: BOOL APIENTRY GpiQueryCharShear( HPS, PPOINTL );
                    961: BOOL APIENTRY GpiSetCharDirection( HPS, LONG );
                    962: LONG APIENTRY GpiQueryCharDirection( HPS );
                    963: BOOL APIENTRY GpiSetCharMode( HPS, LONG );
                    964: LONG APIENTRY GpiQueryCharMode( HPS );
                    965: LONG APIENTRY GpiCharStringPos( HPS, PRECTL, ULONG, LONG, PCH, PLONG );
                    966: LONG APIENTRY GpiCharStringPosAt( HPS, PPOINTL, PRECTL
                    967:                                  , ULONG, LONG, PCH ,PLONG );
1.1.1.2 ! root      968: 
1.1       root      969: /*** marker primitive functions */
                    970: BOOL APIENTRY GpiSetMarkerSet( HPS, LONG );
                    971: LONG APIENTRY GpiQueryMarkerSet( HPS );
                    972: BOOL APIENTRY GpiSetMarker( HPS, LONG );
                    973: LONG APIENTRY GpiQueryMarker( HPS );
                    974: BOOL APIENTRY GpiSetMarkerBox( HPS, PSIZEF );
                    975: BOOL APIENTRY GpiQueryMarkerBox( HPS, PSIZEF );
                    976: LONG APIENTRY GpiMarker( HPS, PPOINTL );
                    977: LONG APIENTRY GpiPolyMarker( HPS, LONG, PPOINTL );
                    978: /*** image primitive functions */
                    979: LONG APIENTRY GpiImage( HPS, LONG, PSIZEL, LONG, PBYTE );
1.1.1.2 ! root      980: /*** miscellaneous primitive functions */
1.1       root      981: BOOL  APIENTRY GpiPop( HPS, LONG );
                    982: LONG APIENTRY GpiPtVisible( HPS, PPOINTL );
                    983: LONG APIENTRY GpiRectVisible( HPS, PRECTL );
                    984: BOOL  APIENTRY GpiComment( HPS, LONG, PBYTE );
1.1.1.2 ! root      985: 
1.1       root      986: #endif /* no INCL_DDIDEFS */
1.1.1.2 ! root      987: 
1.1       root      988: #endif /* non-common GPIPRIMITIVES */
                    989: #ifdef INCL_GPILCIDS
1.1.1.2 ! root      990: 
        !           991: /* return codes from GpiCreateLogFont */
        !           992: #define FONT_DEFAULT     1L
        !           993: #define FONT_MATCH       2L
        !           994: 
1.1       root      995: /* lcid type for GpiQuerySetIds */
                    996: #define LCIDT_FONT       6L
1.1.1.2 ! root      997: 
1.1       root      998: #ifndef INCL_SAADEFS
                    999: #define LCIDT_BITMAP     7L
1.1.1.2 ! root     1000: 
1.1       root     1001: /* constant used to delete all lcids by GpiDeleteSetId */
                   1002: #define LCID_ALL         (-1L)
                   1003: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root     1004: 
1.1       root     1005: /* kerning data returned by GpiQueryKerningPairs */
                   1006: typedef struct _KERNINGPAIRS {  /* krnpr */
                   1007:     SHORT sFirstChar;
                   1008:     SHORT sSecondChar;
                   1009:     SHORT sKerningAmount;
                   1010: } KERNINGPAIRS;
                   1011: typedef KERNINGPAIRS FAR *PKERNINGPAIRS;
1.1.1.2 ! root     1012: 
1.1       root     1013: #ifndef INCL_SAADEFS
1.1.1.2 ! root     1014: 
1.1       root     1015: /* options for GpiQueryFonts */
                   1016: #define QF_PUBLIC               0x0001L
                   1017: #define QF_PRIVATE              0x0002L
1.1.1.2 ! root     1018: 
1.1       root     1019: /* font file descriptions for GpiQueryFontFileDescriptions */
                   1020: typedef CHAR FFDESCS[2][FACESIZE]; /* ffdescs */
                   1021: typedef FFDESCS FAR *PFFDESCS;
1.1.1.2 ! root     1022: 
1.1       root     1023: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root     1024: 
1.1       root     1025: #ifndef INCL_DDIDEFS
1.1.1.2 ! root     1026: 
1.1       root     1027: /*** physical and logical font functions */
                   1028: BOOL APIENTRY GpiDeleteSetId( HPS, LONG );
                   1029: LONG APIENTRY GpiQueryNumberSetIds( HPS );
                   1030: BOOL APIENTRY GpiQuerySetIds( HPS, LONG, PLONG, PSTR8, PLONG );
                   1031: BOOL APIENTRY GpiLoadFonts( HAB, PSZ );
                   1032: BOOL APIENTRY GpiUnloadFonts( HAB, PSZ );
                   1033: LONG APIENTRY GpiCreateLogFont( HPS, PSTR8, LONG, PFATTRS );
                   1034: LONG APIENTRY GpiQueryFonts( HPS, ULONG, PSZ, PLONG, LONG, PFONTMETRICS );
                   1035: BOOL APIENTRY GpiQueryFontMetrics( HPS, LONG, PFONTMETRICS );
                   1036: LONG APIENTRY GpiQueryKerningPairs( HPS, LONG, PKERNINGPAIRS );
                   1037: BOOL APIENTRY GpiQueryWidthTable( HPS, LONG, LONG, PLONG );
                   1038: #ifndef INCL_SAADEFS
                   1039: BOOL   APIENTRY GpiSetCp( HPS, USHORT );
                   1040: USHORT APIENTRY GpiQueryCp( HPS );
                   1041: LONG   APIENTRY GpiQueryFontFileDescriptions( HAB, PSZ, PLONG, PFFDESCS );
                   1042: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root     1043: 
1.1       root     1044: #endif /* no INCL_DDIDEFS */
1.1.1.2 ! root     1045: 
1.1       root     1046: #endif /* non-common GPILCIDS */
1.1.1.2 ! root     1047: #if (defined(INCL_GPIBITMAPS) || !defined(INCL_NOCOMMON))
        !          1048: 
1.1       root     1049: /* rastor operations defined for GpiBitBlt */
                   1050: #define ROP_SRCCOPY             0x00CCL
                   1051: #define ROP_SRCPAINT            0x00EEL
                   1052: #define ROP_SRCAND              0x0088L
                   1053: #define ROP_SRCINVERT           0x0066L
                   1054: #define ROP_SRCERASE            0x0044L
                   1055: #define ROP_NOTSRCCOPY          0x0033L
                   1056: #define ROP_NOTSRCERASE         0x0011L
                   1057: #define ROP_MERGECOPY           0x00C0L
                   1058: #define ROP_MERGEPAINT          0x00BBL
                   1059: #define ROP_PATCOPY             0x00F0L
                   1060: #define ROP_PATPAINT            0x00FBL
                   1061: #define ROP_PATINVERT           0x005AL
                   1062: #define ROP_DSTINVERT           0x0055L
                   1063: #define ROP_ZERO                0x0000L
                   1064: #define ROP_ONE                 0x00FFL
1.1.1.2 ! root     1065: 
1.1       root     1066: /* Blt options for GpiBitBlt */
                   1067: #define BBO_OR              0L
                   1068: #define BBO_AND             1L
                   1069: #define BBO_IGNORE          2L
1.1.1.2 ! root     1070: 
1.1       root     1071: /* error return for GpiSetBitmap */
                   1072: #define HBM_ERROR               ((HBITMAP)-1L)
1.1.1.2 ! root     1073: 
1.1       root     1074: #ifndef INCL_DDIDEFS
1.1.1.2 ! root     1075: 
1.1       root     1076: /*** bitmap and pel functions */
1.1.1.2 ! root     1077: HBITMAP APIENTRY GpiLoadBitmap( HPS, HMODULE, USHORT, LONG, LONG );
1.1       root     1078: BOOL    APIENTRY GpiDeleteBitmap( HBITMAP );
                   1079: HBITMAP APIENTRY GpiSetBitmap( HPS, HBITMAP );
1.1.1.2 ! root     1080: LONG    APIENTRY GpiBitBlt( HPS, HPS, LONG, PPOINTL, LONG, ULONG );
        !          1081: LONG    APIENTRY GpiWCBitBlt( HPS, HBITMAP, LONG, PPOINTL, LONG, ULONG );
        !          1082: 
1.1       root     1083: #endif /* no INCL_DDIDEFS */
1.1.1.2 ! root     1084: 
1.1       root     1085: #endif /* common GPIBITMAPS */
                   1086: #ifdef INCL_GPIBITMAPS
1.1.1.2 ! root     1087: 
1.1       root     1088: /* usage flags for GpiCreateBitmap */
                   1089: #define CBM_INIT        0x0004L
1.1.1.2 ! root     1090: 
1.1       root     1091: /* bitmap parameterization used by GpiCreateBitmap and others */
                   1092: typedef struct _BITMAPINFOHEADER {      /* bmp */
                   1093:     ULONG  cbFix;
                   1094:     USHORT cx;
                   1095:     USHORT cy;
                   1096:     USHORT cPlanes;
                   1097:     USHORT cBitCount;
                   1098: } BITMAPINFOHEADER;
                   1099: typedef BITMAPINFOHEADER FAR *PBITMAPINFOHEADER;
1.1.1.2 ! root     1100: 
1.1       root     1101: /* RGB data for _BITMAPINFO struct */
                   1102: typedef struct _RGB {           /* rgb */
                   1103:     BYTE bBlue;
                   1104:     BYTE bGreen;
                   1105:     BYTE bRed;
                   1106: } RGB;
1.1.1.2 ! root     1107: 
1.1       root     1108: /* bitmap data used by GpiSetBitmapBits and others */
                   1109: typedef struct _BITMAPINFO {    /* bmi */
                   1110:     ULONG  cbFix;
                   1111:     USHORT cx;
                   1112:     USHORT cy;
                   1113:     USHORT cPlanes;
                   1114:     USHORT cBitCount;
                   1115:     RGB    argbColor[1];
                   1116: } BITMAPINFO;
                   1117: typedef BITMAPINFO FAR *PBITMAPINFO;
1.1.1.2 ! root     1118: 
1.1       root     1119: /* error return code for GpiSet/QueryBitmapBits */
                   1120: #define BMB_ERROR       (-1L)
1.1.1.2 ! root     1121: 
1.1       root     1122: #ifndef INCL_DDIDEFS
1.1.1.2 ! root     1123: 
1.1       root     1124: /*** bitmap and pel functions */
                   1125: HBITMAP APIENTRY GpiCreateBitmap( HPS, PBITMAPINFOHEADER
                   1126:                                 , ULONG, PBYTE, PBITMAPINFO );
                   1127: BOOL    APIENTRY GpiSetBitmapDimension( HBITMAP, PSIZEL );
                   1128: BOOL    APIENTRY GpiQueryBitmapDimension( HBITMAP, PSIZEL );
                   1129: BOOL    APIENTRY GpiQueryDeviceBitmapFormats( HPS, LONG, PLONG );
                   1130: BOOL    APIENTRY GpiQueryBitmapParameters( HBITMAP, PBITMAPINFOHEADER );
                   1131: LONG    APIENTRY GpiQueryBitmapBits( HPS, LONG, LONG, PBYTE, PBITMAPINFO );
                   1132: LONG    APIENTRY GpiSetBitmapBits( HPS, LONG, LONG, PBYTE, PBITMAPINFO );
                   1133: LONG    APIENTRY GpiSetPel( HPS, PPOINTL );
                   1134: LONG    APIENTRY GpiQueryPel( HPS, PPOINTL );
                   1135: BOOL    APIENTRY GpiSetBitmapId( HPS, HBITMAP, LONG );
                   1136: HBITMAP APIENTRY GpiQueryBitmapHandle( HPS, LONG );
1.1.1.2 ! root     1137: 
1.1       root     1138: #endif /* no INCL_DDIDEFS */
1.1.1.2 ! root     1139: 
1.1       root     1140: #endif /* non-common GPIBITMAPS */
                   1141: #ifdef INCL_GPIREGIONS
1.1.1.2 ! root     1142: 
1.1       root     1143: /* options for GpiCombineRegion */
                   1144: #define CRGN_OR                 1L
                   1145: #define CRGN_COPY               2L
                   1146: #define CRGN_XOR                4L
                   1147: #define CRGN_AND                6L
                   1148: #define CRGN_DIFF               7L
1.1.1.2 ! root     1149: 
1.1       root     1150: /* usDirection of returned region data for GpiQueryRegionRects */
                   1151: #define RECTDIR_LFRT_TOPBOT     1L
                   1152: #define RECTDIR_RTLF_TOPBOT     2L
                   1153: #define RECTDIR_LFRT_BOTTOP     3L
                   1154: #define RECTDIR_RTLF_BOTTOP     4L
1.1.1.2 ! root     1155: 
1.1       root     1156: /* control data for GpiQueryRegionRects */
                   1157: typedef struct _RGNRECT {       /* rgnrc */
                   1158:     USHORT ircStart;
                   1159:     USHORT crc;
                   1160:     USHORT crcReturned;
                   1161:     USHORT usDirection;
                   1162: } RGNRECT;
                   1163: typedef RGNRECT FAR *PRGNRECT;
1.1.1.2 ! root     1164: 
1.1       root     1165: /* return code to indicate type of region for GpiCombineRegion and others */
                   1166: #define RGN_ERROR       0L
                   1167: #define RGN_NULL        1L
                   1168: #define RGN_RECT        2L
                   1169: #define RGN_COMPLEX     3L
1.1.1.2 ! root     1170: 
1.1       root     1171: /* return codes for GpiPtInRegion */
                   1172: #define PRGN_ERROR      0L
                   1173: #define PRGN_OUTSIDE    1L
                   1174: #define PRGN_INSIDE     2L
1.1.1.2 ! root     1175: 
1.1       root     1176: /* return codes for GpiRectInRegion */
                   1177: #define RRGN_ERROR      0L
                   1178: #define RRGN_OUTSIDE    1L
                   1179: #define RRGN_PARTIAL    2L
                   1180: #define RRGN_INSIDE     3L
1.1.1.2 ! root     1181: 
1.1       root     1182: /* return codes for GpiEqualRegion */
                   1183: #define EQRGN_ERROR     0L
                   1184: #define EQRGN_NOTEQUAL  1L
                   1185: #define EQRGN_EQUAL     2L
1.1.1.2 ! root     1186: 
1.1       root     1187: /* error return code for GpiSetRegion */
                   1188: #define HRGN_ERROR      ((HRGN)-1L)
1.1.1.2 ! root     1189: 
1.1       root     1190: #ifndef INCL_DDIDEFS
1.1.1.2 ! root     1191: 
1.1       root     1192: /*** main region functions */
                   1193: HRGN APIENTRY GpiCreateRegion( HPS, LONG, PRECTL );
                   1194: BOOL APIENTRY GpiSetRegion( HPS, HRGN, LONG, PRECTL );
                   1195: BOOL APIENTRY GpiDestroyRegion( HPS, HRGN );
                   1196: LONG APIENTRY GpiCombineRegion( HPS, HRGN, HRGN, HRGN, LONG );
                   1197: LONG APIENTRY GpiEqualRegion( HPS, HRGN, HRGN );
                   1198: BOOL APIENTRY GpiOffsetRegion( HPS, HRGN, PPOINTL );
                   1199: LONG APIENTRY GpiPtInRegion( HPS, HRGN, PPOINTL );
                   1200: LONG APIENTRY GpiRectInRegion( HPS, HRGN, PRECTL );
                   1201: LONG APIENTRY GpiQueryRegionBox( HPS, HRGN, PRECTL );
                   1202: BOOL APIENTRY GpiQueryRegionRects( HPS, HRGN, PRECTL, PRGNRECT, PRECTL );
                   1203: LONG APIENTRY GpiPaintRegion( HPS, HRGN );
1.1.1.2 ! root     1204: 
1.1       root     1205: /*** clip region functions */
1.1.1.2 ! root     1206: LONG APIENTRY GpiSetClipRegion( HPS, HRGN, PHRGN );
        !          1207: 
        !          1208: #ifndef INCL_SAADEFS
        !          1209: 
1.1       root     1210: HRGN APIENTRY GpiQueryClipRegion( HPS );
                   1211: LONG APIENTRY GpiQueryClipBox( HPS, PRECTL );
1.1.1.2 ! root     1212: 
        !          1213: #endif /* no INCL_SAADEFS */
        !          1214: 
1.1       root     1215: LONG APIENTRY GpiIntersectClipRectangle( HPS, PRECTL );
                   1216: LONG APIENTRY GpiExcludeClipRectangle( HPS, PRECTL );
1.1.1.2 ! root     1217: 
        !          1218: #ifndef INCL_SAADEFS
        !          1219: 
1.1       root     1220: LONG APIENTRY GpiOffsetClipRegion( HPS, PPOINTL );
1.1.1.2 ! root     1221: 
        !          1222: #endif /* no INCL_SAADEFS */
        !          1223: 
1.1       root     1224: #endif /* no INCL_DDIDEFS */
1.1.1.2 ! root     1225: 
1.1       root     1226: #endif /* non-common GPIREGIONS */
                   1227: #ifdef INCL_GPIMETAFILES
1.1.1.2 ! root     1228: 
1.1       root     1229: #ifndef INCL_DDIDEFS
1.1.1.2 ! root     1230: 
        !          1231: /* constants for index values of options array for GpiPlayMetafile */
        !          1232: #define PMF_SEGBASE            0
        !          1233: #define PMF_LOADTYPE           1
        !          1234: #define PMF_RESOLVE            2
        !          1235: #define PMF_LCIDS              3
        !          1236: #define PMF_RESET              4
        !          1237: #define PMF_SUPPRESS           5
        !          1238: #define PMF_COLORTABLES        6
        !          1239: #define PMF_COLORREALIZABLE    7
        !          1240: 
1.1       root     1241: /* options for GpiPlayMetafile */
                   1242: #define RS_DEFAULT      0L
                   1243: #define RS_NODISCARD    1L
                   1244: #define LC_DEFAULT      0L
                   1245: #define LC_NOLOAD       1L
                   1246: #define LC_LOADDISC     3L
                   1247: #define LT_DEFAULT      0L
                   1248: #define LT_NOMODIFY     1L
1.1.1.2 ! root     1249: 
1.1       root     1250: #ifndef INCL_SAADEFS
1.1.1.2 ! root     1251: 
1.1       root     1252: #define LT_ORIGINALVIEW 4L
                   1253: #define RES_DEFAULT     0L
                   1254: #define RES_NORESET     1L
                   1255: #define RES_RESET       2L
                   1256: #define SUP_DEFAULT     0L
                   1257: #define SUP_NOSUPPRESS  1L
                   1258: #define SUP_SUPPRESS    2L
                   1259: #define CTAB_DEFAULT    0L
                   1260: #define CTAB_NOMODIFY   1L
                   1261: #define CTAB_REPLACE    3L
                   1262: #define CREA_DEFAULT    0L
                   1263: #define CREA_REALIZE    1L
                   1264: #define CREA_NOREALIZE  2L
                   1265: #define RSP_DEFAULT     0L
                   1266: #define RSP_NODISCARD   1L
1.1.1.2 ! root     1267: 
1.1       root     1268: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root     1269: 
1.1       root     1270: /*** metafile functions */
                   1271: HMF   APIENTRY GpiLoadMetaFile( HAB, PSZ );
                   1272: LONG  APIENTRY GpiPlayMetaFile( HPS, HMF, LONG, PLONG, PLONG, LONG, PSZ );
                   1273: BOOL  APIENTRY GpiSaveMetaFile( HMF, PSZ );
                   1274: BOOL  APIENTRY GpiDeleteMetaFile( HMF );
1.1.1.2 ! root     1275: 
1.1       root     1276: HMF   APIENTRY GpiCopyMetaFile( HMF );
                   1277: LONG  APIENTRY GpiQueryMetaFileLength( HMF );
                   1278: BOOL  APIENTRY GpiQueryMetaFileBits( HMF, LONG, LONG, PBYTE );
1.1.1.2 ! root     1279: 
        !          1280: #ifndef INCL_SAADEFS
        !          1281: 
1.1       root     1282: BOOL  APIENTRY GpiSetMetaFileBits( HMF, LONG, LONG, PBYTE );
1.1.1.2 ! root     1283: 
1.1       root     1284: #endif /* no INCL_SAADEFS */
1.1.1.2 ! root     1285: 
1.1       root     1286: #endif /* no INCL_DDIDEFS */
1.1.1.2 ! root     1287: 
1.1       root     1288: #endif /* non-common GPIMETAFILES */
1.1.1.2 ! root     1289: 
1.1       root     1290: #ifdef INCL_GPIERRORS
1.1.1.2 ! root     1291: 
1.1       root     1292: /* AAB error codes for the GPI */
                   1293: #define PMERR_OK                           0x0000
                   1294: #define PMERR_ALREADY_IN_AREA              0x2001
                   1295: #define PMERR_ALREADY_IN_ELEMENT           0x2002
                   1296: #define PMERR_ALREADY_IN_PATH              0x2003
                   1297: #define PMERR_ALREADY_IN_SEG               0x2004
                   1298: #define PMERR_AREA_INCOMPLETE              0x2005
                   1299: #define PMERR_BASE_ERROR                   0x2006
                   1300: #define PMERR_BITBLT_LENGTH_EXCEEDED       0x2007
                   1301: #define PMERR_BITMAP_IN_USE                0x2008
                   1302: #define PMERR_BITMAP_IS_SELECTED           0x2009
                   1303: #define PMERR_BITMAP_NOT_FOUND             0x200A
                   1304: #define PMERR_BITMAP_NOT_SELECTED          0x200B
                   1305: #define PMERR_BOUNDS_OVERFLOW              0x200C
                   1306: #define PMERR_CALLED_SEG_IS_CHAINED        0x200D
                   1307: #define PMERR_CALLED_SEG_IS_CURRENT        0x200E
                   1308: #define PMERR_CALLED_SEG_NOT_FOUND         0x200F
                   1309: #define PMERR_CANNOT_DELETE_ALL_DATA       0x2010
                   1310: #define PMERR_CANNOT_REPLACE_ELEMENT_0     0x2011
                   1311: #define PMERR_COL_TABLE_NOT_REALIZABLE     0x2012
                   1312: #define PMERR_COL_TABLE_NOT_REALIZED       0x2013
                   1313: #define PMERR_COORDINATE_OVERFLOW          0x2014
                   1314: #define PMERR_CORR_FORMAT_MISMATCH         0x2015
                   1315: #define PMERR_DATA_TOO_LONG                0x2016
                   1316: #define PMERR_DC_IS_ASSOCIATED             0x2017
                   1317: #define PMERR_DESC_STRING_TRUNCATED        0x2018
                   1318: #define PMERR_DEVICE_DRIVER_ERROR_1        0x2019
                   1319: #define PMERR_DEVICE_DRIVER_ERROR_2        0x201A
                   1320: #define PMERR_DEVICE_DRIVER_ERROR_3        0x201B
                   1321: #define PMERR_DEVICE_DRIVER_ERROR_4        0x201C
                   1322: #define PMERR_DEVICE_DRIVER_ERROR_5        0x201D
                   1323: #define PMERR_DEVICE_DRIVER_ERROR_6        0x201E
                   1324: #define PMERR_DEVICE_DRIVER_ERROR_7        0x201F
                   1325: #define PMERR_DEVICE_DRIVER_ERROR_8        0x2020
                   1326: #define PMERR_DEVICE_DRIVER_ERROR_9        0x2021
                   1327: #define PMERR_DEVICE_DRIVER_ERROR_10       0x2022
1.1.1.2 ! root     1328: #define PMERR_DEV_FUNC_NOT_INSTALLED       0x2023
        !          1329: #define PMERR_DOSOPEN_FAILURE              0x2024
        !          1330: #define PMERR_DOSREAD_FAILURE              0x2025
        !          1331: #define PMERR_DRIVER_NOT_FOUND             0x2026
        !          1332: #define PMERR_DUP_SEG                      0x2027
        !          1333: #define PMERR_DYNAMIC_SEG_SEQ_ERROR        0x2028
        !          1334: #define PMERR_DYNAMIC_SEG_ZERO_INV         0x2029
        !          1335: #define PMERR_ELEMENT_INCOMPLETE           0x202A
        !          1336: #define PMERR_ESC_CODE_NOT_SUPPORTED       0x202B
        !          1337: #define PMERR_EXCEEDS_MAX_SEG_LENGTH       0x202C
        !          1338: #define PMERR_FONT_AND_MODE_MISMATCH       0x202D
        !          1339: #define PMERR_FONT_FILE_NOT_LOADED         0x202E
        !          1340: #define PMERR_FONT_NOT_LOADED              0x202F
        !          1341: #define PMERR_FONT_TOO_BIG                 0x2030
        !          1342: #define PMERR_HARDWARE_INIT_FAILURE        0x2031
        !          1343: #define PMERR_HBITMAP_BUSY                 0x2032
        !          1344: #define PMERR_HDC_BUSY                     0x2033
        !          1345: #define PMERR_HRGN_BUSY                    0x2034
        !          1346: #define PMERR_HUGE_FONTS_NOT_SUPPORTED     0x2035
        !          1347: #define PMERR_ID_HAS_NO_BITMAP             0x2036
        !          1348: #define PMERR_IMAGE_INCOMPLETE             0x2037
        !          1349: #define PMERR_INCOMPAT_COLOR_FORMAT        0x2038
        !          1350: #define PMERR_INCOMPAT_COLOR_OPTIONS       0x2039
        !          1351: #define PMERR_INCOMPATIBLE_BITMAP          0x203A
        !          1352: #define PMERR_INCOMPATIBLE_METAFILE        0x203B
        !          1353: #define PMERR_INCORRECT_DC_TYPE            0x203C
        !          1354: #define PMERR_INSUFFICIENT_DISK_SPACE      0x203D
        !          1355: #define PMERR_INSUFFICIENT_MEMORY          0x203E
        !          1356: #define PMERR_INV_ANGLE_PARM               0x203F
        !          1357: #define PMERR_INV_ARC_CONTROL              0x2040
        !          1358: #define PMERR_INV_AREA_CONTROL             0x2041
        !          1359: #define PMERR_INV_ARC_POINTS               0x2042
        !          1360: #define PMERR_INV_ATTR_MODE                0x2043
        !          1361: #define PMERR_INV_BACKGROUND_COL_ATTR      0x2044
        !          1362: #define PMERR_INV_BACKGROUND_MIX_ATTR      0x2045
        !          1363: #define PMERR_INV_BITBLT_MIX               0x2046
        !          1364: #define PMERR_INV_BITBLT_STYLE             0x2047
        !          1365: #define PMERR_INV_BITMAP_DIMENSION         0x2048
        !          1366: #define PMERR_INV_BOX_CONTROL              0x2049
        !          1367: #define PMERR_INV_BOX_ROUNDING_PARM        0x204A
        !          1368: #define PMERR_INV_CHAR_ANGLE_ATTR          0x204B
        !          1369: #define PMERR_INV_CHAR_DIRECTION_ATTR      0x204C
        !          1370: #define PMERR_INV_CHAR_MODE_ATTR           0x204D
        !          1371: #define PMERR_INV_CHAR_POS_OPTIONS         0x204E
        !          1372: #define PMERR_INV_CHAR_SET_ATTR            0x204F
        !          1373: #define PMERR_INV_CHAR_SHEAR_ATTR          0x2050
        !          1374: #define PMERR_INV_CLIP_PATH_OPTIONS        0x2051
        !          1375: #define PMERR_INV_CODEPAGE                 0x2052
        !          1376: #define PMERR_INV_COLOR_ATTR               0x2053
        !          1377: #define PMERR_INV_COLOR_DATA               0x2054
        !          1378: #define PMERR_INV_COLOR_FORMAT             0x2055
        !          1379: #define PMERR_INV_COLOR_INDEX              0x2056
        !          1380: #define PMERR_INV_COLOR_OPTIONS            0x2057
        !          1381: #define PMERR_INV_COLOR_START_INDEX        0x2058
        !          1382: #define PMERR_INV_COORD_OFFSET             0x2059
        !          1383: #define PMERR_INV_COORD_SPACE              0x205A
        !          1384: #define PMERR_INV_COORDINATE               0x205B
        !          1385: #define PMERR_INV_CORRELATE_DEPTH          0x205C
        !          1386: #define PMERR_INV_CORRELATE_TYPE           0x205D
        !          1387: #define PMERR_INV_CURSOR_BITMAP            0x205E
        !          1388: #define PMERR_INV_DC_DATA                  0x205F
        !          1389: #define PMERR_INV_DC_TYPE                  0x2060
        !          1390: #define PMERR_INV_DEVICE_NAME              0x2061
        !          1391: #define PMERR_INV_DEV_MODES_OPTIONS        0x2062
        !          1392: #define PMERR_INV_DRAW_CONTROL             0x2063
        !          1393: #define PMERR_INV_DRAW_VALUE               0x2064
        !          1394: #define PMERR_INV_DRAWING_MODE             0x2065
        !          1395: #define PMERR_INV_DRIVER_DATA              0x2066
        !          1396: #define PMERR_INV_DRIVER_NAME              0x2067
        !          1397: #define PMERR_INV_DRAW_BORDER_OPTION       0x2068
        !          1398: #define PMERR_INV_EDIT_MODE                0x2069
        !          1399: #define PMERR_INV_ELEMENT_OFFSET           0x206A
        !          1400: #define PMERR_INV_ELEMENT_POINTER          0x206B
        !          1401: #define PMERR_INV_END_PATH_OPTIONS         0x206C
        !          1402: #define PMERR_INV_ESC_CODE                 0x206D
        !          1403: #define PMERR_INV_ESCAPE_DATA              0x206E
        !          1404: #define PMERR_INV_EXTENDED_LCID            0x206F
        !          1405: #define PMERR_INV_FILL_PATH_OPTIONS        0x2070
        !          1406: #define PMERR_INV_FIRST_CHAR               0x2071
        !          1407: #define PMERR_INV_FONT_ATTRS               0x2072
        !          1408: #define PMERR_INV_FONT_FILE_DATA           0x2073
        !          1409: #define PMERR_INV_FOR_THIS_DC_TYPE         0x2074
        !          1410: #define PMERR_INV_FORMAT_CONTROL           0x2075
        !          1411: #define PMERR_INV_FORMS_CODE               0x2076
        !          1412: #define PMERR_INV_FONTDEF                  0x2077
        !          1413: #define PMERR_INV_GEOM_LINE_WIDTH_ATTR     0x2078
        !          1414: #define PMERR_INV_GETDATA_CONTROL          0x2079
        !          1415: #define PMERR_INV_GRAPHICS_FIELD           0x207A
        !          1416: #define PMERR_INV_HBITMAP                  0x207B
        !          1417: #define PMERR_INV_HDC                      0x207C
        !          1418: #define PMERR_INV_HJOURNAL                 0x207D
        !          1419: #define PMERR_INV_HMF                      0x207E
        !          1420: #define PMERR_INV_HPS                      0x207F
        !          1421: #define PMERR_INV_HRGN                     0x2080
        !          1422: #define PMERR_INV_ID                       0x2081
        !          1423: #define PMERR_INV_IMAGE_DATA_LENGTH        0x2082
        !          1424: #define PMERR_INV_IMAGE_DIMENSION          0x2083
        !          1425: #define PMERR_INV_IMAGE_FORMAT             0x2084
        !          1426: #define PMERR_INV_IN_AREA                  0x2085
        !          1427: #define PMERR_INV_IN_CALLED_SEG            0x2086
        !          1428: #define PMERR_INV_IN_CURRENT_EDIT_MODE     0x2087
        !          1429: #define PMERR_INV_IN_DRAW_MODE             0x2088
        !          1430: #define PMERR_INV_IN_ELEMENT               0x2089
        !          1431: #define PMERR_INV_IN_IMAGE                 0x208A
        !          1432: #define PMERR_INV_IN_PATH                  0x208B
        !          1433: #define PMERR_INV_IN_RETAIN_MODE           0x208C
        !          1434: #define PMERR_INV_IN_SEG                   0x208D
        !          1435: #define PMERR_INV_IN_VECTOR_SYMBOL         0x208E
        !          1436: #define PMERR_INV_INFO_TABLE               0x208F
        !          1437: #define PMERR_INV_JOURNAL_OPTION           0x2090
        !          1438: #define PMERR_INV_KERNING_FLAGS            0x2091
        !          1439: #define PMERR_INV_LENGTH_OR_COUNT          0x2092
        !          1440: #define PMERR_INV_LINE_END_ATTR            0x2093
        !          1441: #define PMERR_INV_LINE_JOIN_ATTR           0x2094
        !          1442: #define PMERR_INV_LINE_TYPE_ATTR           0x2095
        !          1443: #define PMERR_INV_LINE_WIDTH_ATTR          0x2096
        !          1444: #define PMERR_INV_LOGICAL_ADDRESS          0x2097
        !          1445: #define PMERR_INV_MARKER_BOX_ATTR          0x2098
        !          1446: #define PMERR_INV_MARKER_SET_ATTR          0x2099
        !          1447: #define PMERR_INV_MARKER_SYMBOL_ATTR       0x209A
        !          1448: #define PMERR_INV_MATRIX_ELEMENT           0x209B
        !          1449: #define PMERR_INV_MAX_HITS                 0x209C
        !          1450: #define PMERR_INV_METAFILE                 0x209D
        !          1451: #define PMERR_INV_METAFILE_LENGTH          0x209E
        !          1452: #define PMERR_INV_METAFILE_OFFSET          0x209F
        !          1453: #define PMERR_INV_MICROPS_DRAW_CONTROL     0x20A0
        !          1454: #define PMERR_INV_MICROPS_FUNCTION         0x20A1
        !          1455: #define PMERR_INV_MICROPS_ORDER            0x20A2
        !          1456: #define PMERR_INV_MIX_ATTR                 0x20A3
        !          1457: #define PMERR_INV_MODE_FOR_OPEN_DYN        0x20A4
        !          1458: #define PMERR_INV_MODE_FOR_REOPEN_SEG      0x20A5
        !          1459: #define PMERR_INV_MODIFY_PATH_MODE         0x20A6
        !          1460: #define PMERR_INV_MULTIPLIER               0x20A7
        !          1461: #define PMERR_INV_NESTED_FIGURES           0x20A8
        !          1462: #define PMERR_INV_OR_INCOMPAT_OPTIONS      0x20A9
        !          1463: #define PMERR_INV_ORDER_LENGTH             0x20AA
        !          1464: #define PMERR_INV_ORDERING_PARM            0x20AB
        !          1465: #define PMERR_INV_OUTSIDE_DRAW_MODE        0x20AC
        !          1466: #define PMERR_INV_PAGE_VIEWPORT            0x20AD
        !          1467: #define PMERR_INV_PATH_ID                  0x20AE
        !          1468: #define PMERR_INV_PATH_MODE                0x20AF
        !          1469: #define PMERR_INV_PATTERN_ATTR             0x20B0
        !          1470: #define PMERR_INV_PATTERN_REF_PT_ATTR      0x20B1
        !          1471: #define PMERR_INV_PATTERN_SET_ATTR         0x20B2
        !          1472: #define PMERR_INV_PATTERN_SET_FONT         0x20B3
        !          1473: #define PMERR_INV_PICK_APERTURE_OPTION     0x20B4
        !          1474: #define PMERR_INV_PICK_APERTURE_POSN       0x20B5
        !          1475: #define PMERR_INV_PICK_APERTURE_SIZE       0x20B6
        !          1476: #define PMERR_INV_PICK_NUMBER              0x20B7
        !          1477: #define PMERR_INV_PLAY_METAFILE_OPTION     0x20B8
        !          1478: #define PMERR_INV_PRIMITIVE_TYPE           0x20B9
        !          1479: #define PMERR_INV_PS_SIZE                  0x20BA
        !          1480: #define PMERR_INV_PUTDATA_FORMAT           0x20BB
        !          1481: #define PMERR_INV_QUERY_ELEMENT_NO         0x20BC
        !          1482: #define PMERR_INV_RECT                     0x20BD
        !          1483: #define PMERR_INV_REGION_CONTROL           0x20BE
        !          1484: #define PMERR_INV_REGION_MIX_MODE          0x20BF
        !          1485: #define PMERR_INV_REPLACE_MODE_FUNC        0x20C0
        !          1486: #define PMERR_INV_RESERVED_FIELD           0x20C1
        !          1487: #define PMERR_INV_RESET_OPTIONS            0x20C2
        !          1488: #define PMERR_INV_RGBCOLOR                 0x20C3
        !          1489: #define PMERR_INV_SCAN_START               0x20C4
        !          1490: #define PMERR_INV_SEG_ATTR                 0x20C5
        !          1491: #define PMERR_INV_SEG_ATTR_VALUE           0x20C6
        !          1492: #define PMERR_INV_SEG_CH_LENGTH            0x20C7
        !          1493: #define PMERR_INV_SEG_NAME                 0x20C8
        !          1494: #define PMERR_INV_SEG_OFFSET               0x20C9
        !          1495: #define PMERR_INV_SETID                    0x20CA
        !          1496: #define PMERR_INV_SETID_TYPE               0x20CB
        !          1497: #define PMERR_INV_SET_VIEWPORT_OPTION      0x20CC
        !          1498: #define PMERR_INV_SHARPNESS_PARM           0x20CD
        !          1499: #define PMERR_INV_SOURCE_OFFSET            0x20CE
        !          1500: #define PMERR_INV_STOP_DRAW_VALUE          0x20CF
        !          1501: #define PMERR_INV_TRANSFORM_TYPE           0x20D0
        !          1502: #define PMERR_INV_USAGE_PARM               0x20D1
        !          1503: #define PMERR_INV_VIEWING_LIMITS           0x20D2
        !          1504: #define PMERR_JFILE_BUSY                   0x20D3
        !          1505: #define PMERR_JNL_FUNC_DATA_TOO_LONG       0x20D4
        !          1506: #define PMERR_KERNING_NOT_SUPPORTED        0x20D5
        !          1507: #define PMERR_LABEL_NOT_FOUND              0x20D6
        !          1508: #define PMERR_MATRIX_OVERFLOW              0x20D7
        !          1509: #define PMERR_METAFILE_INTERNAL_ERROR      0x20D8
        !          1510: #define PMERR_METAFILE_IN_USE              0x20D9
        !          1511: #define PMERR_METAFILE_LIMIT_EXCEEDED      0x20DA
        !          1512: #define PMERR_NAME_STACK_FULL              0x20DB
        !          1513: #define PMERR_NOT_CREATED_BY_DEVOPENDC     0x20DC
        !          1514: #define PMERR_NOT_IN_AREA                  0x20DD
        !          1515: #define PMERR_NOT_IN_DRAW_MODE             0x20DE
        !          1516: #define PMERR_NOT_IN_ELEMENT               0x20DF
        !          1517: #define PMERR_NOT_IN_IMAGE                 0x20E0
        !          1518: #define PMERR_NOT_IN_PATH                  0x20E1
        !          1519: #define PMERR_NOT_IN_RETAIN_MODE           0x20E2
        !          1520: #define PMERR_NOT_IN_SEG                   0x20E3
        !          1521: #define PMERR_NO_BITMAP_SELECTED           0x20E4
        !          1522: #define PMERR_NO_CURRENT_ELEMENT           0x20E5
        !          1523: #define PMERR_NO_CURRENT_SEG               0x20E6
        !          1524: #define PMERR_NO_METAFILE_RECORD_HANDLE    0x20E7
        !          1525: #define PMERR_ORDER_TOO_BIG                0x20E8
        !          1526: #define PMERR_OTHER_SET_ID_REFS            0x20E9
        !          1527: #define PMERR_OVERRAN_SEG                  0x20EA
        !          1528: #define PMERR_OWN_SET_ID_REFS              0x20EB
        !          1529: #define PMERR_PATH_INCOMPLETE              0x20EC
        !          1530: #define PMERR_PATH_LIMIT_EXCEEDED          0x20ED
        !          1531: #define PMERR_PATH_UNKNOWN                 0x20EE
        !          1532: #define PMERR_PEL_IS_CLIPPED               0x20EF
        !          1533: #define PMERR_PEL_NOT_AVAILABLE            0x20F0
        !          1534: #define PMERR_PRIMITIVE_STACK_EMPTY        0x20F1
        !          1535: #define PMERR_PROLOG_ERROR                 0x20F2
        !          1536: #define PMERR_PROLOG_SEG_ATTR_NOT_SET      0x20F3
        !          1537: #define PMERR_PS_BUSY                      0x20F4
        !          1538: #define PMERR_PS_IS_ASSOCIATED             0x20F5
        !          1539: #define PMERR_RAM_JNL_FILE_TOO_SMALL       0x20F6
        !          1540: #define PMERR_REALIZE_NOT_SUPPORTED        0x20F7
        !          1541: #define PMERR_REGION_IS_CLIP_REGION        0x20F8
        !          1542: #define PMERR_RESOURCE_DEPLETION           0x20F9
        !          1543: #define PMERR_SEG_AND_REFSEG_ARE_SAME      0x20FA
        !          1544: #define PMERR_SEG_CALL_RECURSIVE           0x20FB
        !          1545: #define PMERR_SEG_CALL_STACK_EMPTY         0x20FC
        !          1546: #define PMERR_SEG_CALL_STACK_FULL          0x20FD
        !          1547: #define PMERR_SEG_IS_CURRENT               0x20FE
        !          1548: #define PMERR_SEG_NOT_CHAINED              0x20FF
        !          1549: #define PMERR_SEG_NOT_FOUND                0x2100
        !          1550: #define PMERR_SEG_STORE_LIMIT_EXCEEDED     0x2101
        !          1551: #define PMERR_SETID_IN_USE                 0x2102
        !          1552: #define PMERR_SETID_NOT_FOUND              0x2103
        !          1553: #define PMERR_STARTDOC_NOT_ISSUED          0x2104
        !          1554: #define PMERR_STOP_DRAW_OCCURRED           0x2105
        !          1555: #define PMERR_TOO_MANY_METAFILES_IN_USE    0x2106
        !          1556: #define PMERR_TRUNCATED_ORDER              0x2107
        !          1557: #define PMERR_UNCHAINED_SEG_ZERO_INV       0x2108
        !          1558: #define PMERR_UNSUPPORTED_ATTR             0x2109
        !          1559: #define PMERR_UNSUPPORTED_ATTR_VALUE       0x210A
        !          1560: 
1.1       root     1561: #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.