home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / msysjour / vol04 / 01b / macsl / pmgpi.h < prev    next >
C/C++ Source or Header  |  1988-09-15  |  53KB  |  1,539 lines

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