home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c034 / 7.ddi / INCLUDE / PMGPI.H$ / PMGPI.bin
Encoding:
Text File  |  1989-11-06  |  48.5 KB  |  1,407 lines

  1. /***************************************************************************\
  2. *
  3. * Module Name: PMGPI.H
  4. *
  5. * OS/2 Presentation Manager GPI constants, types and function declarations
  6. *
  7. * Copyright (c) 1989-1990, Microsoft Corporation.  All rights reserved.
  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_GPIDEFAULTS        Default Primitive Attributes
  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.     #define INCL_GPIDEFAULTS
  53. #endif /* INCL_GPI */
  54.  
  55. #ifdef INCL_ERRORS /* if errors are required then allow GPI errors */
  56.     #define INCL_GPIERRORS
  57. #endif /* INCL_ERRORS */
  58.  
  59. #ifdef INCL_DDIDEFS /* if only DDI required then enable DDI part of GPI */
  60.     #define INCL_GPITRANSFORMS
  61.     #define INCL_GPIPATHS
  62.     #define INCL_GPILOGCOLORTABLE
  63.     #define INCL_GPIPRIMITIVES
  64.     #define INCL_GPILCIDS
  65.     #define INCL_GPIBITMAPS
  66.     #define INCL_GPIREGIONS
  67.     #define INCL_GPIERRORS
  68. #endif /* INCL_DDIDEFS */
  69.  
  70. #ifdef INCL_SAADEFS /* if only SAA required then enable SAA part of GPI */
  71.     #define INCL_GPICONTROL
  72.     #define INCL_GPICORRELATION
  73.     #define INCL_GPISEGMENTS
  74.     #define INCL_GPISEGEDITING
  75.     #define INCL_GPITRANSFORMS
  76.     #define INCL_GPIPATHS
  77.     #define INCL_GPILOGCOLORTABLE
  78.     #define INCL_GPIPRIMITIVES
  79.     #define INCL_GPILCIDS
  80.     #define INCL_GPIBITMAPS
  81.     #define INCL_GPIREGIONS
  82.     #define INCL_GPIMETAFILES
  83.     #define INCL_GPIERRORS
  84. #endif /* INCL_SAADEFS */
  85.  
  86. #ifndef GPI_COMMON_INCLUDED
  87. #define GPI_COMMON_INCLUDED
  88.  
  89. /* General GPI return values */
  90. #define GPI_ERROR            0L
  91. #define GPI_OK                1L
  92. #define GPI_ALTERROR              (-1L)
  93.  
  94. /* fixed point number - implicit binary point between 2 and 3 hex digits */
  95. typedef  LONG FIXED;    /* fx    */
  96. typedef  FIXED FAR *PFIXED;
  97.  
  98. /* fixed point number - implicit binary point between 1st and 2nd hex digits */
  99. typedef  USHORT FIXED88;  /* fx88 */
  100.  
  101. /* fixed point signed number - implicit binary point between bits 14 and 13. */
  102. /*                   Bit 15 is the sign bit.                 */
  103. /*                   Thus 1.0 is represented by 16384 (0x4000)     */
  104. /*                   and -1.0 is represented by -16384 (0xc000)    */
  105. typedef  USHORT FIXED114; /* fx114 */
  106.  
  107. /* make FIXED number from SHORT integer part and USHORT fractional part */
  108. #define MAKEFIXED(intpart,fractpart) MAKELONG(fractpart,intpart)
  109. /* extract fractional part from a fixed quantity */
  110. #define FIXEDFRAC(fx)        (LOUSHORT(fx))
  111. /* extract integer part from a fixed quantity */
  112. #define FIXEDINT(fx)        ((SHORT)HIUSHORT(fx))
  113.  
  114. /* structure for size parameters e.g. for GpiCreatePS */
  115. typedef struct _SIZEL {     /* sizl */
  116.     LONG cx;
  117.     LONG cy;
  118. } SIZEL;
  119. typedef SIZEL FAR *PSIZEL;
  120.  
  121. /* return code on GpiQueryLogColorTable, GpiQueryRealColors and GpiQueryPel */
  122.  
  123. #define CLR_NOINDEX        (-254L)
  124. #endif /* GPI_COMMON_INCLUDED */
  125.  
  126. #if ((defined(INCL_GPICONTROL) || !defined(INCL_NOCOMMON)) && !defined(INCL_GPICONTROL_INCLUDED))
  127.  
  128. /* units for GpiCreatePS and others */
  129. #define PU_ARBITRARY        0x0004L
  130. #define PU_PELS         0x0008L
  131. #define PU_LOMETRIC        0x000CL
  132. #define PU_HIMETRIC        0x0010L
  133. #define PU_LOENGLISH        0x0014L
  134. #define PU_HIENGLISH        0x0018L
  135. #define PU_TWIPS        0x001CL
  136.  
  137. /* format for GpiCreatePS */
  138. #define GPIF_DEFAULT             0L
  139. #define GPIF_SHORT        0x0100L
  140. #define GPIF_LONG        0x0200L
  141.  
  142.  
  143. /* PS type for GpiCreatePS */
  144. #define GPIT_NORMAL             0L
  145. #define GPIT_MICRO        0x1000L
  146.  
  147.  
  148. /* implicit associate flag for GpiCreatePS */
  149. #define GPIA_NOASSOC            0L
  150. #define GPIA_ASSOC           0x4000L
  151.  
  152. #ifndef INCL_SAADEFS
  153. /* return error for GpiQueryDevice */
  154. #define HDC_ERROR        ((HDC)-1L)
  155. #endif /* no INCL_SAADEFS */
  156.  
  157. /* common GPICONTROL functions */
  158. HPS   APIENTRY GpiCreatePS(HAB hab, HDC hdc, PSIZEL psizlSize, ULONG flOptions);
  159. BOOL  APIENTRY GpiDestroyPS(HPS hps);
  160. BOOL  APIENTRY GpiAssociate(HPS hps, HDC hdc);
  161. BOOL  APIENTRY GpiRestorePS(HPS hps, LONG lPSid);
  162. LONG  APIENTRY GpiSavePS(HPS hps);
  163. BOOL  APIENTRY GpiErase(HPS hps);
  164.  
  165. #ifndef INCL_SAADEFS
  166. HDC  APIENTRY GpiQueryDevice(HPS);
  167. #endif /* no INCL_SAADEFS */
  168.  
  169. #endif /* common GPICONTROL */
  170. #if (defined(INCL_GPICONTROL) && !defined(INCL_GPICONTROL_INCLUDED))
  171. #define INCL_GPICONTROL_INCLUDED
  172.  
  173. /* options for GpiResetPS */
  174. #define GRES_ATTRS        0x0001L
  175. #define GRES_SEGMENTS        0x0002L
  176. #define GRES_ALL        0x0004L
  177.  
  178. /* option masks for PS options used by GpiQueryPs */
  179. #define PS_UNITS        0x00FCL
  180. #define PS_FORMAT        0x0F00L
  181. #define PS_TYPE         0x1000L
  182. #define PS_MODE         0x2000L
  183. #define PS_ASSOCIATE        0x4000L
  184. #define PS_NORESET        0x8000L
  185.  
  186.  
  187. /* error context returned by GpiErrorSegmentData */
  188. #define GPIE_SEGMENT        0L
  189. #define GPIE_ELEMENT        1L
  190. #define GPIE_DATA        2L
  191.  
  192. #ifndef INCL_SAADEFS
  193.  
  194. /* control parameter for GpiSetDrawControl */
  195. #define DCTL_ERASE        1L
  196. #define DCTL_DISPLAY        2L
  197. #define DCTL_BOUNDARY        3L
  198. #define DCTL_DYNAMIC        4L
  199. #define DCTL_CORRELATE        5L
  200.  
  201. /* constants for GpiSet/QueryDrawControl */
  202. #define DCTL_ERROR        (-1L)
  203. #define DCTL_OFF        0L
  204. #define DCTL_ON         1L
  205.  
  206. /* constants for GpiSet/QueryStopDraw */
  207. #define SDW_ERROR        (-1L)
  208. #define SDW_OFF         0L
  209. #define SDW_ON            1L
  210.  
  211. #endif /* no INCL_SAADEFS */
  212.  
  213. /* drawing for GpiSet/QueryDrawingMode */
  214. #define DM_ERROR        0L
  215. #define DM_DRAW         1L
  216. #define DM_RETAIN        2L
  217. #define DM_DRAWANDRETAIN    3L
  218.  
  219. /*** other GPICONTROL functions */
  220. BOOL APIENTRY GpiResetPS(HPS hps, ULONG flOptions);
  221.  
  222. #ifndef INCL_SAADEFS
  223.  
  224. BOOL APIENTRY GpiSetPS(HPS hps, PSIZEL psizlsize, ULONG flOptions);
  225.  
  226. #endif /* no INCL_SAADEFS */
  227.  
  228. ULONG APIENTRY GpiQueryPS(HPS hps, PSIZEL psizlSize);
  229. LONG  APIENTRY GpiErrorSegmentData(HPS hps, PLONG plSegment, PLONG plContext);
  230.  
  231. #ifndef INCL_SAADEFS
  232.  
  233. LONG APIENTRY GpiQueryDrawControl(HPS hps, LONG lControl);
  234. BOOL APIENTRY GpiSetDrawControl(HPS hps, LONG lControl, LONG lValue);
  235.  
  236. #endif /* no INCL_SAADEFS */
  237.  
  238. LONG APIENTRY GpiQueryDrawingMode(HPS hps);
  239. BOOL APIENTRY GpiSetDrawingMode(HPS hps, LONG lMode);
  240.  
  241. #ifndef INCL_SAADEFS
  242.  
  243. LONG APIENTRY GpiQueryStopDraw(HPS hps);
  244. BOOL APIENTRY GpiSetStopDraw(HPS hps, LONG lValue);
  245.  
  246. #endif /* no INCL_SAADEFS */
  247.  
  248. #endif /* non-common GPICONTROL */
  249. #if (defined(INCL_GPICORRELATION) && !defined(INCL_GPICORRELATION_INCLUDED))
  250. #define INCL_GPICORRELATION_INCLUDED
  251.  
  252. /* options for GpiSetPickApertureSize */
  253. #define PICKAP_DEFAULT                  0L
  254. #define PICKAP_REC                      2L
  255.  
  256. /* type of correlation for GpiCorrelateChain */
  257. #define PICKSEL_VISIBLE                 0L
  258. #define PICKSEL_ALL                     1L
  259.  
  260. /* return code to indicate correlate hit(s) */
  261. #define GPI_HITS                        2L
  262.  
  263. /*** picking,  correlation and boundary functions */
  264. LONG APIENTRY GpiCorrelateChain(HPS hps, LONG lType, PPOINTL pptlPick,
  265.                 LONG lMaxHits, LONG lMaxDepth, PLONG pl2);
  266. BOOL APIENTRY GpiQueryTag(HPS hps, PLONG plTag);
  267. BOOL APIENTRY GpiSetTag(HPS hps, LONG lTag);
  268. BOOL APIENTRY GpiQueryPickApertureSize(HPS hps, PSIZEL psizlSize);
  269. BOOL APIENTRY GpiSetPickApertureSize(HPS hps, LONG lOptions, PSIZEL psizlSize);
  270.  
  271. #ifndef INCL_SAADEFS
  272.  
  273. BOOL APIENTRY GpiQueryPickAperturePosition(HPS hps, PPOINTL pptlPoint);
  274. BOOL APIENTRY GpiSetPickAperturePosition(HPS hps, PPOINTL pptlPick);
  275. BOOL APIENTRY GpiQueryBoundaryData(HPS hps, PRECTL prclBoundary);
  276. BOOL APIENTRY GpiResetBoundaryData(HPS hps);
  277.  
  278. #endif /* no INCL_SAADEFS */
  279.  
  280. LONG APIENTRY GpiCorrelateFrom(HPS hps, LONG lFirstSegment, LONG lLastSegment,
  281.                    LONG lType, PPOINTL pptlPick, LONG lMaxHits,
  282.                    LONG lMaxDepth, PLONG plSegTag);
  283. LONG APIENTRY GpiCorrelateSegment(HPS hps, LONG lSegment, LONG lType,
  284.                   PPOINTL pptlPick, LONG lMaxHits,
  285.                   LONG lMaxDepth, PLONG alSegTag);
  286.  
  287. #endif /* non-common_GPICORRELATION */
  288. #if (defined(INCL_GPISEGMENTS) && !defined(INCL_GPISEGMENTS_INCLUDED))
  289. #define INCL_GPISEGMENTS_INCLUDED
  290.  
  291. /* data formats for GpiPutData and GpiGetData */
  292. #define DFORM_NOCONV        0L
  293.  
  294. #ifndef INCL_SAADEFS
  295.  
  296. #define DFORM_S370SHORT     1L
  297. #define DFORM_PCSHORT        2L
  298. #define DFORM_PCLONG        4L
  299.  
  300. #endif /* no INCL_SAADEFS */
  301.  
  302. /* segment attributes used by GpiSet/QuerySegmentAttrs and others */
  303. #define ATTR_ERROR        (-1L)
  304. #define ATTR_DETECTABLE     1L
  305. #define ATTR_VISIBLE        2L
  306. #define ATTR_CHAINED        6L
  307.  
  308. #ifndef INCL_SAADEFS
  309.  
  310. #define ATTR_DYNAMIC        8L
  311.  
  312. #endif /* no INCL_SAADEFS */
  313.  
  314. #define ATTR_FASTCHAIN        9L
  315. #define ATTR_PROP_DETECTABLE    10L
  316. #define ATTR_PROP_VISIBLE    11L
  317.  
  318. /* attribute on/off values */
  319. #define ATTR_OFF        0L
  320. #define ATTR_ON         1L
  321.  
  322. /* segment priority used by GpiSetSegmentPriority and others */
  323. #define LOWER_PRI        (-1L)
  324. #define HIGHER_PRI        1L
  325.  
  326. /*** segment control functions */
  327. BOOL APIENTRY GpiOpenSegment(HPS hps, LONG lSegment);
  328. BOOL APIENTRY GpiCloseSegment(HPS hps);
  329. BOOL APIENTRY GpiDeleteSegment(HPS hps, LONG lSegid);
  330. LONG APIENTRY GpiQueryInitialSegmentAttrs(HPS hps, LONG lAttribute);
  331. BOOL APIENTRY GpiSetInitialSegmentAttrs(HPS hps, LONG lAttribute, LONG lValue);
  332. LONG APIENTRY GpiQuerySegmentAttrs(HPS hps, LONG lSegid, LONG lAttribute);
  333. BOOL APIENTRY GpiSetSegmentAttrs(HPS hps, LONG lSegid, LONG lAttribute,
  334.                  LONG lValue);
  335. LONG APIENTRY GpiQuerySegmentPriority(HPS hps, LONG lRefSegid, LONG lOrder);
  336. BOOL APIENTRY GpiSetSegmentPriority(HPS hps, LONG lSegid, LONG lRefSegid,
  337.                     LONG lOrder);
  338. BOOL APIENTRY GpiDeleteSegments(HPS hps, LONG lFirstSegment, LONG lLastSegment);
  339. LONG APIENTRY GpiQuerySegmentNames(HPS hps, LONG lFirstSegid, LONG lLastSegid,
  340.                    LONG lMax, PLONG alSegids);
  341.  
  342. /*** draw functions for segments */
  343. LONG APIENTRY GpiGetData(HPS hps, LONG lSegid, PLONG plOffset,
  344.              LONG lFormat, LONG lLength, PBYTE pbData);
  345. LONG APIENTRY GpiPutData(HPS hps, LONG lFormat, PLONG plCount, PBYTE pbData);
  346. BOOL APIENTRY GpiDrawChain(HPS hps);
  347. BOOL APIENTRY GpiDrawFrom(HPS hps, LONG lFirstSegment, LONG lLastSegment);
  348. BOOL APIENTRY GpiDrawSegment(HPS hps, LONG lSegment);
  349.  
  350. #ifndef INCL_SAADEFS
  351.  
  352. BOOL APIENTRY GpiDrawDynamics(HPS hps);
  353. BOOL APIENTRY GpiRemoveDynamics(HPS hps, LONG lFirstSegid, LONG lLastSegid);
  354.  
  355. #endif /* no INCL_SAADEFS */
  356.  
  357. #endif /* non-common GPISEGMENTS */
  358. #if (defined(INCL_GPISEGEDITING) && !defined(INCL_GPISEGEDITING_INCLUDED))
  359. #define INCL_GPISEGEDITING_INCLUDED
  360.  
  361. /* edit modes used by GpiSet/QueryEditMode */
  362. #define SEGEM_ERROR            0L
  363. #define SEGEM_INSERT            1L
  364. #define SEGEM_REPLACE            2L
  365.  
  366. /*** segment editing by element functions */
  367. BOOL APIENTRY GpiBeginElement(HPS hps, LONG lType, PSZ pszDesc);
  368. BOOL APIENTRY GpiEndElement(HPS hps);
  369. BOOL APIENTRY GpiLabel(HPS hps, LONG lLabel);
  370. LONG APIENTRY GpiElement(HPS hps, LONG lType, PSZ pszDesc,
  371.              LONG lLength, PBYTE pbData);
  372. LONG APIENTRY GpiQueryElement(HPS hps, LONG lOff, LONG lMaxLength,
  373.                   PBYTE pbData);
  374. BOOL APIENTRY GpiDeleteElement(HPS hps);
  375. BOOL APIENTRY GpiDeleteElementRange(HPS hps, LONG lFirstElement,
  376.                     LONG lLastElement);
  377. BOOL APIENTRY GpiDeleteElementsBetweenLabels(HPS hps, LONG lFirstLabel,
  378.                          LONG lLastLabel);
  379. LONG APIENTRY GpiQueryEditMode(HPS hps);
  380. BOOL APIENTRY GpiSetEditMode(HPS hps, LONG lMode);
  381. LONG APIENTRY GpiQueryElementPointer(HPS hps);
  382. BOOL APIENTRY GpiSetElementPointer(HPS hps, LONG lElement);
  383. BOOL APIENTRY GpiOffsetElementPointer(HPS hps, LONG loffset);
  384. LONG APIENTRY GpiQueryElementType(HPS hps, PLONG plType, LONG lLength,
  385.                   PSZ pszData);
  386. BOOL APIENTRY GpiSetElementPointerAtLabel(HPS hps, LONG lLabel);
  387.  
  388. #endif /* non-common GPISEGEDITING */
  389. #if (defined(INCL_GPITRANSFORMS) && !defined(INCL_GPITRANSFORMS_INCLUDED))
  390. #define INCL_GPITRANSFORMS_INCLUDED
  391.  
  392. /* co-ordinates space for GpiConvert */
  393. #define CVTC_WORLD            1L
  394. #define CVTC_MODEL            2L
  395. #define CVTC_DEFAULTPAGE        3L
  396. #define CVTC_PAGE            4L
  397. #define CVTC_DEVICE            5L
  398.  
  399. /* type of transformation for GpiSetSegmentTransformMatrix */
  400. #define TRANSFORM_REPLACE        0L
  401. #define TRANSFORM_ADD            1L
  402. #define TRANSFORM_PREEMPT        2L
  403.  
  404. /* transform matrix */
  405. typedef struct _MATRIXLF { /* matlf */
  406.     FIXED fxM11;
  407.     FIXED fxM12;
  408.     LONG  lM13;
  409.     FIXED fxM21;
  410.     FIXED fxM22;
  411.     LONG  lM23;
  412.     LONG  lM31;
  413.     LONG  lM32;
  414.     LONG  lM33;
  415. } MATRIXLF;
  416. typedef MATRIXLF FAR *PMATRIXLF;
  417.  
  418. #ifndef INCL_DDIDEFS
  419.  
  420. /*** transform and transform conversion functions */
  421. BOOL APIENTRY GpiQuerySegmentTransformMatrix(HPS hps, LONG lSegid, LONG lCount,
  422.                          PMATRIXLF pmatlfArray);
  423. BOOL APIENTRY GpiSetSegmentTransformMatrix(HPS hps, LONG lSegid, LONG lCount,
  424.                        PMATRIXLF pmatlfarray,
  425.                        LONG lOptions);
  426. BOOL APIENTRY GpiConvert(HPS hps, LONG lSrc, LONG lTarg, LONG lCount,
  427.              PPOINTL aptlPoints);
  428. BOOL APIENTRY GpiQueryModelTransformMatrix(HPS hps, LONG lCount,
  429.                        PMATRIXLF pmatlfArray);
  430. BOOL APIENTRY GpiSetModelTransformMatrix(HPS hps, LONG lCount,
  431.                      PMATRIXLF pmatlfArray, LONG lOptions);
  432. LONG APIENTRY GpiCallSegmentMatrix(HPS hps, LONG lSegment, LONG lCount,
  433.                    PMATRIXLF pmatlfArray, LONG lOptions);
  434. BOOL APIENTRY GpiQueryDefaultViewMatrix(HPS hps, LONG lCount,
  435.                     PMATRIXLF pmatlfArray);
  436. BOOL APIENTRY GpiSetDefaultViewMatrix(HPS hps, LONG lCount,
  437.                       PMATRIXLF pmatlfarray, LONG lOptions);
  438. BOOL APIENTRY GpiQueryPageViewport(HPS hps, PRECTL prclViewport);
  439. BOOL APIENTRY GpiSetPageViewport(HPS hps, PRECTL prclViewport);
  440. BOOL APIENTRY GpiQueryViewingTransformMatrix(HPS hps, LONG lCount,
  441.                          PMATRIXLF pmatlfArray);
  442. BOOL APIENTRY GpiSetViewingTransformMatrix(HPS hps, LONG lCount,
  443.                        PMATRIXLF pmatlfArray,
  444.                        LONG lOptions);
  445.  
  446. /*** transform helper routines */
  447. BOOL APIENTRY GpiTranslate(HPS, PMATRIXLF, LONG, PPOINTL);
  448. BOOL APIENTRY GpiScale(HPS, PMATRIXLF, LONG, PFIXED, PPOINTL);
  449. BOOL APIENTRY GpiRotate(HPS, PMATRIXLF, LONG, FIXED, PPOINTL);
  450.  
  451. /*** general clipping functions */
  452. BOOL APIENTRY GpiSetGraphicsField(HPS hps, PRECTL prclField);
  453. BOOL APIENTRY GpiQueryGraphicsField(HPS hps, PRECTL prclField);
  454. BOOL APIENTRY GpiSetViewingLimits(HPS hps, PRECTL prclLimits);
  455. BOOL APIENTRY GpiQueryViewingLimits(HPS hps, PRECTL prclLimits);
  456.  
  457. #endif /* no INCL_DDIDEFS */
  458.  
  459. #endif /* non-common GPITRANSFORMS */
  460. #if (defined(INCL_GPIPATHS) && !defined(INCL_GPIPATHS_INCLUDED))
  461. #define INCL_GPIPATHS_INCLUDED
  462.  
  463. /* modes for GpiModifyPath */
  464. #define MPATH_STROKE            6L
  465.  
  466. /* modes for GpiFillPath */
  467. #define FPATH_ALTERNATE         0L
  468. #define FPATH_WINDING            2L
  469.  
  470. /* modes for GpiSetClipPath */
  471. #define SCP_ALTERNATE            0L
  472. #define SCP_WINDING            2L
  473. #define SCP_AND             4L
  474. #define SCP_RESET            0L
  475.  
  476. #ifndef INCL_DDIDEFS
  477.  
  478. /*** Path and Clip Path functions */
  479. BOOL APIENTRY GpiBeginPath(HPS hps, LONG lPath);
  480. BOOL APIENTRY GpiEndPath(HPS hps);
  481. BOOL APIENTRY GpiCloseFigure(HPS hps);
  482. BOOL APIENTRY GpiModifyPath(HPS hps, LONG lPath, LONG lMode);
  483. LONG APIENTRY GpiFillPath(HPS hps, LONG lPath, LONG lOptions);
  484. BOOL APIENTRY GpiSetClipPath(HPS hps, LONG lPath, LONG lOptions);
  485. LONG APIENTRY GpiOutlinePath(HPS hps, LONG lPath, LONG lOptions);
  486.  
  487. #ifndef INCL_SAADEFS
  488.  
  489. LONG APIENTRY GpiStrokePath(HPS hps, LONG lPath, ULONG flOptions);
  490.  
  491. #endif /* no INCL_SAADEFS */
  492.  
  493. #endif /* no INCL_DDIDEFS */
  494.  
  495. #endif /* non-common GPIPATHS */
  496. #if (defined(INCL_GPILOGCOLORTABLE) && !defined(INCL_GPILOGCOLORTABLE_INCLUDED))
  497. #define INCL_GPILOGCOLORTABLE_INCLUDED
  498.  
  499. /* options for GpiCreateLogColorTable and others */
  500. #define LCOL_RESET        0x0001L
  501. #define LCOL_REALIZABLE     0x0002L
  502. #define LCOL_PURECOLOR        0x0004L
  503.  
  504. /* format of logical lColor table for GpiCreateLogColorTable and others */
  505. #define LCOLF_DEFAULT        0L
  506. #define LCOLF_INDRGB        1L
  507. #define LCOLF_CONSECRGB     2L
  508. #define LCOLF_RGB        3L
  509.  
  510. /* options for GpiQueryRealColors and others */
  511. #define LCOLOPT_REALIZED    0x0001L
  512. #define LCOLOPT_INDEX        0x0002L
  513.  
  514. #ifndef INCL_SAADEFS
  515.  
  516. /* return codes from GpiQueryLogColorTable to indicate it is in RGB mode */
  517. #define QLCT_ERROR        (-1L)
  518. #define QLCT_RGB        (-2L)
  519.  
  520. /* GpiQueryLogColorTable index returned for colors not explicitly loaded */
  521. #define QLCT_NOTLOADED        (-1L)
  522.  
  523. #endif /* no INCL_SAADEFS */
  524.  
  525. /* return codes for GpiQueryColorData */
  526. #define QCD_LCT_FORMAT        0L
  527. #define QCD_LCT_LOINDEX     1L
  528. #define QCD_LCT_HIINDEX     2L
  529.  
  530. #ifndef INCL_DDIDEFS
  531.  
  532. /*** logical lColor table functions */
  533. BOOL APIENTRY GpiCreateLogColorTable(HPS hps, ULONG flOptions, LONG lFormat,
  534.                      LONG lStart, LONG lCount, PLONG alTable);
  535. BOOL APIENTRY GpiRealizeColorTable(HPS hps);
  536. BOOL APIENTRY GpiUnrealizeColorTable(HPS hps);
  537. BOOL APIENTRY GpiQueryColorData(HPS hps, LONG lCount, PLONG alArray);
  538.  
  539. #ifndef INCL_SAADEFS
  540.  
  541. LONG APIENTRY GpiQueryLogColorTable(HPS hps, ULONG flOptions, LONG lStart,
  542.                      LONG lCount, PLONG alArray);
  543.  
  544. #endif /* no INCL_SAADEFS */
  545.  
  546. LONG  APIENTRY GpiQueryRealColors(HPS hps, ULONG flOptions, LONG lStart,
  547.                   LONG lCount, PLONG alColors);
  548. LONG  APIENTRY GpiQueryNearestColor(HPS hps, ULONG flOptions, LONG lRgbIn);
  549. LONG  APIENTRY GpiQueryColorIndex(HPS hps, ULONG flOptions, LONG lRgbColor);
  550. LONG  APIENTRY GpiQueryRGBColor(HPS hps, ULONG flOptions, LONG lColorIndex);
  551.  
  552. #endif /* no INCL_DDIDEFS */
  553.  
  554. #endif /* non-common GPILOGCOLORTABLE */
  555. #if (defined(INCL_GPIPRIMITIVES) || !defined(INCL_NOCOMMON))
  556.  
  557. /* default color table indices */
  558.  
  559. #define CLR_FALSE        (-5L)
  560. #define CLR_TRUE        (-4L)
  561.  
  562. #define CLR_ERROR        (-255L)
  563. #define CLR_DEFAULT        (-3L)
  564. #define CLR_WHITE        (-2L)
  565. #define CLR_BLACK        (-1L)
  566. #define CLR_BACKGROUND        0L
  567. #define CLR_BLUE        1L
  568. #define CLR_RED         2L
  569. #define CLR_PINK        3L
  570. #define CLR_GREEN        4L
  571. #define CLR_CYAN        5L
  572. #define CLR_YELLOW        6L
  573. #define CLR_NEUTRAL        7L
  574.  
  575. #define CLR_DARKGRAY        8L
  576. #define CLR_DARKBLUE        9L
  577. #define CLR_DARKRED        10L
  578. #define CLR_DARKPINK        11L
  579. #define CLR_DARKGREEN        12L
  580. #define CLR_DARKCYAN        13L
  581. #define CLR_BROWN        14L
  582. #define CLR_PALEGRAY        15L
  583.  
  584. /* rgb colors */
  585. #define RGB_ERROR        (-255L)
  586. #define RGB_BLACK        0x00000000L
  587. #define RGB_BLUE        0x000000FFL
  588. #define RGB_GREEN        0x0000FF00L
  589. #define RGB_CYAN        0x0000FFFFL
  590. #define RGB_RED         0x00FF0000L
  591. #define RGB_PINK        0x00FF00FFL
  592. #define RGB_YELLOW        0x00FFFF00L
  593. #define RGB_WHITE        0x00FFFFFFL
  594.  
  595. /* control flags used by GpiBeginArea */
  596. #define BA_NOBOUNDARY        0L
  597. #define BA_BOUNDARY        0x0001L
  598.  
  599.  
  600. #define BA_ALTERNATE        0L
  601. #define BA_WINDING        0x0002L
  602.  
  603.  
  604. /* fill options for GpiBox/GpiFullArc */
  605. #define DRO_FILL        1L
  606. #define DRO_OUTLINE        2L
  607. #define DRO_OUTLINEFILL     3L
  608.  
  609. /* basic pattern symbols */
  610. #define PATSYM_ERROR        (-1L)
  611. #define PATSYM_DEFAULT        0L
  612. #define PATSYM_DENSE1        1L
  613. #define PATSYM_DENSE2        2L
  614. #define PATSYM_DENSE3        3L
  615. #define PATSYM_DENSE4        4L
  616. #define PATSYM_DENSE5        5L
  617. #define PATSYM_DENSE6        6L
  618. #define PATSYM_DENSE7        7L
  619. #define PATSYM_DENSE8        8L
  620. #define PATSYM_VERT        9L
  621. #define PATSYM_HORIZ        10L
  622. #define PATSYM_DIAG1        11L
  623. #define PATSYM_DIAG2        12L
  624. #define PATSYM_DIAG3        13L
  625. #define PATSYM_DIAG4        14L
  626. #define PATSYM_NOSHADE        15L
  627. #define PATSYM_SOLID        16L
  628. #define PATSYM_BLANK        64L
  629. #ifndef INCL_SAADEFS
  630. #define PATSYM_HALFTONE     17L
  631. #endif /* no INCL_SAADEFS */
  632.  
  633. /* lcid values for GpiSet/QueryPattern and others */
  634. #define LCID_ERROR        (-1L)
  635. #define LCID_DEFAULT        0L
  636.  
  637. #ifndef INCL_DDIDEFS
  638.  
  639. /*** global primitive functions */
  640. BOOL APIENTRY GpiSetColor(HPS hps, LONG lColor);
  641. LONG APIENTRY GpiQueryColor(HPS hps);
  642.  
  643. /*** line primitive functions */
  644. LONG APIENTRY GpiBox(HPS hps, LONG lControl, PPOINTL pptlPoint,
  645.               LONG lHRound, LONG lVRound);
  646.  
  647. BOOL APIENTRY GpiMove(HPS hps, PPOINTL pptlPoint);
  648. LONG APIENTRY GpiLine(HPS hps, PPOINTL pptlEndPoint);
  649. LONG APIENTRY GpiPolyLine(HPS hps, LONG lCount, PPOINTL aptlPoints);
  650.  
  651. /*** area primitive functions */
  652. BOOL APIENTRY GpiSetPattern(HPS hps, LONG lPatternSymbol);
  653. LONG APIENTRY GpiQueryPattern(HPS hps);
  654. BOOL APIENTRY GpiBeginArea(HPS hps, ULONG flOptions);
  655. LONG APIENTRY GpiEndArea(HPS hps);
  656.  
  657. /*** character primitive functions */
  658. LONG APIENTRY GpiCharString(HPS hps, LONG lCount, PCH pchString);
  659. LONG APIENTRY GpiCharStringAt(HPS hps, PPOINTL pptlPoint
  660.                  , LONG lCount, PCH pchString);
  661.  
  662. #endif /* no INCL_DDIDEFS */
  663.  
  664. #endif /* common GPIPRIMTIVES */
  665. #if (defined(INCL_GPIPRIMITIVES) && !defined(INCL_GPIPRIMITIVES_INCLUDED))
  666. #define INCL_GPIPRIMITIVES_INCLUDED
  667.  
  668. /* mode for GpiSetAttrMode */
  669. #define AM_ERROR                      (-1L)
  670. #define AM_PRESERVE                     0L
  671. #define AM_NOPRESERVE                   1L
  672.  
  673. /* foreground mixes */
  674. #define FM_ERROR                      (-1L)
  675. #define FM_DEFAULT                      0L
  676. #define FM_OR                           1L
  677. #define FM_OVERPAINT                    2L
  678. #define FM_LEAVEALONE                   5L
  679.  
  680.  
  681. #define FM_XOR                          4L
  682. #define FM_AND                          6L
  683. #define FM_SUBTRACT                     7L
  684. #define FM_MASKSRCNOT                   8L
  685. #define FM_ZERO                         9L
  686. #define FM_NOTMERGESRC                 10L
  687. #define FM_NOTXORSRC                   11L
  688. #define FM_INVERT                      12L
  689. #define FM_MERGESRCNOT                 13L
  690. #define FM_NOTCOPYSRC                  14L
  691. #define FM_MERGENOTSRC                 15L
  692. #define FM_NOTMASKSRC                  16L
  693. #define FM_ONE                         17L
  694.  
  695.  
  696. /* background mixes */
  697. #define BM_ERROR                      (-1L)
  698. #define BM_DEFAULT                      0L
  699. #define BM_OVERPAINT                    2L
  700. #define BM_LEAVEALONE                   5L
  701.  
  702.  
  703. #define BM_OR                           1L
  704. #define BM_XOR                          4L
  705.  
  706.  
  707. /* basic line type styles */
  708. #define LINETYPE_ERROR                (-1L)
  709. #define LINETYPE_DEFAULT                0L
  710. #define LINETYPE_DOT                    1L
  711. #define LINETYPE_SHORTDASH              2L
  712. #define LINETYPE_DASHDOT                3L
  713. #define LINETYPE_DOUBLEDOT              4L
  714. #define LINETYPE_LONGDASH               5L
  715. #define LINETYPE_DASHDOUBLEDOT          6L
  716. #define LINETYPE_SOLID                  7L
  717. #define LINETYPE_INVISIBLE              8L
  718. #ifndef INCL_SAADEFS
  719. #define LINETYPE_ALTERNATE              9L
  720. #endif /* no INCL_SAADEFS */
  721.  
  722. /* cosmetic line widths */
  723. #define LINEWIDTH_ERROR               (-1L)
  724. #define LINEWIDTH_DEFAULT               0L
  725. #define LINEWIDTH_NORMAL       0x00010000L   /* MAKEFIXED(1,0) */
  726.  
  727. /* actual line widths */
  728. #define LINEWIDTHGEOM_ERROR           (-1L)
  729.  
  730. /* line end styles */
  731. #define LINEEND_ERROR                 (-1L)
  732. #define LINEEND_DEFAULT                 0L
  733. #define LINEEND_FLAT                    1L
  734. #define LINEEND_SQUARE                  2L
  735. #define LINEEND_ROUND                   3L
  736.  
  737. /* line join styles */
  738. #define LINEJOIN_ERROR                (-1L)
  739. #define LINEJOIN_DEFAULT                0L
  740. #define LINEJOIN_BEVEL                  1L
  741. #define LINEJOIN_ROUND                  2L
  742. #define LINEJOIN_MITRE                  3L
  743.  
  744. /* character directions */
  745. #define CHDIRN_ERROR                  (-1L)
  746. #define CHDIRN_DEFAULT                  0L
  747. #define CHDIRN_LEFTRIGHT                1L
  748. #define CHDIRN_TOPBOTTOM                2L
  749. #define CHDIRN_RIGHTLEFT                3L
  750. #define CHDIRN_BOTTOMTOP                4L
  751.  
  752. /* character modes */
  753. #define CM_ERROR                      (-1L)
  754. #define CM_DEFAULT                      0L
  755. #define CM_MODE1                        1L
  756. #define CM_MODE2                        2L
  757. #define CM_MODE3                        3L
  758.  
  759. /* basic marker symbols */
  760. #define MARKSYM_ERROR                 (-1L)
  761. #define MARKSYM_DEFAULT                 0L
  762. #define MARKSYM_CROSS                   1L
  763. #define MARKSYM_PLUS                    2L
  764. #define MARKSYM_DIAMOND                 3L
  765. #define MARKSYM_SQUARE                  4L
  766. #define MARKSYM_SIXPOINTSTAR            5L
  767. #define MARKSYM_EIGHTPOINTSTAR          6L
  768. #define MARKSYM_SOLIDDIAMOND            7L
  769. #define MARKSYM_SOLIDSQUARE             8L
  770. #define MARKSYM_DOT                     9L
  771. #define MARKSYM_SMALLCIRCLE            10L
  772. #define MARKSYM_BLANK                  64L
  773.  
  774. /* formatting options for GpiCharStringPosAt */
  775. #define CHS_OPAQUE                 0x0001L
  776. #define CHS_VECTOR                 0x0002L
  777. #define CHS_LEAVEPOS               0x0008L
  778. #define CHS_CLIP                   0x0010L
  779.  
  780. /* bundle codes for GpiSetAttributes and GpiQueryAttributes */
  781. #define PRIM_LINE                       1L
  782. #define PRIM_CHAR                       2L
  783. #define PRIM_MARKER                     3L
  784. #define PRIM_AREA                       4L
  785. #define PRIM_IMAGE                      5L
  786.  
  787. /* line bundle mask bits */
  788. #define LBB_COLOR                  0x0001L
  789. #define LBB_MIX_MODE               0x0004L
  790. #define LBB_WIDTH                  0x0010L
  791. #define LBB_GEOM_WIDTH             0x0020L
  792. #define LBB_TYPE                   0x0040L
  793. #define LBB_END                    0x0080L
  794. #define LBB_JOIN                   0x0100L
  795.  
  796. /* character bundle mask bits */
  797. #define CBB_COLOR                  0x0001L
  798. #define CBB_BACK_COLOR             0x0002L
  799. #define CBB_MIX_MODE               0x0004L
  800. #define CBB_BACK_MIX_MODE          0x0008L
  801. #define CBB_SET                    0x0010L
  802. #define CBB_MODE                   0x0020L
  803. #define CBB_BOX                    0x0040L
  804. #define CBB_ANGLE                  0x0080L
  805. #define CBB_SHEAR                  0x0100L
  806. #define CBB_DIRECTION              0x0200L
  807.  
  808. /* marker bundle mask bits */
  809. #define MBB_COLOR                  0x0001L
  810. #define MBB_BACK_COLOR             0x0002L
  811. #define MBB_MIX_MODE               0x0004L
  812. #define MBB_BACK_MIX_MODE          0x0008L
  813. #define MBB_SET                    0x0010L
  814. #define MBB_SYMBOL                 0x0020L
  815. #define MBB_BOX                    0x0040L
  816.  
  817. /* pattern bundle mask bits */
  818. #define ABB_COLOR                  0x0001L
  819. #define ABB_BACK_COLOR             0x0002L
  820. #define ABB_MIX_MODE               0x0004L
  821. #define ABB_BACK_MIX_MODE          0x0008L
  822. #define ABB_SET                    0x0010L
  823. #define ABB_SYMBOL                 0x0020L
  824. #define ABB_REF_POINT              0x0040L
  825.  
  826. /* image bundle mask bits */
  827. #define IBB_COLOR                  0x0001L
  828. #define IBB_BACK_COLOR             0x0002L
  829. #define IBB_MIX_MODE               0x0004L
  830. #define IBB_BACK_MIX_MODE          0x0008L
  831.  
  832. /* structure for GpiSetArcParams and GpiQueryArcParams */
  833. typedef struct _ARCPARAMS {    /* arcp */
  834.     LONG lP;
  835.     LONG lQ;
  836.     LONG lR;
  837.     LONG lS;
  838. } ARCPARAMS;
  839. typedef ARCPARAMS FAR *PARCPARAMS;
  840.  
  841. /* variation of SIZE used for FIXEDs */
  842. typedef struct _SIZEF {       /* sizfx */
  843.     FIXED cx;
  844.     FIXED cy;
  845. } SIZEF;
  846. typedef SIZEF FAR *PSIZEF;
  847.  
  848. /* structure for gradient parameters e.g. for GpiSetCharAngle */
  849. typedef struct _GRADIENTL {     /* gradl */
  850.     LONG x;
  851.     LONG y;
  852. } GRADIENTL;
  853. typedef GRADIENTL FAR *PGRADIENTL;
  854.  
  855. /* line bundle for GpiSetAttributes and GpiQueryAttributes */
  856. typedef struct _LINEBUNDLE {    /* lbnd */
  857.     LONG    lColor;
  858.     LONG    lReserved;
  859.     USHORT  usMixMode;
  860.     USHORT  usReserved;
  861.     FIXED   fxWidth;
  862.     LONG    lGeomWidth;
  863.     USHORT  usType;
  864.     USHORT  usEnd;
  865.     USHORT  usJoin;
  866. } LINEBUNDLE;
  867.  
  868. /* character bundle for GpiSetAttrs and GpiQueryAttrs */
  869. typedef struct _CHARBUNDLE {    /* cbnd */
  870.     LONG      lColor;
  871.     LONG      lBackColor;
  872.     USHORT    usMixMode;
  873.     USHORT    usBackMixMode;
  874.     USHORT    usSet;
  875.     USHORT    usPrecision;
  876.     SIZEF     sizfxCell;
  877.     POINTL    ptlAngle;
  878.     POINTL    ptlShear;
  879.     USHORT    usDirection;
  880. } CHARBUNDLE;
  881.  
  882. /* marker bundle for GpiSetAttributes and GpiQueryAttributes */
  883. typedef struct _MARKERBUNDLE {  /* mbnd */
  884.     LONG   lColor;
  885.     LONG   lBackColor;
  886.     USHORT usMixMode;
  887.     USHORT usBackMixMode;
  888.     USHORT usSet;
  889.     USHORT usSymbol;
  890.     SIZEF  sizfxCell;
  891. } MARKERBUNDLE;
  892.  
  893. /* pattern bundle for GpiSetAttributes and GpiQueryAttributes */
  894. typedef struct _AREABUNDLE { /* pbnd */
  895.     LONG   lColor;
  896.     LONG   lBackColor;
  897.     USHORT usMixMode;
  898.     USHORT usBackMixMode;
  899.     USHORT usSet;
  900.     USHORT usSymbol;
  901.     POINTL ptlRefPoint ;
  902. } AREABUNDLE;
  903.  
  904. /* image bundle for GpiSetAttributes and GpiQueryAttributes */
  905. typedef struct _IMAGEBUNDLE {   /* ibmd */
  906.     LONG   lColor;
  907.     LONG   lBackColor;
  908.     USHORT usMixMode;
  909.     USHORT usBackMixMode;
  910. } IMAGEBUNDLE;
  911.  
  912. /* pointer to any bundle used by GpiSet/QueryAttrs */
  913. typedef PVOID PBUNDLE;
  914.  
  915. /* array indices for GpiQueryTextBox */
  916. #define TXTBOX_TOPLEFT                  0L
  917. #define TXTBOX_BOTTOMLEFT               1L
  918. #define TXTBOX_TOPRIGHT                 2L
  919. #define TXTBOX_BOTTOMRIGHT              3L
  920. #define TXTBOX_CONCAT                   4L
  921. /* array count for GpiQueryTextBox */
  922. #define TXTBOX_COUNT                    5L
  923.  
  924. /* return codes for GpiPtVisible */
  925. #define PVIS_ERROR                      0L
  926. #define PVIS_INVISIBLE                  1L
  927. #define PVIS_VISIBLE                    2L
  928.  
  929. /* return codes for GpiRectVisible */
  930. #define RVIS_ERROR                      0L
  931. #define RVIS_INVISIBLE                  1L
  932. #define RVIS_PARTIAL                    2L
  933. #define RVIS_VISIBLE                    3L
  934.  
  935. #ifndef INCL_DDIDEFS
  936.  
  937. /*** attribute mode functions */
  938. BOOL  APIENTRY GpiSetAttrMode( HPS hps, LONG lMode );
  939. LONG  APIENTRY GpiQueryAttrMode( HPS hps );
  940. /*** bundle primitive functions */
  941. BOOL  APIENTRY GpiSetAttrs( HPS hps, LONG lPrimType, ULONG flAttrMask
  942.                           , ULONG flDefMask, PBUNDLE ppbunAttrs );
  943. #ifndef INCL_SAADEFS
  944.  
  945. LONG  APIENTRY GpiQueryAttrs( HPS hps, LONG lPrimType
  946.                             , ULONG flAttrMask, PBUNDLE ppbunAttrs );
  947.  
  948. #endif /* no INCL_SAADEFS */
  949.  
  950. /*** global primitive functions */
  951. BOOL  APIENTRY GpiSetBackColor( HPS hps, LONG lColor );
  952. LONG  APIENTRY GpiQueryBackColor( HPS hps );
  953. BOOL  APIENTRY GpiSetMix( HPS hps, LONG lMixMode );
  954. LONG  APIENTRY GpiQueryMix( HPS hps );
  955. BOOL  APIENTRY GpiSetBackMix( HPS hps, LONG lMixMode );
  956. LONG  APIENTRY GpiQueryBackMix( HPS hps );
  957.  
  958. /*** line primitive functions */
  959. BOOL  APIENTRY GpiSetLineType( HPS hps, LONG lLineType );
  960. LONG  APIENTRY GpiQueryLineType( HPS hps );
  961. BOOL  APIENTRY GpiSetLineWidth( HPS hps, FIXED fxLineWidth );
  962. FIXED APIENTRY GpiQueryLineWidth( HPS hps );
  963.  
  964. BOOL  APIENTRY GpiSetLineWidthGeom( HPS hps, LONG lLineWidth );
  965. LONG  APIENTRY GpiQueryLineWidthGeom( HPS hps );
  966. BOOL  APIENTRY GpiSetLineEnd( HPS hps, LONG lLineEnd );
  967. LONG  APIENTRY GpiQueryLineEnd( HPS hps );
  968. BOOL  APIENTRY GpiSetLineJoin( HPS hps, LONG lLineJoin );
  969. LONG  APIENTRY GpiQueryLineJoin( HPS hps );
  970.  
  971. BOOL  APIENTRY GpiSetCurrentPosition( HPS hps, PPOINTL pptlPoint );
  972. BOOL  APIENTRY GpiQueryCurrentPosition( HPS hps, PPOINTL pptlPoint );
  973.  
  974. /*** arc primitive functions */
  975. BOOL  APIENTRY GpiSetArcParams( HPS hps, PARCPARAMS parcpArcParams );
  976. BOOL  APIENTRY GpiQueryArcParams( HPS hps, PARCPARAMS parcpArcParams );
  977.  
  978. LONG  APIENTRY GpiPointArc( HPS hps, PPOINTL pptl2 );
  979.  
  980. LONG  APIENTRY GpiFullArc( HPS hps, LONG lControl, FIXED fxMultiplier );
  981. LONG  APIENTRY GpiPartialArc( HPS hps, PPOINTL pptlCenter, FIXED fxMultiplier
  982.                             , FIXED fxStartAngle, FIXED fxSweepAngle );
  983. LONG  APIENTRY GpiPolyFillet( HPS hps, LONG lCount, PPOINTL aptlPoints );
  984. LONG  APIENTRY GpiPolySpline( HPS hps, LONG lCount, PPOINTL aptlPoints );
  985. LONG  APIENTRY GpiPolyFilletSharp( HPS hps, LONG lCount, PPOINTL aptlPoints
  986.                                  , PFIXED afxPoints );
  987.  
  988. /*** area primitive functions */
  989. BOOL  APIENTRY GpiSetPatternSet( HPS hps, LONG lSet );
  990. LONG  APIENTRY GpiQueryPatternSet( HPS hps );
  991. BOOL  APIENTRY GpiSetPatternRefPoint( HPS hps, PPOINTL pptlRefPoint );
  992. BOOL  APIENTRY GpiQueryPatternRefPoint( HPS hps, PPOINTL pptlRefPoint );
  993.  
  994. /*** character primitive functions */
  995.  
  996. BOOL  APIENTRY GpiQueryCharStringPos( HPS hps, ULONG flOptions, LONG lCount
  997.                                     , PCH pchString, PLONG alXincrements
  998.                                     , PPOINTL aptlPositions );
  999. BOOL  APIENTRY GpiQueryCharStringPosAt( HPS hps, PPOINTL pptlStart
  1000.                                       , ULONG flOptions, LONG lCount
  1001.                                       , PCH pchString, PLONG alXincrements
  1002.                                       , PPOINTL aptlPositions );
  1003. BOOL  APIENTRY GpiQueryTextBox( HPS hps, LONG lCount1, PCH pchString
  1004.                               , LONG lCount2, PPOINTL aptlPoints );
  1005. BOOL  APIENTRY GpiQueryDefCharBox( HPS hps, PSIZEL psizlSize );
  1006. BOOL  APIENTRY GpiSetCharSet( HPS hps, LONG llcid );
  1007. LONG  APIENTRY GpiQueryCharSet( HPS hps );
  1008. BOOL  APIENTRY GpiSetCharBox( HPS hps, PSIZEF psizfxBox );
  1009. BOOL  APIENTRY GpiQueryCharBox( HPS hps, PSIZEF psizfxSize );
  1010. BOOL  APIENTRY GpiSetCharAngle( HPS hps, PGRADIENTL pgradlAngle );
  1011. BOOL  APIENTRY GpiQueryCharAngle( HPS hps, PGRADIENTL pgradlAngle );
  1012. BOOL  APIENTRY GpiSetCharShear( HPS hps, PPOINTL pptlAngle );
  1013. BOOL  APIENTRY GpiQueryCharShear( HPS hps, PPOINTL pptlShear );
  1014. BOOL  APIENTRY GpiSetCharDirection( HPS hps, LONG lDirection );
  1015. LONG  APIENTRY GpiQueryCharDirection( HPS hps );
  1016. BOOL  APIENTRY GpiSetCharMode( HPS hps, LONG lMode );
  1017. LONG  APIENTRY GpiQueryCharMode( HPS hps );
  1018.  
  1019. LONG  APIENTRY GpiCharStringPos( HPS hps, PRECTL prclRect, ULONG flOptions
  1020.                                , LONG lCount, PCH pchString, PLONG alAdx );
  1021. LONG  APIENTRY GpiCharStringPosAt( HPS hps, PPOINTL pptlStart, PRECTL prclRect
  1022.                                  , ULONG flOptions, LONG lCount, PCH pchString
  1023.                                  , PLONG alAdx );
  1024.  
  1025. /*** marker primitive functions  */
  1026. LONG  APIENTRY GpiMarker( HPS hps, PPOINTL pptlPoint );
  1027. LONG  APIENTRY GpiPolyMarker( HPS hps, LONG lCount, PPOINTL aptlPoints );
  1028. BOOL  APIENTRY GpiSetMarker( HPS hps, LONG lSymbol );
  1029. BOOL  APIENTRY GpiSetMarkerBox( HPS hps, PSIZEF psizfxSize );
  1030. BOOL  APIENTRY GpiSetMarkerSet( HPS hps, LONG lSet );
  1031. LONG  APIENTRY GpiQueryMarker( HPS hps );
  1032. BOOL  APIENTRY GpiQueryMarkerBox( HPS hps, PSIZEF psizfxSize );
  1033. LONG  APIENTRY GpiQueryMarkerSet( HPS hps );
  1034.  
  1035. /*** image primitive functions */
  1036. LONG  APIENTRY GpiImage( HPS hps, LONG lFormat, PSIZEL psizlImageSize
  1037.                        , LONG lLength, PBYTE pbData );
  1038.  
  1039. /*** miscellaneous primitive functions */
  1040. BOOL  APIENTRY GpiPop( HPS hps, LONG lCount );
  1041. LONG  APIENTRY GpiPtVisible( HPS hps, PPOINTL pptlPoint );
  1042. LONG  APIENTRY GpiRectVisible( HPS hps, PRECTL prclRectangle );
  1043. BOOL  APIENTRY GpiComment( HPS hps, LONG lLength, PBYTE pbData );
  1044.  
  1045. #endif /* no INCL_DDIDEFS */
  1046.  
  1047. #endif /* non-common GPIPRIMITIVES */
  1048. #if (defined(INCL_GPILCIDS) && !defined(INCL_GPILCIDS_INCLUDED))
  1049. #define INCL_GPILCIDS_INCLUDED
  1050.  
  1051. /* return codes from GpiCreateLogFont */
  1052. #define FONT_DEFAULT                    1L
  1053. #define FONT_MATCH                      2L
  1054.  
  1055. /* lcid type for GpiQuerySetIds */
  1056. #define LCIDT_FONT                      6L
  1057.  
  1058. #define LCIDT_BITMAP                    7L
  1059.  
  1060. /* constant used to delete all lcids by GpiDeleteSetId */
  1061. #define LCID_ALL                      (-1L)
  1062.  
  1063. /* kerning data returned by GpiQueryKerningPairs */
  1064. typedef struct _KERNINGPAIRS {  /* krnpr */
  1065.     SHORT sFirstChar;
  1066.     SHORT sSecondChar;
  1067.     SHORT sKerningAmount;
  1068. } KERNINGPAIRS;
  1069. typedef KERNINGPAIRS FAR *PKERNINGPAIRS;
  1070.  
  1071. /* options for GpiQueryFonts */
  1072. #define QF_PUBLIC                  0x0001L
  1073. #define QF_PRIVATE                 0x0002L
  1074.  
  1075. #ifndef INCL_SAADEFS
  1076.  
  1077. /* font file descriptions for GpiQueryFontFileDescriptions */
  1078. typedef CHAR FFDESCS[2][FACESIZE]; /* ffdescs */
  1079. typedef FFDESCS FAR *PFFDESCS;
  1080.  
  1081. #endif /* no INCL_SAADEFS */
  1082.  
  1083. #ifndef INCL_DDIDEFS
  1084.  
  1085. /*** physical and logical font functions */
  1086. LONG  APIENTRY GpiCreateLogFont( HPS hps, PSTR8 pName, LONG lLcid
  1087.                                , PFATTRS pfatAttrs );
  1088. BOOL  APIENTRY GpiDeleteSetId( HPS hps, LONG lLcid );
  1089. BOOL  APIENTRY GpiLoadFonts( HAB hab, PSZ pszFilename );
  1090. BOOL  APIENTRY GpiUnloadFonts( HAB hab, PSZ pszFilename );
  1091. LONG  APIENTRY GpiQueryFonts( HPS hps, ULONG flOptions, PSZ pszFacename
  1092.                             , PLONG plReqFonts, LONG lMetricsLength
  1093.                             , PFONTMETRICS afmMetrics );
  1094. BOOL  APIENTRY GpiQueryFontMetrics( HPS hps, LONG lMetricsLength
  1095.                                   , PFONTMETRICS pfmMetrics );
  1096. LONG  APIENTRY GpiQueryKerningPairs( HPS hps, LONG lCount
  1097.                                    , PKERNINGPAIRS akrnprData );
  1098. BOOL  APIENTRY GpiQueryWidthTable( HPS hps, LONG lFirstChar, LONG lCount
  1099.                                  , PLONG alData );
  1100. LONG  APIENTRY GpiQueryNumberSetIds( HPS hps );
  1101. BOOL  APIENTRY GpiQuerySetIds( HPS hps, LONG lCount, PLONG alTypes
  1102.                              , PSTR8 aNames, PLONG allcids );
  1103.  
  1104. #ifndef INCL_SAADEFS
  1105. BOOL    APIENTRY GpiSetCp( HPS hps, USHORT usCodePage );
  1106. USHORT  APIENTRY GpiQueryCp( HPS hps );
  1107. LONG    APIENTRY GpiQueryFontFileDescriptions( HAB hab, PSZ pszFilename
  1108.                                              , PLONG plCount
  1109.                                              , PFFDESCS affdescsNames );
  1110. #endif /* no INCL_SAADEFS */
  1111.  
  1112. #endif /* no INCL_DDIDEFS */
  1113.  
  1114. #endif /* non-common GPILCIDS */
  1115. #if (defined(INCL_GPIBITMAPS) || !defined(INCL_NOCOMMON))
  1116.  
  1117. /* rastor operations defined for GpiBitBlt */
  1118. #define ROP_SRCCOPY                0x00CCL
  1119. #define ROP_SRCPAINT               0x00EEL
  1120. #define ROP_SRCAND                 0x0088L
  1121. #define ROP_SRCINVERT              0x0066L
  1122. #define ROP_SRCERASE               0x0044L
  1123. #define ROP_NOTSRCCOPY             0x0033L
  1124. #define ROP_NOTSRCERASE            0x0011L
  1125. #define ROP_MERGECOPY              0x00C0L
  1126. #define ROP_MERGEPAINT             0x00BBL
  1127. #define ROP_PATCOPY                0x00F0L
  1128. #define ROP_PATPAINT               0x00FBL
  1129. #define ROP_PATINVERT              0x005AL
  1130. #define ROP_DSTINVERT              0x0055L
  1131. #define ROP_ZERO                   0x0000L
  1132. #define ROP_ONE                    0x00FFL
  1133.  
  1134. /* Blt options for GpiBitBlt */
  1135. #define BBO_OR                          0L
  1136. #define BBO_AND                         1L
  1137. #define BBO_IGNORE                      2L
  1138.  
  1139. /* error return for GpiSetBitmap */
  1140. #define HBM_ERROR            ((HBITMAP)-1L)
  1141.  
  1142. #ifndef INCL_DDIDEFS
  1143.  
  1144. /*** bitmap and pel functions */
  1145. LONG     APIENTRY GpiBitBlt( HPS hpsTarget, HPS hpsSource, LONG lCount
  1146.                            , PPOINTL aptlPoints, LONG lRop, ULONG flOptions );
  1147. BOOL     APIENTRY GpiDeleteBitmap( HBITMAP hbm );
  1148. HBITMAP  APIENTRY GpiLoadBitmap( HPS hps, HMODULE Resource, USHORT idBitmap
  1149.                                , LONG lWidth, LONG lHeight );
  1150. HBITMAP  APIENTRY GpiSetBitmap(HPS hps, HBITMAP hbm );
  1151. LONG     APIENTRY GpiWCBitBlt( HPS hpsTarget, HBITMAP hbmSource, LONG lCount
  1152.                              , PPOINTL aptlPoints, LONG lRop, ULONG flOptions );
  1153.  
  1154.  
  1155. #endif /* no INCL_DDIDEFS */
  1156.  
  1157. #endif /* common GPIBITMAPS */
  1158. #if (defined(INCL_GPIBITMAPS) && !defined(INCL_GPIBITMAPS_INCLUDED))
  1159. #define INCL_GPIBITMAPS_INCLUDED
  1160.  
  1161. /* usage flags for GpiCreateBitmap */
  1162. #define CBM_INIT        0x0004L
  1163.  
  1164. /* bitmap parameterization used by GpiCreateBitmap and others */
  1165. typedef struct _BITMAPINFOHEADER {      /* bmp */
  1166.     ULONG  cbFix;
  1167.     USHORT cx;
  1168.     USHORT cy;
  1169.     USHORT cPlanes;
  1170.     USHORT cBitCount;
  1171. } BITMAPINFOHEADER;
  1172. typedef BITMAPINFOHEADER FAR *PBITMAPINFOHEADER;
  1173.  
  1174. /* RGB data for _BITMAPINFO struct */
  1175. typedef struct _RGB {           /* rgb */
  1176.     BYTE bBlue;
  1177.     BYTE bGreen;
  1178.     BYTE bRed;
  1179. } RGB;
  1180.  
  1181. /* bitmap data used by GpiSetBitmapBits and others */
  1182. typedef struct _BITMAPINFO {    /* bmi */
  1183.     ULONG  cbFix;
  1184.     USHORT cx;
  1185.     USHORT cy;
  1186.     USHORT cPlanes;
  1187.     USHORT cBitCount;
  1188.     RGB    argbColor[1];
  1189. } BITMAPINFO;
  1190. typedef BITMAPINFO FAR *PBITMAPINFO;
  1191.  
  1192. /* error return code for GpiSet/QueryBitmapBits */
  1193. #define BMB_ERROR                     (-1L)
  1194.  
  1195. #ifndef INCL_DDIDEFS
  1196.  
  1197. /*** bitmap and pel functions */
  1198. HBITMAP APIENTRY GpiCreateBitmap( HPS hps, PBITMAPINFOHEADER pbmpNew
  1199.                                 , ULONG flOptions, PBYTE pbInitData
  1200.                                 , PBITMAPINFO pbmiInfoTable );
  1201. LONG    APIENTRY GpiSetBitmapBits( HPS hps, LONG lScanStart, LONG lScans
  1202.                                  , PBYTE pbBuffer, PBITMAPINFO pbmiInfoTable );
  1203. BOOL    APIENTRY GpiSetBitmapDimension( HBITMAP hbm, PSIZEL psizlBitmapDimension );
  1204. BOOL    APIENTRY GpiSetBitmapId( HPS hps, HBITMAP hbm, LONG lLcid );
  1205. LONG    APIENTRY GpiQueryBitmapBits( HPS hps, LONG lScanStart, LONG lScans
  1206.                                    , PBYTE pbBuffer, PBITMAPINFO pbmiInfoTable );
  1207. BOOL    APIENTRY GpiQueryBitmapDimension( HBITMAP hbm, PSIZEL psizlBitmapDimension );
  1208. HBITMAP APIENTRY GpiQueryBitmapHandle( HPS hps, LONG lLcid );
  1209. BOOL    APIENTRY GpiQueryBitmapParameters( HBITMAP hbm
  1210.                                          , PBITMAPINFOHEADER pbmpData );
  1211. BOOL    APIENTRY GpiQueryDeviceBitmapFormats( HPS hps, LONG lCount
  1212.                                             , PLONG alArray );
  1213.  
  1214. LONG    APIENTRY GpiSetPel( HPS hps, PPOINTL pptlPoint );
  1215. LONG    APIENTRY GpiQueryPel( HPS hps, PPOINTL pptlPoint );
  1216.  
  1217. #endif /* no INCL_DDIDEFS */
  1218.  
  1219. #endif /* non-common GPIBITMAPS */
  1220. #if (defined(INCL_GPIREGIONS) && !defined(INCL_GPIREGIONS_INCLUDED))
  1221. #define INCL_GPIREGIONS_INCLUDED
  1222.  
  1223. /* options for GpiCombineRegion */
  1224. #define CRGN_OR                         1L
  1225. #define CRGN_COPY                       2L
  1226. #define CRGN_XOR                        4L
  1227. #define CRGN_AND                        6L
  1228. #define CRGN_DIFF                       7L
  1229.  
  1230. /* usDirection of returned region data for GpiQueryRegionRects */
  1231. #define RECTDIR_LFRT_TOPBOT             1L
  1232. #define RECTDIR_RTLF_TOPBOT             2L
  1233. #define RECTDIR_LFRT_BOTTOP             3L
  1234. #define RECTDIR_RTLF_BOTTOP             4L
  1235.  
  1236. /* control data for GpiQueryRegionRects */
  1237. typedef struct _RGNRECT {       /* rgnrc */
  1238.     USHORT ircStart;
  1239.     USHORT crc;
  1240.     USHORT crcReturned;
  1241.     USHORT usDirection;
  1242. } RGNRECT;
  1243. typedef RGNRECT FAR *PRGNRECT;
  1244.  
  1245. /* return code to indicate type of region for GpiCombineRegion and others */
  1246. #define RGN_ERROR                       0L
  1247. #define RGN_NULL                        1L
  1248. #define RGN_RECT                        2L
  1249. #define RGN_COMPLEX                     3L
  1250.  
  1251. /* return codes for GpiPtInRegion */
  1252. #define PRGN_ERROR                      0L
  1253. #define PRGN_OUTSIDE                    1L
  1254. #define PRGN_INSIDE                     2L
  1255.  
  1256. /* return codes for GpiRectInRegion */
  1257. #define RRGN_ERROR                      0L
  1258. #define RRGN_OUTSIDE                    1L
  1259. #define RRGN_PARTIAL                    2L
  1260. #define RRGN_INSIDE                     3L
  1261.  
  1262. /* return codes for GpiEqualRegion */
  1263. #define EQRGN_ERROR                     0L
  1264. #define EQRGN_NOTEQUAL                  1L
  1265. #define EQRGN_EQUAL                     2L
  1266.  
  1267. /* error return code for GpiSetRegion */
  1268. #define HRGN_ERROR              ((HRGN)-1L)
  1269.  
  1270. #ifndef INCL_DDIDEFS
  1271.  
  1272. /*** main region functions */
  1273. LONG  APIENTRY GpiCombineRegion( HPS hps, HRGN hrgnDest, HRGN hrgnSrc1
  1274.                                , HRGN hrgnSrc2, LONG lMode );
  1275. HRGN  APIENTRY GpiCreateRegion( HPS hps, LONG lCount, PRECTL arclRectangles );
  1276. BOOL  APIENTRY GpiDestroyRegion( HPS hps, HRGN hrgn );
  1277. LONG  APIENTRY GpiEqualRegion( HPS hps, HRGN hrgnSrc1, HRGN hrgnSrc2 );
  1278. BOOL  APIENTRY GpiOffsetRegion( HPS hps, HRGN Hrgn, PPOINTL pptlOffset );
  1279. LONG  APIENTRY GpiPaintRegion( HPS hps, HRGN hrgn );
  1280. LONG  APIENTRY GpiPtInRegion( HPS hps, HRGN hrgn, PPOINTL pptlPoint );
  1281. LONG  APIENTRY GpiQueryRegionBox( HPS hps, HRGN hrgn, PRECTL prclBound );
  1282. BOOL  APIENTRY GpiQueryRegionRects( HPS hps, HRGN hrgn, PRECTL prclBound
  1283.                                   , PRGNRECT prgnrcControl, PRECTL prclRect );
  1284. LONG  APIENTRY GpiRectInRegion( HPS hps, HRGN hrgn, PRECTL prclRect );
  1285. BOOL  APIENTRY GpiSetRegion( HPS hps, HRGN hrgn, LONG lcount
  1286.                            , PRECTL arclRectangles );
  1287.  
  1288. /*** clip region functions */
  1289. LONG  APIENTRY GpiSetClipRegion( HPS hps, HRGN hrgn, PHRGN phrgnOld );
  1290.  
  1291. #ifndef INCL_SAADEFS
  1292.  
  1293. HRGN  APIENTRY GpiQueryClipRegion( HPS hps );
  1294. LONG  APIENTRY GpiQueryClipBox( HPS hps, PRECTL prclBound );
  1295.  
  1296. #endif /* no INCL_SAADEFS */
  1297.  
  1298. LONG  APIENTRY GpiExcludeClipRectangle( HPS hps, PRECTL prclRectangle );
  1299. LONG  APIENTRY GpiIntersectClipRectangle( HPS hps, PRECTL prclRectangle );
  1300.  
  1301. #ifndef INCL_SAADEFS
  1302.  
  1303. LONG  APIENTRY GpiOffsetClipRegion( HPS hps, PPOINTL pptlPoint );
  1304.  
  1305. #endif /* no INCL_SAADEFS */
  1306.  
  1307. #endif /* no INCL_DDIDEFS */
  1308.  
  1309. #endif /* non-common GPIREGIONS */
  1310. #if (defined(INCL_GPIMETAFILES) && !defined(INCL_GPIMETAFILES_INCLUDED))
  1311. #define INCL_GPIMETAFILES_INCLUDED
  1312.  
  1313. #ifndef INCL_DDIDEFS
  1314.  
  1315. /* constants for index values of options array for GpiPlayMetafile */
  1316. #define PMF_SEGBASE                     0
  1317. #define PMF_LOADTYPE                    1
  1318. #define PMF_RESOLVE                     2
  1319. #define PMF_LCIDS                       3
  1320. #define PMF_RESET                       4
  1321. #define PMF_SUPPRESS                    5
  1322. #define PMF_COLORTABLES                 6
  1323. #define PMF_COLORREALIZABLE             7
  1324. #define PMF_DEFAULTS                    8
  1325.  
  1326. /* options for GpiPlayMetafile */
  1327. #define RS_DEFAULT                      0L
  1328. #define RS_NODISCARD                    1L
  1329. #define LC_DEFAULT                      0L
  1330. #define LC_NOLOAD                       1L
  1331. #define LC_LOADDISC                     3L
  1332. #define LT_DEFAULT                      0L
  1333. #define LT_NOMODIFY                     1L
  1334. #define LT_ORIGINALVIEW                 4L
  1335. #define RES_DEFAULT                     0L
  1336. #define RES_NORESET                     1L
  1337. #define RES_RESET                       2L
  1338. #define SUP_DEFAULT                     0L
  1339. #define SUP_NOSUPPRESS                  1L
  1340. #define SUP_SUPPRESS                    2L
  1341. #define CTAB_DEFAULT                    0L
  1342. #define CTAB_NOMODIFY                   1L
  1343. #define CTAB_REPLACE                    3L
  1344. #define CREA_DEFAULT                    0L
  1345. #define CREA_REALIZE                    1L
  1346. #define CREA_NOREALIZE                  2L
  1347.  
  1348. #ifndef INCL_SAADEFS
  1349.  
  1350. #define DDEF_DEFAULT                    0L
  1351. #define DDEF_IGNORE                     1L
  1352. #define DDEF_LOADDISC                   3L
  1353. #define RSP_DEFAULT                     0L
  1354. #define RSP_NODISCARD                   1L
  1355.  
  1356. #endif /* no INCL_SAADEFS */
  1357.  
  1358. /*** metafile functions */
  1359. HMF   APIENTRY GpiCopyMetaFile( HMF hmf );
  1360. BOOL  APIENTRY GpiDeleteMetaFile( HMF hmf );
  1361. HMF   APIENTRY GpiLoadMetaFile( HAB hab, PSZ pszFilename );
  1362. LONG  APIENTRY GpiPlayMetaFile( HPS hps, HMF hmf, LONG lCount1
  1363.                               , PLONG alOptarray, PLONG plSegCount
  1364.                               , LONG lCount2, PSZ pszDesc );
  1365. BOOL  APIENTRY GpiQueryMetaFileBits( HMF hmf, LONG lOffset, LONG lLength
  1366.                                    , PBYTE pbData );
  1367. LONG  APIENTRY GpiQueryMetaFileLength( HMF hmf );
  1368. BOOL  APIENTRY GpiSaveMetaFile( HMF hmf, PSZ pszFilename );
  1369.  
  1370.  
  1371. #ifndef INCL_SAADEFS
  1372.  
  1373. BOOL  APIENTRY GpiSetMetaFileBits( HMF hmf, LONG lOffset, LONG lLength
  1374.                                  , PBYTE pbBuffer );
  1375.  
  1376. #endif /* no INCL_SAADEFS */
  1377.  
  1378. #endif /* no INCL_DDIDEFS */
  1379.  
  1380. #endif /* non-common GPIMETAFILES */
  1381.  
  1382. #if (defined(INCL_GPIDEFAULTS) && !defined(INCL_GPIDEFAULTS_INCLUDED))
  1383. #define INCL_GPIDEFAULTS_INCLUDED
  1384.  
  1385. /*** default functions */
  1386. BOOL  APIENTRY GpiQueryDefArcParams( HPS hps, PARCPARAMS parcpArcParams );
  1387. BOOL  APIENTRY GpiQueryDefAttrs( HPS hps, LONG lPrimType, ULONG flAttrMask
  1388.                                , PBUNDLE ppbunAttrs );
  1389. BOOL  APIENTRY GpiQueryDefTag( HPS hps, PLONG plTag );
  1390. BOOL  APIENTRY GpiQueryDefViewingLimits( HPS hps, PRECTL prclLimits );
  1391.  
  1392. BOOL  APIENTRY GpiSetDefArcParams( HPS hps, PARCPARAMS parcpArcParams );
  1393. BOOL  APIENTRY GpiSetDefAttrs( HPS hps, LONG lPrimType, ULONG flAttrMask
  1394.                              , PBUNDLE ppbunAttrs );
  1395. BOOL  APIENTRY GpiSetDefTag( HPS hps, LONG lTag );
  1396. BOOL  APIENTRY GpiSetDefViewingLimits( HPS hps, PRECTL prclLimits );
  1397.  
  1398.  
  1399. #endif /* GPIDEFAULTS */
  1400.  
  1401. #if (defined(INCL_GPIERRORS) && !defined(INCL_GPIERRORS_INCLUDED))
  1402. #define INCL_GPIERRORS_INCLUDED
  1403.  
  1404. #include <pmerr.h>
  1405.  
  1406. #endif /* non-common GPIERRORS */
  1407.