home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / bpos2i.zip / PMGPI.PAS < prev    next >
Pascal/Delphi Source File  |  1994-05-31  |  185KB  |  5,143 lines

  1. (* ====================================================== *)
  2. (*                      PMGPI.PAS                         *)
  3. (*      Implementation of the functions of PMGPI.DLL      *)
  4. (* Functions not (yet) implemented are commented in the   *)
  5. (*           implementation part of the unit.             *)
  6. (*         Translation to Pascal by jb/toolbox mag        *)
  7. (* ====================================================== *)
  8. {$IFNDEF OS2}
  9.   Error: Wrong target/Compiler not patched
  10. {$ENDIF}
  11.  
  12. UNIT PMGpi;
  13.  
  14. INTERFACE
  15.  
  16. USES Os2Def;
  17.  
  18. (* General GPI return values *)
  19. CONST
  20.   GPI_ERROR    = 0;
  21.   GPI_OK       = 1;
  22.   GPI_ALTERROR = -1;
  23.  
  24. (* fixed point number - implicit binary point between 2 and 3 hex digits *)
  25. TYPE
  26.   Fixed   = LongInt;  (* fx *)
  27.   pFixed  = ^Fixed;
  28.  
  29. (* fixed point number - implicit binary point between 1st and 2nd hex digits *)
  30.   Fixed88 = WORD;  (* fx88 *)
  31.  
  32. (* fixed point signed number - implicit binary point between bits 14 and 13. *)
  33. (*                             Bit 15 is the sign bit.                       *)
  34. (*                             Thus 1.0 is represented by 16384 (0x4000)     *)
  35. (*                             and -1.0 is represented by -16384 (0xc000)    *)
  36.   Fixed114 = WORD; (* fx114 *)
  37.  
  38. (* make FIXED number from SHORT integer part and USHORT fractional part *)
  39.  
  40.   FUNCTION MakeFixed(IntPart: INTEGER; FractPart: WORD) : Fixed;
  41.  
  42. (* extract fractional part from a fixed quantity *)
  43.  
  44.   FUNCTION FixedFrac(fx: Fixed): WORD;
  45.  
  46. (* extract integer part from a fixed quantity *)
  47.  
  48.   FUNCTION FixedInt(fx: Fixed): INTEGER;
  49.  
  50. (* structure for size parameters e.g. for GpiCreatePS *)
  51. TYPE
  52.   SizeL = RECORD          (* sizl *)
  53.     cx : LongInt;
  54.     cy : LongInt;
  55.   END;
  56.   pSizeL = ^SizeL;
  57.  
  58. (* return code on GpiQueryLogColorTable,GpiQueryRealColors and GpiQueryPel *)
  59. CONST
  60.   CLR_NOINDEX              =  -254;
  61.  
  62. (* units for GpiCreatePS and others *)
  63.   PU_ARBITRARY             = $00004;
  64.   PU_PELS                  = $00008;
  65.   PU_LOMETRIC              = $0000C;
  66.   PU_HIMETRIC              = $00010;
  67.   PU_LOENGLISH             = $00014;
  68.   PU_HIENGLISH             = $00018;
  69.   PU_TWIPS                 = $0001C;
  70.  
  71. (* format for GpiCreatePS *)
  72.   GPIF_DEFAULT             = 0;
  73.   GPIF_SHORT               = $00100;
  74.   GPIF_LONG                = $00200;
  75.  
  76. (* PS type for GpiCreatePS *)
  77.   GPIT_NORMAL              = 0;
  78.   GPIT_MICRO               = $01000;
  79.  
  80. (* implicit associate flag for GpiCreatePS *)
  81.   GPIA_NOASSOC             = 0;
  82.   GPIA_ASSOC               = $04000;
  83.  
  84. (* return error for GpiQueryDevice *)
  85.   HDC_ERROR                = -1;
  86.  
  87. (*** common GPICONTROL functions *)
  88.  
  89.   FUNCTION GpiCreatePS(    ahab       : HAB;
  90.                            ahdc       : hDC;
  91.                        VAR pSizeLSize : { LONG } SizeL;
  92.                            u1         : LongInt) : hPs;
  93.   FUNCTION Gpi16CreatePS(    ahab       : HAB;
  94.                              ahdc       : hDC;
  95.                          VAR pSizeLSize : { LONG } SizeL;
  96.                              u1         : LongInt) : hPs;
  97.  
  98.   FUNCTION GpiDestroyPS(  ahps : hPs) : BOOLEAN;
  99.   FUNCTION Gpi16DestroyPS(ahps : hPs) : BOOLEAN;
  100.  
  101.   FUNCTION GpiAssociate  (ahps : hPs; ahdc : hDC) : BOOLEAN;
  102.   FUNCTION Gpi16Associate(ahps : hPs; ahdc : hDC) : BOOLEAN;
  103.  
  104.   FUNCTION GpiRestorePS  (ahps : hPs; l : LongInt) : BOOLEAN;
  105.   FUNCTION Gpi16RestorePS(ahps : hPs; l : LongInt) : BOOLEAN;
  106.  
  107.   FUNCTION GpiSavePS  (ahps : hPs) : LongInt;
  108.   FUNCTION Gpi16SavePS(ahps : hPs) : LongInt;
  109.  
  110.   FUNCTION GpiErase  (ahps : hPs) : BOOLEAN;
  111.   FUNCTION Gpi16Erase(ahps : hPs) : BOOLEAN;
  112.  
  113.   FUNCTION GpiQueryDevice  (ahps : hPs) : hDC;
  114.   FUNCTION Gpi16QueryDevice(ahps : hPs) : hDC;
  115.  
  116. (* options for GpiResetPS *)
  117. CONST
  118.   GRES_ATTRS               = $00001;
  119.   GRES_SEGMENTS            = $00002;
  120.   GRES_ALL                 = $00004;
  121.  
  122. (* option masks for PS options used by GpiQueryPs *)
  123.   PS_UNITS                 = $000FC;
  124.   PS_FORMAT                = $00F00;
  125.   PS_TYPE                  = $01000;
  126.   PS_MODE                  = $02000;
  127.   PS_ASSOCIATE             = $04000;
  128.   PS_NORESET               = $08000;
  129.  
  130. (* error context returned by GpiErrorSegmentData *)
  131.   GPIE_SEGMENT             = 0;
  132.   GPIE_ELEMENT             = 1;
  133.   GPIE_DATA                = 2;
  134.  
  135. (* control parameter for GpiSetDrawControl *)
  136.   DCTL_ERASE               = 1;
  137.   DCTL_DISPLAY             = 2;
  138.   DCTL_BOUNDARY            = 3;
  139.   DCTL_DYNAMIC             = 4;
  140.   DCTL_CORRELATE           = 5;
  141.  
  142. (* constants for GpiSet/QueryDrawControl *)
  143.   DCTL_ERROR = -1;
  144.   DCTL_OFF =    0;
  145.   DCTL_ON =     1;
  146.  
  147. (* constants for GpiSet/QueryStopDraw *)
  148.   SDW_ERROR = -1;
  149.   SDW_OFF =    0;
  150.   SDW_ON =     1;
  151.  
  152. (* drawing for GpiSet/QueryDrawingMode *)
  153.   DM_ERROR =         0;
  154.   DM_DRAW =          1;
  155.   DM_RETAIN =        2;
  156.   DM_DRAWANDRETAIN = 3;
  157.  
  158. (*** other GPICONTROL functions *)
  159.  
  160.   FUNCTION GpiResetPS(ahps : hPs; u : LongInt) : BOOLEAN;
  161.   FUNCTION Gpi16ResetPS(ahps : hPs; u : LongInt) : BOOLEAN;
  162.  
  163.   FUNCTION GpiSetPS(      ahps : hPs;
  164.                       VAR P    : { LONG } SizeL;
  165.                           u    : LongInt) : BOOLEAN;
  166.   FUNCTION Gpi16SetPS(    ahps : hPs;
  167.                       VAR P    : { LONG } SizeL;
  168.                           u    : LongInt) : BOOLEAN;
  169.  
  170.   FUNCTION GpiQueryPS(      ahps : hPs;
  171.                         VAR P    : { LONG } SizeL) : LongInt;
  172.   FUNCTION Gpi16QueryPS(    ahps : hPs;
  173.                       VAR P    : { LONG } SizeL) : LongInt;
  174.  
  175.   FUNCTION GpiErrorSegmentData(    ahps : hPs;
  176.                                VAR l    : { LONG } LongInt;
  177.                                VAR l2   : { LONG } LongInt) : LongInt;
  178.   FUNCTION Gpi16ErrorSegmentData(    ahps : hPs;
  179.                                  VAR l    : { LONG } LongInt;
  180.                                  VAR l2   : { LONG } LongInt) : LongInt;
  181.  
  182.   FUNCTION GpiQueryDrawControl(  ahps : hPs; l : LongInt) : LongInt;
  183.   FUNCTION Gpi16QueryDrawControl(ahps : hPs; l : LongInt) : LongInt;
  184.  
  185.   FUNCTION GpiSetDrawControl(  ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  186.   FUNCTION Gpi16SetDrawControl(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  187.  
  188.   FUNCTION GpiQueryDrawingMode(  ahps : hPs) : LongInt;
  189.   FUNCTION Gpi16QueryDrawingMode(ahps : hPs) : LongInt;
  190.  
  191.   FUNCTION GpiSetDrawingMode(  ahps : hPs; l : LongInt) : BOOLEAN;
  192.   FUNCTION Gpi16SetDrawingMode(ahps : hPs; l : LongInt) : BOOLEAN;
  193.  
  194.   FUNCTION GpiQueryStopDraw(ahps : hPs) : LongInt;
  195.   FUNCTION Gpi16QueryStopDraw(ahps : hPs) : LongInt;
  196.  
  197.   FUNCTION GpiSetStopDraw(ahps : hPs; l : LongInt) : BOOLEAN;
  198.   FUNCTION Gpi16SetStopDraw(ahps : hPs; l : LongInt) : BOOLEAN;
  199.  
  200. (* options for GpiSetPickApertureSize *)
  201. CONST
  202.   PICKAP_DEFAULT =          0;
  203.   PICKAP_REC =              2;
  204.  
  205. (* type of correlation for GpiCorrelateChain *)
  206.   PICKSEL_VISIBLE =         0;
  207.   PICKSEL_ALL =             1;
  208.  
  209. (* return code to indicate correlate hit(s) *)
  210.   GPI_HITS =    2;
  211.  
  212. (*** picking,  correlation and boundary functions *)
  213.  
  214.   FUNCTION GpiCorrelateChain(    ahps   : hPs;
  215.                                  l1     : LongInt;
  216.                                  PointL : { LONG } PointL;
  217.                                  l2     : LongInt;
  218.                                  l6     : LongInt;
  219.                              VAR l7     : { LONG } LongInt) : LongInt;
  220.   FUNCTION Gpi16CorrelateChain(  ahps   : hPs;
  221.                                  l1     : LongInt;
  222.                                  PointL : { LONG } PointL;
  223.                                  l2     : LongInt;
  224.                                  l6     : LongInt;
  225.                              VAR l7     : { LONG } LongInt) : LongInt;
  226.  
  227.   FUNCTION GpiQueryTag(  ahps : hPs; VAR l2 : { LONG } LongInt) : BOOLEAN;
  228.   FUNCTION Gpi16QueryTag(ahps : hPs; VAR l2 : { LONG } LongInt) : BOOLEAN;
  229.  
  230.   FUNCTION GpiSetTag(  ahps : hPs; l : LongInt) : BOOLEAN;
  231.   FUNCTION Gpi16SetTag(ahps : hPs; l : LongInt) : BOOLEAN;
  232.  
  233.   FUNCTION GpiQueryPickApertureSize(    ahps : hPs;
  234.                                     VAR P    : { LONG } SizeL) : BOOLEAN;
  235.   FUNCTION Gpi16QueryPickApertureSize(    ahps : hPs;
  236.                                       VAR P    : { LONG } SizeL) : BOOLEAN;
  237.  
  238.   FUNCTION GpiSetPickApertureSize(hPs   : hPs;
  239.                                   l1    : LongInt;
  240.                                   SizeL : { LONG } SizeL) : BOOLEAN;
  241.   FUNCTION Gpi16SetPickApertureSize(hPs   : hPs;
  242.                                     l1    : LongInt;
  243.                                     SizeL : { LONG } SizeL) : BOOLEAN;
  244.  
  245.   FUNCTION GpiQueryPickAperturePosition(    ahps    : hPs;
  246.                                         VAR aPointL : { LONG } PointL) : BOOLEAN;
  247.   FUNCTION Gpi16QueryPickAperturePosition(    ahps    : hPs;
  248.                                           VAR aPointL : { LONG } PointL) : BOOLEAN;
  249.  
  250.   FUNCTION GpiSetPickAperturePosition(ahps    : hPs;
  251.                                       aPointL : { LONG } PointL) : BOOLEAN;
  252.   FUNCTION Gpi16SetPickAperturePosition(ahps    : hPs;
  253.                                         aPointL : { LONG } PointL) : BOOLEAN;
  254.  
  255.   FUNCTION GpiQueryBoundaryData(    ahps   : hPs;
  256.                                 VAR aRectl : { LONG } RectL) : BOOLEAN;
  257.   FUNCTION Gpi16QueryBoundaryData(    ahps   : hPs;
  258.                                   VAR aRectl : { LONG } RectL) : BOOLEAN;
  259.  
  260.   FUNCTION GpiResetBoundaryData(  ahps : hPs) : BOOLEAN;
  261.   FUNCTION Gpi16ResetBoundaryData(ahps : hPs) : BOOLEAN;
  262.  
  263.   FUNCTION GpiCorrelateFrom(    ahps, l2 : LongInt;
  264.                                 l3, l4   : LongInt;
  265.                                 aPointL  : { LONG } PointL;
  266.                                 l5, l6   : LongInt;
  267.                             VAR l7       : { LONG } LongInt) : LongInt;
  268.   FUNCTION Gpi16CorrelateFrom(    ahps, l2 : LongInt;
  269.                                   l3, l4   : LongInt;
  270.                                   aPointL  : { LONG } PointL;
  271.                                   l5, l6   : LongInt;
  272.                               VAR l7       : { LONG } LongInt) : LongInt;
  273.  
  274.   FUNCTION GpiCorrelateSegment(   ahps    : hPs;
  275.                                   l1, l3  : LongInt;
  276.                                   aPointL : { LONG } PointL;
  277.                                   l2, l6  : LongInt;
  278.                               VAR l7      : { LONG } LongInt) : LongInt;
  279.   FUNCTION Gpi16CorrelateSegment( ahps    : hPs;
  280.                                   l1, l3  : LongInt;
  281.                                   aPointL : { LONG } PointL;
  282.                                   l2, l6  : LongInt;
  283.                               VAR l7      : { LONG } LongInt) : LongInt;
  284.  
  285. (* data formats for GpiPutData and GpiGetData *)
  286. CONST
  287.   DFORM_NOCONV =    0;
  288.   DFORM_S370SHORT = 1;
  289.   DFORM_PCSHORT =   2;
  290.   DFORM_PCLONG =    4;
  291.  
  292. (* segment attributes used by GpiSet/QuerySegmentAttrs and others *)
  293.   ATTR_DETECTABLE =      1;
  294.   ATTR_VISIBLE =         2;
  295.   ATTR_CHAINED =         6;
  296.   ATTR_DYNAMIC =         8;
  297.   ATTR_FASTCHAIN =       9;
  298.   ATTR_PROP_DETECTABLE = 10;
  299.   ATTR_PROP_VISIBLE =    11;
  300.  
  301. (* attribute on/off values *)
  302.   ATTR_OFF =  0;
  303.   ATTR_ON =   1;
  304.  
  305. (* segment priority used by GpiSetSegmentPriority and others *)
  306.   LOWER_PRI =      -1;
  307.   HIGHER_PRI =      1;
  308.  
  309. (*** segment control functions *)
  310.  
  311.   FUNCTION GpiOpenSegment(  ahps : hPs; l : LongInt) : BOOLEAN;
  312.   FUNCTION Gpi16OpenSegment(ahps : hPs; l : LongInt) : BOOLEAN;
  313.  
  314.   FUNCTION GpiCloseSegment(ahps : hPs) : BOOLEAN;
  315.   FUNCTION Gpi16CloseSegment(ahps : hPs) : BOOLEAN;
  316.  
  317.   FUNCTION GpiDeleteSegment(ahps : hPs; l : LongInt) : BOOLEAN;
  318.   FUNCTION Gpi16DeleteSegment(ahps : hPs; l : LongInt) : BOOLEAN;
  319.  
  320.   FUNCTION GpiQueryInitialSegmentAttrs(ahps : hPs; l : LongInt) : LongInt;
  321.   FUNCTION Gpi16QueryInitialSegmentAttrs(ahps : hPs; l : LongInt) : LongInt;
  322.  
  323.   FUNCTION GpiSetInitialSegmentAttrs(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  324.   FUNCTION Gpi16SetInitialSegmentAttrs(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  325.  
  326.   FUNCTION GpiQuerySegmentAttrs(ahps : hPs; l1, l2 : LongInt) : LongInt;
  327.   FUNCTION Gpi16QuerySegmentAttrs(ahps : hPs; l1, l2 : LongInt) : LongInt;
  328.  
  329.   FUNCTION GpiSetSegmentAttrs(ahps       : hPs;
  330.                               l1, l6, l8 : LongInt) : BOOLEAN;
  331.   FUNCTION Gpi16SetSegmentAttrs(ahps       : hPs;
  332.                                 l1, l6, l8 : LongInt) : BOOLEAN;
  333.  
  334.   FUNCTION GpiQuerySegmentPriority(ahps   : hPs;
  335.                                    l1, l2 : LongInt) : LongInt;
  336.   FUNCTION Gpi16QuerySegmentPriority(ahps   : hPs;
  337.                                    l1, l2 : LongInt) : LongInt;
  338.  
  339.   FUNCTION GpiSetSegmentPriority(ahps       : hPs;
  340.                                  l1, l6, l8 : LongInt) : BOOLEAN;
  341.   FUNCTION Gpi16SetSegmentPriority(ahps       : hPs;
  342.                                    l1, l6, l8 : LongInt) : BOOLEAN;
  343.  
  344.   FUNCTION GpiDeleteSegments(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  345.   FUNCTION Gpi16DeleteSegments(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  346.  
  347.   FUNCTION GpiQuerySegmentNames(    ahps       : hPs;
  348.                                     l1, l6, l2 : LongInt;
  349.                                 VAR l7         : { LONG } LongInt) : LongInt;
  350.   FUNCTION Gpi16QuerySegmentNames(    ahps       : hPs;
  351.                                     l1, l6, l2 : LongInt;
  352.                                 VAR l7         : { LONG } LongInt) : LongInt;
  353.  
  354. (*** draw functions for segments *)
  355.  
  356.   FUNCTION GpiGetData(    ahps   : hPs;
  357.                           l1     : LongInt;
  358.                       VAR l9     : { LONG } LongInt;
  359.                           l2, l6 : LongInt;
  360.                           aByte  : Pointer) : LongInt;
  361.   FUNCTION Gpi16GetData(  ahps   : hPs;
  362.                           l1     : LongInt;
  363.                       VAR l9     : { LONG } LongInt;
  364.                           l2, l6 : LongInt;
  365.                           aByte  : Pointer) : LongInt;
  366.  
  367.   FUNCTION GpiPutData(    ahps  : hPs;
  368.                           l1    : LongInt;
  369.                       VAR l9    : { LONG } LongInt;
  370.                           aByte : Pointer) : LongInt;
  371.   FUNCTION Gpi16PutData(    ahps  : hPs;
  372.                             l1    : LongInt;
  373.                         VAR l9    : { LONG } LongInt;
  374.                             aByte : Pointer) : LongInt;
  375.  
  376.   FUNCTION GpiDrawChain(ahps : hPs) : BOOLEAN;
  377.   FUNCTION Gpi16DrawChain(ahps : hPs) : BOOLEAN;
  378.  
  379.   FUNCTION GpiDrawFrom(  ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  380.   FUNCTION Gpi16DrawFrom(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  381.  
  382.   FUNCTION GpiDrawSegment(  ahps : hPs; l : LongInt) : BOOLEAN;
  383.   FUNCTION Gpi16DrawSegment(ahps : hPs; l : LongInt) : BOOLEAN;
  384.  
  385.   FUNCTION GpiDrawDynamics(  ahps : hPs) : BOOLEAN;
  386.   FUNCTION Gpi16DrawDynamics(ahps : hPs) : BOOLEAN;
  387.  
  388.   FUNCTION GpiRemoveDynamics(  ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  389.   FUNCTION Gpi16RemoveDynamics(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  390.  
  391. (* edit modes used by GpiSet/QueryEditMode *)
  392. CONST
  393.   SEGEM_ERROR =     0;
  394.   SEGEM_INSERT =    1;
  395.   SEGEM_REPLACE =   2;
  396.  
  397. (*** segment editing by element functions *)
  398.  
  399.   FUNCTION GpiBeginElement(ahps : hPs; l1 : LongInt; aPsz : pChar) : BOOLEAN;
  400.   FUNCTION Gpi16BeginElement(ahps : hPs; l1 : LongInt; aPsz : pChar) : BOOLEAN;
  401.  
  402.   FUNCTION GpiEndElement(ahps : hPs) : BOOLEAN;
  403.   FUNCTION Gpi16EndElement(ahps : hPs) : BOOLEAN;
  404.  
  405.   FUNCTION GpiLabel(ahps : hPs; l : LongInt) : BOOLEAN;
  406.   FUNCTION Gpi16Label(ahps : hPs; l : LongInt) : BOOLEAN;
  407.  
  408.   FUNCTION GpiElement(ahps  : hPs;
  409.                       l1    : LongInt;
  410.                       pSZ   : pChar;
  411.                       l2    : LongInt;
  412.                       aByte : Pointer) : LongInt;
  413.   FUNCTION Gpi16Element(ahps  : hPs;
  414.                         l1    : LongInt;
  415.                         pSZ   : pChar;
  416.                         l2    : LongInt;
  417.                         aByte : Pointer) : LongInt;
  418.  
  419.   FUNCTION GpiQueryElement(ahps   : hPs;
  420.                            l1, l6 : LongInt;
  421.                            aByte  : Pointer) : LongInt;
  422.   FUNCTION Gpi16QueryElement(ahps   : hPs;
  423.                              l1, l6 : LongInt;
  424.                              aByte  : Pointer) : LongInt;
  425.  
  426.   FUNCTION GpiDeleteElement(ahps : hPs) : BOOLEAN;
  427.   FUNCTION Gpi16DeleteElement(ahps : hPs) : BOOLEAN;
  428.  
  429.   FUNCTION GpiDeleteElementRange(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  430.   FUNCTION Gpi16DeleteElementRange(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  431.  
  432.   FUNCTION GpiDeleteElementsBetweenLabels(ahps   : hPs;
  433.                                           l1, l2 : LongInt) : BOOLEAN;
  434.   FUNCTION Gpi16DeleteElementsBetweenLabels(ahps   : hPs;
  435.                                           l1, l2 : LongInt) : BOOLEAN;
  436.  
  437.   FUNCTION GpiQueryEditMode(ahps : hPs) : LongInt;
  438.   FUNCTION Gpi16QueryEditMode(ahps : hPs) : LongInt;
  439.  
  440.   FUNCTION GpiSetEditMode(ahps : hPs; l : LongInt) : BOOLEAN;
  441.   FUNCTION Gpi16SetEditMode(ahps : hPs; l : LongInt) : BOOLEAN;
  442.  
  443.   FUNCTION GpiQueryElementPointer(ahps : hPs) : LongInt;
  444.   FUNCTION Gpi16QueryElementPointer(ahps : hPs) : LongInt;
  445.  
  446.   FUNCTION GpiSetElementPointer(ahps : hPs; l : LongInt) : BOOLEAN;
  447.   FUNCTION Gpi16SetElementPointer(ahps : hPs; l : LongInt) : BOOLEAN;
  448.  
  449.   FUNCTION GpiOffsetElementPointer(ahps : hPs; l : LongInt) : BOOLEAN;
  450.   FUNCTION Gpi16OffsetElementPointer(ahps : hPs; l : LongInt) : BOOLEAN;
  451.  
  452.   FUNCTION GpiQueryElementType(    ahps : hPs;
  453.                                VAR l    : { LONG } LongInt;
  454.                                    l1   : LongInt;
  455.                                    pSZ  : pChar) : LongInt;
  456.   FUNCTION Gpi16QueryElementType(    ahps : hPs;
  457.                                VAR l    : { LONG } LongInt;
  458.                                    l1   : LongInt;
  459.                                    pSZ  : pChar) : LongInt;
  460.  
  461.   FUNCTION GpiSetElementPointerAtLabel(ahps : hPs; l : LongInt) : BOOLEAN;
  462.   FUNCTION Gpi16SetElementPointerAtLabel(ahps : hPs; l : LongInt) : BOOLEAN;
  463.  
  464. (* co-ordinates space for GpiConvert *)
  465. CONST
  466.   CVTC_WORLD =              1;
  467.   CVTC_MODEL =              2;
  468.   CVTC_DEFAULTPAGE =        3;
  469.   CVTC_PAGE =               4;
  470.   CVTC_DEVICE =             5;
  471.  
  472. (* type of transformation for GpiSetSegmentTransformMatrix *)
  473.   TRANSFORM_REPLACE =       0;
  474.   TRANSFORM_ADD =           1;
  475.   TRANSFORM_PREEMPT =       2;
  476.  
  477. (* transform matrix *)
  478. TYPE
  479.   MATRIXLF = RECORD      (* matlf *)
  480.     fxM11 : Fixed;
  481.     fxM12 : Fixed;
  482.     lM13  : LongInt;
  483.     fxM21 : Fixed;
  484.     fxM22 : Fixed;
  485.     lM23  : LongInt;
  486.     lM31  : LongInt;
  487.     lM32  : LongInt;
  488.     lM33  : LongInt;
  489.   END;
  490.   pMatrixLf = ^MATRIXLF;
  491.  
  492. (*** transform and transform conversion functions *)
  493.  
  494.   FUNCTION GpiQuerySegmentTransformMatrix(    ahps     : hPs;
  495.                                               l1, l6   : LongInt;
  496.                                           VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  497.   FUNCTION Gpi16QuerySegmentTransformMatrix(    ahps     : hPs;
  498.                                                 l1, l6   : LongInt;
  499.                                             VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  500.  
  501.   FUNCTION GpiSetSegmentTransformMatrix(    ahps     : hPs;
  502.                                             l1, l6   : LongInt;
  503.                                             MATRIXLF : { LONG } MATRIXLF;
  504.                                         VAR l11      : { LONG } LongInt) : BOOLEAN;
  505.   FUNCTION Gpi16SetSegmentTransformMatrix(    ahps     : hPs;
  506.                                               l1, l6   : LongInt;
  507.                                               MATRIXLF : { LONG } MATRIXLF;
  508.                                           VAR l11      : { LONG } LongInt) : BOOLEAN;
  509.  
  510.   FUNCTION GpiConvert(    ahps       : hPs;
  511.                           l1, l6, l2 : LongInt;
  512.                       VAR aPointL    : { LONG } PointL) : BOOLEAN;
  513.   FUNCTION Gpi16Convert(    ahps       : hPs;
  514.                             l1, l6, l2 : LongInt;
  515.                         VAR aPointL    : { LONG } PointL) : BOOLEAN;
  516.  
  517.   FUNCTION GpiQueryModelTransformMatrix(    ahps     : hPs;
  518.                                             l1       : LongInt;
  519.                                         VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  520.   FUNCTION Gpi16QueryModelTransformMatrix(    ahps     : hPs;
  521.                                             l1       : LongInt;
  522.                                         VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  523.  
  524.   FUNCTION GpiSetModelTransformMatrix(    ahps     : hPs;
  525.                                           l1       : LongInt;
  526.                                           MATRIXLF : { LONG } MATRIXLF;
  527.                                       VAR l11      : { LONG } LongInt) : BOOLEAN;
  528.   FUNCTION Gpi16SetModelTransformMatrix(  ahps     : hPs;
  529.                                           l1       : LongInt;
  530.                                           MATRIXLF : { LONG } MATRIXLF;
  531.                                       VAR l11      : { LONG } LongInt) : BOOLEAN;
  532.  
  533.   FUNCTION GpiCallSegmentMatrix(    ahps     : hPs;
  534.                                     l1, l6   : LongInt;
  535.                                     MATRIXLF : { LONG } MATRIXLF;
  536.                                 VAR l11      : { LONG } LongInt) : LongInt;
  537.   FUNCTION Gpi16CallSegmentMatrix(    ahps     : hPs;
  538.                                       l1, l6   : LongInt;
  539.                                       MATRIXLF : { LONG } MATRIXLF;
  540.                                 VAR l11      : { LONG } LongInt) : LongInt;
  541.  
  542.   FUNCTION GpiQueryDefaultViewMatrix(    ahps     : hPs;
  543.                                          l1       : LongInt;
  544.                                      VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  545.   FUNCTION Gpi16QueryDefaultViewMatrix(  ahps     : hPs;
  546.                                          l1       : LongInt;
  547.                                      VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  548.  
  549.   FUNCTION GpiSetDefaultViewMatrix(    ahps     : hPs;
  550.                                        l1       : LongInt;
  551.                                        MATRIXLF : { LONG } MATRIXLF;
  552.                                    VAR l11      : { LONG } LongInt) : BOOLEAN;
  553.   FUNCTION Gpi16SetDefaultViewMatrix(  ahps     : hPs;
  554.                                        l1       : LongInt;
  555.                                        MATRIXLF : { LONG } MATRIXLF;
  556.                                    VAR l11      : { LONG } LongInt) : BOOLEAN;
  557.  
  558.   FUNCTION GpiQueryPageViewport(    hPs    : hPs;
  559.                                 VAR aRectl : { LONG } RectL) : BOOLEAN;
  560.   FUNCTION Gpi16QueryPageViewport(    hPs    : hPs;
  561.                                   VAR aRectl : { LONG } RectL) : BOOLEAN;
  562.  
  563.   FUNCTION GpiSetPageViewport(  ahps : hPs; aRectl : { LONG } RectL) : BOOLEAN;
  564.   FUNCTION Gpi16SetPageViewport(ahps : hPs; aRectl : { LONG } RectL) : BOOLEAN;
  565.  
  566.   FUNCTION GpiQueryViewingTransformMatrix(    ahps     : hPs;
  567.                                               l1       : LongInt;
  568.                                           VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  569.   FUNCTION Gpi16QueryViewingTransformMatrix(    ahps     : hPs;
  570.                                                 l1       : LongInt;
  571.                                             VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  572.   FUNCTION xGpiQueryViewingTransformMatrix(    ahps     : hPs;
  573.                                               l1       : LongInt;
  574.                                           VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  575.   FUNCTION xGpi16QueryViewingTransformMatrix(    ahps     : hPs;
  576.                                                 l1       : LongInt;
  577.                                             VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  578.  
  579.   FUNCTION GpiSetViewingTransformMatrix(    ahps     : hPs;
  580.                                             l1       : LongInt;
  581.                                             MATRIXLF : { LONG } MATRIXLF;
  582.                                         VAR l11      : { LONG } LongInt): BOOLEAN;
  583.   FUNCTION Gpi16SetViewingTransformMatrix(    ahps     : hPs;
  584.                                               l1       : LongInt;
  585.                                               MATRIXLF : { LONG } MATRIXLF;
  586.                                           VAR l11      : { LONG } LongInt): BOOLEAN;
  587.  
  588.   FUNCTION GpiTranslate(a : hPs;
  589.                         b : MATRIXLF;
  590.                         c : LongInt;
  591.                         d : PointL) : BOOLEAN;
  592.   FUNCTION Gpi16Translate(a : hPs;
  593.                           b : MATRIXLF;
  594.                           c : LongInt;
  595.                           d : PointL) : BOOLEAN;
  596.  
  597.   FUNCTION GpiScale(a : hPs;
  598.                     b : MATRIXLF;
  599.                     c : LongInt;
  600.                     d : Fixed;
  601.                     e : PointL) : BOOLEAN;
  602.   FUNCTION Gpi16Scale(a : hPs;
  603.                       b : MATRIXLF;
  604.                       c : LongInt;
  605.                       d : Fixed;
  606.                       e : PointL) : BOOLEAN;
  607.  
  608.   FUNCTION GpiRotate(a : hPs;
  609.                      b : MATRIXLF;
  610.                      c : LongInt;
  611.                      d : Fixed;
  612.                      e : PointL) : BOOLEAN;
  613.   FUNCTION Gpi16Rotate(a : hPs;
  614.                        b : MATRIXLF;
  615.                        c : LongInt;
  616.                        d : Fixed;
  617.                        e : PointL) : BOOLEAN;
  618.  
  619. (*** general clipping functions *)
  620.  
  621.   FUNCTION GpiSetGraphicsField(ahps   : hPs;
  622.                                aRectl : { LONG } RectL) : BOOLEAN;
  623.   FUNCTION Gpi16SetGraphicsField(ahps   : hPs;
  624.                                  aRectl : { LONG } RectL) : BOOLEAN;
  625.  
  626.   FUNCTION GpiQueryGraphicsField(    ahps   : hPs;
  627.                                  VAR aRectl : { LONG } RectL) : BOOLEAN;
  628.   FUNCTION Gpi16QueryGraphicsField(    ahps   : hPs;
  629.                                  VAR aRectl : { LONG } RectL) : BOOLEAN;
  630.  
  631.   FUNCTION GpiSetViewingLimits(ahps   : hPs;
  632.                                aRectl : { LONG } RectL) : BOOLEAN;
  633.   FUNCTION Gpi16SetViewingLimits(ahps   : hPs;
  634.                                aRectl : { LONG } RectL) : BOOLEAN;
  635.  
  636.   FUNCTION GpiQueryViewingLimits(    ahps   : hPs;
  637.                                  VAR aRectl : { LONG } RectL) : BOOLEAN;
  638.   FUNCTION Gpi16QueryViewingLimits(    ahps   : hPs;
  639.                                  VAR aRectl : { LONG } RectL) : BOOLEAN;
  640.  
  641. (* modes for GpiModifyPath *)
  642. CONST
  643.   MPATH_STROKE =            6;
  644.  
  645. (* modes for GpiFillPath *)
  646.   FPATH_ALTERNATE =         0;
  647.   FPATH_WINDING =           2;
  648.  
  649. (* modes for GpiSetClipPath *)
  650.   SCP_ALTERNATE =           0;
  651.   SCP_WINDING =             2;
  652.   SCP_AND =                 4;
  653.   SCP_RESET =               0;
  654.  
  655.  
  656. (*** Path and Clip Path functions *)
  657.  
  658.   FUNCTION GpiBeginPath(ahps : hPs; l : LongInt) : BOOLEAN;
  659.   FUNCTION Gpi16BeginPath(ahps : hPs; l : LongInt) : BOOLEAN;
  660.  
  661.   FUNCTION GpiEndPath(ahps : hPs) : BOOLEAN;
  662.   FUNCTION Gpi16EndPath(ahps : hPs) : BOOLEAN;
  663.  
  664.   FUNCTION GpiCloseFigure(ahps : hPs) : BOOLEAN;
  665.   FUNCTION Gpi16CloseFigure(ahps : hPs) : BOOLEAN;
  666.  
  667.   FUNCTION GpiModifyPath(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  668.   FUNCTION Gpi16ModifyPath(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  669.  
  670.   FUNCTION GpiFillPath(ahps : hPs; l1, l2 : LongInt) : LongInt;
  671.   FUNCTION Gpi16FillPath(ahps : hPs; l1, l2 : LongInt) : LongInt;
  672.  
  673.   FUNCTION GpiSetClipPath(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  674.   FUNCTION Gpi16SetClipPath(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  675.  
  676.   FUNCTION GpiOutlinePath(ahps : hPs; l1, l2 : LongInt) : LongInt;
  677.   FUNCTION Gpi16OutlinePath(ahps : hPs; l1, l2 : LongInt) : LongInt;
  678.  
  679.   FUNCTION GpiStrokePath(ahps : hPs; l1 : LongInt; c : LongInt) : LongInt;
  680.   FUNCTION Gpi16StrokePath(ahps : hPs; l1 : LongInt; c : LongInt) : LongInt;
  681.  
  682. (* options for GpiCreateLogColorTable and others *)
  683. CONST
  684.   LCOL_RESET =              $00001;
  685.   LCOL_REALIZABLE =         $00002;
  686.   LCOL_PURECOLOR =          $00004;
  687.  
  688. (* format of logical lColor table for GpiCreateLogColorTable and others *)
  689.   LCOLF_DEFAULT =           0;
  690.   LCOLF_INDRGB =            1;
  691.   LCOLF_CONSECRGB =         2;
  692.   LCOLF_RGB =               3;
  693.  
  694. (* options for GpiQueryRealColors and others *)
  695.   LCOLOPT_REALIZED =        $0001;
  696.   LCOLOPT_INDEX =           $0002;
  697.  
  698. (* return codes from GpiQueryLogColorTable to indicate it is in RGB mode *)
  699.   QLCT_ERROR   = (-1);
  700.   QLCT_RGB     = (-2);
  701.  
  702. (* GpiQueryLogColorTable index returned for colors not explicitly loaded *)
  703.   QLCT_NOTLOADED = -1;
  704.  
  705. (* return codes for GpiQueryColorData *)
  706.   QCD_LCT_FORMAT =    0;
  707.   QCD_LCT_LOINDEX =   1;
  708.   QCD_LCT_HIINDEX =   2;
  709.  
  710. (*** logical lColor table functions *)
  711.  
  712.   FUNCTION GpiCreateLogColorTable(    ahps       : hPs;
  713.                                       c1         : LongInt;
  714.                                       l1, l2, l3 : LongInt;
  715.                                   VAR l7         : { LONG } LongInt) : BOOLEAN;
  716.   FUNCTION Gpi16CreateLogColorTable(    ahps       : hPs;
  717.                                         c1         : LongInt;
  718.                                         l1, l2, l3 : LongInt;
  719.                                     VAR l7         : { LONG } LongInt) : BOOLEAN;
  720.  
  721.   FUNCTION GpiRealizeColorTable(  ahps : hPs) : BOOLEAN;
  722.   FUNCTION Gpi16RealizeColorTable(ahps : hPs) : BOOLEAN;
  723.  
  724.   FUNCTION GpiUnrealizeColorTable(ahps : hPs) : BOOLEAN;
  725.   FUNCTION Gpi16UnrealizeColorTable(ahps : hPs) : BOOLEAN;
  726.  
  727.   FUNCTION GpiQueryColorData(    ahps : hPs;
  728.                                  l1   : LongInt;
  729.                              VAR l7   : { LONG } LongInt) : BOOLEAN;
  730.   FUNCTION Gpi16QueryColorData(    ahps : hPs;
  731.                                    l1   : LongInt;
  732.                                VAR l7   : { LONG } LongInt) : BOOLEAN;
  733.  
  734.   FUNCTION GpiQueryLogColorTable(    ahps   : hPs;
  735.                                      c1     : LongInt;
  736.                                      l1, l2 : LongInt;
  737.                                  VAR l7     : { LONG } LongInt) : LongInt;
  738.   FUNCTION Gpi16QueryLogColorTable(  ahps   : hPs;
  739.                                      c1     : LongInt;
  740.                                      l1, l2 : LongInt;
  741.                                  VAR l7     : { LONG } LongInt) : LongInt;
  742.  
  743.   FUNCTION GpiQueryRealColors(    ahps   : hPs;
  744.                                   c1     : LongInt;
  745.                                   l2, l6 : LongInt;
  746.                               VAR l7     : { LONG } LongInt) : LongInt;
  747.   FUNCTION Gpi16QueryRealColors(  ahps   : hPs;
  748.                                   c1     : LongInt;
  749.                                   l2, l6 : LongInt;
  750.                               VAR l7     : { LONG } LongInt) : LongInt;
  751.  
  752.   FUNCTION GpiQueryNearestColor(ahps : hPs;
  753.                                 c1   : LongInt;
  754.                                 i1   : LongInt) : LongInt;
  755.   FUNCTION Gpi16QueryNearestColor(ahps : hPs;
  756.                                   c1   : LongInt;
  757.                                   i1   : LongInt) : LongInt;
  758.  
  759.   FUNCTION GpiQueryColorIndex(ahps : hPs;
  760.                               c1   : LongInt;
  761.                               l1   : LongInt) : LongInt;
  762.   FUNCTION Gpi16QueryColorIndex(ahps : hPs;
  763.                                 c1   : LongInt;
  764.                                 l1   : LongInt) : LongInt;
  765.  
  766.   FUNCTION GpiQueryRGBColor(ahps : hPs;
  767.                             c1   : LongInt;
  768.                             l2   : LongInt) : LongInt;
  769.   FUNCTION Gpi16QueryRGBColor(ahps : hPs;
  770.                               c1   : LongInt;
  771.                               l2   : LongInt) : LongInt;
  772.  
  773. (* default color table indices *)
  774.  
  775. CONST
  776.   CLR_FALSE               =(-5);
  777.   CLR_TRUE                =(-4);
  778.   CLR_ERROR =            (-255);
  779.   CLR_DEFAULT             =(-3);
  780.   CLR_WHITE               =(-2);
  781.   CLR_BLACK               =(-1);
  782.   CLR_BACKGROUND =          0;
  783.   CLR_BLUE =                1;
  784.   CLR_RED =                 2;
  785.   CLR_PINK =                3;
  786.   CLR_GREEN =               4;
  787.   CLR_CYAN =                5;
  788.   CLR_YELLOW =              6;
  789.   CLR_NEUTRAL =             7;
  790.   CLR_DARKGRAY =            8;
  791.   CLR_DARKBLUE =            9;
  792.   CLR_DARKRED =            10;
  793.   CLR_DARKPINK =           11;
  794.   CLR_DARKGREEN =          12;
  795.   CLR_DARKCYAN =           13;
  796.   CLR_BROWN =              14;
  797.   CLR_PALEGRAY =           15;
  798.  
  799. (* rgb colors *)
  800.   RGB_ERROR               = (-255);
  801.   RGB_BLACK =               $000000000;
  802.   RGB_BLUE =                $0000000FF;
  803.   RGB_GREEN =               $00000FF00;
  804.   RGB_CYAN =                $00000FFFF;
  805.   RGB_RED =                 $000FF0000;
  806.   RGB_PINK =                $000FF00FF;
  807.   RGB_YELLOW =              $000FFFF00;
  808.   RGB_WHITE =               $000FFFFFF;
  809.  
  810. (* control flags used by GpiBeginArea *)
  811.   BA_NOBOUNDARY =   0;
  812.   BA_BOUNDARY =     $00001;
  813.  
  814.   BA_ALTERNATE =    0;
  815.   BA_WINDING =      $00002;
  816.  
  817. (* fill options for GpiBox/GpiFullArc *)
  818. CONST DRO_FILL =        1;
  819. CONST DRO_OUTLINE =     2;
  820. CONST DRO_OUTLINEFILL = 3;
  821.  
  822. (* basic pattern symbols *)
  823. CONST PATSYM_ERROR   =        -1;
  824. CONST PATSYM_DEFAULT =         0;
  825. CONST PATSYM_DENSE1 =          1;
  826. CONST PATSYM_DENSE2 =          2;
  827. CONST PATSYM_DENSE3 =          3;
  828. CONST PATSYM_DENSE4 =          4;
  829. CONST PATSYM_DENSE5 =          5;
  830. CONST PATSYM_DENSE6 =          6;
  831. CONST PATSYM_DENSE7 =          7;
  832. CONST PATSYM_DENSE8 =          8;
  833. CONST PATSYM_VERT =            9;
  834. CONST PATSYM_HORIZ =           10;
  835. CONST PATSYM_DIAG1 =           11;
  836. CONST PATSYM_DIAG2 =           12;
  837. CONST PATSYM_DIAG3 =           13;
  838. CONST PATSYM_DIAG4 =           14;
  839. CONST PATSYM_NOSHADE =         15;
  840. CONST PATSYM_SOLID =           16;
  841. CONST PATSYM_BLANK =           64;
  842. CONST PATSYM_HALFTONE =        17;
  843.  
  844. (* lcid values for GpiSet/QueryPattern and others *)
  845. CONST LCID_ERROR           =  -1;
  846. CONST LCID_DEFAULT =           0;
  847.  
  848. (*** global primitive functions *)
  849.  
  850.   FUNCTION GpiSetColor(ahps : hPs; l : LongInt) : BOOLEAN;
  851.   FUNCTION Gpi16SetColor(ahps : hPs; l : LongInt) : BOOLEAN;
  852.  
  853.   FUNCTION GpiQueryColor(ahps : hPs) : LongInt;
  854.   FUNCTION Gpi16QueryColor(ahps : hPs) : LongInt;
  855.  
  856. (*** line primitive functions *)
  857.  
  858.   FUNCTION GpiBox(hPs     : hPs;
  859.                   l1      : LongInt;
  860.                   aPointL : { LONG } PointL;
  861.                   l2, l8  : LongInt) : LongInt;
  862.   FUNCTION Gpi16Box(hPs   : hPs;
  863.                   l1      : LongInt;
  864.                   aPointL : { LONG } PointL;
  865.                   l2, l8  : LongInt) : LongInt;
  866.  
  867.   FUNCTION GpiMove(ahps : hPs; aPointL : { LONG } PointL) : BOOLEAN;
  868.   FUNCTION Gpi16Move(ahps : hPs; aPointL : { LONG } PointL) : BOOLEAN;
  869.  
  870.   FUNCTION GpiLine(  hPs : hPs; aPointL : { LONG } PointL) : LongInt;
  871.   FUNCTION Gpi16Line(hPs : hPs; aPointL : { LONG } PointL) : LongInt;
  872.  
  873.   FUNCTION GpiPolyLine(ahps   : hPs;
  874.                        l1     : LongInt;
  875.                        PointL : { LONG } PointL) : LongInt;
  876.   FUNCTION Gpi16PolyLine(ahps   : hPs;
  877.                          l1     : LongInt;
  878.                          PointL : { LONG } PointL) : LongInt;
  879.  
  880. (*** area primitive functions *)
  881.  
  882.   FUNCTION GpiSetPattern(  ahps : hPs; l : LongInt) : BOOLEAN;
  883.   FUNCTION Gpi16SetPattern(ahps : hPs; l : LongInt) : BOOLEAN;
  884.  
  885.   FUNCTION GpiQueryPattern(ahps : hPs) : LongInt;
  886.   FUNCTION Gpi16QueryPattern(ahps : hPs) : LongInt;
  887.  
  888.   FUNCTION GpiBeginArea(ahps : hPs; u : LongInt) : BOOLEAN;
  889.   FUNCTION Gpi16BeginArea(ahps : hPs; u : LongInt) : BOOLEAN;
  890.  
  891.   FUNCTION GpiEndArea(ahps : hPs) : LongInt;
  892.   FUNCTION Gpi16EndArea(ahps : hPs) : LongInt;
  893.  
  894. (*** character primitive functions *)
  895.  
  896.   FUNCTION GpiCharString(ahps : hPs; l1 : LongInt; P : pCh) : LongInt;
  897.   FUNCTION Gpi16CharString(ahps : hPs; l1 : LongInt; P : pCh) : LongInt;
  898.  
  899.   FUNCTION GpiCharStringAt(ahps    : hPs;
  900.                            aPointL : { LONG } pPointL;
  901.                            l2      : LongInt;
  902.                            P       : pCh) : LongInt;
  903.   FUNCTION Gpi16CharStringAt(ahps  : hPs;
  904.                            aPointL : { LONG } pPointL;
  905.                            l2      : LongInt;
  906.                            P       : pCh) : LongInt;
  907.  
  908. (* mode for GpiSetAttrMode *)
  909. CONST
  910.   AM_ERROR    =      -1;
  911.   AM_PRESERVE =       0;
  912.  AM_NOPRESERVE =     1;
  913.  
  914. (* foreground mixes *)
  915.  FM_ERROR   =            -1;
  916.  FM_DEFAULT =             0;
  917.  FM_OR =                  1;
  918.  FM_OVERPAINT =           2;
  919.  FM_LEAVEALONE =          5;
  920.  
  921.  
  922.  FM_XOR =                 4;
  923.  FM_AND =                 6;
  924.  FM_SUBTRACT =            7;
  925.  FM_MASKSRCNOT =          8;
  926.  FM_ZERO =                9;
  927.  FM_NOTMERGESRC =         10;
  928.  FM_NOTXORSRC =           11;
  929.  FM_INVERT =              12;
  930.  FM_MERGESRCNOT =         13;
  931.  FM_NOTCOPYSRC =          14;
  932.  FM_MERGENOTSRC =         15;
  933.  FM_NOTMASKSRC =          16;
  934.  FM_ONE =                 17;
  935.  
  936. (* background mixes *)
  937.  BM_ERROR              = -1;
  938.  BM_DEFAULT =             0;
  939.  BM_OVERPAINT =           2;
  940.  BM_LEAVEALONE =          5;
  941.  
  942.  BM_OR =                  1;
  943.  BM_XOR =                 4;
  944.  
  945. (* basic line type styles *)
  946.  LINETYPE_ERROR        =  -1;
  947.  LINETYPE_DEFAULT =        0;
  948.  LINETYPE_DOT =            1;
  949.  LINETYPE_SHORTDASH =      2;
  950.  LINETYPE_DASHDOT =        3;
  951.  LINETYPE_LONGDASH      = 5;
  952.  LINETYPE_DASHDOUBLEDOT = 6;
  953.  LINETYPE_SOLID         = 7;
  954.  LINETYPE_INVISIBLE     = 8;
  955.  LINETYPE_ALTERNATE     = 9;
  956.  
  957. (* cosmetic line widths *)
  958.  LINEWIDTH_ERROR       = -1;
  959.  LINEWIDTH_DEFAULT     =  0;
  960.  LINEWIDTH_NORMAL      = $000010000;   (* MAKEFIXED(1,0) *)
  961.  
  962. (* actual line widths *)
  963.  LINEWIDTHGEOM_ERROR     =-1;
  964.  
  965. (* line end styles *)
  966.  LINEEND_ERROR       =   -1;
  967.  LINEEND_DEFAULT     =    0;
  968.  LINEEND_FLAT        =    1;
  969.  LINEEND_SQUARE      =    2;
  970.  LINEEND_ROUND       =    3;
  971.  
  972. (* line join styles *)
  973.  LINEJOIN_ERROR      =    -1;
  974.  LINEJOIN_DEFAULT    =    0;
  975.  LINEJOIN_BEVEL      =    1;
  976.  LINEJOIN_ROUND      =    2;
  977.  LINEJOIN_MITRE      =    3;
  978.  
  979. (* character directions *)
  980.  CHDIRN_ERROR         =   -1;
  981.  CHDIRN_DEFAULT       =   0;
  982.  CHDIRN_LEFTRIGHT     =   1;
  983.  CHDIRN_TOPBOTTOM     =   2;
  984.  CHDIRN_RIGHTLEFT     =   3;
  985.  CHDIRN_BOTTOMTOP     =   4;
  986.  
  987. (* character modes *)
  988.  CM_ERROR             =  -1;
  989.  CM_DEFAULT           =   0;
  990.  CM_MODE1             =   1;
  991.  CM_MODE2             =   2;
  992.  CM_MODE3             =   3;
  993.  
  994. (* basic marker symbols *)
  995.  MARKSYM_ERROR         = -1;
  996.  MARKSYM_DEFAULT       =  0;
  997.  MARKSYM_CROSS         =  1;
  998.  MARKSYM_PLUS          =  2;
  999.  MARKSYM_DIAMOND       =  3;
  1000.  MARKSYM_SQUARE        =  4;
  1001.  MARKSYM_SIXPOINTSTAR  =  5;
  1002. CONST MARKSYM_EIGHTPOINTSTAR = 6;
  1003. CONST MARKSYM_SOLIDDIAMOND   = 7;
  1004. CONST MARKSYM_SOLIDSQUARE    = 8;
  1005. CONST MARKSYM_DOT            = 9;
  1006. CONST MARKSYM_SMALLCIRCLE    = 10;
  1007. CONST MARKSYM_BLANK          = 64;
  1008.  
  1009. (* formatting options for GpiCharStringPosAt *)
  1010. CONST CHS_OPAQUE           =   $00001;
  1011. CONST CHS_VECTOR           =   $00002;
  1012. CONST CHS_LEAVEPOS         =   $00008;
  1013. CONST CHS_CLIP             =   $00010;
  1014.  
  1015. (* bundle codes for GpiSetAttributes and GpiQueryAttributes *)
  1016. CONST PRIM_LINE            =   1;
  1017. CONST PRIM_CHAR            =   2;
  1018. CONST PRIM_MARKER          =   3;
  1019. CONST PRIM_AREA            =   4;
  1020. CONST PRIM_IMAGE           =   5;
  1021.  
  1022. (* line bundle mask bits *)
  1023. CONST LBB_COLOR           =    $00001;
  1024. CONST LBB_MIX_MODE        =    $00004;
  1025. CONST LBB_WIDTH           =    $00010;
  1026. CONST LBB_GEOM_WIDTH      =    $00020;
  1027. CONST LBB_TYPE            =    $00040;
  1028. CONST LBB_END             =    $00080;
  1029. CONST LBB_JOIN            =    $00100;
  1030.  
  1031. (* character bundle mask bits *)
  1032. CONST CBB_COLOR           =    $00001;
  1033. CONST CBB_BACK_COLOR      =    $00002;
  1034. CONST CBB_MIX_MODE        =    $00004;
  1035. CONST CBB_BACK_MIX_MODE   =    $00008;
  1036. CONST CBB_SET             =    $00010;
  1037. CONST CBB_MODE            =    $00020;
  1038. CONST CBB_BOX             =    $00040;
  1039. CONST CBB_ANGLE           =    $00080;
  1040. CONST CBB_SHEAR           =    $00100;
  1041. CONST CBB_DIRECTION       =    $00200;
  1042.  
  1043. (* marker bundle mask bits *)
  1044. CONST MBB_COLOR           =    $00001;
  1045. CONST MBB_BACK_COLOR      =    $00002;
  1046. CONST MBB_MIX_MODE        =    $00004;
  1047. CONST MBB_BACK_MIX_MODE   =    $00008;
  1048. CONST MBB_SET             =    $00010;
  1049. CONST MBB_SYMBOL          =    $00020;
  1050. CONST MBB_BOX             =    $00040;
  1051.  
  1052. (* pattern bundle mask bits *)
  1053. CONST ABB_COLOR           =    $00001;
  1054. CONST ABB_BACK_COLOR      =    $00002;
  1055. CONST ABB_MIX_MODE        =    $00004;
  1056. CONST ABB_BACK_MIX_MODE   =    $00008;
  1057. CONST ABB_SET             =    $00010;
  1058. CONST ABB_SYMBOL          =    $00020;
  1059. CONST ABB_REF_POINT       =    $00040;
  1060.  
  1061. (* image bundle mask bits *)
  1062. CONST IBB_COLOR           =    $00001;
  1063. CONST IBB_BACK_COLOR      =    $00002;
  1064. CONST IBB_MIX_MODE        =    $00004;
  1065. CONST IBB_BACK_MIX_MODE   =    $00008;
  1066.  
  1067. (* structure for GpiSetArcParams and GpiQueryArcParams *)
  1068. TYPE
  1069.   ArcParams = RECORD     (* arcp *)
  1070.     lP : LongInt;
  1071.     lQ : LongInt;
  1072.     lR : LongInt;
  1073.     lS : LongInt;
  1074.   END;
  1075.   Params = ^ArcParams;
  1076.  
  1077.    (* variation of SIZE used for FIXEDs *)
  1078.    SizeF = RECORD        (* sizfx *)
  1079.      cx : Fixed;
  1080.      cy : Fixed;
  1081.    END;
  1082.    pSizeF = ^SizeF;
  1083.  
  1084. (* structure for gradient parameters e.g. for GpiSetCharAngle *)
  1085.    GradientL = RECORD      (* gradl *)
  1086.      x : LongInt;
  1087.      y : LongInt;
  1088.    END;
  1089.    pGradientL = ^GradientL;
  1090.  
  1091. (* line bundle for GpiSetAttributes and GpiQueryAttributes *)
  1092. TYPE
  1093.   LineBundlE = RECORD     (* lbnd *)
  1094.     lColor     : LongInt;
  1095.     lReserved  : LongInt;
  1096.     usMixMode  : WORD;
  1097.     usReserved : WORD;
  1098.     fxWidth    : Fixed;
  1099.     lGeomWidth : LongInt;
  1100.     usType     : WORD;
  1101.     usEnd      : WORD;
  1102.     usJoin     : WORD;
  1103.   END;
  1104.  
  1105. (* character bundle for GpiSetAttributes and GpiQueryAttributes *)
  1106. TYPE
  1107.   CharBundle = RECORD     (* cbnd *)
  1108.     lColor        : LongInt;
  1109.     lBackColor    : LongInt;
  1110.     usMixMode     : WORD;
  1111.     usBackMixMode : WORD;
  1112.     usSet         : WORD;
  1113.     usPrecision   : WORD;
  1114.     sizfxCell     : SizeF;
  1115.     ptlAngle      : PointL;
  1116.     ptlShear      : PointL;
  1117.     usDirection   : WORD;
  1118.   END;
  1119.  
  1120. (* marker bundle for GpiSetAttributes and GpiQueryAttributes *)
  1121. TYPE
  1122.   MarkerBundle = RECORD   (* mbnd *)
  1123.     lColor        : LongInt;
  1124.     lBackColor    : LongInt;
  1125.     usMixMode     : WORD;
  1126.     usBackMixMode : WORD;
  1127.     usSet         : WORD;
  1128.     usSymbol      : WORD;
  1129.     sizfxCell     : SizeF;
  1130.   END;
  1131.  
  1132. (* pattern bundle for GpiSetAttributes and GpiQueryAttributes *)
  1133. TYPE
  1134.   AreaBundle = RECORD  (* pbnd *)
  1135.     lColor        : LongInt;
  1136.     lBackColor    : LongInt;
  1137.     usMixMode     : WORD;
  1138.     usBackMixMode : WORD;
  1139.     usSet         : WORD;
  1140.     usSymbol      : WORD;
  1141.     ptlRefPoint   : PointL;
  1142.   END;
  1143.  
  1144. (* image bundle for GpiSetAttributes and GpiQueryAttributes *)
  1145. TYPE
  1146.   ImageBundle = RECORD    (* ibmd *)
  1147.     lColor        : LongInt;
  1148.     lBackColor    : LongInt;
  1149.     usMixMode     : WORD;
  1150.     usBackMixMode : WORD;
  1151.   END;
  1152.  
  1153. (* pointer to any bundle used by GpiSet/QueryAttrs *)
  1154.   pBundle = Pointer;  (* typedef PVOID PBUNDLE; *)
  1155.  
  1156. (* array indices for GpiQueryTextBox *)
  1157. CONST
  1158.   TXTBOX_TOPLEFT    =  0;
  1159.   TXTBOX_BOTTOMLEFT =  1;
  1160.   TXTBOX_TOPRIGHT   =  2;
  1161.   TXTBOX_BOTTOMRIGHT = 3;
  1162.   TXTBOX_CONCAT     =  4;
  1163.  
  1164. (* array count for GpiQueryTextBox *)
  1165.   TXTBOX_COUNT      =  5;
  1166.  
  1167. (* return codes for GpiPtVisible *)
  1168.   PVIS_ERROR     =  0;
  1169.   PVIS_INVISIBLE =  1;
  1170.   PVIS_VISIBLE   =  2;
  1171.  
  1172. (* return codes for GpiRectVisible *)
  1173.   RVIS_ERROR      = 0;
  1174.   RVIS_INVISIBLE  = 1;
  1175.   RVIS_PARTIAL    = 2;
  1176.   RVIS_VISIBLE    = 3;
  1177.  
  1178. (*** attribute mode functions *)
  1179.  
  1180.   FUNCTION GpiSetAttrMode(ahps : hPs; l : LongInt) : BOOLEAN;
  1181.   FUNCTION Gpi16SetAttrMode(ahps : hPs; l : LongInt) : BOOLEAN;
  1182.  
  1183.   FUNCTION GpiQueryAttrMode(hPs : hPs) : LongInt;
  1184.   FUNCTION Gpi16QueryAttrMode(hPs : hPs) : LongInt;
  1185.  
  1186. (*** bundle primitive functions *)
  1187.  
  1188.   FUNCTION GpiSetAttrs(ahps  : hPs;
  1189.                        l1    : LongInt;
  1190.                        c1    : LongInt;
  1191.                        u     : LongInt;
  1192.                        P {?} : pBundle) : BOOLEAN;
  1193.   FUNCTION Gpi16SetAttrs(ahps  : hPs;
  1194.                          l1    : LongInt;
  1195.                          c1    : LongInt;
  1196.                          u     : LongInt;
  1197.                          P {?} : pBundle) : BOOLEAN;
  1198.  
  1199.   FUNCTION GpiQueryAttrs(ahps   : hPs;
  1200.                          l1, l2 : LongInt;
  1201.                          P {?}  : pBundle) : LongInt;
  1202.   FUNCTION Gpi16QueryAttrs(ahps   : hPs;
  1203.                            l1, l2 : LongInt;
  1204.                            P {?}  : pBundle) : LongInt;
  1205.  
  1206. (*** global primitive functions *)
  1207.  
  1208.   FUNCTION GpiSetBackColor(ahps : hPs; l : LongInt) : BOOLEAN;
  1209.   FUNCTION Gpi16SetBackColor(ahps : hPs; l : LongInt) : BOOLEAN;
  1210.  
  1211.   FUNCTION GpiQueryBackColor(ahps : hPs) : LongInt;
  1212.   FUNCTION Gpi16QueryBackColor(ahps : hPs) : LongInt;
  1213.  
  1214.   FUNCTION GpiSetMix(ahps : hPs; l : LongInt) : BOOLEAN;
  1215.   FUNCTION Gpi16SetMix(ahps : hPs; l : LongInt) : BOOLEAN;
  1216.  
  1217.   FUNCTION GpiQueryMix(ahps : hPs) : LongInt;
  1218.   FUNCTION Gpi16QueryMix(ahps : hPs) : LongInt;
  1219.  
  1220.   FUNCTION GpiSetBackMix(ahps : hPs; l : LongInt) : BOOLEAN;
  1221.   FUNCTION Gpi16SetBackMix(ahps : hPs; l : LongInt) : BOOLEAN;
  1222.  
  1223.   FUNCTION GpiQueryBackMix(ahps : hPs) : LongInt;
  1224.   FUNCTION Gpi16QueryBackMix(ahps : hPs) : LongInt;
  1225.  
  1226. (*** line primitive functions *)
  1227.  
  1228.   FUNCTION GpiSetLineType(ahps : hPs; l : LongInt) : BOOLEAN;
  1229.   FUNCTION Gpi16SetLineType(ahps : hPs; l : LongInt) : BOOLEAN;
  1230.  
  1231.   FUNCTION GpiQueryLineType(ahps : hPs) : LongInt;
  1232.   FUNCTION Gpi16QueryLineType(ahps : hPs) : LongInt;
  1233.  
  1234.   FUNCTION GpiSetLineWidth(ahps : hPs; f : Fixed) : BOOLEAN;
  1235.   FUNCTION Gpi16SetLineWidth(ahps : hPs; f : Fixed) : BOOLEAN;
  1236.  
  1237.   FUNCTION GpiQueryLineWidth(ahps : hPs) : Fixed;
  1238.   FUNCTION Gpi16QueryLineWidth(ahps : hPs) : Fixed;
  1239.  
  1240.   FUNCTION GpiSetLineWidthGeom(ahps : hPs; l : LongInt) : BOOLEAN;
  1241.   FUNCTION Gpi16SetLineWidthGeom(ahps : hPs; l : LongInt) : BOOLEAN;
  1242.  
  1243.   FUNCTION GpiQueryLineWidthGeom(ahps : hPs) : LongInt;
  1244.   FUNCTION Gpi16QueryLineWidthGeom(ahps : hPs) : LongInt;
  1245.  
  1246.   FUNCTION GpiSetLineEnd(ahps : hPs; l : LongInt) : BOOLEAN;
  1247.   FUNCTION Gpi16SetLineEnd(ahps : hPs; l : LongInt) : BOOLEAN;
  1248.  
  1249.   FUNCTION GpiQueryLineEnd(ahps : hPs) : LongInt;
  1250.   FUNCTION Gpi16QueryLineEnd(ahps : hPs) : LongInt;
  1251.  
  1252.   FUNCTION GpiSetLineJoin(ahps : hPs; l : LongInt) : BOOLEAN;
  1253.   FUNCTION Gpi16SetLineJoin(ahps : hPs; l : LongInt) : BOOLEAN;
  1254.  
  1255.   FUNCTION GpiQueryLineJoin(ahps : hPs) : LongInt;
  1256.   FUNCTION Gpi16QueryLineJoin(ahps : hPs) : LongInt;
  1257.  
  1258.   FUNCTION GpiSetCurrentPosition(ahps : hPs; aPointL : { LONG } PointL) : BOOLEAN;
  1259.   FUNCTION Gpi16SetCurrentPosition(ahps : hPs; aPointL : { LONG } PointL) : BOOLEAN;
  1260.  
  1261.   FUNCTION GpiQueryCurrentPosition(    ahps    : hPs;
  1262.                                    VAR aPointL : { LONG } PointL) : BOOLEAN;
  1263.   FUNCTION Gpi16QueryCurrentPosition(    ahps    : hPs;
  1264.                                      VAR aPointL : { LONG } PointL) : BOOLEAN;
  1265.  
  1266. (*** arc primitive functions *)
  1267.  
  1268.   FUNCTION GpiSetArcParams(ahps : hPs;
  1269.                            P    : { LONG } ArcParams) : BOOLEAN;
  1270.   FUNCTION Gpi16SetArcParams(ahps : hPs;
  1271.                              P    : { LONG } ArcParams) : BOOLEAN;
  1272.  
  1273.   FUNCTION GpiQueryArcParams(    ahps : hPs;
  1274.                              VAR P    : { LONG } ArcParams) : BOOLEAN;
  1275.   FUNCTION Gpi16QueryArcParams(    ahps : hPs;
  1276.                                VAR P    : { LONG } ArcParams) : BOOLEAN;
  1277.  
  1278.   FUNCTION GpiPointArc(ahps    : hPs;
  1279.                        aPointL : { LONG } PointL) : LongInt;
  1280.   FUNCTION Gpi16PointArc(ahps    : hPs;
  1281.                          aPointL : { LONG } PointL) : LongInt;
  1282.  
  1283.   FUNCTION GpiFullArc(ahps : hPs;
  1284.                       l1   : LongInt;
  1285.                       f    : Fixed) : LongInt;
  1286.   FUNCTION Gpi16FullArc(ahps : hPs;
  1287.                         l1   : LongInt;
  1288.                         f    : Fixed) : LongInt;
  1289.  
  1290.   FUNCTION GpiPartialArc(ahps       : hPs;
  1291.                          aPointL    : { LONG } PointL;
  1292.                          f1, f2, f3 : Fixed) : LongInt;
  1293.   FUNCTION Gpi16PartialArc(ahps       : hPs;
  1294.                          aPointL    : { LONG } PointL;
  1295.                          f1, f2, f3 : Fixed) : LongInt;
  1296.  
  1297.   FUNCTION GpiPolyFilletSharp(ahps    : hPs;
  1298.                               l1      : LongInt;
  1299.                               aPointL : { LONG } PointL;
  1300.                               f4      : { LONG } Fixed) : LongInt;
  1301.   FUNCTION Gpi16PolyFilletSharp(ahps    : hPs;
  1302.                               l1      : LongInt;
  1303.                               aPointL : { LONG } PointL;
  1304.                               f4      : { LONG } Fixed) : LongInt;
  1305.  
  1306.   FUNCTION GpiPolySpline(ahps    : hPs;
  1307.                          l1      : LongInt;
  1308.                          aPointL : { LONG } PointL) : LongInt;
  1309.   FUNCTION Gpi16PolySpline(ahps    : hPs;
  1310.                          l1      : LongInt;
  1311.                          aPointL : { LONG } PointL) : LongInt;
  1312.  
  1313.   FUNCTION GpiPolyFillet(ahps   : hPs;
  1314.                          l1     : LongInt;
  1315.                          PointL : { LONG } PointL) : LongInt;
  1316.   FUNCTION Gpi16PolyFillet(ahps   : hPs;
  1317.                          l1     : LongInt;
  1318.                          PointL : { LONG } PointL) : LongInt;
  1319.  
  1320. (*** area primitive functions *)
  1321.  
  1322.   FUNCTION GpiSetPatternSet(ahps : hPs; l : LongInt) : BOOLEAN;
  1323.   FUNCTION Gpi16SetPatternSet(ahps : hPs; l : LongInt) : BOOLEAN;
  1324.  
  1325.   FUNCTION GpiQueryPatternSet(ahps : hPs) : LongInt;
  1326.   FUNCTION Gpi16QueryPatternSet(ahps : hPs) : LongInt;
  1327.  
  1328.   FUNCTION GpiSetPatternRefPoint(ahps    : hPs;
  1329.                                  aPointL : { LONG } PointL) : BOOLEAN;
  1330.   FUNCTION Gpi16SetPatternRefPoint(ahps    : hPs;
  1331.                                  aPointL : { LONG } PointL) : BOOLEAN;
  1332.  
  1333.   FUNCTION GpiQueryPatternRefPoint(    ahps   : hPs;
  1334.                                    VAR PointL : { LONG } PointL) : BOOLEAN;
  1335.   FUNCTION Gpi16QueryPatternRefPoint(    ahps   : hPs;
  1336.                                    VAR PointL : { LONG } PointL) : BOOLEAN;
  1337. (*** character primitive functions *)
  1338.  
  1339.   FUNCTION GpiQueryCharStringPos(    ahps    : hPs;
  1340.                                      c1      : LongInt;
  1341.                                      l2      : LongInt;
  1342.                                      P       : pCh;
  1343.                                  VAR i1      : { LONG } LongInt;
  1344.                                  VAR aPointL : { LONG } PointL) : BOOLEAN;
  1345.   FUNCTION Gpi16QueryCharStringPos(  ahps    : hPs;
  1346.                                      c1      : LongInt;
  1347.                                      l2      : LongInt;
  1348.                                      P       : pCh;
  1349.                                  VAR i1      : { LONG } LongInt;
  1350.                                  VAR aPointL : { LONG } PointL) : BOOLEAN;
  1351.  
  1352.   FUNCTION GpiQueryCharStringPosAt(    hPs     : hPs;
  1353.                                        aPointL : { LONG } PointL;
  1354.                                        c3      : LongInt;
  1355.                                        l2      : LongInt;
  1356.                                        P       : pCh;
  1357.                                    VAR i1      : { LONG } LongInt;
  1358.                                    VAR aPointL : { LONG } PointL) : BOOLEAN;
  1359.   FUNCTION Gpi16QueryCharStringPosAt(  hPs     : hPs;
  1360.                                        aPointL : { LONG } PointL;
  1361.                                        c3      : LongInt;
  1362.                                        l2      : LongInt;
  1363.                                        P       : pCh;
  1364.                                    VAR i1      : { LONG } LongInt;
  1365.                                    VAR aPointL : { LONG } PointL) : BOOLEAN;
  1366.  
  1367.   FUNCTION GpiQueryTextBox(    ahps    : hPs;
  1368.                                l1      : LongInt;
  1369.                                P       : pCh;
  1370.                                l2      : LongInt;
  1371.                            VAR aPointL : { LONG } PointL) : BOOLEAN;
  1372.   FUNCTION Gpi16QueryTextBox(  ahps    : hPs;
  1373.                                l1      : LongInt;
  1374.                                P       : pCh;
  1375.                                l2      : LongInt;
  1376.                            VAR aPointL : { LONG } PointL) : BOOLEAN;
  1377.  
  1378.   FUNCTION GpiQueryDefCharBox(    ahps : hPs;
  1379.                               VAR P    : { LONG } SizeL) : BOOLEAN;
  1380.   FUNCTION Gpi16QueryDefCharBox(  ahps : hPs;
  1381.                               VAR P    : { LONG } SizeL) : BOOLEAN;
  1382.  
  1383.   FUNCTION GpiSetCharSet(  ahps : hPs; l : LongInt) : BOOLEAN;
  1384.   FUNCTION Gpi16SetCharSet(ahps : hPs; l : LongInt) : BOOLEAN;
  1385.  
  1386.   FUNCTION GpiQueryCharSet(ahps : hPs) : LongInt;
  1387.   FUNCTION Gpi16QueryCharSet(ahps : hPs) : LongInt;
  1388.  
  1389.   FUNCTION GpiSetCharBox(  ahps : hPs; SizeF : { LONG } SizeF) : BOOLEAN;
  1390.   FUNCTION Gpi16SetCharBox(ahps : hPs; SizeF : { LONG } SizeF) : BOOLEAN;
  1391.  
  1392.   FUNCTION GpiQueryCharBox(    ahps  : hPs;
  1393.                            VAR SizeF : { LONG } SizeF) : BOOLEAN;
  1394.   FUNCTION Gpi16QueryCharBox(    ahps  : hPs;
  1395.                              VAR SizeF : { LONG } SizeF) : BOOLEAN;
  1396.  
  1397.   FUNCTION GpiSetCharAngle(ahps       : hPs;
  1398.                            aGradientL : { LONG } GradientL) : BOOLEAN;
  1399.   FUNCTION Gpi16SetCharAngle(ahps       : hPs;
  1400.                            aGradientL : { LONG } GradientL) : BOOLEAN;
  1401.  
  1402.   FUNCTION GpiQueryCharAngle(    ahps       : hPs;
  1403.                              VAR aGradientL : { LONG } GradientL) : BOOLEAN;
  1404.   FUNCTION Gpi16QueryCharAngle(    ahps       : hPs;
  1405.                              VAR aGradientL : { LONG } GradientL) : BOOLEAN;
  1406.  
  1407.   FUNCTION GpiSetCharShear(ahps : hPs; aPointL : { LONG } PointL) : BOOLEAN;
  1408.   FUNCTION Gpi16SetCharShear(ahps : hPs; aPointL : { LONG } PointL) : BOOLEAN;
  1409.  
  1410.   FUNCTION GpiQueryCharShear(    ahps    : hPs;
  1411.                              VAR aPointL : { LONG } PointL) : BOOLEAN;
  1412.   FUNCTION Gpi16QueryCharShear(    ahps    : hPs;
  1413.                                VAR aPointL : { LONG } PointL) : BOOLEAN;
  1414.  
  1415.   FUNCTION GpiSetCharDirection(ahps : hPs; l : LongInt) : BOOLEAN;
  1416.   FUNCTION Gpi16SetCharDirection(ahps : hPs; l : LongInt) : BOOLEAN;
  1417.  
  1418.   FUNCTION GpiQueryCharDirection(ahps : hPs) : LongInt;
  1419.   FUNCTION Gpi16QueryCharDirection(ahps : hPs) : LongInt;
  1420.  
  1421.   FUNCTION GpiSetCharMode(ahps : hPs; l : LongInt) : BOOLEAN;
  1422.   FUNCTION Gpi16SetCharMode(ahps : hPs; l : LongInt) : BOOLEAN;
  1423.  
  1424.   FUNCTION GpiQueryCharMode(ahps : hPs) : LongInt;
  1425.   FUNCTION Gpi16QueryCharMode(ahps : hPs) : LongInt;
  1426.  
  1427.   FUNCTION GpiCharStringPos(    ahps : hPs;
  1428.                                 ectl : { LONG } RectL;
  1429.                                 c4   : LongInt;
  1430.                                 l2   : LongInt;
  1431.                                 P    : pCh;
  1432.                             VAR i1   : { LONG } LongInt) : LongInt;
  1433.   FUNCTION Gpi16CharStringPos(  ahps : hPs;
  1434.                                 ectl : { LONG } RectL;
  1435.                                 c4   : LongInt;
  1436.                                 l2   : LongInt;
  1437.                                 P    : pCh;
  1438.                             VAR i1   : { LONG } LongInt) : LongInt;
  1439.  
  1440.   FUNCTION GpiCharStringPosAt(ahps    : hPs;
  1441.                               aPointL : { LONG } PointL;
  1442.                               aRectl  : { LONG } RectL;
  1443.                               c4      : LongInt;
  1444.                               l2      : LongInt;
  1445.                               P       : pCh;
  1446.                               i6      : LongInt) : LongInt;
  1447.   FUNCTION Gpi16CharStringPosAt(ahps  : hPs;
  1448.                               aPointL : { LONG } PointL;
  1449.                               aRectl  : { LONG } RectL;
  1450.                               c4      : LongInt;
  1451.                               l2      : LongInt;
  1452.                               P       : pCh;
  1453.                               i6      : LongInt) : LongInt;
  1454.  
  1455. (*** marker primitive functions *)
  1456.  
  1457.   FUNCTION GpiSetMarkerSet(ahps : hPs; l : LongInt) : BOOLEAN;
  1458.   FUNCTION Gpi16SetMarkerSet(ahps : hPs; l : LongInt) : BOOLEAN;
  1459.  
  1460.   FUNCTION GpiQueryMarkerSet(ahps : hPs) : LongInt;
  1461.   FUNCTION Gpi16QueryMarkerSet(ahps : hPs) : LongInt;
  1462.  
  1463.   FUNCTION GpiSetMarker(ahps : hPs; l : LongInt) : BOOLEAN;
  1464.   FUNCTION Gpi16SetMarker(ahps : hPs; l : LongInt) : BOOLEAN;
  1465.  
  1466.   FUNCTION GpiQueryMarker(ahps : hPs) : LongInt;
  1467.   FUNCTION Gpi16QueryMarker(ahps : hPs) : LongInt;
  1468.  
  1469.   FUNCTION GpiSetMarkerBox(ahps : hPs; aSizeF : { LONG } SizeF) : BOOLEAN;
  1470.   FUNCTION Gpi16SetMarkerBox(ahps : hPs; aSizeF : { LONG } SizeF) : BOOLEAN;
  1471.  
  1472.   FUNCTION GpiQueryMarkerBox(ahps : hPs; VAR aSizeF : { LONG } SizeF) : BOOLEAN;
  1473.   FUNCTION Gpi16QueryMarkerBox(ahps : hPs; VAR aSizeF : { LONG } SizeF) : BOOLEAN;
  1474.  
  1475.   FUNCTION GpiMarker(ahps : hPs; aPointL : { LONG } PointL) : LongInt;
  1476.   FUNCTION Gpi16Marker(ahps : hPs; aPointL : { LONG } PointL) : LongInt;
  1477.  
  1478.   FUNCTION GpiPolyMarker(ahps    : hPs;
  1479.                          l1      : LongInt;
  1480.                          aPointL : { LONG } PointL) : LongInt;
  1481.   FUNCTION Gpi16PolyMarker(ahps    : hPs;
  1482.                            l1      : LongInt;
  1483.                            aPointL : { LONG } PointL) : LongInt;
  1484.  
  1485. (*** image primitive functions *)
  1486.  
  1487.   FUNCTION GpiImage(ahps   : hPs;
  1488.                     l1     : LongInt;
  1489.                     aSizeL : { LONG } SizeL;
  1490.                     c7     : LongInt;
  1491.                     aByte  : Pointer) : LongInt;
  1492.   FUNCTION Gpi16Image(ahps : hPs;
  1493.                     l1     : LongInt;
  1494.                     aSizeL : { LONG } SizeL;
  1495.                     c7     : LongInt;
  1496.                     aByte  : Pointer) : LongInt;
  1497.  
  1498. (*** miscellaneous primitive functions *)
  1499.  
  1500.   FUNCTION GpiPop(  ahps : hPs; l : LongInt) : BOOLEAN;
  1501.   FUNCTION Gpi16Pop(ahps : hPs; l : LongInt) : BOOLEAN;
  1502.  
  1503.   FUNCTION GpiPtVisible(ahps : hPs; aPointL : { LONG } PointL) : LongInt;
  1504.   FUNCTION Gpi16PtVisible(ahps : hPs; aPointL : { LONG } PointL) : LongInt;
  1505.  
  1506.   FUNCTION GpiRectVisible(ahps : hPs; aRectl : { LONG } RectL) : LongInt;
  1507.   FUNCTION Gpi16RectVisible(ahps : hPs; aRectl : { LONG } RectL) : LongInt;
  1508.  
  1509.   FUNCTION GpiComment(ahps  : hPs;
  1510.                       l1    : LongInt;
  1511.                       aByte : Pointer) : BOOLEAN;
  1512.   FUNCTION Gpi16Comment(ahps  : hPs;
  1513.                         l1    : LongInt;
  1514.                         aByte : Pointer) : BOOLEAN;
  1515.  
  1516. (* return codes from GpiCreateLogFont *)
  1517. CONST
  1518.   FONT_DEFAULT   =  1;
  1519.   FONT_MATCH     =  2;
  1520.  
  1521. (* lcid type for GpiQuerySetIds *)
  1522.   LCIDT_FONT     =  6;
  1523.  
  1524.   LCIDT_BITMAP   =  7;
  1525.  
  1526. (* constant used to delete all lcids by GpiDeleteSetId *)
  1527.   LCID_ALL       =  -1;
  1528.  
  1529. (* kerning data returned by GpiQueryKerningPairs *)
  1530. TYPE
  1531.   KerningPairs = RECORD   (* krnpr *)
  1532.     sFirstChar     : INTEGER;
  1533.     sSecondChar    : INTEGER;
  1534.     sKerningAmount : INTEGER;
  1535.   END;
  1536.   pKerningPairs = ^KerningPairs;
  1537.  
  1538. (* options for GpiQueryFonts *)
  1539. CONST
  1540.   QF_PUBLIC       =        $00001;
  1541.   QF_PRIVATE      =        $00002;
  1542.  
  1543. (* font file descriptions for GpiQueryFontFileDescriptions *)
  1544. TYPE
  1545.   FFDescs  = ARRAY [0..1, 0..FACESIZE-1] OF CHAR; (* ffdescs *)
  1546.   pFFDescs = ^FFDescs;
  1547.  
  1548. (*** physical and logical font functions *)
  1549.  
  1550.   FUNCTION GpiDeleteSetId(ahps : hPs; l : LongInt) : BOOLEAN;
  1551.   FUNCTION Gpi16DeleteSetId(ahps : hPs; l : LongInt) : BOOLEAN;
  1552.  
  1553.   FUNCTION GpiQueryNumberSetIds(ahps : hPs) : LongInt;
  1554.   FUNCTION Gpi16QueryNumberSetIds(ahps : hPs) : LongInt;
  1555.  
  1556.   FUNCTION GpiQuerySetIds(    ahps : hPs;
  1557.                               l1   : LongInt;
  1558.                           VAR l9   : { LONG } LongInt;
  1559.                           VAR aStr8: { LONG } Str8;
  1560.                           VAR i3   : { LONG } LongInt) : BOOLEAN;
  1561.   FUNCTION Gpi16QuerySetIds(  ahps : hPs;
  1562.                               l1   : LongInt;
  1563.                           VAR l9   : { LONG } LongInt;
  1564.                           VAR aStr8: { LONG } Str8;
  1565.                           VAR i3   : { LONG } LongInt) : BOOLEAN;
  1566.  
  1567.   FUNCTION GpiLoadFonts(  ahab : HAB; P : pChar) : BOOLEAN;
  1568.   FUNCTION Gpi16LoadFonts(ahab : HAB; P : pChar) : BOOLEAN;
  1569.  
  1570.   FUNCTION GpiUnloadFonts(  ahab : HAB; P : pChar) : BOOLEAN;
  1571.   FUNCTION Gpi16UnloadFonts(ahab : HAB; P : pChar) : BOOLEAN;
  1572.  
  1573.   FUNCTION GpiCreateLogFont(    ahps    : hPs;
  1574.                             VAR aStr8   : { LONG } Str8;
  1575.                                 i5      : LongInt;
  1576.                             VAR aFAttrs : { LONG } fAttrs) : LongInt;
  1577.   FUNCTION Gpi16CreateLogFont(    ahps    : hPs;
  1578.                               VAR aStr8   : { LONG } Str8;
  1579.                                   i5      : LongInt;
  1580.                               VAR aFAttrs : { LONG } fAttrs) : LongInt;
  1581.  
  1582.   FUNCTION GpiQueryFonts(    ahps         : hPs;
  1583.                              l1           : LongInt;
  1584.                              P            : pChar;
  1585.                          VAR c2           : { LONG } LongInt;
  1586.                              c3           : LongInt;
  1587.                          VAR aFontMetrics : { LONG } FontMetrics) : LongInt;
  1588.   FUNCTION Gpi16QueryFonts(    ahps         : hPs;
  1589.                                l1           : LongInt;
  1590.                                P            : pChar;
  1591.                            VAR c2           : { LONG } LongInt;
  1592.                                c3           : LongInt;
  1593.                            VAR aFontMetrics : { LONG } FontMetrics) : LongInt;
  1594.  
  1595.   FUNCTION GpiQueryFontMetrics(    ahps         : hPs;
  1596.                                    l1           : LongInt;
  1597.                                VAR aFontMetrics : { LONG } FontMetrics) : BOOLEAN;
  1598.   FUNCTION Gpi16QueryFontMetrics(  ahps         : hPs;
  1599.                                    l1           : LongInt;
  1600.                                VAR aFontMetrics : { LONG } FontMetrics) : BOOLEAN;
  1601.  
  1602.   FUNCTION GpiQueryKerningPairs(    ahps          : hPs;
  1603.                                     l1            : LongInt;
  1604.                                 VAR aKerningPairs : { LONG } KerningPairs) : LongInt;
  1605.   FUNCTION Gpi16QueryKerningPairs(  ahps          : hPs;
  1606.                                     l1            : LongInt;
  1607.                                 VAR aKerningPairs : { LONG } KerningPairs) : LongInt;
  1608.  
  1609.   FUNCTION GpiQueryWidthTable(    ahps      : hPs;
  1610.                                   l1        : LongInt;
  1611.                                   l6        : LongInt;
  1612.                               VAR LongArray : LongInt) : BOOLEAN;
  1613.   FUNCTION Gpi16QueryWidthTable(  ahps      : hPs;
  1614.                                   l1        : LongInt;
  1615.                                   l6        : LongInt;
  1616.                               VAR LongArray : LongInt) : BOOLEAN;
  1617.  
  1618.   FUNCTION GpiSetCp(ahps : hPs; c8 : WORD) : BOOLEAN;
  1619.   FUNCTION Gpi16SetCp(ahps : hPs; c8 : WORD) : BOOLEAN;
  1620.  
  1621.   FUNCTION GpiQueryCp(ahps : hPs) : WORD;
  1622.   FUNCTION Gpi16QueryCp(ahps : hPs) : WORD;
  1623.  
  1624.   FUNCTION GpiQueryFontFileDescriptions(    ahab     : HAB;
  1625.                                             P        : pChar;
  1626.                                         VAR c2       : { LONG } LongInt;
  1627.                                         VAR aFFDescs : { LONG } FFDescs) : LongInt;
  1628.   FUNCTION Gpi16QueryFontFileDescriptions(  ahab     : HAB;
  1629.                                             P        : pChar;
  1630.                                         VAR c2       : { LONG } LongInt;
  1631.                                         VAR aFFDescs : { LONG } FFDescs) : LongInt;
  1632.  
  1633. (* rastor operations defined for GpiBitBlt *)
  1634. CONST
  1635.   ROP_SRCCOPY      =       $000CC;
  1636.   ROP_SRCPAINT     =       $000EE;
  1637.   ROP_SRCAND       =       $00088;
  1638.   ROP_SRCINVERT    =       $00066;
  1639.   ROP_SRCERASE     =       $00044;
  1640.   ROP_NOTSRCCOPY   =       $00033;
  1641.   ROP_NOTSRCERASE  =       $00011;
  1642.   ROP_MERGECOPY    =       $000C0;
  1643.   ROP_MERGEPAINT   =       $000BB;
  1644.   ROP_PATCOPY      =       $000F0;
  1645.   ROP_PATPAINT     =       $000FB;
  1646.   ROP_PATINVERT    =       $0005A;
  1647.   ROP_DSTINVERT    =       $00055;
  1648.   ROP_ZERO         =       $00000;
  1649.   ROP_ONE          =       $000FF;
  1650.  
  1651. (* Blt options for GpiBitBlt *)
  1652.   BBO_OR           =   0;
  1653.   BBO_AND          =   1;
  1654.   BBO_IGNORE       =   2;
  1655.  
  1656. (* error return for GpiSetBitmap *)
  1657.   HBM_ERROR        =  -1;
  1658.  
  1659. (*** bitmap and pel functions *)
  1660.  
  1661.   FUNCTION GpiDeleteBitmap(  aHBitmap : hBitmap) : BOOLEAN;
  1662.   FUNCTION Gpi16DeleteBitmap(aHBitmap : hBitmap) : BOOLEAN;
  1663.  
  1664.   FUNCTION GpiSetBitmap(ahps : hPs; aHBitmap : hBitmap) : hBitmap;
  1665.   FUNCTION Gpi16SetBitmap(ahps : hPs; aHBitmap : hBitmap) : hBitmap;
  1666.  
  1667.   FUNCTION GpiBitBlt(ahps    : hPs;
  1668.                      ahps    : hPs;
  1669.                      c3      : LongInt;
  1670.                      aPointL : { LONG } PointL;
  1671.                      c4      : LongInt;
  1672.                      i9      : LongInt) : LongInt;
  1673.   FUNCTION Gpi16BitBlt(ahps    : hPs;
  1674.                      ahps    : hPs;
  1675.                      c3      : LongInt;
  1676.                      aPointL : { LONG } PointL;
  1677.                      c4      : LongInt;
  1678.                      i9      : LongInt) : LongInt;
  1679.  
  1680.   FUNCTION GpiWCBitBlt(ahps     : hPs;
  1681.                        aHBitmap : hBitmap;
  1682.                        ac3      : LongInt;
  1683.                        aPointL  : { LONG } PointL;
  1684.                        c3       : LongInt;
  1685.                        i9       : LongInt) : LongInt;
  1686.   FUNCTION Gpi16WCBitBlt(ahps     : hPs;
  1687.                          aHBitmap : hBitmap;
  1688.                          ac3      : LongInt;
  1689.                        aPointL  : { LONG } PointL;
  1690.                        c3       : LongInt;
  1691.                        i9       : LongInt) : LongInt;
  1692.  
  1693. (* usage flags for GpiCreateBitmap *)
  1694. CONST
  1695.   CBM_INIT   =     $00004;
  1696.  
  1697. (* bitmap parameterization used by GpiCreateBitmap and others *)
  1698. TYPE
  1699.   BitmapInfoHeader = RECORD       (* bmp *)
  1700.     cbFix     : LongInt;
  1701.     cx        : WORD;
  1702.     cy        : WORD;
  1703.     cPlanes   : WORD;
  1704.     cBitCount : WORD;
  1705.   END;
  1706.   pBitmapInfoHeader = ^BitmapInfoHeader;
  1707.  
  1708. (* RGB data for _BITMAPINFO struct *)
  1709. TYPE
  1710.   RGB = RECORD            (* rgb *)
  1711.     bBlue  : BYTE;
  1712.     bGreen : BYTE;
  1713.     bRed   : BYTE;
  1714.   END;
  1715.  
  1716. (* bitmap data used by GpiSetBitmapBits and others *)
  1717.   BitmapInfo = RECORD
  1718.     cbFix     : LongInt;
  1719.     cx        : WORD;
  1720.     cy        : WORD;
  1721.     cPlanes   : WORD;
  1722.     cBitCount : WORD;
  1723.     argbColor : ARRAY [0..0] OF RGB;
  1724.   END;
  1725.   pBitmapInfo = ^BitmapInfo;
  1726.  
  1727. (* error return code for GpiSet/QueryBitmapBits *)
  1728. CONST
  1729.   BMB_ERROR   =    (-1);
  1730.  
  1731. (*** bitmap and pel functions *)
  1732.  
  1733.   FUNCTION GpiCreateBitmap(ahps              : hPs;
  1734.                            aBitMapInfoHeader : { LONG } BitmapInfoHeader;
  1735.                            i8                : LongInt;
  1736.                            aByte             : Pointer;
  1737.                            aBitMapInfo       : { LONG } BitmapInfo) : hBitmap;
  1738.   FUNCTION Gpi16CreateBitmap(ahps            : hPs;
  1739.                            aBitMapInfoHeader : { LONG } BitmapInfoHeader;
  1740.                            i8                : LongInt;
  1741.                            aByte             : Pointer;
  1742.                            aBitMapInfo       : { LONG } BitmapInfo) : hBitmap;
  1743.  
  1744.   FUNCTION GpiSetBitmapDimension(aHBitmap : hBitmap;
  1745.                                  aPSizeL  : { LONG } SizeL) : BOOLEAN;
  1746.   FUNCTION Gpi16SetBitmapDimension(aHBitmap : hBitmap;
  1747.                                    aPSizeL  : { LONG } SizeL) : BOOLEAN;
  1748.  
  1749.   FUNCTION GpiQueryBitmapDimension(    aHBitmap : hBitmap;
  1750.                                    VAR aPSizeL  : { LONG } SizeL) : BOOLEAN;
  1751.   FUNCTION Gpi16QueryBitmapDimension(  aHBitmap : hBitmap;
  1752.                                    VAR aPSizeL  : { LONG } SizeL) : BOOLEAN;
  1753.  
  1754.   FUNCTION GpiQueryDeviceBitmapFormats(    ahps : hPs;
  1755.                                            l1   : LongInt;
  1756.                                        VAR l7   : { LONG } LongInt) : BOOLEAN;
  1757.   FUNCTION Gpi16QueryDeviceBitmapFormats(  ahps : hPs;
  1758.                                            l1   : LongInt;
  1759.                                        VAR l7   : { LONG } LongInt) : BOOLEAN;
  1760.  
  1761.   FUNCTION GpiQueryBitmapParameters(    aHBitmap          : hBitmap;
  1762.                                     VAR aBitMapInfoHeader : { LONG } BitmapInfoHeader) : BOOLEAN;
  1763.   FUNCTION Gpi16QueryBitmapParameters(  aHBitmap          : hBitmap;
  1764.                                     VAR aBitMapInfoHeader : { LONG } BitmapInfoHeader) : BOOLEAN;
  1765.  
  1766.   FUNCTION GpiQueryBitmapBits(    ahps        : hPs;
  1767.                                   l1          : LongInt;
  1768.                                   l6          : LongInt;
  1769.                                   aByte       : Pointer;
  1770.                               VAR aBitMapInfo : { LONG } BitmapInfo) : LongInt;
  1771.   FUNCTION Gpi16QueryBitmapBits(  ahps        : hPs;
  1772.                                   l1          : LongInt;
  1773.                                   l6          : LongInt;
  1774.                                   aByte       : Pointer;
  1775.                               VAR aBitMapInfo : { LONG } BitmapInfo) : LongInt;
  1776.  
  1777.   FUNCTION GpiSetBitmapBits(ahps        : hPs;
  1778.                             l1          : LongInt;
  1779.                             l6          : LongInt;
  1780.                             aByte       : Pointer;
  1781.                             aBitMapInfo : { LONG } BitmapInfo) : LongInt;
  1782.   FUNCTION Gpi16SetBitmapBits(ahps      : hPs;
  1783.                             l1          : LongInt;
  1784.                             l6          : LongInt;
  1785.                             aByte       : Pointer;
  1786.                             aBitMapInfo : { LONG } BitmapInfo) : LongInt;
  1787.  
  1788.   FUNCTION GpiSetPel(  ahps : hPs; aPointL : { LONG } PointL) : LongInt;
  1789.   FUNCTION Gpi16SetPel(ahps : hPs; aPointL : { LONG } PointL) : LongInt;
  1790.  
  1791.   FUNCTION GpiQueryPel(    ahps    : hPs;
  1792.                        VAR aPointL : { LONG } PointL) : LongInt;
  1793.   FUNCTION Gpi16QueryPel(    ahps    : hPs;
  1794.                        VAR aPointL : { LONG } PointL) : LongInt;
  1795.  
  1796.   FUNCTION GpiSetBitmapId(ahps : hPs; aHBitmap : hBitmap; c4 : LongInt) : BOOLEAN;
  1797.   FUNCTION Gpi16SetBitmapId(ahps : hPs; aHBitmap : hBitmap; c4 : LongInt) : BOOLEAN;
  1798.  
  1799.   FUNCTION GpiQueryBitmapHandle(ahps : hPs; l : LongInt) : hBitmap;
  1800.   FUNCTION Gpi16QueryBitmapHandle(ahps : hPs; l : LongInt) : hBitmap;
  1801.  
  1802. (* options for GpiCombineRegion *)
  1803. CONST
  1804.   CRGN_OR      =           1;
  1805.   CRGN_COPY    =           2;
  1806.   CRGN_XOR     =           4;
  1807.   CRGN_AND     =           6;
  1808.   CRGN_DIFF    =           7;
  1809.  
  1810. (* usDirection of returned region data for GpiQueryRegionRects *)
  1811.   RECTDIR_LFRT_TOPBOT  =   1;
  1812.   RECTDIR_RTLF_TOPBOT  =   2;
  1813.   RECTDIR_LFRT_BOTTOP  =   3;
  1814.   RECTDIR_RTLF_BOTTOP  =   4;
  1815.  
  1816. (* control data for GpiQueryRegionRects *)
  1817. TYPE
  1818.   rgnRect = RECORD        (* rgnrc *)
  1819.     ircStart    : WORD;
  1820.     Crc         : WORD;
  1821.     CrcReturned : WORD;
  1822.     usDirection : WORD;
  1823.   END;
  1824.   pRGNRect = ^rgnRect;
  1825.  
  1826. (* return code to indicate type of region for GpiCombineRegion and others *)
  1827. CONST
  1828.   RGN_ERROR    =   0;
  1829.   RGN_NULL     =   1;
  1830.   RGN_RECT     =   2;
  1831.   RGN_COMPLEX  =   3;
  1832.  
  1833. (* return codes for GpiPtInRegion *)
  1834.   PRGN_ERROR    =  0;
  1835.   PRGN_OUTSIDE  =  1;
  1836.   PRGN_INSIDE   =  2;
  1837.  
  1838. (* return codes for GpiRectInRegion *)
  1839.   RRGN_ERROR    =  0;
  1840.   RRGN_OUTSIDE  =  1;
  1841.   RRGN_PARTIAL  =  2;
  1842.   RRGN_INSIDE   =  3;
  1843.  
  1844. (* return codes for GpiEqualRegion *)
  1845.   EQRGN_ERROR   =  0;
  1846.   EQRGN_NOTEQUAL =  1;
  1847.   EQRGN_EQUAL   =  2;
  1848.  
  1849. (* error return code for GpiSetRegion *)
  1850.   HRGN_ERROR    =  -1;
  1851.  
  1852. (*** main region functions *)
  1853.  
  1854.   FUNCTION GpiCreateRegion(ahps   : hPs;
  1855.                            l1     : LongInt;
  1856.                            aRectl : { LONG } RectL) : HRGN;
  1857.   FUNCTION Gpi16CreateRegion(ahps   : hPs;
  1858.                              l1     : LongInt;
  1859.                              aRectl : { LONG } RectL) : HRGN;
  1860.  
  1861.   FUNCTION GpiSetRegion(ahps   : hPs;
  1862.                         ahRGN  : HRGN;
  1863.                         c3     : LongInt;
  1864.                         aRectl : { LONG } RectL) : BOOLEAN;
  1865.   FUNCTION Gpi16SetRegion(ahps : hPs;
  1866.                         ahRGN  : HRGN;
  1867.                         c3     : LongInt;
  1868.                         aRectl : { LONG } RectL) : BOOLEAN;
  1869.  
  1870.   FUNCTION GpiDestroyRegion(ahps : hPs; hRGN1 : HRGN) : BOOLEAN;
  1871.   FUNCTION Gpi16DestroyRegion(ahps : hPs; hRGN1 : HRGN) : BOOLEAN;
  1872.  
  1873.   FUNCTION GpiCombineRegion(ahps  : hPs;
  1874.                             hRGN1 : HRGN;
  1875.                             hRGN2 : HRGN;
  1876.                             hRGN3 : HRGN;
  1877.                             c4    : LongInt) : LongInt;
  1878.   FUNCTION Gpi16CombineRegion(ahps: hPs;
  1879.                             hRGN1 : HRGN;
  1880.                             hRGN2 : HRGN;
  1881.                             hRGN3 : HRGN;
  1882.                             c4    : LongInt) : LongInt;
  1883.  
  1884.   FUNCTION GpiEqualRegion(ahps  : hPs;
  1885.                           hRGN1 : HRGN;
  1886.                           hRGN2 : HRGN) : LongInt;
  1887.   FUNCTION Gpi16EqualRegion(ahps  : hPs;
  1888.                             hRGN1 : HRGN;
  1889.                             hRGN2 : HRGN) : LongInt;
  1890.  
  1891.   FUNCTION GpiOffsetRegion(ahps    : hPs;
  1892.                            ahRGN   : HRGN;
  1893.                            aPointL : { LONG } PointL) : BOOLEAN;
  1894.   FUNCTION Gpi16OffsetRegion(ahps    : hPs;
  1895.                              ahRGN   : HRGN;
  1896.                              aPointL : { LONG } PointL) : BOOLEAN;
  1897.  
  1898.   FUNCTION GpiPtInRegion(ahps    : hPs;
  1899.                          ahRGN   : HRGN;
  1900.                          aPointL : { LONG } PointL) : LongInt;
  1901.   FUNCTION Gpi16PtInRegion(ahps    : hPs;
  1902.                          ahRGN   : HRGN;
  1903.                          aPointL : { LONG } PointL) : LongInt;
  1904.  
  1905.   FUNCTION GpiRectInRegion(ahps   : hPs;
  1906.                            ahRGN  : HRGN;
  1907.                            aRectl : { LONG } RectL) : LongInt;
  1908.   FUNCTION Gpi16RectInRegion(ahps   : hPs;
  1909.                              ahRGN  : HRGN;
  1910.                              aRectl : { LONG } RectL) : LongInt;
  1911.  
  1912.   FUNCTION GpiQueryRegionBox(    ahps   : hPs;
  1913.                                  ahRGN  : HRGN;
  1914.                              VAR aRectl : { LONG } RectL) : LongInt;
  1915.   FUNCTION Gpi16QueryRegionBox(    ahps   : hPs;
  1916.                                    ahRGN  : HRGN;
  1917.                                VAR aRectl : { LONG } RectL) : LongInt;
  1918.  
  1919.   FUNCTION GpiQueryRegionRects(    ahps     : hPs;
  1920.                                    ahRGN    : HRGN;
  1921.                                    aRectl   : { LONG } RectL;
  1922.                                    aRGNRect : { LONG } rgnRect;
  1923.                                VAR aRectl   : { LONG } RectL) : BOOLEAN;
  1924.   FUNCTION Gpi16QueryRegionRects(    ahps     : hPs;
  1925.                                      ahRGN    : HRGN;
  1926.                                      aRectl   : { LONG } RectL;
  1927.                                      aRGNRect : { LONG } rgnRect;
  1928.                                  VAR aRectl   : { LONG } RectL) : BOOLEAN;
  1929.  
  1930.   FUNCTION GpiPaintRegion(  ahps : hPs; ahRGN : HRGN) : LongInt;
  1931.   FUNCTION Gpi16PaintRegion(ahps : hPs; ahRGN : HRGN) : LongInt;
  1932.  
  1933. (*** clip region functions *)
  1934.  
  1935.   FUNCTION GpiSetClipRegion(ahps  : hPs;
  1936.                             ahRGN : HRGN;
  1937.                             ahRGN : { LONG } HRGN) : LongInt;
  1938.   FUNCTION Gpi16SetClipRegion(ahps  : hPs;
  1939.                               ahRGN : HRGN;
  1940.                               ahRGN : { LONG } HRGN) : LongInt;
  1941.  
  1942.   FUNCTION GpiQueryClipRegion(ahps : hPs) : HRGN;
  1943.   FUNCTION Gpi16QueryClipRegion(ahps : hPs) : HRGN;
  1944.  
  1945.   FUNCTION GpiQueryClipBox(    ahps   : hPs;
  1946.                            VAR aRectl : { LONG } RectL) : LongInt;
  1947.   FUNCTION Gpi16QueryClipBox(  ahps   : hPs;
  1948.                            VAR aRectl : { LONG } RectL) : LongInt;
  1949.  
  1950.   FUNCTION GpiIntersectClipRectangle(ahps   : hPs;
  1951.                                      aRectl : { LONG } RectL) : LongInt;
  1952.   FUNCTION Gpi16IntersectClipRectangle(ahps   : hPs;
  1953.                                        aRectl : { LONG } RectL) : LongInt;
  1954.  
  1955.   FUNCTION GpiExcludeClipRectangle(ahps   : hPs;
  1956.                                    aRectl : { LONG } RectL) : LongInt;
  1957.   FUNCTION Gpi16ExcludeClipRectangle(ahps   : hPs;
  1958.                                      aRectl : { LONG } RectL) : LongInt;
  1959.  
  1960.   FUNCTION GpiOffsetClipRegion(ahps    : hPs;
  1961.                                aPointL : { LONG } PointL) : LongInt;
  1962.   FUNCTION Gpi16OffsetClipRegion(ahps    : hPs;
  1963.                                aPointL : { LONG } PointL) : LongInt;
  1964.  
  1965. (* constants for index values of options array for GpiPlayMetafile *)
  1966. CONST
  1967.   PMF_SEGBASE    =        0;
  1968.   PMF_LOADTYPE   =        1;
  1969.   PMF_RESOLVE    =        2;
  1970.   PMF_LCIDS      =        3;
  1971.   PMF_RESET      =        4;
  1972.   PMF_SUPPRESS   =        5;
  1973.   PMF_COLORTABLES =       6;
  1974.   PMF_COLORREALIZABLE =   7;
  1975.   PMF_DEFAULTS =   8;
  1976.  
  1977. (* options for GpiPlayMetafile *)
  1978.   RS_DEFAULT     = 0;
  1979.   RS_NODISCARD   = 1;
  1980.   LC_DEFAULT     = 0;
  1981.   LC_NOLOAD      = 1;
  1982.   LC_LOADDISC    = 3;
  1983.   LT_DEFAULT     = 0;
  1984.   LT_NOMODIFY    = 1;
  1985.   LT_ORIGINALVIEW= 4;
  1986.   RES_DEFAULT    = 0;
  1987.   RES_NORESET    = 1;
  1988.   RES_RESET      = 2;
  1989.   SUP_DEFAULT    = 0;
  1990.   SUP_NOSUPPRESS = 1;
  1991.   SUP_SUPPRESS   = 2;
  1992.   CTAB_DEFAULT   = 0;
  1993.   CTAB_NOMODIFY  = 1;
  1994.   CTAB_REPLACE   = 3;
  1995.   CREA_DEFAULT   = 0;
  1996.   CREA_REALIZE   = 1;
  1997.   CREA_NOREALIZE = 2;
  1998.   DDEF_DEFAULT  = 0;
  1999.   DDEF_IGNORE    = 1;
  2000.   DDEF_LOADDISC  = 3;
  2001.   RSP_DEFAULT    = 0;
  2002.   RSP_NODISCARD  = 1;
  2003.  
  2004. (*** metafile functions *)
  2005.  
  2006.   FUNCTION GpiLoadMetaFile(ahab : HAB; P : pChar) : hMF;
  2007.   FUNCTION Gpi16LoadMetaFile(ahab : HAB; P : pChar) : hMF;
  2008.  
  2009.   FUNCTION GpiPlayMetaFile(    ahps : hPs;
  2010.                                aHMF : hMF;
  2011.                                c3   : LongInt;
  2012.                            VAR c2   : { LONG } LongInt;
  2013.                            VAR c1   : { LONG } LongInt;
  2014.                                c4   : LongInt;
  2015.                                P    : pChar) : LongInt;
  2016.   FUNCTION Gpi16PlayMetaFile(  ahps : hPs;
  2017.                                aHMF : hMF;
  2018.                                c3   : LongInt;
  2019.                            VAR c2   : { LONG } LongInt;
  2020.                            VAR c1   : { LONG } LongInt;
  2021.                                c4   : LongInt;
  2022.                                P    : pChar) : LongInt;
  2023.  
  2024.   FUNCTION GpiSaveMetaFile(  aHMF : hMF; P : pChar) : BOOLEAN;
  2025.   FUNCTION Gpi16SaveMetaFile(aHMF : hMF; P : pChar) : BOOLEAN;
  2026.  
  2027.   FUNCTION GpiDeleteMetaFile(aHMF : hMF) : BOOLEAN;
  2028.   FUNCTION Gpi16DeleteMetaFile(aHMF : hMF) : BOOLEAN;
  2029.  
  2030.   FUNCTION GpiCopyMetaFile(aHMF : hMF) : hMF;
  2031.   FUNCTION Gpi16CopyMetaFile(aHMF : hMF) : hMF;
  2032.  
  2033.   FUNCTION GpiQueryMetaFileLength(aHMF : hMF) : LongInt;
  2034.   FUNCTION Gpi16QueryMetaFileLength(aHMF : hMF) : LongInt;
  2035.  
  2036.   FUNCTION GpiQueryMetaFileBits(aHMF   : hMF;
  2037.                                 c1, c3 : LongInt;
  2038.                                 aByte  : Pointer) : BOOLEAN;
  2039.   FUNCTION Gpi16QueryMetaFileBits(aHMF   : hMF;
  2040.                                 c1, c3 : LongInt;
  2041.                                 aByte  : Pointer) : BOOLEAN;
  2042.  
  2043.   FUNCTION GpiSetMetaFileBits(aHMF   : hMF;
  2044.                               c1, c3 : LongInt;
  2045.                               aByte  : Pointer) : BOOLEAN;
  2046.   FUNCTION Gpi16SetMetaFileBits(aHMF   : hMF;
  2047.                                 c1, c3 : LongInt;
  2048.                                 aByte  : Pointer) : BOOLEAN;
  2049.  
  2050.   FUNCTION GpiQueryDefArcParams(a : hPs; VAR b : ArcParams) : BOOLEAN;
  2051.   FUNCTION Gpi16QueryDefArcParams(a : hPs; VAR b : ArcParams) : BOOLEAN;
  2052.  
  2053.   FUNCTION GpiQueryDefAttrs(a : hPs;
  2054.                             b : LongInt;
  2055.                             c : LongInt;
  2056.                             d : pBundle) : BOOLEAN;
  2057.   FUNCTION Gpi16QueryDefAttrs(a : hPs;
  2058.                               b : LongInt;
  2059.                               c : LongInt;
  2060.                               d : pBundle) : BOOLEAN;
  2061.  
  2062.   FUNCTION GpiQueryDefTag(a : hPs; VAR b : LongInt) : BOOLEAN;
  2063.   FUNCTION Gpi16QueryDefTag(a : hPs; VAR b : LongInt) : BOOLEAN;
  2064.  
  2065.   FUNCTION GpiQueryDefViewingLimits(a : hPs; VAR b : RectL) : BOOLEAN;
  2066.   FUNCTION Gpi16QueryDefViewingLimits(a : hPs; VAR b : RectL) : BOOLEAN;
  2067.  
  2068.   FUNCTION GpiSetDefArcParams(a : hPs; b : ArcParams) : BOOLEAN;
  2069.   FUNCTION Gpi16SetDefArcParams(a : hPs; b : ArcParams) : BOOLEAN;
  2070.  
  2071.   FUNCTION GpiSetDefAttrs(a : hPs;
  2072.                           b : LongInt;
  2073.                           c : LongInt;
  2074.                           d : pBundle) : BOOLEAN;
  2075.   FUNCTION Gpi16SetDefAttrs(a : hPs;
  2076.                             b : LongInt;
  2077.                             c : LongInt;
  2078.                             d : pBundle) : BOOLEAN;
  2079.  
  2080.   FUNCTION GpiSetDefTag(a : hPs; b : LongInt) : BOOLEAN;
  2081.   FUNCTION Gpi16SetDefTag(a : hPs; b : LongInt) : BOOLEAN;
  2082.  
  2083.   FUNCTION GpiSetDefViewingLimits(a : hPs; b : RectL) : BOOLEAN;
  2084.   FUNCTION Gpi16SetDefViewingLimits(a : hPs; b : RectL) : BOOLEAN;
  2085.  
  2086.  
  2087. (* AAB error codes for the GPI *)
  2088. CONST
  2089.   PMERR_OK                          = $00000;
  2090.   PMERR_ALREADY_IN_AREA             = $02001;
  2091.   PMERR_ALREADY_IN_ELEMENT          = $02002;
  2092.   PMERR_ALREADY_IN_PATH             = $02003;
  2093.   PMERR_ALREADY_IN_SEG              = $02004;
  2094.   PMERR_AREA_INCOMPLETE             = $02005;
  2095.   PMERR_BASE_ERROR                  = $02006;
  2096.   PMERR_BITBLT_LENGTH_EXCEEDED      = $02007;
  2097.   PMERR_BITMAP_IN_USE               = $02008;
  2098.   PMERR_BITMAP_IS_SELECTED          = $02009;
  2099.   PMERR_BITMAP_NOT_FOUND            = $0200A;
  2100.   PMERR_BITMAP_NOT_SELECTED         = $0200B;
  2101.   PMERR_BOUNDS_OVERFLOW             = $0200C;
  2102.   PMERR_CALLED_SEG_IS_CHAINED       = $0200D;
  2103.   PMERR_CALLED_SEG_IS_CURRENT       = $0200E;
  2104.   PMERR_CALLED_SEG_NOT_FOUND        = $0200F;
  2105.   PMERR_CANNOT_DELETE_ALL_DATA      = $02010;
  2106.   PMERR_CANNOT_REPLACE_ELEMENT_0    = $02011;
  2107.   PMERR_COL_TABLE_NOT_REALIZABLE    = $02012;
  2108.   PMERR_COL_TABLE_NOT_REALIZED      = $02013;
  2109.   PMERR_COORDINATE_OVERFLOW         = $02014;
  2110.   PMERR_CORR_FORMAT_MISMATCH        = $02015;
  2111.   PMERR_DATA_TOO_LONG               = $02016;
  2112.   PMERR_DC_IS_ASSOCIATED            = $02017;
  2113.   PMERR_DESC_STRING_TRUNCATED       = $02018;
  2114.   PMERR_DEVICE_DRIVER_ERROR_1       = $02019;
  2115.   PMERR_DEVICE_DRIVER_ERROR_2       = $0201A;
  2116.   PMERR_DEVICE_DRIVER_ERROR_3       = $0201B;
  2117.   PMERR_DEVICE_DRIVER_ERROR_4       = $0201C;
  2118.   PMERR_DEVICE_DRIVER_ERROR_5       = $0201D;
  2119.   PMERR_DEVICE_DRIVER_ERROR_6       = $0201E;
  2120.   PMERR_DEVICE_DRIVER_ERROR_7       = $0201F;
  2121.   PMERR_DEVICE_DRIVER_ERROR_8       = $02020;
  2122.   PMERR_DEVICE_DRIVER_ERROR_9       = $02021;
  2123.   PMERR_DEVICE_DRIVER_ERROR_10      = $02022;
  2124.   PMERR_DEV_FUNC_NOT_INSTALLED      = $02023;
  2125.   PMERR_DOSOPEN_FAILURE             = $02024;
  2126.   PMERR_DOSREAD_FAILURE             = $02025;
  2127.   PMERR_DRIVER_NOT_FOUND            = $02026;
  2128.   PMERR_DUP_SEG                     = $02027;
  2129.   PMERR_DYNAMIC_SEG_SEQ_ERROR       = $02028;
  2130.   PMERR_DYNAMIC_SEG_ZERO_INV        = $02029;
  2131.   PMERR_ELEMENT_INCOMPLETE          = $0202A;
  2132.   PMERR_ESC_CODE_NOT_SUPPORTED      = $0202B;
  2133.   PMERR_EXCEEDS_MAX_SEG_LENGTH      = $0202C;
  2134.   PMERR_FONT_AND_MODE_MISMATCH      = $0202D;
  2135.   PMERR_FONT_FILE_NOT_LOADED        = $0202E;
  2136.   PMERR_FONT_NOT_LOADED             = $0202F;
  2137.   PMERR_FONT_TOO_BIG                = $02030;
  2138.   PMERR_HARDWARE_INIT_FAILURE       = $02031;
  2139.   PMERR_HBITMAP_BUSY                = $02032;
  2140.   PMERR_HDC_BUSY                    = $02033;
  2141.   PMERR_HRGN_BUSY                   = $02034;
  2142.   PMERR_HUGE_FONTS_NOT_SUPPORTED    = $02035;
  2143.   PMERR_ID_HAS_NO_BITMAP            = $02036;
  2144.   PMERR_IMAGE_INCOMPLETE            = $02037;
  2145.   PMERR_INCOMPAT_COLOR_FORMAT       = $02038;
  2146.   PMERR_INCOMPAT_COLOR_OPTIONS      = $02039;
  2147.   PMERR_INCOMPATIBLE_BITMAP         = $0203A;
  2148.   PMERR_INCOMPATIBLE_METAFILE       = $0203B;
  2149.   PMERR_INCORRECT_DC_TYPE           = $0203C;
  2150.   PMERR_INSUFFICIENT_DISK_SPACE     = $0203D;
  2151.   PMERR_INSUFFICIENT_MEMORY         = $0203E;
  2152.   PMERR_INV_ANGLE_PARM              = $0203F;
  2153.   PMERR_INV_ARC_CONTROL             = $02040;
  2154.   PMERR_INV_AREA_CONTROL            = $02041;
  2155.   PMERR_INV_ARC_POINTS              = $02042;
  2156.   PMERR_INV_ATTR_MODE               = $02043;
  2157.   PMERR_INV_BACKGROUND_COL_ATTR     = $02044;
  2158.   PMERR_INV_BACKGROUND_MIX_ATTR     = $02045;
  2159.   PMERR_INV_BITBLT_MIX              = $02046;
  2160.   PMERR_INV_BITBLT_STYLE            = $02047;
  2161.   PMERR_INV_BITMAP_DIMENSION        = $02048;
  2162.   PMERR_INV_BOX_CONTROL             = $02049;
  2163.   PMERR_INV_BOX_ROUNDING_PARM       = $0204A;
  2164.   PMERR_INV_CHAR_ANGLE_ATTR         = $0204B;
  2165.   PMERR_INV_CHAR_DIRECTION_ATTR     = $0204C;
  2166.   PMERR_INV_CHAR_MODE_ATTR          = $0204D;
  2167.   PMERR_INV_CHAR_POS_OPTIONS        = $0204E;
  2168.   PMERR_INV_CHAR_SET_ATTR           = $0204F;
  2169.   PMERR_INV_CHAR_SHEAR_ATTR         = $02050;
  2170.   PMERR_INV_CLIP_PATH_OPTIONS       = $02051;
  2171.   PMERR_INV_CODEPAGE                = $02052;
  2172.   PMERR_INV_COLOR_ATTR              = $02053;
  2173.   PMERR_INV_COLOR_DATA              = $02054;
  2174.   PMERR_INV_COLOR_FORMAT            = $02055;
  2175.   PMERR_INV_COLOR_INDEX             = $02056;
  2176.   PMERR_INV_COLOR_OPTIONS           = $02057;
  2177.   PMERR_INV_COLOR_START_INDEX       = $02058;
  2178.   PMERR_INV_COORD_OFFSET            = $02059;
  2179.   PMERR_INV_COORD_SPACE             = $0205A;
  2180.   PMERR_INV_COORDINATE              = $0205B;
  2181.   PMERR_INV_CORRELATE_DEPTH         = $0205C;
  2182.   PMERR_INV_CORRELATE_TYPE          = $0205D;
  2183.   PMERR_INV_CURSOR_BITMAP           = $0205E;
  2184.   PMERR_INV_DC_DATA                 = $0205F;
  2185.   PMERR_INV_DC_TYPE                 = $02060;
  2186.   PMERR_INV_DEVICE_NAME             = $02061;
  2187.   PMERR_INV_DEV_MODES_OPTIONS       = $02062;
  2188.   PMERR_INV_DRAW_CONTROL            = $02063;
  2189.   PMERR_INV_DRAW_VALUE              = $02064;
  2190.   PMERR_INV_DRAWING_MODE            = $02065;
  2191.   PMERR_INV_DRIVER_DATA             = $02066;
  2192.   PMERR_INV_DRIVER_NAME             = $02067;
  2193.   PMERR_INV_DRAW_BORDER_OPTION      = $02068;
  2194.   PMERR_INV_EDIT_MODE               = $02069;
  2195.   PMERR_INV_ELEMENT_OFFSET          = $0206A;
  2196.   PMERR_INV_ELEMENT_POINTER         = $0206B;
  2197.   PMERR_INV_END_PATH_OPTIONS        = $0206C;
  2198.   PMERR_INV_ESC_CODE                = $0206D;
  2199.   PMERR_INV_ESCAPE_DATA             = $0206E;
  2200.   PMERR_INV_EXTENDED_LCID           = $0206F;
  2201.   PMERR_INV_FILL_PATH_OPTIONS       = $02070;
  2202.   PMERR_INV_FIRST_CHAR              = $02071;
  2203.   PMERR_INV_FONT_ATTRS              = $02072;
  2204.   PMERR_INV_FONT_FILE_DATA          = $02073;
  2205.   PMERR_INV_FOR_THIS_DC_TYPE        = $02074;
  2206.   PMERR_INV_FORMAT_CONTROL          = $02075;
  2207.   PMERR_INV_FORMS_CODE              = $02076;
  2208.   PMERR_INV_FONTDEF                 = $02077;
  2209.   PMERR_INV_GEOM_LINE_WIDTH_ATTR    = $02078;
  2210.   PMERR_INV_GETDATA_CONTROL         = $02079;
  2211.   PMERR_INV_GRAPHICS_FIELD          = $0207A;
  2212.   PMERR_INV_HBITMAP                 = $0207B;
  2213.   PMERR_INV_HDC                     = $0207C;
  2214.   PMERR_INV_HJOURNAL                = $0207D;
  2215.   PMERR_INV_HMF                     = $0207E;
  2216.   PMERR_INV_HPS                     = $0207F;
  2217.   PMERR_INV_HRGN                    = $02080;
  2218.   PMERR_INV_ID                      = $02081;
  2219.   PMERR_INV_IMAGE_DATA_LENGTH       = $02082;
  2220.   PMERR_INV_IMAGE_DIMENSION         = $02083;
  2221.   PMERR_INV_IMAGE_FORMAT            = $02084;
  2222.   PMERR_INV_IN_AREA                 = $02085;
  2223.   PMERR_INV_IN_CALLED_SEG           = $02086;
  2224.   PMERR_INV_IN_CURRENT_EDIT_MODE    = $02087;
  2225.   PMERR_INV_IN_DRAW_MODE            = $02088;
  2226.   PMERR_INV_IN_ELEMENT              = $02089;
  2227.   PMERR_INV_IN_IMAGE                = $0208A;
  2228.   PMERR_INV_IN_PATH                 = $0208B;
  2229.   PMERR_INV_IN_RETAIN_MODE          = $0208C;
  2230.   PMERR_INV_IN_SEG                  = $0208D;
  2231.   PMERR_INV_IN_VECTOR_SYMBOL        = $0208E;
  2232.   PMERR_INV_INFO_TABLE              = $0208F;
  2233.   PMERR_INV_JOURNAL_OPTION          = $02090;
  2234.   PMERR_INV_KERNING_FLAGS           = $02091;
  2235.   PMERR_INV_LENGTH_OR_COUNT         = $02092;
  2236.   PMERR_INV_LINE_END_ATTR           = $02093;
  2237.   PMERR_INV_LINE_JOIN_ATTR          = $02094;
  2238.   PMERR_INV_LINE_TYPE_ATTR          = $02095;
  2239.   PMERR_INV_LINE_WIDTH_ATTR         = $02096;
  2240.   PMERR_INV_LOGICAL_ADDRESS         = $02097;
  2241.   PMERR_INV_MARKER_BOX_ATTR         = $02098;
  2242.   PMERR_INV_MARKER_SET_ATTR         = $02099;
  2243.   PMERR_INV_MARKER_SYMBOL_ATTR      = $0209A;
  2244.   PMERR_INV_MATRIX_ELEMENT          = $0209B;
  2245.   PMERR_INV_MAX_HITS                = $0209C;
  2246.   PMERR_INV_METAFILE                = $0209D;
  2247.   PMERR_INV_METAFILE_LENGTH         = $0209E;
  2248.   PMERR_INV_METAFILE_OFFSET         = $0209F;
  2249.   PMERR_INV_MICROPS_DRAW_CONTROL    = $020A0;
  2250.   PMERR_INV_MICROPS_FUNCTION        = $020A1;
  2251.   PMERR_INV_MICROPS_ORDER           = $020A2;
  2252.   PMERR_INV_MIX_ATTR                = $020A3;
  2253.   PMERR_INV_MODE_FOR_OPEN_DYN       = $020A4;
  2254.   PMERR_INV_MODE_FOR_REOPEN_SEG     = $020A5;
  2255.   PMERR_INV_MODIFY_PATH_MODE        = $020A6;
  2256.   PMERR_INV_MULTIPLIER              = $020A7;
  2257.   PMERR_INV_NESTED_FIGURES          = $020A8;
  2258.   PMERR_INV_OR_INCOMPAT_OPTIONS     = $020A9;
  2259.   PMERR_INV_ORDER_LENGTH            = $020AA;
  2260.   PMERR_INV_ORDERING_PARM           = $020AB;
  2261.   PMERR_INV_OUTSIDE_DRAW_MODE       = $020AC;
  2262.   PMERR_INV_PAGE_VIEWPORT           = $020AD;
  2263.   PMERR_INV_PATH_ID                 = $020AE;
  2264.   PMERR_INV_PATH_MODE               = $020AF;
  2265.   PMERR_INV_PATTERN_ATTR            = $020B0;
  2266.   PMERR_INV_PATTERN_REF_PT_ATTR     = $020B1;
  2267.   PMERR_INV_PATTERN_SET_ATTR        = $020B2;
  2268.   PMERR_INV_PATTERN_SET_FONT        = $020B3;
  2269.   PMERR_INV_PICK_APERTURE_OPTION    = $020B4;
  2270.   PMERR_INV_PICK_APERTURE_POSN      = $020B5;
  2271.   PMERR_INV_PICK_APERTURE_SIZE      = $020B6;
  2272.   PMERR_INV_PICK_NUMBER             = $020B7;
  2273.   PMERR_INV_PLAY_METAFILE_OPTION    = $020B8;
  2274.   PMERR_INV_PRIMITIVE_TYPE          = $020B9;
  2275.   PMERR_INV_PS_SIZE                 = $020BA;
  2276.   PMERR_INV_PUTDATA_FORMAT          = $020BB;
  2277.   PMERR_INV_QUERY_ELEMENT_NO        = $020BC;
  2278.   PMERR_INV_RECT                    = $020BD;
  2279.   PMERR_INV_REGION_CONTROL          = $020BE;
  2280.   PMERR_INV_REGION_MIX_MODE         = $020BF;
  2281.   PMERR_INV_REPLACE_MODE_FUNC       = $020C0;
  2282.   PMERR_INV_RESERVED_FIELD          = $020C1;
  2283.   PMERR_INV_RESET_OPTIONS           = $020C2;
  2284.   PMERR_INV_RGBCOLOR                = $020C3;
  2285.   PMERR_INV_SCAN_START              = $020C4;
  2286.   PMERR_INV_SEG_ATTR                = $020C5;
  2287.   PMERR_INV_SEG_ATTR_VALUE          = $020C6;
  2288.   PMERR_INV_SEG_CH_LENGTH           = $020C7;
  2289.   PMERR_INV_SEG_NAME                = $020C8;
  2290.   PMERR_INV_SEG_OFFSET              = $020C9;
  2291.   PMERR_INV_SETID                   = $020CA;
  2292.   PMERR_INV_SETID_TYPE              = $020CB;
  2293.   PMERR_INV_SET_VIEWPORT_OPTION     = $020CC;
  2294.   PMERR_INV_SHARPNESS_PARM          = $020CD;
  2295.   PMERR_INV_SOURCE_OFFSET           = $020CE;
  2296.   PMERR_INV_STOP_DRAW_VALUE         = $020CF;
  2297.   PMERR_INV_TRANSFORM_TYPE          = $020D0;
  2298.   PMERR_INV_USAGE_PARM              = $020D1;
  2299.   PMERR_INV_VIEWING_LIMITS          = $020D2;
  2300.   PMERR_JFILE_BUSY                  = $020D3;
  2301.   PMERR_JNL_FUNC_DATA_TOO_LONG      = $020D4;
  2302.   PMERR_KERNING_NOT_SUPPORTED       = $020D5;
  2303.   PMERR_LABEL_NOT_FOUND             = $020D6;
  2304.   PMERR_MATRIX_OVERFLOW             = $020D7;
  2305.   PMERR_METAFILE_INTERNAL_ERROR     = $020D8;
  2306.   PMERR_METAFILE_IN_USE             = $020D9;
  2307.   PMERR_METAFILE_LIMIT_EXCEEDED     = $020DA;
  2308.   PMERR_NAME_STACK_FULL             = $020DB;
  2309.   PMERR_NOT_CREATED_BY_DEVOPENDC    = $020DC;
  2310.   PMERR_NOT_IN_AREA                 = $020DD;
  2311.   PMERR_NOT_IN_DRAW_MODE            = $020DE;
  2312.   PMERR_NOT_IN_ELEMENT              = $020DF;
  2313.   PMERR_NOT_IN_IMAGE                = $020E0;
  2314.   PMERR_NOT_IN_PATH                 = $020E1;
  2315.   PMERR_NOT_IN_RETAIN_MODE          = $020E2;
  2316.   PMERR_NOT_IN_SEG                  = $020E3;
  2317.   PMERR_NO_BITMAP_SELECTED          = $020E4;
  2318.   PMERR_NO_CURRENT_ELEMENT          = $020E5;
  2319.   PMERR_NO_CURRENT_SEG              = $020E6;
  2320.   PMERR_NO_METAFILE_RECORD_HANDLE   = $020E7;
  2321.   PMERR_ORDER_TOO_BIG               = $020E8;
  2322.   PMERR_OTHER_SET_ID_REFS           = $020E9;
  2323.   PMERR_OVERRAN_SEG                 = $020EA;
  2324.   PMERR_OWN_SET_ID_REFS             = $020EB;
  2325.   PMERR_PATH_INCOMPLETE             = $020EC;
  2326.   PMERR_PATH_LIMIT_EXCEEDED         = $020ED;
  2327.   PMERR_PATH_UNKNOWN                = $020EE;
  2328.   PMERR_PEL_IS_CLIPPED              = $020EF;
  2329.   PMERR_PEL_NOT_AVAILABLE           = $020F0;
  2330.   PMERR_PRIMITIVE_STACK_EMPTY       = $020F1;
  2331.   PMERR_PROLOG_ERROR                = $020F2;
  2332.   PMERR_PROLOG_SEG_ATTR_NOT_SET     = $020F3;
  2333.   PMERR_PS_BUSY                     = $020F4;
  2334.   PMERR_PS_IS_ASSOCIATED            = $020F5;
  2335.   PMERR_RAM_JNL_FILE_TOO_SMALL      = $020F6;
  2336.   PMERR_REALIZE_NOT_SUPPORTED       = $020F7;
  2337.   PMERR_REGION_IS_CLIP_REGION       = $020F8;
  2338.   PMERR_RESOURCE_DEPLETION          = $020F9;
  2339.   PMERR_SEG_AND_REFSEG_ARE_SAME     = $020FA;
  2340.   PMERR_SEG_CALL_RECURSIVE          = $020FB;
  2341.   PMERR_SEG_CALL_STACK_EMPTY        = $020FC;
  2342.   PMERR_SEG_CALL_STACK_FULL         = $020FD;
  2343.   PMERR_SEG_IS_CURRENT              = $020FE;
  2344.   PMERR_SEG_NOT_CHAINED             = $020FF;
  2345.   PMERR_SEG_NOT_FOUND               = $02100;
  2346.   PMERR_SEG_STORE_LIMIT_EXCEEDED    = $02101;
  2347.   PMERR_SETID_IN_USE                = $02102;
  2348.   PMERR_SETID_NOT_FOUND             = $02103;
  2349.   PMERR_STARTDOC_NOT_ISSUED         = $02104;
  2350.   PMERR_STOP_DRAW_OCCURRED          = $02105;
  2351.   PMERR_TOO_MANY_METAFILES_IN_USE   = $02106;
  2352.   PMERR_TRUNCATED_ORDER             = $02107;
  2353.   PMERR_UNCHAINED_SEG_ZERO_INV      = $02108;
  2354.   PMERR_UNSUPPORTED_ATTR            = $02109;
  2355.   PMERR_UNSUPPORTED_ATTR_VALUE      = $0210A;
  2356.  
  2357. (* General DEV return values *)
  2358. CONST
  2359.   DEV_ERROR = 0;
  2360.   DEV_OK    = 1;
  2361.  
  2362. (* pointer data for DevOpenDC *)
  2363. TYPE
  2364.   PDEVOPENDATA = ^pChar;
  2365.  
  2366. (* DC type for DevOpenDC *)
  2367. CONST
  2368.   OD_QUEUED =               2;
  2369.   OD_DIRECT =               5;
  2370.   OD_INFO =                 6;
  2371.   OD_METAFILE =             7;
  2372.   OD_MEMORY =               8;
  2373.   OD_METAFILE_NOQUERY  = 9;
  2374.  
  2375. (* codes for DevQueryCaps *)
  2376.   CAPS_FAMILY =                      0;
  2377.   CAPS_IO_CAPS =                     1;
  2378.   CAPS_TECHNOLOGY =                  2;
  2379.   CAPS_DRIVER_VERSION =              3;
  2380.   CAPS_WIDTH =                       4;      (* pels            *)
  2381.   CAPS_HEIGHT =                      5;      (* pels            *)
  2382.   CAPS_WIDTH_IN_CHARS =              6;
  2383.   CAPS_HEIGHT_IN_CHARS =             7;
  2384.   CAPS_HORIZONTAL_RESOLUTION =       8;      (* pels per meter  *)
  2385.   CAPS_VERTICAL_RESOLUTION =         9;      (* pels per meter  *)
  2386.   CAPS_CHAR_WIDTH =                 10;      (* pels            *)
  2387.   CAPS_CHAR_HEIGHT =                11;      (* pels            *)
  2388.   CAPS_SMALL_CHAR_WIDTH =           12;      (* pels            *)
  2389.   CAPS_SMALL_CHAR_HEIGHT =          13;      (* pels            *)
  2390.   CAPS_COLORS =                     14;
  2391.   CAPS_COLOR_PLANES =               15;
  2392.   CAPS_COLOR_BITCOUNT =             16;
  2393.   CAPS_COLOR_TABLE_SUPPORT =        17;
  2394.   CAPS_MOUSE_BUTTONS =              18;
  2395.   CAPS_FOREGROUND_MIX_SUPPORT =     19;
  2396.   CAPS_BACKGROUND_MIX_SUPPORT =     20;
  2397.   CAPS_DEVICE_WINDOWING =           31;
  2398.   CAPS_ADDITIONAL_GRAPHICS =        32;
  2399.   CAPS_VIO_LOADABLE_FONTS =         21;
  2400.   CAPS_WINDOW_BYTE_ALIGNMENT =      22;
  2401.   CAPS_BITMAP_FORMATS =             23;
  2402.   CAPS_RASTER_CAPS =                24;
  2403.   CAPS_MARKER_HEIGHT =              25;      (* pels            *)
  2404.   CAPS_MARKER_WIDTH =               26;      (* pels            *)
  2405.   CAPS_DEVICE_FONTS =               27;
  2406.   CAPS_GRAPHICS_SUBSET =            28;
  2407.   CAPS_GRAPHICS_VERSION =           29;
  2408.   CAPS_GRAPHICS_VECTOR_SUBSET =     30;
  2409.   CAPS_PHYS_COLORS =                33;
  2410.   CAPS_COLOR_INDEX =                34;
  2411.   CAPS_GRAPHICS_CHAR_WIDTH =        35;
  2412.   CAPS_GRAPHICS_CHAR_HEIGHT =       36;
  2413.   CAPS_HORIZONTAL_FONT_RES =        37;
  2414.   CAPS_VERTICAL_FONT_RES =          38;
  2415.   CAPS_DEVICE_FONT_SIM =    39;
  2416.  
  2417. (* Constants for CAPS_IO_CAPS *)
  2418.   CAPS_IO_DUMMY =                   1;
  2419.   CAPS_IO_SUPPORTS_OP =             2;
  2420.   CAPS_IO_SUPPORTS_IP =             3;
  2421.   CAPS_IO_SUPPORTS_IO =             4;
  2422.  
  2423. (* Constants for CAPS_TECHNOLOGY *)
  2424.   CAPS_TECH_UNKNOWN =               0;
  2425.   CAPS_TECH_VECTOR_PLOTTER =        1;
  2426.   CAPS_TECH_RASTER_DISPLAY =        2;
  2427.   CAPS_TECH_RASTER_PRINTER =        3;
  2428.   CAPS_TECH_RASTER_CAMERA =         4;
  2429.   CAPS_TECH_POSTSCRIPT =            5;
  2430.  
  2431. (* Constants for CAPS_COLOR_TABLE_SUPPORT *)
  2432.   CAPS_COLTABL_RGB_8 =              1;
  2433.   CAPS_COLTABL_RGB_8_PLUS =         2;
  2434.   CAPS_COLTABL_TRUE_MIX =           4;
  2435.   CAPS_COLTABL_REALIZE =            8;
  2436.  
  2437. (* Constants for CAPS_FOREGROUND_MIX_SUPPORT *)
  2438.   CAPS_FM_OR =                      1;
  2439.   CAPS_FM_OVERPAINT =               2;
  2440.   CAPS_FM_XOR =                     8;
  2441.   CAPS_FM_LEAVEALONE =             16;
  2442.   CAPS_FM_AND =                    32;
  2443.   CAPS_FM_GENERAL_BOOLEANEAN =        64;
  2444.  
  2445. (* Constants for CAPS_BACKGROUND_MIX_SUPPORT *)
  2446.   CAPS_BM_OR =                      1;
  2447.   CAPS_BM_OVERPAINT =               2;
  2448.   CAPS_BM_XOR =                     8;
  2449.   CAPS_BM_LEAVEALONE =             16;
  2450.  
  2451. (* Constants for CAPS_DEVICE_WINDOWING *)
  2452.   CAPS_DEV_WINDOWING_SUPPORT =      1;
  2453.  
  2454. (* Constants for CAPS_ADDITIONAL_GRAPHICS *)
  2455.   CAPS_GRAPHICS_KERNING_SUPPORT =   2;
  2456.   CAPS_FONT_OUTLINE_DEFAULT =       4;
  2457.   CAPS_FONT_IMAGE_DEFAULT =         8;
  2458.   CAPS_SCALED_DEFAULT_MARKERS =    16;
  2459.  
  2460. (* Constants for CAPS_WINDOW_BYTE_ALIGNMENT *)
  2461.   CAPS_BYTE_ALIGN_REQUIRED =       0;
  2462.   CAPS_BYTE_ALIGN_RECOMMENDED =    1;
  2463.   CAPS_BYTE_ALIGN_NOT_REQUIRED =   2;
  2464.  
  2465. (* Constants for CAPS_RASTER_CAPS *)
  2466.   CAPS_RASTER_BITBLT =              1;
  2467.   CAPS_RASTER_BANDING =             2;
  2468.   CAPS_RASTER_BITBLT_SCALING =      4;
  2469.   CAPS_RASTER_SET_PEL =            16;
  2470.   CAPS_RASTER_FONTS =              32;
  2471.  
  2472.   FUNCTION DevOpenDC(    ahab : HAB;
  2473.                           c1   : LongInt;
  2474.                           P    : pChar;
  2475.                           c2   : LongInt;
  2476.                       VAR pDev : pChar (*??? PDEVOPENDATA *);
  2477.                           hDC  : hDC) : hDC;
  2478.   FUNCTION Dev16OpenDC(    ahab : HAB;
  2479.                            c1   : LongInt;
  2480.                            P    : pChar;
  2481.                            c2   : LongInt;
  2482.                        VAR pDev : pChar (*??? PDEVOPENDATA *);
  2483.                            hDC  : hDC) : hDC;
  2484.  
  2485.   FUNCTION DevCloseDC(ahdc : hDC) : hMF;
  2486.   FUNCTION Dev16CloseDC(ahdc : hDC) : hMF;
  2487.  
  2488.   FUNCTION DevQueryCaps(    ahdc   : hDC;
  2489.                              c1, c2 : LongInt;
  2490.                          VAR c3     : { LONG } LongInt) : BOOLEAN;
  2491.   FUNCTION Dev16QueryCaps(    ahdc   : hDC;
  2492.                              c1, c2 : LongInt;
  2493.                          VAR c3     : { LONG } LongInt) : BOOLEAN;
  2494.  
  2495. TYPE
  2496.   VioSizeCount = RECORD
  2497.     MaxCount : LongInt;
  2498.     count    : LongInt;
  2499.   END;
  2500.  
  2501.   VioFontCellSize = RECORD
  2502.     cx : LongInt;
  2503.     cy : LongInt;
  2504.   END;
  2505.  
  2506.   EscGetCp = RECORD
  2507.     Options  : LongInt;  (* LONGCARD *)
  2508.     codepage : WORD;
  2509.     fontid   : WORD;
  2510.   END;
  2511.  
  2512. (* return codes for DevEscape *)
  2513. CONST
  2514.   DEVESC_ERROR             = -1;
  2515.   DEVESC_NOTIMPLEMENTED    =  0;
  2516.  
  2517. (* codes for DevEscape *)
  2518.   DEVESC_QUERYESCSUPPORT   = 0;
  2519.   DEVESC_GETSCALINGFACTOR  = 1;
  2520.   DEVESC_QUERYVIOCELLSIZES = 2;
  2521.   DEVESC_GETCP             = $8000;
  2522.  
  2523.   DEVESC_STARTDOC          =  8150;
  2524.   DEVESC_ENDDOC            =  8151;
  2525.   DEVESC_NEXTBAND          =  8152;
  2526.   DEVESC_ABORTDOC          =  8153;
  2527.   DEVESC_NEWFRAME          = 16300;
  2528.   DEVESC_DRAFTMODE         = 16301;
  2529.   DEVESC_FLUSHOUTPUT       = 16302;
  2530.   DEVESC_RAWDATA           = 16303;
  2531.  
  2532.   DEVESC_DBE_FIRST         = $24450;
  2533.   DEVESC_DBE_LAST          = $24455;
  2534.   DEVESC_CHAR_EXTRA        = $16998;
  2535.   DEVESC_BREAK_EXTRA       = $16999;
  2536.  
  2537. (* codes for DevEscape PM_Q_ESC spool files *)
  2538.   DEVESC_STD_JOURNAL       =  32600;
  2539.  
  2540. (* return codes for DevPostDeviceModes *)
  2541.   DPDM_ERROR               = -1;
  2542.   DPDM_NONE                = 0;
  2543.  
  2544.   DPDM_POSTJOBPROP         = 0;
  2545.   DPDM_CHANGEPROP          = 1;
  2546.   DPDM_QUERYJOBPROP        = 2;
  2547.  
  2548. (* string types for DevQueryDeviceNames *)
  2549. TYPE
  2550.   Str16  = ARRAY [0..15] OF CHAR;   (* str16 *)
  2551.   pSTR16 = ^Str16;
  2552.   Str32  = ARRAY [0..31] OF CHAR;   (* str32 *)
  2553.   pSTR32 = ^Str32;
  2554.   Str64  = ARRAY [0..63] OF CHAR;   (* str64 *)
  2555.   pSTR64 = ^Str64;
  2556.  
  2557. (* return code for DevQueryHardcopyCaps *)
  2558. CONST
  2559.   DQHC_ERROR               = -1;
  2560.  
  2561. (* codes for DevQueryHardcopyCaps *)
  2562.   HCAPS_CURRENT            = 1;
  2563.   HCAPS_SELECTABLE         = 2;
  2564.  
  2565. (* structure for DevQueryHardcopyCaps *)
  2566. TYPE
  2567.   HcInfo = RECORD
  2568.     szFormname   : ARRAY [0..31] OF CHAR;
  2569.     cx           : LongInt;
  2570.     cy           : LongInt;
  2571.     xLeftClip    : LongInt;
  2572.     yBottomClip  : LongInt;
  2573.     xRightClip   : LongInt;
  2574.     yTopClip     : LongInt;
  2575.     xPels        : LongInt;
  2576.     yPels        : LongInt;
  2577.     flAttributes : LongInt;
  2578.   END;
  2579.  
  2580.   pHCInfo = ^HcInfo;
  2581.  
  2582. (*** Device Context Functions *)
  2583.   FUNCTION DevEscape(    ahdc   : hDC;
  2584.                           l1, l2 : LongInt;
  2585.                           p1     : pBYTE;
  2586.                       VAR p2     : { LONG } LongInt;
  2587.                           p3     : pBYTE) : LongInt;
  2588.   FUNCTION Dev16Escape(   ahdc   : hDC;
  2589.                           l1, l2 : LongInt;
  2590.                           p1     : pBYTE;
  2591.                       VAR p2     : { LONG } LongInt;
  2592.                           p3     : pBYTE) : LongInt;
  2593.  
  2594.   FUNCTION DevQueryDeviceNames(    ahab  : HAB;
  2595.                                     p1    : pChar;
  2596.                                 VAR p2    : { LONG } LongInt;
  2597.                                 VAR p3    : { LONG } Str32;
  2598.                                 VAR p4    : { LONG } Str64;
  2599.                                 VAR p5    : { LONG } LongInt;
  2600.                                 VAR Str16 : { LONG } Str16) : BOOLEAN;
  2601.   FUNCTION Dev16QueryDeviceNames(    ahab  : HAB;
  2602.                                       p1    : pChar;
  2603.                                   VAR p2    : { LONG } LongInt;
  2604.                                   VAR p3    : { LONG } Str32;
  2605.                                   VAR p4    : { LONG } Str64;
  2606.                                   VAR p5    : { LONG } LongInt;
  2607.                                   VAR Str16 : { LONG } Str16) : BOOLEAN;
  2608.  
  2609.   FUNCTION DevQueryHardcopyCaps(      ahdc    : hDC;
  2610.                                       l1, l2  : LongInt;
  2611.                                   VAR pHCInfo : { LONG } HcInfo) : LongInt;
  2612.   FUNCTION Dev16QueryHardcopyCaps(    ahdc    : hDC;
  2613.                                       l1, l2  : LongInt;
  2614.                                   VAR pHCInfo : { LONG } HcInfo) : LongInt;
  2615.  
  2616.  
  2617.   FUNCTION DevPostDeviceModes(    HAB        : HAB;
  2618.                               VAR DrivData   : { LONG } DrivData;
  2619.                                   p2, p3, p4 : pChar;
  2620.                                   i          : LongInt) : LongInt;
  2621.   FUNCTION Dev16PostDeviceModes(    HAB        : HAB;
  2622.                                 VAR DrivData   : { LONG } DrivData;
  2623.                                     p2, p3, p4 : pChar;
  2624.                                     i          : LongInt) : LongInt;
  2625.  
  2626. TYPE
  2627.   BitmapFileHeader = RECORD  (* bfh *)
  2628.     usType   : WORD;
  2629.     cbSize   : LongInt;
  2630.     xHotspot : INTEGER;
  2631.     yHotspot : INTEGER;
  2632.     offBits  : LongInt;
  2633.     bmp      : BitmapInfoHeader;
  2634.   END;
  2635.  
  2636.   pBitMapFileHeader = ^BitmapFileHeader;
  2637.  
  2638.   BitmapArrayFileHeader = RECORD
  2639.     usType      : WORD;
  2640.     cbSize      : LongInt;
  2641.     offNext     : LongInt;
  2642.     cxDisplay   : WORD;
  2643.     cyDisplay   : WORD;
  2644.     bfh         : BitmapFileHeader;
  2645.   END;
  2646.  
  2647.   pBitmapArrayFileHeader = ^BitmapArrayFileHeader;
  2648.  
  2649. (*
  2650.  * These are the identifying values that go in the wType field of the
  2651.  * BITMAPFILEHEADER.  (BFT_ => Bitmap File Type)
  2652.  *)
  2653.  
  2654. CONST
  2655.   BFT_ICON         = $04349;   (* 'IC' *)
  2656.   BFT_BMAP         = $04D42;   (* 'BM' *)
  2657.   BFT_POINTER      = $05450;   (* 'PT' *)
  2658.   BFT_COLORICON    = $04943;
  2659.   BFT_COLORPOINTER = $05043;
  2660.   BFT_BITMAPARRAY  = $04142;
  2661.  
  2662. (* Font-Definitions *)
  2663.  
  2664. TYPE
  2665.    FocaMetrics = RECORD
  2666.      ulIdentity         : LongInt;
  2667.      ulSize             : LongInt;
  2668.      szFamilyname       : ARRAY [0..31] OF CHAR;
  2669.      szFacename         : ARRAY [0..31] OF CHAR;
  2670.      usRegistryId       : INTEGER;
  2671.      usCodePage         : INTEGER;
  2672.      yEmHeight          : INTEGER;
  2673.      yXHeight           : INTEGER;
  2674.      yMaxAscender       : INTEGER;
  2675.      yMaxDescender      : INTEGER;
  2676.      yLowerCaseAscent   : INTEGER;
  2677.      yLowerCaseDescent  : INTEGER;
  2678.      yInternalLeading   : INTEGER;
  2679.      yExternalLeading   : INTEGER;
  2680.      xAveCharWidth      : INTEGER;
  2681.      xMaxCharInc        : INTEGER;
  2682.      xEmInc             : INTEGER;
  2683.      yMaxBaselineExt    : INTEGER;
  2684.      sCharSlope         : INTEGER;
  2685.      sInlineDir         : INTEGER;
  2686.      sCharRot           : INTEGER;
  2687.      usWeightClass      : WORD;
  2688.      usWidthClass       : WORD;
  2689.      xDeviceRes         : INTEGER;
  2690.      yDeviceRes         : INTEGER;
  2691.      usFirstChar        : INTEGER;
  2692.      usLastChar         : INTEGER;
  2693.      usDefaultChar      : INTEGER;
  2694.      usBreakChar        : INTEGER;
  2695.      usNominalPointSize : INTEGER;
  2696.      usMinimumPointSize : INTEGER;
  2697.      usMaximumPointSize : INTEGER;
  2698.      fsTypeFlags        : INTEGER;
  2699.      fsDefn             : INTEGER;
  2700.      fsSelectionFlags   : INTEGER;
  2701.      fsCapabilities     : INTEGER;
  2702.      ySubscriptXSize    : INTEGER;
  2703.      ySubscriptYSize    : INTEGER;
  2704.      ySubscriptXOffset  : INTEGER;
  2705.      ySubscriptYOffset  : INTEGER;
  2706.      ySuperscriptXSize  : INTEGER;
  2707.      ySuperscriptYSize  : INTEGER;
  2708.      ySuperscriptXOffset: INTEGER;
  2709.      ySuperscriptYOffset: INTEGER;
  2710.      yUnderscoreSize    : INTEGER;
  2711.      yUnderscorePosition: INTEGER;
  2712.      yStrikeoutSize     : INTEGER;
  2713.      yStrikeoutPosition : INTEGER;
  2714.      usKerningPairs     : INTEGER;
  2715.      usKerningTracks    : INTEGER;
  2716.      pszDeviceNameOffset: pChar;
  2717.    END;
  2718.    pFocaMetrics = ^FocaMetrics;
  2719.  
  2720.    FontDefinitionHeader = RECORD  (* fdh *)
  2721.      ulIdentity       : LongInt;
  2722.      ulSize           : LongInt;
  2723.      fsFontdef        : INTEGER;
  2724.      fsChardef        : INTEGER;
  2725.      usCellSize       : INTEGER;
  2726.      xCellWidth       : INTEGER;
  2727.      yCellHeight      : INTEGER;
  2728.      xCellIncrement   : INTEGER;
  2729.      xCellA           : INTEGER;
  2730.      xCellB           : INTEGER;
  2731.      xCellC           : INTEGER;
  2732.      pCellBaseOffset  : INTEGER;
  2733.    END;
  2734.    pFontDefinitionHeader = ^FontDefinitionHeader;
  2735.  
  2736. CONST
  2737.   FONTDEFFONT1 = $00047; (* set width, height, inc. & base offset *)
  2738.   FONTDEFFONT2 = $00042; (* set height & base offset              *)
  2739.   FONTDEFFONT3 = $00042; (* set height & base offset              *)
  2740.   FONTDEFCHAR1 = $00081; (* set char offset and width             *)
  2741.   FONTDEFCHAR2 = $00081; (* set char offset and width             *)
  2742.   FONTDEFCHAR3 = $000B8; (* set char offset, A, B, and C space    *)
  2743.   SPACE_UNDEF  = $08000; (* space undefined = take default        *)
  2744.  
  2745. TYPE
  2746.   FontSignature = RECORD
  2747.     ulIdentity    :   LongInt;
  2748.     ulSize        :   LongInt;
  2749.     achSignature  : ARRAY [0..11] OF CHAR;
  2750.   END;
  2751.   pFontSignature = ^FontSignature;
  2752.  
  2753.   FocaFont = RECORD  (* ff *)
  2754.     fsSignature   : FontSignature;
  2755.     fmMetrics     : FocaMetrics;
  2756.     fdDefinitions : FontDefinitionHeader;
  2757.   END;
  2758.   pFocaFont = ^FocaFont;
  2759.  
  2760. CONST
  2761.   FONT_SIGNATURE  =  $0FFFFFFFE; (* Identity header start *)
  2762.   FONT_METRICS    =  $000000001; (* Identity metrics *)
  2763.   FONT_DEFINITION =  $000000002; (* Identity definition *)
  2764.   FONT_ENDRECORD  =  $0FFFFFFFF; (* Identity record end *)
  2765.  
  2766. (* Options for QueryFonts *)
  2767.  
  2768. CONST
  2769.   QUERY_PUBLIC_FONTS  = $00001;
  2770.   QUERY_PRIVATE_FONTS = $00002;
  2771.  
  2772.   CDEF_GENERIC        = $00001;
  2773.   CDEF_BOLD           = $00002;
  2774.   CDEF_ITALIC         = $00004;
  2775.   CDEF_UNDERSCORE     = $00008;
  2776.   CDEF_STRIKEOUT      = $00010;
  2777.   CDEF_OUTLINE        = $20;
  2778.  
  2779. IMPLEMENTATION
  2780.  
  2781.   FUNCTION MakeFixed (IntPart: INTEGER; FractPart: WORD) : Fixed;
  2782.   BEGIN
  2783.     MakeFixed := LongInt(IntPart SHL 16) + FractPart;
  2784. {   MakeFixed := Os2Def.MakeLong(IntPart, fractpart); }
  2785.   END;
  2786.  
  2787.   FUNCTION FixedFrac(fx: Fixed): WORD;
  2788.   BEGIN
  2789.     FixedFrac := HiWord(fx);
  2790.   END;
  2791.  
  2792.   FUNCTION FixedInt(fx: Fixed): INTEGER;
  2793.   BEGIN
  2794.     FixedInt := LoWord(fx);
  2795.   END;
  2796.  
  2797.   FUNCTION GpiBeginPath(ahps : hPs; l : LongInt) : BOOLEAN;
  2798.     EXTERNAL 'PMGPI' INDEX 234;
  2799.  
  2800.   FUNCTION GpiEndPath(ahps : hPs) : BOOLEAN;
  2801.     EXTERNAL 'PMGPI' INDEX 235;
  2802.  
  2803.   FUNCTION GpiCloseFigure(ahps : hPs) : BOOLEAN;
  2804.     EXTERNAL 'PMGPI' INDEX 236;
  2805.  
  2806.   FUNCTION GpiModifyPath(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  2807.     EXTERNAL 'PMGPI' INDEX 237;
  2808.  
  2809.   FUNCTION GpiFillPath(ahps : hPs; l1, l2 : LongInt) : LongInt;
  2810.     EXTERNAL 'PMGPI' INDEX 238;
  2811.  
  2812.   FUNCTION GpiSetClipPath(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  2813.     EXTERNAL 'PMGPI' INDEX 233;
  2814.  
  2815.   FUNCTION GpiOutlinePath(ahps : hPs; l1, l2 : LongInt) : LongInt;
  2816.     EXTERNAL 'PMGPI' INDEX 274;
  2817.  
  2818.   FUNCTION GpiStrokePath(ahps : hPs; l1 : LongInt; c : LongInt) : LongInt;
  2819.     EXTERNAL 'PMGPI' INDEX 270;
  2820.  
  2821.   FUNCTION  GpiCreatePS(    ahab       : HAB;
  2822.                             ahdc       : hDC;
  2823.                         VAR pSizeLSize : { LONG } SizeL;
  2824.                             u1         : LongInt) : hPs;
  2825.     EXTERNAL 'PMGPI' INDEX 7;
  2826.  
  2827.   FUNCTION GpiDestroyPS(ahps : hPs) : BOOLEAN;
  2828.     EXTERNAL 'PMGPI' INDEX 10;
  2829.  
  2830.   FUNCTION GpiAssociate(ahps : hPs; ahdc : hDC) : BOOLEAN;
  2831.     EXTERNAL 'PMGPI' INDEX 14;
  2832.  
  2833.   FUNCTION GpiRestorePS(ahps : hPs; l : LongInt) : BOOLEAN;
  2834.     EXTERNAL 'PMGPI' INDEX 13;
  2835.  
  2836.   FUNCTION GpiSavePS(ahps : hPs) : LongInt;
  2837.     EXTERNAL 'PMGPI' INDEX 12;
  2838.  
  2839.   FUNCTION GpiErase(ahps : hPs) : BOOLEAN;
  2840.     EXTERNAL 'PMGPI' INDEX 16;
  2841.  
  2842.   FUNCTION GpiQueryDevice(ahps : hPs) : hDC;
  2843.     EXTERNAL 'PMGPI' INDEX 240;
  2844.  
  2845.   FUNCTION GpiResetPS(ahps : hPs; u : LongInt) : BOOLEAN;
  2846.     EXTERNAL 'PMGPI' INDEX 11;
  2847.  
  2848.   FUNCTION GpiSetPS(    ahps : hPs;
  2849.                     VAR P    : { LONG } SizeL;
  2850.                         u    : LongInt) : BOOLEAN;
  2851.     EXTERNAL 'PMGPI' INDEX 248;
  2852.  
  2853.   FUNCTION GpiQueryPS(    ahps : hPs;
  2854.                       VAR P    : { LONG } SizeL) : LongInt;
  2855.     EXTERNAL 'PMGPI' INDEX 9;
  2856.  
  2857.   FUNCTION GpiErrorSegmentData(    ahps : hPs;
  2858.                                VAR l    : { LONG } LongInt;
  2859.                                VAR l2   : { LONG } LongInt) : LongInt;
  2860.     EXTERNAL 'PMGPI' INDEX 15;
  2861.  
  2862.   FUNCTION GpiQueryDrawControl(ahps : hPs; l : LongInt) : LongInt;
  2863.     EXTERNAL 'PMGPI' INDEX 18;
  2864.  
  2865.   FUNCTION GpiSetDrawControl(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  2866.     EXTERNAL 'PMGPI' INDEX 17;
  2867.  
  2868.   FUNCTION GpiQueryDrawingMode(ahps : hPs) : LongInt;
  2869.     EXTERNAL 'PMGPI' INDEX 27;
  2870.  
  2871.   FUNCTION GpiSetDrawingMode(ahps : hPs; l : LongInt) : BOOLEAN;
  2872.     EXTERNAL 'PMGPI' INDEX 26;
  2873.  
  2874.   FUNCTION GpiQueryStopDraw(ahps : hPs) : LongInt;
  2875.     EXTERNAL 'PMGPI' INDEX 22;
  2876.  
  2877.   FUNCTION GpiSetStopDraw(ahps : hPs; l : LongInt) : BOOLEAN;
  2878.     EXTERNAL 'PMGPI' INDEX 22;
  2879.  
  2880.   FUNCTION GpiCorrelateChain(    ahps   : hPs;
  2881.                                  l1     : LongInt;
  2882.                                  PointL : { LONG } PointL;
  2883.                                  l2     : LongInt;
  2884.                                  l6     : LongInt;
  2885.                              VAR l7     : { LONG } LongInt) : LongInt;
  2886.     EXTERNAL 'PMGPI' INDEX 36;
  2887.  
  2888.   FUNCTION GpiQueryTag(ahps : hPs; VAR l2 : { LONG } LongInt) : BOOLEAN;
  2889.     EXTERNAL 'PMGPI' INDEX 35;
  2890.  
  2891.   FUNCTION GpiSetTag(ahps : hPs; l : LongInt) : BOOLEAN;
  2892.     EXTERNAL 'PMGPI' INDEX 34;
  2893.  
  2894.   FUNCTION GpiQueryPickApertureSize(    ahps : hPs;
  2895.                                     VAR P    : { LONG } SizeL) : BOOLEAN;
  2896.     EXTERNAL 'PMGPI' INDEX 31;
  2897.  
  2898.   FUNCTION GpiSetPickApertureSize(hPs   : hPs;
  2899.                                   l1    : LongInt;
  2900.                                   SizeL : { LONG } SizeL) : BOOLEAN;
  2901.     EXTERNAL 'PMGPI' INDEX 30;
  2902.  
  2903.   FUNCTION GpiQueryPickAperturePosition(    ahps    : hPs;
  2904.                                         VAR aPointL : { LONG } PointL) : BOOLEAN;
  2905.     EXTERNAL 'PMGPI' INDEX 33;
  2906.  
  2907.   FUNCTION GpiSetPickAperturePosition(ahps    : hPs;
  2908.                                       aPointL : { LONG } PointL) : BOOLEAN;
  2909.     EXTERNAL 'PMGPI' INDEX 32;
  2910.  
  2911.   FUNCTION GpiQueryBoundaryData(    ahps   : hPs;
  2912.                                 VAR aRectl : { LONG } RectL) : BOOLEAN;
  2913.     EXTERNAL 'PMGPI' INDEX 43;
  2914.  
  2915.   FUNCTION GpiResetBoundaryData(ahps : hPs) : BOOLEAN;
  2916.     EXTERNAL 'PMGPI' INDEX 42;
  2917.  
  2918.   FUNCTION GpiCorrelateFrom(    ahps, l2 : LongInt;
  2919.                                 l3, l4   : LongInt;
  2920.                                 aPointL  : { LONG } PointL;
  2921.                                 l5, l6   : LongInt;
  2922.                             VAR l7       : { LONG } LongInt) : LongInt;
  2923.     EXTERNAL 'PMGPI' INDEX 37;
  2924.  
  2925.   FUNCTION GpiCorrelateSegment(   ahps    : hPs;
  2926.                                   l1, l3  : LongInt;
  2927.                                   aPointL : { LONG } PointL;
  2928.                                   l2, l6  : LongInt;
  2929.                               VAR l7      : { LONG } LongInt) : LongInt;
  2930.     EXTERNAL 'PMGPI' INDEX 38;
  2931.  
  2932.   FUNCTION GpiOpenSegment(ahps : hPs; l : LongInt) : BOOLEAN;
  2933.     EXTERNAL 'PMGPI' INDEX 44;
  2934.  
  2935.   FUNCTION GpiCloseSegment(ahps : hPs) : BOOLEAN;
  2936.     EXTERNAL 'PMGPI' INDEX 46;
  2937.  
  2938.   FUNCTION GpiDeleteSegment(ahps : hPs; l : LongInt) : BOOLEAN;
  2939.     EXTERNAL 'PMGPI' INDEX 47;
  2940.  
  2941.   FUNCTION GpiQueryInitialSegmentAttrs(ahps : hPs; l : LongInt) : LongInt;
  2942.     EXTERNAL 'PMGPI' INDEX 52;
  2943.  
  2944.   FUNCTION GpiSetInitialSegmentAttrs(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  2945.     EXTERNAL 'PMGPI' INDEX 51;
  2946.  
  2947.   FUNCTION GpiQuerySegmentAttrs(ahps : hPs; l1, l2 : LongInt) : LongInt;
  2948.     EXTERNAL 'PMGPI' INDEX 54;
  2949.  
  2950.   FUNCTION GpiSetSegmentAttrs(ahps       : hPs;
  2951.                               l1, l6, l8 : LongInt) : BOOLEAN;
  2952.     EXTERNAL 'PMGPI' INDEX 53;
  2953.  
  2954.   FUNCTION GpiQuerySegmentPriority(ahps   : hPs;
  2955.                                    l1, l2 : LongInt) : LongInt;
  2956.     EXTERNAL 'PMGPI' INDEX 56;
  2957.  
  2958.   FUNCTION GpiSetSegmentPriority(ahps       : hPs;
  2959.                                  l1, l6, l8 : LongInt) : BOOLEAN;
  2960.     EXTERNAL 'PMGPI' INDEX 55;
  2961.  
  2962.   FUNCTION GpiDeleteSegments(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  2963.     EXTERNAL 'PMGPI' INDEX 48;
  2964.  
  2965.   FUNCTION GpiQuerySegmentNames(    ahps       : hPs;
  2966.                                     l1, l6, l2 : LongInt;
  2967.                                 VAR l7         : { LONG } LongInt) : LongInt;
  2968.     EXTERNAL 'PMGPI' INDEX 49;
  2969.  
  2970. {*** draw functions for segments *}
  2971.  
  2972.   FUNCTION GpiGetData(    ahps   : hPs;
  2973.                           l1     : LongInt;
  2974.                       VAR l9     : { LONG } LongInt;
  2975.                           l2, l6 : LongInt;
  2976.                           aByte  : Pointer) : LongInt;
  2977.     EXTERNAL 'PMGPI' INDEX 28;
  2978.  
  2979.   FUNCTION GpiPutData(    ahps  : hPs;
  2980.                           l1    : LongInt;
  2981.                       VAR l9    : { LONG } LongInt;
  2982.                           aByte : Pointer) : LongInt;
  2983.     EXTERNAL 'PMGPI' INDEX 29;
  2984.  
  2985.   FUNCTION GpiDrawChain(ahps : hPs) : BOOLEAN;
  2986.     EXTERNAL 'PMGPI' INDEX 19;
  2987.  
  2988.   FUNCTION GpiDrawFrom(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  2989.     EXTERNAL 'PMGPI' INDEX 20;
  2990.  
  2991.   FUNCTION GpiDrawSegment(ahps : hPs; l : LongInt) : BOOLEAN;
  2992.     EXTERNAL 'PMGPI' INDEX 21;
  2993.  
  2994.   FUNCTION GpiDrawDynamics(ahps : hPs) : BOOLEAN;
  2995.     EXTERNAL 'PMGPI' INDEX 25;
  2996.  
  2997.   FUNCTION GpiRemoveDynamics(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  2998.     EXTERNAL 'PMGPI' INDEX 24;
  2999.  
  3000.   FUNCTION GpiBeginElement(ahps : hPs; l1 : LongInt; aPsz : pChar) : BOOLEAN;
  3001.     EXTERNAL 'PMGPI' INDEX 70;
  3002.  
  3003.   FUNCTION GpiEndElement(ahps : hPs) : BOOLEAN;
  3004.     EXTERNAL 'PMGPI' INDEX 71;
  3005.  
  3006.   FUNCTION GpiLabel(ahps : hPs; l : LongInt) : BOOLEAN;
  3007.     EXTERNAL 'PMGPI' INDEX 64;
  3008.  
  3009.   FUNCTION GpiElement(ahps  : hPs;
  3010.                       l1    : LongInt;
  3011.                       pSZ   : pChar;
  3012.                       l2    : LongInt;
  3013.                       aByte : Pointer) : LongInt;
  3014.     EXTERNAL 'PMGPI' INDEX 69;
  3015.  
  3016.   FUNCTION GpiQueryElement(ahps   : hPs;
  3017.                            l1, l6 : LongInt;
  3018.                            aByte  : Pointer) : LongInt;
  3019.     EXTERNAL 'PMGPI' INDEX 68;
  3020.  
  3021.   FUNCTION GpiDeleteElement(ahps : hPs) : BOOLEAN;
  3022.     EXTERNAL 'PMGPI' INDEX 62;
  3023.  
  3024.   FUNCTION GpiDeleteElementRange(ahps : hPs; l1, l2 : LongInt) : BOOLEAN;
  3025.     EXTERNAL 'PMGPI' INDEX 63;
  3026.  
  3027.   FUNCTION GpiDeleteElementsBetweenLabels(ahps   : hPs;
  3028.                                           l1, l2 : LongInt) : BOOLEAN;
  3029.     EXTERNAL 'PMGPI' INDEX 66;
  3030.  
  3031.   FUNCTION GpiQueryEditMode(ahps : hPs) : LongInt;
  3032.     EXTERNAL 'PMGPI' INDEX 58;
  3033.  
  3034.   FUNCTION GpiSetEditMode(ahps : hPs; l : LongInt) : BOOLEAN;
  3035.     EXTERNAL 'PMGPI' INDEX 57;
  3036.  
  3037.   FUNCTION GpiQueryElementPointer(ahps : hPs) : LongInt;
  3038.     EXTERNAL 'PMGPI' INDEX 60;
  3039.  
  3040.   FUNCTION GpiSetElementPointer(ahps : hPs; l : LongInt) : BOOLEAN;
  3041.     EXTERNAL 'PMGPI' INDEX 59;
  3042.  
  3043.   FUNCTION GpiOffsetElementPointer(ahps : hPs; l : LongInt) : BOOLEAN;
  3044.     EXTERNAL 'PMGPI' INDEX 61;
  3045.  
  3046.   FUNCTION GpiQueryElementType(    ahps : hPs;
  3047.                                VAR l    : { LONG } LongInt;
  3048.                                    l1   : LongInt;
  3049.                                    pSZ  : pChar) : LongInt;
  3050.     EXTERNAL 'PMGPI' INDEX 67;
  3051.  
  3052.   FUNCTION GpiSetElementPointerAtLabel(ahps : hPs; l : LongInt) : BOOLEAN;
  3053.     EXTERNAL 'PMGPI' INDEX 65;
  3054.  
  3055.   FUNCTION GpiQuerySegmentTransformMatrix(    ahps     : hPs;
  3056.                                               l1, l6   : LongInt;
  3057.                                           VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  3058.     EXTERNAL 'PMGPI' INDEX 79;
  3059.  
  3060.   FUNCTION GpiSetSegmentTransformMatrix(    ahps     : hPs;
  3061.                                             l1, l6   : LongInt;
  3062.                                             MATRIXLF : { LONG } MATRIXLF;
  3063.                                         VAR l11      : { LONG } LongInt) : BOOLEAN;
  3064.     EXTERNAL 'PMGPI' INDEX 78;
  3065.  
  3066.   FUNCTION GpiConvert(    ahps       : hPs;
  3067.                           l1, l6, l2 : LongInt;
  3068.                       VAR aPointL    : { LONG } PointL) : BOOLEAN;
  3069.     EXTERNAL 'PMGPI' INDEX 93;
  3070.  
  3071.   FUNCTION GpiQueryModelTransformMatrix(    ahps     : hPs;
  3072.                                             l1       : LongInt;
  3073.                                         VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  3074.     EXTERNAL 'PMGPI' INDEX 81;
  3075.  
  3076.   FUNCTION GpiSetModelTransformMatrix(    ahps     : hPs;
  3077.                                           l1       : LongInt;
  3078.                                           MATRIXLF : { LONG } MATRIXLF;
  3079.                                       VAR l11      : { LONG } LongInt) : BOOLEAN;
  3080.     EXTERNAL 'PMGPI' INDEX 80;
  3081.  
  3082.   FUNCTION GpiCallSegmentMatrix(    ahps     : hPs;
  3083.                                     l1, l6   : LongInt;
  3084.                                     MATRIXLF : { LONG } MATRIXLF;
  3085.                                 VAR l11      : { LONG } LongInt) : LongInt;
  3086.     EXTERNAL 'PMGPI' INDEX 82;
  3087.  
  3088.   FUNCTION GpiQueryDefaultViewMatrix(    ahps     : hPs;
  3089.                                          l1       : LongInt;
  3090.                                      VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  3091.     EXTERNAL 'PMGPI' INDEX 84;
  3092.  
  3093.   FUNCTION GpiSetDefaultViewMatrix(    ahps     : hPs;
  3094.                                        l1       : LongInt;
  3095.                                        MATRIXLF : { LONG } MATRIXLF;
  3096.                                    VAR l11      : { LONG } LongInt) : BOOLEAN;
  3097.     EXTERNAL 'PMGPI' INDEX 83;
  3098.  
  3099.   FUNCTION GpiQueryPageViewport(    hPs    : hPs;
  3100.                                 VAR aRectl : { LONG } RectL) : BOOLEAN;
  3101.     EXTERNAL 'PMGPI' INDEX 86;
  3102.  
  3103.   FUNCTION GpiSetPageViewport(ahps : hPs; aRectl : { LONG } RectL) : BOOLEAN;
  3104.     EXTERNAL 'PMGPI' INDEX 85;
  3105.  
  3106.   FUNCTION GpiQueryViewingTransformMatrix(    ahps     : hPs;
  3107.                                               l1       : LongInt;
  3108.                                           VAR MATRIXLF : { LONG } MATRIXLF) : BOOLEAN;
  3109.     EXTERNAL 'PMGPI' INDEX 88;
  3110.  
  3111.   FUNCTION GpiSetViewingTransformMatrix(    ahps     : hPs;
  3112.                                             l1       : LongInt;
  3113.                                             MATRIXLF : { LONG } MATRIXLF;
  3114.                                         VAR l11      : { LONG } LongInt): BOOLEAN;
  3115.     EXTERNAL 'PMGPI' INDEX 87;
  3116.  
  3117.   FUNCTION GpiTranslate(a : hPs;
  3118.                         b : MATRIXLF;
  3119.                         c : LongInt;
  3120.                         d : PointL) : BOOLEAN;
  3121.     EXTERNAL 'PMGPI' INDEX 283;
  3122.  
  3123.   FUNCTION GpiScale(a : hPs;
  3124.                     b : MATRIXLF;
  3125.                     c : LongInt;
  3126.                     d : Fixed;
  3127.                     e : PointL) : BOOLEAN;
  3128.     EXTERNAL 'PMGPI' INDEX 284;
  3129.  
  3130.   FUNCTION GpiRotate(a : hPs;
  3131.                      b : MATRIXLF;
  3132.                      c : LongInt;
  3133.                      d : Fixed;
  3134.                      e : PointL) : BOOLEAN;
  3135.     EXTERNAL 'PMGPI' INDEX 285;
  3136.  
  3137. {*** general clipping functions *}
  3138.  
  3139.   FUNCTION GpiSetGraphicsField(ahps   : hPs;
  3140.                                aRectl : { LONG } RectL) : BOOLEAN;
  3141.     EXTERNAL 'PMGPI' INDEX 89;
  3142.  
  3143.   FUNCTION GpiQueryGraphicsField(    ahps   : hPs;
  3144.                                  VAR aRectl : { LONG } RectL) : BOOLEAN;
  3145.     EXTERNAL 'PMGPI' INDEX 90;
  3146.  
  3147.   FUNCTION GpiSetViewingLimits(ahps   : hPs;
  3148.                                aRectl : { LONG } RectL) : BOOLEAN;
  3149.     EXTERNAL 'PMGPI' INDEX 91;
  3150.  
  3151.   FUNCTION GpiQueryViewingLimits(    ahps   : hPs;
  3152.                                  VAR aRectl : { LONG } RectL) : BOOLEAN;
  3153.     EXTERNAL 'PMGPI' INDEX 92;
  3154.  
  3155.   FUNCTION GpiCreateLogColorTable(    ahps       : hPs;
  3156.                                       c1         : LongInt;
  3157.                                       l1, l2, l3 : LongInt;
  3158.                                   VAR l7         : { LONG } LongInt) : BOOLEAN;
  3159.     EXTERNAL 'PMGPI' INDEX 99;
  3160.  
  3161.   FUNCTION GpiRealizeColorTable(ahps : hPs) : BOOLEAN;
  3162.     EXTERNAL 'PMGPI' INDEX 100;
  3163.  
  3164.   FUNCTION GpiUnrealizeColorTable(ahps : hPs) : BOOLEAN;
  3165.     EXTERNAL 'PMGPI' INDEX 101;
  3166.  
  3167.   FUNCTION GpiQueryColorData(    ahps : hPs;
  3168.                                  l1   : LongInt;
  3169.                              VAR l7   : { LONG } LongInt) : BOOLEAN;
  3170.     EXTERNAL 'PMGPI' INDEX 102;
  3171.  
  3172.   FUNCTION GpiQueryLogColorTable(    ahps   : hPs;
  3173.                                      c1     : LongInt;
  3174.                                      l1, l2 : LongInt;
  3175.                                  VAR l7     : { LONG } LongInt) : LongInt;
  3176.     EXTERNAL 'PMGPI' INDEX 103;
  3177.  
  3178.   FUNCTION GpiQueryRealColors(    ahps   : hPs;
  3179.                                   c1     : LongInt;
  3180.                                   l2, l6 : LongInt;
  3181.                               VAR l7     : { LONG } LongInt) : LongInt;
  3182.     EXTERNAL 'PMGPI' INDEX 104;
  3183.  
  3184.   FUNCTION GpiQueryNearestColor(ahps : hPs;
  3185.                                 c1   : LongInt;
  3186.                                 i1   : LongInt) : LongInt;
  3187.     EXTERNAL 'PMGPI' INDEX 105;
  3188.  
  3189.   FUNCTION GpiQueryColorIndex(ahps : hPs;
  3190.                               c1   : LongInt;
  3191.                               l1   : LongInt) : LongInt;
  3192.     EXTERNAL 'PMGPI' INDEX 106;
  3193.  
  3194.   FUNCTION GpiQueryRGBColor(ahps : hPs;
  3195.                             c1   : LongInt;
  3196.                             l2   : LongInt) : LongInt;
  3197.     EXTERNAL 'PMGPI' INDEX 107;
  3198.  
  3199.   FUNCTION GpiSetColor(ahps : hPs; l : LongInt) : BOOLEAN;
  3200.     EXTERNAL 'PMGPI' INDEX 108;
  3201.  
  3202.   FUNCTION GpiQueryColor(ahps : hPs) : LongInt;
  3203.     EXTERNAL 'PMGPI' INDEX 109;
  3204.  
  3205. {*** line primitive functions *}
  3206.  
  3207.   FUNCTION GpiBox(hPs     : hPs;
  3208.                   l1      : LongInt;
  3209.                   aPointL : { LONG } PointL;
  3210.                   l2, l8  : LongInt) : LongInt;
  3211.     EXTERNAL 'PMGPI' INDEX 131;
  3212.  
  3213.   FUNCTION GpiMove(ahps : hPs; aPointL : { LONG } PointL) : BOOLEAN;
  3214.     EXTERNAL 'PMGPI' INDEX 128;
  3215.  
  3216.   FUNCTION GpiLine(hPs : hPs; aPointL : { LONG } PointL) : LongInt;
  3217.     EXTERNAL 'PMGPI' INDEX 129;
  3218.  
  3219.   FUNCTION GpiPolyLine(ahps   : hPs;
  3220.                        l1     : LongInt;
  3221.                        PointL : { LONG } PointL) : LongInt;
  3222.     EXTERNAL 'PMGPI' INDEX 130;
  3223.  
  3224. {*** area primitive functions *}
  3225.  
  3226.   FUNCTION GpiSetPattern(ahps : hPs; l : LongInt) : BOOLEAN;
  3227.     EXTERNAL 'PMGPI' INDEX 146;
  3228.  
  3229.   FUNCTION GpiQueryPattern(ahps : hPs) : LongInt;
  3230.     EXTERNAL 'PMGPI' INDEX 147;
  3231.  
  3232.   FUNCTION GpiBeginArea(ahps : hPs; u : LongInt) : BOOLEAN;
  3233.     EXTERNAL 'PMGPI' INDEX 150;
  3234.  
  3235.   FUNCTION GpiEndArea(ahps : hPs) : LongInt;
  3236.     EXTERNAL 'PMGPI' INDEX 151;
  3237.  
  3238. {*** character primitive functions *}
  3239.  
  3240.   FUNCTION GpiCharString;     EXTERNAL 'PMGPI' INDEX 180;
  3241.  
  3242.   FUNCTION GpiCharStringAt;   EXTERNAL 'PMGPI' INDEX 181;
  3243.  
  3244.   FUNCTION GpiSetAttrMode;    EXTERNAL 'PMGPI' INDEX 94;
  3245.  
  3246.   FUNCTION GpiQueryAttrMode;  EXTERNAL 'PMGPI' INDEX 95;
  3247.  
  3248. {*** bundle primitive functions *}
  3249.  
  3250.   FUNCTION GpiSetAttrs(ahps  : hPs;
  3251.                        l1    : LongInt;
  3252.                        c1    : LongInt;
  3253.                        u     : LongInt;
  3254.                        P {?} : pBundle) : BOOLEAN;
  3255.     EXTERNAL 'PMGPI' INDEX 97;
  3256.  
  3257.   FUNCTION GpiQueryAttrs(ahps   : hPs;
  3258.                          l1, l2 : LongInt;
  3259.                          P {?}  : pBundle) : LongInt;
  3260.     EXTERNAL 'PMGPI' INDEX 98;
  3261.  
  3262. {*** global primitive functions *}
  3263.  
  3264.   FUNCTION GpiSetBackColor(ahps : hPs; l : LongInt) : BOOLEAN;
  3265.     EXTERNAL 'PMGPI' INDEX 110;
  3266.  
  3267.   FUNCTION GpiQueryBackColor(ahps : hPs) : LongInt;
  3268.     EXTERNAL 'PMGPI' INDEX 111;
  3269.  
  3270.   FUNCTION GpiSetMix(ahps : hPs; l : LongInt) : BOOLEAN;
  3271.     EXTERNAL 'PMGPI' INDEX 112;
  3272.  
  3273.   FUNCTION GpiQueryMix(ahps : hPs) : LongInt;
  3274.     EXTERNAL 'PMGPI' INDEX 113;
  3275.  
  3276.   FUNCTION GpiSetBackMix(ahps : hPs; l : LongInt) : BOOLEAN;
  3277.     EXTERNAL 'PMGPI' INDEX 114;
  3278.  
  3279.   FUNCTION GpiQueryBackMix(ahps : hPs) : LongInt;
  3280.     EXTERNAL 'PMGPI' INDEX 115;
  3281.  
  3282. {*** line primitive functions *}
  3283.  
  3284.   FUNCTION GpiSetLineType(ahps : hPs; l : LongInt) : BOOLEAN;
  3285.     EXTERNAL 'PMGPI' INDEX 116;
  3286.  
  3287.   FUNCTION GpiQueryLineType(ahps : hPs) : LongInt;
  3288.     EXTERNAL 'PMGPI' INDEX 117;
  3289.  
  3290.   FUNCTION GpiSetLineWidth(ahps : hPs; f : Fixed) : BOOLEAN;
  3291.     EXTERNAL 'PMGPI' INDEX 118;
  3292.  
  3293.   FUNCTION GpiQueryLineWidth(ahps : hPs) : Fixed;
  3294.     EXTERNAL 'PMGPI' INDEX 119;
  3295.  
  3296.   FUNCTION GpiSetLineWidthGeom(ahps : hPs; l : LongInt) : BOOLEAN;
  3297.     EXTERNAL 'PMGPI' INDEX 120;
  3298.  
  3299.   FUNCTION GpiQueryLineWidthGeom(ahps : hPs) : LongInt;
  3300.     EXTERNAL 'PMGPI' INDEX 121;
  3301.  
  3302.   FUNCTION GpiSetLineEnd(ahps : hPs; l : LongInt) : BOOLEAN;
  3303.     EXTERNAL 'PMGPI' INDEX 122;
  3304.  
  3305.   FUNCTION GpiQueryLineEnd(ahps : hPs) : LongInt;
  3306.     EXTERNAL 'PMGPI' INDEX 123;
  3307.  
  3308.   FUNCTION GpiSetLineJoin(ahps : hPs; l : LongInt) : BOOLEAN;
  3309.     EXTERNAL 'PMGPI' INDEX 124;
  3310.  
  3311.   FUNCTION GpiQueryLineJoin(ahps : hPs) : LongInt;
  3312.     EXTERNAL 'PMGPI' INDEX 125;
  3313.  
  3314.   FUNCTION GpiSetCurrentPosition(ahps : hPs; aPointL : { LONG } PointL) : BOOLEAN;
  3315.     EXTERNAL 'PMGPI' INDEX 126;
  3316.  
  3317.   FUNCTION GpiQueryCurrentPosition(    ahps    : hPs;
  3318.                                    VAR aPointL : { LONG } PointL) : BOOLEAN;
  3319.     EXTERNAL 'PMGPI' INDEX 127;
  3320.  
  3321. {*** arc primitive functions *}
  3322.  
  3323.   FUNCTION GpiSetArcParams(ahps : hPs;
  3324.                            P    : { LONG } ArcParams) : BOOLEAN;
  3325.     EXTERNAL 'PMGPI' INDEX 134;
  3326.  
  3327.   FUNCTION GpiQueryArcParams(    ahps : hPs;
  3328.                              VAR P    : { LONG } ArcParams) : BOOLEAN;
  3329.     EXTERNAL 'PMGPI' INDEX 135;
  3330.  
  3331.   FUNCTION GpiPointArc(ahps    : hPs;
  3332.                        aPointL : { LONG } PointL) : LongInt;
  3333.     EXTERNAL 'PMGPI' INDEX 136;
  3334.  
  3335.   FUNCTION GpiFullArc(ahps : hPs;
  3336.                       l1   : LongInt;
  3337.                       f    : Fixed) : LongInt;
  3338.     EXTERNAL 'PMGPI' INDEX 137;
  3339.  
  3340.   FUNCTION GpiPartialArc(ahps       : hPs;
  3341.                          aPointL    : { LONG } PointL;
  3342.                          f1, f2, f3 : Fixed) : LongInt;
  3343.     EXTERNAL 'PMGPI' INDEX 138;
  3344.  
  3345.   FUNCTION GpiPolyFilletSharp(ahps    : hPs;
  3346.                               l1      : LongInt;
  3347.                               aPointL : { LONG } PointL;
  3348.                               f4      : { LONG } Fixed) : LongInt;
  3349.     EXTERNAL 'PMGPI' INDEX 140;
  3350.  
  3351.   FUNCTION GpiPolySpline(ahps    : hPs;
  3352.                          l1      : LongInt;
  3353.                          aPointL : { LONG } PointL) : LongInt;
  3354.     EXTERNAL 'PMGPI' INDEX 141;
  3355.  
  3356.   FUNCTION GpiPolyFillet(ahps   : hPs;
  3357.                          l1     : LongInt;
  3358.                          PointL : { LONG } PointL) : LongInt;
  3359.     EXTERNAL 'PMGPI' INDEX 139;
  3360.  
  3361. {*** area primitive functions *}
  3362.  
  3363.   FUNCTION GpiSetPatternSet(ahps : hPs; l : LongInt) : BOOLEAN;
  3364.     EXTERNAL 'PMGPI' INDEX 144;
  3365.  
  3366.   FUNCTION GpiQueryPatternSet(ahps : hPs) : LongInt;
  3367.     EXTERNAL 'PMGPI' INDEX 145;
  3368.  
  3369.   FUNCTION GpiSetPatternRefPoint(ahps    : hPs;
  3370.                                  aPointL : { LONG } PointL) : BOOLEAN;
  3371.     EXTERNAL 'PMGPI' INDEX 148;
  3372.  
  3373.   FUNCTION GpiQueryPatternRefPoint(    ahps   : hPs;
  3374.                                    VAR PointL : { LONG } PointL) : BOOLEAN;
  3375.     EXTERNAL 'PMGPI' INDEX 149;
  3376.  
  3377. {*** character primitive functions *}
  3378.  
  3379.   FUNCTION GpiQueryCharStringPos; EXTERNAL 'PMGPI' INDEX 245;
  3380.  
  3381.   FUNCTION GpiQueryCharStringPosAt;  EXTERNAL 'PMGPI' INDEX 246;
  3382.  
  3383.   FUNCTION GpiQueryTextBox;
  3384.     EXTERNAL 'PMGPI' INDEX 164;
  3385.  
  3386.   FUNCTION GpiQueryDefCharBox;
  3387.     EXTERNAL 'PMGPI' INDEX 166;
  3388.  
  3389.   FUNCTION GpiSetCharSet;   EXTERNAL 'PMGPI' INDEX 168;
  3390.  
  3391.   FUNCTION GpiQueryCharSet;
  3392.     EXTERNAL 'PMGPI' INDEX 169;
  3393.  
  3394.   FUNCTION GpiSetCharBox(ahps : hPs; SizeF : { LONG } SizeF) : BOOLEAN;
  3395.     EXTERNAL 'PMGPI' INDEX 170;
  3396.  
  3397.   FUNCTION GpiQueryCharBox(    ahps  : hPs;
  3398.                            VAR SizeF : { LONG } SizeF) : BOOLEAN;
  3399.     EXTERNAL 'PMGPI' INDEX 171;
  3400.  
  3401.   FUNCTION GpiSetCharAngle(ahps       : hPs;
  3402.                            aGradientL : { LONG } GradientL) : BOOLEAN;
  3403.     EXTERNAL 'PMGPI' INDEX 172;
  3404.  
  3405.   FUNCTION GpiQueryCharAngle(    ahps       : hPs;
  3406.                              VAR aGradientL : { LONG } GradientL) : BOOLEAN;
  3407.     EXTERNAL 'PMGPI' INDEX 173;
  3408.  
  3409.   FUNCTION GpiSetCharShear(ahps : hPs; aPointL : { LONG } PointL) : BOOLEAN;
  3410.     EXTERNAL 'PMGPI' INDEX 174;
  3411.  
  3412.   FUNCTION GpiQueryCharShear(    ahps    : hPs;
  3413.                              VAR aPointL : { LONG } PointL) : BOOLEAN;
  3414.     EXTERNAL 'PMGPI' INDEX 175;
  3415.  
  3416.   FUNCTION GpiSetCharDirection(ahps : hPs; l : LongInt) : BOOLEAN;
  3417.     EXTERNAL 'PMGPI' INDEX 176;
  3418.  
  3419.   FUNCTION GpiQueryCharDirection(ahps : hPs) : LongInt;
  3420.     EXTERNAL 'PMGPI' INDEX 177;
  3421.  
  3422.   FUNCTION GpiSetCharMode(ahps : hPs; l : LongInt) : BOOLEAN;
  3423.     EXTERNAL 'PMGPI' INDEX 178;
  3424.  
  3425.   FUNCTION GpiQueryCharMode(ahps : hPs) : LongInt;
  3426.     EXTERNAL 'PMGPI' INDEX 179;
  3427.  
  3428.   FUNCTION GpiCharStringPos;
  3429.     EXTERNAL 'PMGPI' INDEX 182;
  3430.  
  3431.   FUNCTION GpiCharStringPosAt;
  3432.     EXTERNAL 'PMGPI' INDEX 183;
  3433.  
  3434. {*** marker primitive functions *}
  3435.  
  3436.   FUNCTION GpiSetMarkerSet(ahps : hPs; l : LongInt) : BOOLEAN;
  3437.     EXTERNAL 'PMGPI' INDEX 184;
  3438.  
  3439.   FUNCTION GpiQueryMarkerSet(ahps : hPs) : LongInt;
  3440.     EXTERNAL 'PMGPI' INDEX 185;
  3441.  
  3442.   FUNCTION GpiSetMarker(ahps : hPs; l : LongInt) : BOOLEAN;
  3443.     EXTERNAL 'PMGPI' INDEX 186;
  3444.  
  3445.   FUNCTION GpiQueryMarker(ahps : hPs) : LongInt;
  3446.     EXTERNAL 'PMGPI' INDEX 187;
  3447.  
  3448.   FUNCTION GpiSetMarkerBox(ahps : hPs; aSizeF : { LONG } SizeF) : BOOLEAN;
  3449.     EXTERNAL 'PMGPI' INDEX 188;
  3450.  
  3451.   FUNCTION GpiQueryMarkerBox(ahps : hPs; VAR aSizeF : { LONG } SizeF) : BOOLEAN;
  3452.     EXTERNAL 'PMGPI' INDEX 189;
  3453.  
  3454.   FUNCTION GpiMarker(ahps : hPs; aPointL : { LONG } PointL) : LongInt;
  3455.     EXTERNAL 'PMGPI' INDEX 190;
  3456.  
  3457.   FUNCTION GpiPolyMarker(ahps    : hPs;
  3458.                          l1      : LongInt;
  3459.                          aPointL : { LONG } PointL) : LongInt;
  3460.     EXTERNAL 'PMGPI' INDEX 191;
  3461.  
  3462. {*** image primitive functions *}
  3463.  
  3464.   FUNCTION GpiImage(ahps   : hPs;
  3465.                     l1     : LongInt;
  3466.                     aSizeL : { LONG } SizeL;
  3467.                     c7     : LongInt;
  3468.                     aByte  : Pointer) : LongInt;
  3469.     EXTERNAL 'PMGPI' INDEX 192;
  3470.  
  3471. {*** miscellaneous primitive functions *}
  3472.  
  3473.   FUNCTION GpiPop(ahps : hPs; l : LongInt) : BOOLEAN;
  3474.     EXTERNAL 'PMGPI' INDEX 96;
  3475.  
  3476.   FUNCTION GpiPtVisible(ahps : hPs; aPointL : { LONG } PointL) : LongInt;
  3477.     EXTERNAL 'PMGPI' INDEX 132;
  3478.  
  3479.   FUNCTION GpiRectVisible(ahps : hPs; aRectl : { LONG } RectL) : LongInt;
  3480.     EXTERNAL 'PMGPI' INDEX 133;
  3481.  
  3482.   FUNCTION GpiComment(ahps  : hPs;
  3483.                       l1    : LongInt;
  3484.                       aByte : Pointer) : BOOLEAN;
  3485.     EXTERNAL 'PMGPI' INDEX 268;
  3486.  
  3487.   FUNCTION GpiDeleteSetId(ahps : hPs; l : LongInt) : BOOLEAN;
  3488.     EXTERNAL 'PMGPI' INDEX 155;
  3489.  
  3490.   FUNCTION GpiQueryNumberSetIds(ahps : hPs) : LongInt;
  3491.     EXTERNAL 'PMGPI' INDEX 156;
  3492.  
  3493.   FUNCTION GpiQuerySetIds(    ahps : hPs;
  3494.                               l1   : LongInt;
  3495.                           VAR l9   : { LONG } LongInt;
  3496.                           VAR aStr8: { LONG } Str8;
  3497.                           VAR i3   : { LONG } LongInt) : BOOLEAN;
  3498.     EXTERNAL 'PMGPI' INDEX 157;
  3499.  
  3500.   FUNCTION GpiLoadFonts(ahab : HAB; P : pChar) : BOOLEAN;
  3501.     EXTERNAL 'PMGPI' INDEX 152;
  3502.  
  3503.   FUNCTION GpiUnloadFonts(ahab : HAB; P : pChar) : BOOLEAN;
  3504.     EXTERNAL 'PMGPI' INDEX 153;
  3505.  
  3506.   FUNCTION GpiCreateLogFont(    ahps    : hPs;
  3507.                             VAR aStr8   : { LONG } Str8;
  3508.                                 i5      : LongInt;
  3509.                             VAR aFAttrs : { LONG } fAttrs) : LongInt;
  3510.     EXTERNAL 'PMGPI' INDEX 154;
  3511.  
  3512.   FUNCTION GpiQueryFonts(    ahps         : hPs;
  3513.                              l1           : LongInt;
  3514.                              P            : pChar;
  3515.                          VAR c2           : { LONG } LongInt;
  3516.                              c3           : LongInt;
  3517.                          VAR aFontMetrics : { LONG } FontMetrics) : LongInt;
  3518.     EXTERNAL 'PMGPI' INDEX 158;
  3519.  
  3520.   FUNCTION GpiQueryFontMetrics(    ahps         : hPs;
  3521.                                    l1           : LongInt;
  3522.                                VAR aFontMetrics : { LONG } FontMetrics) : BOOLEAN;
  3523.     EXTERNAL 'PMGPI' INDEX 159;
  3524.  
  3525.   FUNCTION GpiQueryKerningPairs(    ahps          : hPs;
  3526.                                     l1            : LongInt;
  3527.                                 VAR aKerningPairs : { LONG } KerningPairs) : LongInt;
  3528.     EXTERNAL 'PMGPI' INDEX 160;
  3529.  
  3530.   FUNCTION GpiQueryWidthTable(    ahps      : hPs;
  3531.                                   l1        : LongInt;
  3532.                                   l6        : LongInt;
  3533.                               VAR LongArray : LongInt) : BOOLEAN;
  3534.     EXTERNAL 'PMGPI' INDEX 161;
  3535.  
  3536.   FUNCTION GpiSetCp(ahps : hPs; c8 : WORD) : BOOLEAN;
  3537.     EXTERNAL 'PMGPI' INDEX 162;
  3538.  
  3539.   FUNCTION GpiQueryCp(ahps : hPs) : WORD;
  3540.     EXTERNAL 'PMGPI' INDEX 163;
  3541.  
  3542.   FUNCTION GpiQueryFontFileDescriptions(    ahab     : HAB;
  3543.                                             P        : pChar;
  3544.                                         VAR c2       : { LONG } LongInt;
  3545.                                         VAR aFFDescs : { LONG } FFDescs) : LongInt;
  3546.     EXTERNAL 'PMGPI' INDEX 167;
  3547.  
  3548.   FUNCTION GpiDeleteBitmap(aHBitmap : hBitmap) : BOOLEAN;
  3549.     EXTERNAL 'PMGPI' INDEX 197;
  3550.  
  3551.   FUNCTION GpiSetBitmap(ahps : hPs; aHBitmap : hBitmap) : hBitmap;
  3552.     EXTERNAL 'PMGPI' INDEX 198;
  3553.  
  3554.   FUNCTION GpiBitBlt(ahps    : hPs;
  3555.                      ahps    : hPs;
  3556.                      c3      : LongInt;
  3557.                      aPointL : { LONG } PointL;
  3558.                      c4      : LongInt;
  3559.                      i9      : LongInt) : LongInt;
  3560.     EXTERNAL 'PMGPI' INDEX 205;
  3561.  
  3562.   FUNCTION GpiWCBitBlt(ahps     : hPs;
  3563.                        aHBitmap : hBitmap;
  3564.                        ac3      : LongInt;
  3565.                        aPointL  : { LONG } PointL;
  3566.                        c3       : LongInt;
  3567.                        i9       : LongInt) : LongInt;
  3568.     EXTERNAL 'PMGPI' INDEX 269;
  3569.  
  3570.   FUNCTION GpiCreateBitmap(ahps              : hPs;
  3571.                            aBitMapInfoHeader : { LONG } BitmapInfoHeader;
  3572.                            i8                : LongInt;
  3573.                            aByte             : Pointer;
  3574.                            aBitMapInfo       : { LONG } BitmapInfo) : hBitmap;
  3575.     EXTERNAL 'PMGPI' INDEX 196;
  3576.  
  3577.   FUNCTION GpiSetBitmapDimension(aHBitmap : hBitmap;
  3578.                                  aPSizeL  : { LONG } SizeL) : BOOLEAN;
  3579.     EXTERNAL 'PMGPI' INDEX 199;
  3580.  
  3581.   FUNCTION GpiQueryBitmapDimension(    aHBitmap : hBitmap;
  3582.                                    VAR aPSizeL  : { LONG } SizeL) : BOOLEAN;
  3583.     EXTERNAL 'PMGPI' INDEX 200;
  3584.  
  3585.   FUNCTION GpiQueryDeviceBitmapFormats(    ahps : hPs;
  3586.                                            l1   : LongInt;
  3587.                                        VAR l7   : { LONG } LongInt) : BOOLEAN;
  3588.     EXTERNAL 'PMGPI' INDEX 201;
  3589.  
  3590.   FUNCTION GpiQueryBitmapParameters(    aHBitmap          : hBitmap;
  3591.                                     VAR aBitMapInfoHeader : { LONG } BitmapInfoHeader) : BOOLEAN;
  3592.     EXTERNAL 'PMGPI' INDEX 202;
  3593.  
  3594.   FUNCTION GpiQueryBitmapBits(    ahps        : hPs;
  3595.                                   l1          : LongInt;
  3596.                                   l6          : LongInt;
  3597.                                   aByte       : Pointer;
  3598.                               VAR aBitMapInfo : { LONG } BitmapInfo) : LongInt;
  3599.     EXTERNAL 'PMGPI' INDEX 204;
  3600.  
  3601.   FUNCTION GpiSetBitmapBits(ahps        : hPs;
  3602.                             l1          : LongInt;
  3603.                             l6          : LongInt;
  3604.                             aByte       : Pointer;
  3605.                             aBitMapInfo : { LONG } BitmapInfo) : LongInt;
  3606.     EXTERNAL 'PMGPI' INDEX 203;
  3607.  
  3608.   FUNCTION GpiSetPel(ahps : hPs; aPointL : { LONG } PointL) : LongInt;
  3609.     EXTERNAL 'PMGPI' INDEX 206;
  3610.  
  3611.   FUNCTION GpiQueryPel(    ahps    : hPs;
  3612.                        VAR aPointL : { LONG } PointL) : LongInt;
  3613.     EXTERNAL 'PMGPI' INDEX 207;
  3614.  
  3615.   FUNCTION GpiSetBitmapId(ahps : hPs; aHBitmap : hBitmap; c4 : LongInt) : BOOLEAN;
  3616.     EXTERNAL 'PMGPI' INDEX 142;
  3617.  
  3618.   FUNCTION GpiQueryBitmapHandle(ahps : hPs; l : LongInt) : hBitmap;
  3619.     EXTERNAL 'PMGPI' INDEX 143;
  3620.  
  3621.   FUNCTION GpiCreateRegion(ahps   : hPs;
  3622.                            l1     : LongInt;
  3623.                            aRectl : { LONG } RectL) : HRGN;
  3624.     EXTERNAL 'PMGPI' INDEX 208;
  3625.  
  3626.   FUNCTION GpiSetRegion(ahps   : hPs;
  3627.                         ahRGN  : HRGN;
  3628.                         c3     : LongInt;
  3629.                         aRectl : { LONG } RectL) : BOOLEAN;
  3630.     EXTERNAL 'PMGPI' INDEX 209;
  3631.  
  3632.   FUNCTION GpiDestroyRegion(ahps : hPs; hRGN1 : HRGN) : BOOLEAN;
  3633.     EXTERNAL 'PMGPI' INDEX 210;
  3634.  
  3635.   FUNCTION GpiCombineRegion(ahps  : hPs;
  3636.                             hRGN1 : HRGN;
  3637.                             hRGN2 : HRGN;
  3638.                             hRGN3 : HRGN;
  3639.                             c4    : LongInt) : LongInt;
  3640.     EXTERNAL 'PMGPI' INDEX 211;
  3641.  
  3642.   FUNCTION GpiEqualRegion(ahps  : hPs;
  3643.                           hRGN1 : HRGN;
  3644.                           hRGN2 : HRGN) : LongInt;
  3645.     EXTERNAL 'PMGPI' INDEX 212;
  3646.  
  3647.   FUNCTION GpiOffsetRegion(ahps    : hPs;
  3648.                            ahRGN   : HRGN;
  3649.                            aPointL : { LONG } PointL) : BOOLEAN;
  3650.     EXTERNAL 'PMGPI' INDEX 213;
  3651.  
  3652.   FUNCTION GpiPtInRegion(ahps    : hPs;
  3653.                          ahRGN   : HRGN;
  3654.                          aPointL : { LONG } PointL) : LongInt;
  3655.     EXTERNAL 'PMGPI' INDEX 214;
  3656.  
  3657.   FUNCTION GpiRectInRegion(ahps   : hPs;
  3658.                            ahRGN  : HRGN;
  3659.                            aRectl : { LONG } RectL) : LongInt;
  3660.     EXTERNAL 'PMGPI' INDEX 215;
  3661.  
  3662.   FUNCTION GpiQueryRegionBox(    ahps   : hPs;
  3663.                                  ahRGN  : HRGN;
  3664.                              VAR aRectl : { LONG } RectL) : LongInt;
  3665.     EXTERNAL 'PMGPI' INDEX 216;
  3666.  
  3667.   FUNCTION GpiQueryRegionRects(    ahps     : hPs;
  3668.                                    ahRGN    : HRGN;
  3669.                                    aRectl   : { LONG } RectL;
  3670.                                    aRGNRect : { LONG } rgnRect;
  3671.                                VAR aRectl   : { LONG } RectL) : BOOLEAN;
  3672.     EXTERNAL 'PMGPI' INDEX 217;
  3673.  
  3674.   FUNCTION GpiPaintRegion(ahps : hPs; ahRGN : HRGN) : LongInt;
  3675.     EXTERNAL 'PMGPI' INDEX 224;
  3676.  
  3677. {*** clip region functions *}
  3678.  
  3679.   FUNCTION GpiSetClipRegion(ahps  : hPs;
  3680.                             ahRGN : HRGN;
  3681.                             ahRGN : { LONG } HRGN) : LongInt;
  3682.     EXTERNAL 'PMGPI' INDEX 218;
  3683.  
  3684.   FUNCTION GpiQueryClipRegion(ahps : hPs) : HRGN;
  3685.     EXTERNAL 'PMGPI' INDEX 219;
  3686.  
  3687.   FUNCTION GpiQueryClipBox(    ahps   : hPs;
  3688.                            VAR aRectl : { LONG } RectL) : LongInt;
  3689.     EXTERNAL 'PMGPI' INDEX 220;
  3690.  
  3691.   FUNCTION GpiIntersectClipRectangle(ahps   : hPs;
  3692.                                      aRectl : { LONG } RectL) : LongInt;
  3693.     EXTERNAL 'PMGPI' INDEX 221;
  3694.  
  3695.   FUNCTION GpiExcludeClipRectangle(ahps   : hPs;
  3696.                                    aRectl : { LONG } RectL) : LongInt;
  3697.     EXTERNAL 'PMGPI' INDEX 222;
  3698.  
  3699.   FUNCTION GpiOffsetClipRegion(ahps    : hPs;
  3700.                                aPointL : { LONG } PointL) : LongInt;
  3701.     EXTERNAL 'PMGPI' INDEX 223;
  3702.  
  3703.   FUNCTION GpiLoadMetaFile(ahab : HAB; P : pChar) : hMF;
  3704.     EXTERNAL 'PMGPI' INDEX 225;
  3705.  
  3706.   FUNCTION GpiPlayMetaFile(    ahps : hPs;
  3707.                                aHMF : hMF;
  3708.                                c3   : LongInt;
  3709.                            VAR c2   : { LONG } LongInt;
  3710.                            VAR c1   : { LONG } LongInt;
  3711.                                c4   : LongInt;
  3712.                                P    : pChar) : LongInt;
  3713.     EXTERNAL 'PMGPI' INDEX 227;
  3714.  
  3715.   FUNCTION GpiSaveMetaFile(aHMF : hMF; P : pChar) : BOOLEAN;
  3716.     EXTERNAL 'PMGPI' INDEX 228;
  3717.  
  3718.   FUNCTION GpiDeleteMetaFile(aHMF : hMF) : BOOLEAN;
  3719.     EXTERNAL 'PMGPI' INDEX 229;
  3720.  
  3721.   FUNCTION GpiCopyMetaFile(aHMF : hMF) : hMF;
  3722.     EXTERNAL 'PMGPI' INDEX 226;
  3723.  
  3724.   FUNCTION GpiQueryMetaFileLength(aHMF : hMF) : LongInt;
  3725.     EXTERNAL 'PMGPI' INDEX 232;
  3726.  
  3727.   FUNCTION GpiQueryMetaFileBits(aHMF   : hMF;
  3728.                                 c1, c3 : LongInt;
  3729.                                 aByte  : Pointer) : BOOLEAN;
  3730.     EXTERNAL 'PMGPI' INDEX 230;
  3731.  
  3732.   FUNCTION GpiSetMetaFileBits(aHMF   : hMF;
  3733.                               c1, c3 : LongInt;
  3734.                               aByte  : Pointer) : BOOLEAN;
  3735.     EXTERNAL 'PMGPI' INDEX 231;
  3736.  
  3737.   FUNCTION GpiQueryDefArcParams(a : hPs; VAR b : ArcParams) : BOOLEAN;
  3738.     EXTERNAL 'PMGPI' INDEX 282;
  3739.  
  3740.   FUNCTION GpiQueryDefAttrs(a : hPs;
  3741.                             b : LongInt;
  3742.                             c : LongInt;
  3743.                             d : pBundle) : BOOLEAN;
  3744.     EXTERNAL 'PMGPI' INDEX 278;
  3745.  
  3746.   FUNCTION GpiQueryDefTag(a : hPs; VAR b : LongInt) : BOOLEAN;
  3747.     EXTERNAL 'PMGPI' INDEX 276;
  3748.  
  3749.   FUNCTION GpiQueryDefViewingLimits(a : hPs; VAR b : RectL) : BOOLEAN;
  3750.     EXTERNAL 'PMGPI' INDEX 280;
  3751.  
  3752.   FUNCTION GpiSetDefArcParams(a : hPs; b : ArcParams) : BOOLEAN;
  3753.     EXTERNAL 'PMGPI' INDEX 281;
  3754.  
  3755.   FUNCTION GpiSetDefAttrs(a : hPs;
  3756.                           b : LongInt;
  3757.                           c : LongInt;
  3758.                           d : pBundle) : BOOLEAN;
  3759.     EXTERNAL 'PMGPI' INDEX 277;
  3760.  
  3761.   FUNCTION GpiSetDefTag(a : hPs; b : LongInt) : BOOLEAN;
  3762.     EXTERNAL 'PMGPI' INDEX 275;
  3763.  
  3764.   FUNCTION GpiSetDefViewingLimits(a : hPs; b : RectL) : BOOLEAN;
  3765.     EXTERNAL 'PMGPI' INDEX 279;
  3766.  
  3767.   FUNCTION DevOpenDC;             EXTERNAL 'PMGPI' INDEX  1;
  3768.   FUNCTION Dev16OpenDC;           EXTERNAL 'PMGPI' INDEX  1;
  3769.  
  3770.   FUNCTION DevCloseDC;            EXTERNAL 'PMGPI' INDEX  2;
  3771.   FUNCTION Dev16CloseDC;          EXTERNAL 'PMGPI' INDEX  2;
  3772.  
  3773.   FUNCTION DevPostDeviceModes;    EXTERNAL 'PMGPI' INDEX  3;
  3774.   FUNCTION Dev16PostDeviceModes;  EXTERNAL 'PMGPI' INDEX  3;
  3775.  
  3776.   FUNCTION DevEscape;             EXTERNAL 'PMGPI' INDEX  4;
  3777.   FUNCTION Dev16Escape;           EXTERNAL 'PMGPI' INDEX  4;
  3778.  
  3779.   FUNCTION DevQueryHardcopyCaps;  EXTERNAL 'PMGPI' INDEX  5;
  3780.   FUNCTION Dev16QueryHardcopyCaps;EXTERNAL 'PMGPI' INDEX  5;
  3781.  
  3782.   FUNCTION DevQueryCaps;          EXTERNAL 'PMGPI' INDEX  6;
  3783.   FUNCTION Dev16QueryCaps;        EXTERNAL 'PMGPI' INDEX  6;
  3784.  
  3785.   FUNCTION Gpi16CreatePS;         EXTERNAL 'PMGPI' INDEX  7;
  3786.   FUNCTION Gpi16QueryPS;          EXTERNAL 'PMGPI' INDEX  9;
  3787.   FUNCTION Gpi16DestroyPS;        EXTERNAL 'PMGPI' INDEX 10;
  3788.   FUNCTION Gpi16ResetPS;          EXTERNAL 'PMGPI' INDEX 11;
  3789.   FUNCTION Gpi16SavePS;           EXTERNAL 'PMGPI' INDEX 12;
  3790.   FUNCTION Gpi16RestorePS;        EXTERNAL 'PMGPI' INDEX 13;
  3791.   FUNCTION Gpi16Associate;        EXTERNAL 'PMGPI' INDEX 14;
  3792.   FUNCTION Gpi16ErrorSegmentData; EXTERNAL 'PMGPI' INDEX 15;
  3793.   FUNCTION Gpi16Erase;            EXTERNAL 'PMGPI' INDEX 16;
  3794.   FUNCTION Gpi16SetDrawControl;   EXTERNAL 'PMGPI' INDEX 17;
  3795.   FUNCTION Gpi16QueryDrawControl; EXTERNAL 'PMGPI' INDEX 18;
  3796.   FUNCTION Gpi16DrawChain;        EXTERNAL 'PMGPI' INDEX 19;
  3797.   FUNCTION Gpi16DrawFrom;         EXTERNAL 'PMGPI' INDEX 20;
  3798.   FUNCTION Gpi16DrawSegment;      EXTERNAL 'PMGPI' INDEX 21;
  3799.   FUNCTION Gpi16SetStopDraw;      EXTERNAL 'PMGPI' INDEX 22;
  3800.   FUNCTION Gpi16QueryStopDraw;    EXTERNAL 'PMGPI' INDEX 23;
  3801.   FUNCTION Gpi16RemoveDynamics;   EXTERNAL 'PMGPI' INDEX 24;
  3802.   FUNCTION Gpi16DrawDynamics;     EXTERNAL 'PMGPI' INDEX 25;
  3803.   FUNCTION Gpi16SetDrawingMode;   EXTERNAL 'PMGPI' INDEX 26;
  3804.   FUNCTION Gpi16QueryDrawingMode; EXTERNAL 'PMGPI' INDEX 27;
  3805.   FUNCTION Gpi16GetData;          EXTERNAL 'PMGPI' INDEX 28;
  3806.   FUNCTION Gpi16PutData;          EXTERNAL 'PMGPI' INDEX 29;
  3807.   FUNCTION Gpi16SetPickApertureSize;
  3808.   EXTERNAL 'PMGPI' INDEX 30;
  3809.   FUNCTION Gpi16QueryPickApertureSize;
  3810.   EXTERNAL 'PMGPI' INDEX 31;
  3811.   FUNCTION Gpi16SetPickAperturePosition;
  3812.   EXTERNAL 'PMGPI' INDEX 32;
  3813.   FUNCTION Gpi16QueryPickAperturePosition;
  3814.   EXTERNAL 'PMGPI' INDEX 33;
  3815.   FUNCTION Gpi16SetTag;           EXTERNAL 'PMGPI' INDEX 34;
  3816.   FUNCTION Gpi16QueryTag;         EXTERNAL 'PMGPI' INDEX 35;
  3817.   FUNCTION Gpi16CorrelateChain;   EXTERNAL 'PMGPI' INDEX 36;
  3818.   FUNCTION Gpi16CorrelateFrom;    EXTERNAL 'PMGPI' INDEX 37;
  3819.   FUNCTION Gpi16CorrelateSegment; EXTERNAL 'PMGPI' INDEX 38;
  3820.  
  3821. (* ==================================================== *)
  3822.  
  3823.   FUNCTION Gpi16ResetBoundaryData;EXTERNAL 'PMGPI' INDEX 42;
  3824.   FUNCTION Gpi16QueryBoundaryData;EXTERNAL 'PMGPI' INDEX 43;
  3825.   FUNCTION Gpi16OpenSegment;      EXTERNAL 'PMGPI' INDEX 44;
  3826.  
  3827. (* ====================================================== *)
  3828.  
  3829.   FUNCTION Gpi16CloseSegment;     EXTERNAL 'PMGPI' INDEX 46;
  3830.   FUNCTION Gpi16DeleteSegment;    EXTERNAL 'PMGPI' INDEX 47;
  3831.   FUNCTION Gpi16DeleteSegments;   EXTERNAL 'PMGPI' INDEX 48;
  3832.   FUNCTION Gpi16QuerySegmentNames;EXTERNAL 'PMGPI' INDEX 49;
  3833.  
  3834. (* ====================================================== *)
  3835.  
  3836.   FUNCTION Gpi16SetInitialSegmentAttrs;
  3837.   EXTERNAL 'PMGPI' INDEX 51;
  3838.   FUNCTION Gpi16QueryInitialSegmentAttrs;
  3839.   EXTERNAL 'PMGPI' INDEX 52;
  3840.   FUNCTION Gpi16SetSegmentAttrs;  EXTERNAL 'PMGPI' INDEX 53;
  3841.   FUNCTION Gpi16QuerySegmentAttrs;EXTERNAL 'PMGPI' INDEX 54;
  3842.   FUNCTION Gpi16SetSegmentPriority;
  3843.   EXTERNAL 'PMGPI' INDEX 55;
  3844.   FUNCTION Gpi16QuerySegmentPriority;
  3845.   EXTERNAL 'PMGPI' INDEX 56;
  3846.   FUNCTION Gpi16SetEditMode;      EXTERNAL 'PMGPI' INDEX 57;
  3847.   FUNCTION Gpi16QueryEditMode;    EXTERNAL 'PMGPI' INDEX 58;
  3848.   FUNCTION Gpi16SetElementPointer;EXTERNAL 'PMGPI' INDEX 59;
  3849.   FUNCTION Gpi16QueryElementPointer;
  3850.   EXTERNAL 'PMGPI' INDEX 60;
  3851.   FUNCTION Gpi16OffsetElementPointer;
  3852.   EXTERNAL 'PMGPI' INDEX 61;
  3853.   FUNCTION Gpi16DeleteElement;    EXTERNAL 'PMGPI' INDEX 62;
  3854.   FUNCTION Gpi16DeleteElementRange;
  3855.   EXTERNAL 'PMGPI' INDEX 63;
  3856.   FUNCTION Gpi16Label;            EXTERNAL 'PMGPI' INDEX 64;
  3857.   FUNCTION Gpi16SetElementPointerAtLabel;
  3858.   EXTERNAL 'PMGPI' INDEX 65;
  3859.   FUNCTION Gpi16DeleteElementsBetweenLabels;
  3860.   EXTERNAL 'PMGPI' INDEX 66;
  3861.   FUNCTION Gpi16QueryElementType; EXTERNAL 'PMGPI' INDEX 67;
  3862.   FUNCTION Gpi16QueryElement;     EXTERNAL 'PMGPI' INDEX 68;
  3863.   FUNCTION Gpi16Element;          EXTERNAL 'PMGPI' INDEX 69;
  3864.   FUNCTION Gpi16BeginElement;     EXTERNAL 'PMGPI' INDEX 70;
  3865.   FUNCTION Gpi16EndElement;       EXTERNAL 'PMGPI' INDEX 71;
  3866.  
  3867. (* ====================================================== *)
  3868.  
  3869.   FUNCTION Gpi16SetSegmentTransformMatrix;
  3870.   EXTERNAL 'PMGPI' INDEX  78;
  3871.   FUNCTION Gpi16QuerySegmentTransformMatrix;
  3872.   EXTERNAL 'PMGPI' INDEX 79;
  3873.   FUNCTION Gpi16SetModelTransformMatrix;
  3874.   EXTERNAL 'PMGPI' INDEX 80;
  3875.   FUNCTION Gpi16QueryModelTransformMatrix;
  3876.   EXTERNAL 'PMGPI' INDEX 81;
  3877.   FUNCTION Gpi16CallSegmentMatrix;EXTERNAL 'PMGPI' INDEX 82;
  3878.   FUNCTION Gpi16SetDefaultViewMatrix;
  3879.   EXTERNAL 'PMGPI' INDEX 83;
  3880.   FUNCTION Gpi16QueryDefaultViewMatrix;
  3881.   EXTERNAL 'PMGPI' INDEX 84;
  3882.   FUNCTION Gpi16SetPageViewport;  EXTERNAL 'PMGPI' INDEX 85;
  3883.   FUNCTION Gpi16QueryPageViewport;EXTERNAL 'PMGPI' INDEX 86;
  3884.   FUNCTION Gpi16SetViewingTransformMatrix;
  3885.   EXTERNAL 'PMGPI' INDEX 87;
  3886.   FUNCTION Gpi16QueryViewingTransformMatrix;
  3887.   EXTERNAL 'PMGPI' INDEX 88;
  3888.   FUNCTION xGpiQueryViewingTransformMatrix;
  3889.   EXTERNAL 'PMGPI' INDEX 88;
  3890.   FUNCTION xGpi16QueryViewingTransformMatrix;
  3891.   EXTERNAL 'PMGPI' INDEX 88;
  3892.   FUNCTION Gpi16SetGraphicsField; EXTERNAL 'PMGPI' INDEX 89;
  3893.   FUNCTION Gpi16QueryGraphicsField;
  3894.   EXTERNAL 'PMGPI' INDEX 90;
  3895.   FUNCTION Gpi16SetViewingLimits; EXTERNAL 'PMGPI' INDEX 91;
  3896.   FUNCTION Gpi16QueryViewingLimits;
  3897.   EXTERNAL 'PMGPI' INDEX 92;
  3898.   FUNCTION Gpi16Convert;          EXTERNAL 'PMGPI' INDEX 93;
  3899.   FUNCTION Gpi16SetAttrMode;      EXTERNAL 'PMGPI' INDEX 94;
  3900.   FUNCTION Gpi16QueryAttrMode;    EXTERNAL 'PMGPI' INDEX 95;
  3901.   FUNCTION Gpi16Pop;              EXTERNAL 'PMGPI' INDEX 96;
  3902.   FUNCTION Gpi16SetAttrs;         EXTERNAL 'PMGPI' INDEX 97;
  3903.   FUNCTION Gpi16QueryAttrs;       EXTERNAL 'PMGPI' INDEX 98;
  3904.   FUNCTION Gpi16CreateLogColorTable;
  3905.   EXTERNAL 'PMGPI' INDEX 99;
  3906.   FUNCTION Gpi16RealizeColorTable;
  3907.   EXTERNAL 'PMGPI' INDEX 100;
  3908.   FUNCTION Gpi16UnrealizeColorTable;
  3909.   EXTERNAL 'PMGPI' INDEX 101;
  3910.   FUNCTION Gpi16QueryColorData;  EXTERNAL 'PMGPI' INDEX 102;
  3911.   FUNCTION Gpi16QueryLogColorTable;
  3912.   EXTERNAL 'PMGPI' INDEX 103;
  3913.   FUNCTION Gpi16QueryRealColors; EXTERNAL 'PMGPI' INDEX 104;
  3914.   FUNCTION Gpi16QueryNearestColor;
  3915.   EXTERNAL 'PMGPI' INDEX 105;
  3916.   FUNCTION Gpi16QueryColorIndex; EXTERNAL 'PMGPI' INDEX 106;
  3917.   FUNCTION Gpi16QueryRGBColor;   EXTERNAL 'PMGPI' INDEX 107;
  3918.   FUNCTION Gpi16SetColor;        EXTERNAL 'PMGPI' INDEX 108;
  3919.   FUNCTION Gpi16QueryColor;      EXTERNAL 'PMGPI' INDEX 109;
  3920.   FUNCTION Gpi16SetBackColor;    EXTERNAL 'PMGPI' INDEX 110;
  3921.   FUNCTION Gpi16QueryBackColor;  EXTERNAL 'PMGPI' INDEX 111;
  3922.   FUNCTION Gpi16SetMix;          EXTERNAL 'PMGPI' INDEX 112;
  3923.   FUNCTION Gpi16QueryMix;        EXTERNAL 'PMGPI' INDEX 113;
  3924.   FUNCTION Gpi16SetBackMix;      EXTERNAL 'PMGPI' INDEX 114;
  3925.   FUNCTION Gpi16QueryBackMix;    EXTERNAL 'PMGPI' INDEX 115;
  3926.   FUNCTION Gpi16SetLineType;     EXTERNAL 'PMGPI' INDEX 116;
  3927.   FUNCTION Gpi16QueryLineType;   EXTERNAL 'PMGPI' INDEX 117;
  3928.   FUNCTION Gpi16SetLineWidth;    EXTERNAL 'PMGPI' INDEX 118;
  3929.   FUNCTION Gpi16QueryLineWidth;  EXTERNAL 'PMGPI' INDEX 119;
  3930.   FUNCTION Gpi16SetLineWidthGeom;EXTERNAL 'PMGPI' INDEX 120;
  3931.   FUNCTION Gpi16QueryLineWidthGeom;
  3932.   EXTERNAL 'PMGPI' INDEX 121;
  3933.   FUNCTION Gpi16SetLineEnd;      EXTERNAL 'PMGPI' INDEX 122;
  3934.   FUNCTION Gpi16QueryLineEnd;    EXTERNAL 'PMGPI' INDEX 123;
  3935.   FUNCTION Gpi16SetLineJoin;     EXTERNAL 'PMGPI' INDEX 124;
  3936.   FUNCTION Gpi16QueryLineJoin;   EXTERNAL 'PMGPI' INDEX 125;
  3937.   FUNCTION Gpi16SetCurrentPosition;
  3938.   EXTERNAL 'PMGPI' INDEX 126;
  3939.   FUNCTION Gpi16QueryCurrentPosition;
  3940.   EXTERNAL 'PMGPI' INDEX 127;
  3941.   FUNCTION Gpi16Move;            EXTERNAL 'PMGPI' INDEX 128;
  3942.   FUNCTION Gpi16Line;            EXTERNAL 'PMGPI' INDEX 129;
  3943.   FUNCTION Gpi16PolyLine;        EXTERNAL 'PMGPI' INDEX 130;
  3944.   FUNCTION Gpi16Box;             EXTERNAL 'PMGPI' INDEX 131;
  3945.   FUNCTION Gpi16PtVisible;       EXTERNAL 'PMGPI' INDEX 132;
  3946.   FUNCTION Gpi16RectVisible;     EXTERNAL 'PMGPI' INDEX 133;
  3947.   FUNCTION Gpi16SetArcParams;    EXTERNAL 'PMGPI' INDEX 134;
  3948.   FUNCTION Gpi16QueryArcParams;  EXTERNAL 'PMGPI' INDEX 135;
  3949.   FUNCTION Gpi16PointArc;        EXTERNAL 'PMGPI' INDEX 136;
  3950.   FUNCTION Gpi16FullArc;         EXTERNAL 'PMGPI' INDEX 137;
  3951.   FUNCTION Gpi16PartialArc;      EXTERNAL 'PMGPI' INDEX 138;
  3952.   FUNCTION Gpi16PolyFillet;      EXTERNAL 'PMGPI' INDEX 139;
  3953.   FUNCTION Gpi16PolyFilletSharp; EXTERNAL 'PMGPI' INDEX 140;
  3954.   FUNCTION Gpi16PolySpline;      EXTERNAL 'PMGPI' INDEX 141;
  3955.   FUNCTION Gpi16SetBitmapId;     EXTERNAL 'PMGPI' INDEX 142;
  3956.   FUNCTION Gpi16QueryBitmapHandle;
  3957.   EXTERNAL 'PMGPI' INDEX 143;
  3958.   FUNCTION Gpi16SetPatternSet;   EXTERNAL 'PMGPI' INDEX 144;
  3959.   FUNCTION Gpi16QueryPatternSet; EXTERNAL 'PMGPI' INDEX 145;
  3960.   FUNCTION Gpi16SetPattern;      EXTERNAL 'PMGPI' INDEX 146;
  3961.   FUNCTION Gpi16QueryPattern;    EXTERNAL 'PMGPI' INDEX 147;
  3962.   FUNCTION Gpi16SetPatternRefPoint;
  3963.   EXTERNAL 'PMGPI' INDEX 148;
  3964.   FUNCTION Gpi16QueryPatternRefPoint;
  3965.   EXTERNAL 'PMGPI' INDEX 149;
  3966.   FUNCTION Gpi16BeginArea;       EXTERNAL 'PMGPI' INDEX 150;
  3967.   FUNCTION Gpi16EndArea;         EXTERNAL 'PMGPI' INDEX 151;
  3968.   FUNCTION Gpi16LoadFonts;       EXTERNAL 'PMGPI' INDEX 152;
  3969.   FUNCTION Gpi16UnloadFonts;     EXTERNAL 'PMGPI' INDEX 153;
  3970.   FUNCTION Gpi16CreateLogFont;   EXTERNAL 'PMGPI' INDEX 154;
  3971.   FUNCTION Gpi16DeleteSetId;     EXTERNAL 'PMGPI' INDEX 155;
  3972.   FUNCTION Gpi16QueryNumberSetIds;
  3973.   EXTERNAL 'PMGPI' INDEX 156;
  3974.   FUNCTION Gpi16QuerySetIds;     EXTERNAL 'PMGPI' INDEX 157;
  3975.   FUNCTION Gpi16QueryFonts;      EXTERNAL 'PMGPI' INDEX 158;
  3976.   FUNCTION Gpi16QueryFontMetrics;EXTERNAL 'PMGPI' INDEX 159;
  3977.   FUNCTION Gpi16QueryKerningPairs;
  3978.   EXTERNAL 'PMGPI' INDEX 160;
  3979.   FUNCTION Gpi16QueryWidthTable; EXTERNAL 'PMGPI' INDEX 161;
  3980.   FUNCTION Gpi16SetCp;           EXTERNAL 'PMGPI' INDEX 162;
  3981.   FUNCTION Gpi16QueryCp;         EXTERNAL 'PMGPI' INDEX 163;
  3982.   FUNCTION Gpi16QueryTextBox;    EXTERNAL 'PMGPI' INDEX 164;
  3983.   FUNCTION DevQueryDeviceNames;  EXTERNAL 'PMGPI' INDEX 165;
  3984.   FUNCTION Dev16QueryDeviceNames;EXTERNAL 'PMGPI' INDEX 165;
  3985.   FUNCTION Gpi16QueryDefCharBox; EXTERNAL 'PMGPI' INDEX 166;
  3986.   FUNCTION Gpi16QueryFontFileDescriptions;
  3987.   EXTERNAL 'PMGPI' INDEX 167;
  3988.   FUNCTION Gpi16SetCharSet;      EXTERNAL 'PMGPI' INDEX 168;
  3989.   FUNCTION Gpi16QueryCharSet;    EXTERNAL 'PMGPI' INDEX 169;
  3990.   FUNCTION Gpi16SetCharBox;      EXTERNAL 'PMGPI' INDEX 170;
  3991.   FUNCTION Gpi16QueryCharBox;    EXTERNAL 'PMGPI' INDEX 171;
  3992.   FUNCTION Gpi16SetCharAngle;    EXTERNAL 'PMGPI' INDEX 172;
  3993.   FUNCTION Gpi16QueryCharAngle;  EXTERNAL 'PMGPI' INDEX 173;
  3994.   FUNCTION Gpi16SetCharShear;    EXTERNAL 'PMGPI' INDEX 174;
  3995.   FUNCTION Gpi16QueryCharShear;  EXTERNAL 'PMGPI' INDEX 175;
  3996.   FUNCTION Gpi16SetCharDirection;EXTERNAL 'PMGPI' INDEX 176;
  3997.   FUNCTION Gpi16QueryCharDirection;
  3998.   EXTERNAL 'PMGPI' INDEX 177;
  3999.   FUNCTION Gpi16SetCharMode;     EXTERNAL 'PMGPI' INDEX 178;
  4000.   FUNCTION Gpi16QueryCharMode;   EXTERNAL 'PMGPI' INDEX 179;
  4001.   FUNCTION Gpi16CharString;      EXTERNAL 'PMGPI' INDEX 180;
  4002.   FUNCTION Gpi16CharStringAt;    EXTERNAL 'PMGPI' INDEX 181;
  4003.   FUNCTION Gpi16CharStringPos;   EXTERNAL 'PMGPI' INDEX 182;
  4004.   FUNCTION Gpi16CharStringPosAt; EXTERNAL 'PMGPI' INDEX 183;
  4005.   FUNCTION Gpi16SetMarkerSet;    EXTERNAL 'PMGPI' INDEX 184;
  4006.   FUNCTION Gpi16QueryMarkerSet;  EXTERNAL 'PMGPI' INDEX 185;
  4007.   FUNCTION Gpi16SetMarker;       EXTERNAL 'PMGPI' INDEX 186;
  4008.   FUNCTION Gpi16QueryMarker;     EXTERNAL 'PMGPI' INDEX 187;
  4009.   FUNCTION Gpi16SetMarkerBox;    EXTERNAL 'PMGPI' INDEX 188;
  4010.   FUNCTION Gpi16QueryMarkerBox;  EXTERNAL 'PMGPI' INDEX 189;
  4011.   FUNCTION Gpi16Marker;          EXTERNAL 'PMGPI' INDEX 190;
  4012.   FUNCTION Gpi16PolyMarker;      EXTERNAL 'PMGPI' INDEX 191;
  4013.   FUNCTION Gpi16Image;           EXTERNAL 'PMGPI' INDEX 192;
  4014.  
  4015. (* ====================================================== *)
  4016.  
  4017.   FUNCTION Gpi16CreateBitmap;    EXTERNAL 'PMGPI' INDEX 196;
  4018.   FUNCTION Gpi16DeleteBitmap;    EXTERNAL 'PMGPI' INDEX 197;
  4019.   FUNCTION Gpi16SetBitmap;       EXTERNAL 'PMGPI' INDEX 198;
  4020.   FUNCTION Gpi16SetBitmapDimension;
  4021.   EXTERNAL 'PMGPI' INDEX 199;
  4022.   FUNCTION Gpi16QueryBitmapDimension;
  4023.   EXTERNAL 'PMGPI' INDEX 200;
  4024.   FUNCTION Gpi16QueryDeviceBitmapFormats;
  4025.   EXTERNAL 'PMGPI' INDEX 201;
  4026.   FUNCTION Gpi16QueryBitmapParameters;
  4027.   EXTERNAL 'PMGPI' INDEX 202;
  4028.   FUNCTION Gpi16SetBitmapBits;   EXTERNAL 'PMGPI' INDEX 203;
  4029.   FUNCTION Gpi16QueryBitmapBits; EXTERNAL 'PMGPI' INDEX 204;
  4030.   FUNCTION Gpi16BitBlt;          EXTERNAL 'PMGPI' INDEX 205;
  4031.   FUNCTION Gpi16SetPel;          EXTERNAL 'PMGPI' INDEX 206;
  4032.   FUNCTION Gpi16QueryPel;        EXTERNAL 'PMGPI' INDEX 207;
  4033.   FUNCTION Gpi16CreateRegion;    EXTERNAL 'PMGPI' INDEX 208;
  4034.   FUNCTION Gpi16SetRegion;       EXTERNAL 'PMGPI' INDEX 209;
  4035.   FUNCTION Gpi16DestroyRegion;   EXTERNAL 'PMGPI' INDEX 210;
  4036.   FUNCTION Gpi16CombineRegion;   EXTERNAL 'PMGPI' INDEX 211;
  4037.   FUNCTION Gpi16EqualRegion;     EXTERNAL 'PMGPI' INDEX 212;
  4038.   FUNCTION Gpi16OffsetRegion;    EXTERNAL 'PMGPI' INDEX 213;
  4039.   FUNCTION Gpi16PtInRegion;      EXTERNAL 'PMGPI' INDEX 214;
  4040.   FUNCTION Gpi16RectInRegion;    EXTERNAL 'PMGPI' INDEX 215;
  4041.   FUNCTION Gpi16QueryRegionBox;  EXTERNAL 'PMGPI' INDEX 216;
  4042.   FUNCTION Gpi16QueryRegionRects;EXTERNAL 'PMGPI' INDEX 217;
  4043.   FUNCTION Gpi16SetClipRegion;   EXTERNAL 'PMGPI' INDEX 218;
  4044.   FUNCTION Gpi16QueryClipRegion; EXTERNAL 'PMGPI' INDEX 219;
  4045.   FUNCTION Gpi16QueryClipBox;    EXTERNAL 'PMGPI' INDEX 220;
  4046.   FUNCTION Gpi16IntersectClipRectangle;
  4047.   EXTERNAL 'PMGPI' INDEX 221;
  4048.   FUNCTION Gpi16ExcludeClipRectangle;
  4049.   EXTERNAL 'PMGPI' INDEX 222;
  4050.   FUNCTION Gpi16OffsetClipRegion;EXTERNAL 'PMGPI' INDEX 223;
  4051.   FUNCTION Gpi16PaintRegion;     EXTERNAL 'PMGPI' INDEX 224;
  4052.   FUNCTION Gpi16LoadMetaFile;    EXTERNAL 'PMGPI' INDEX 225;
  4053.   FUNCTION Gpi16CopyMetaFile;    EXTERNAL 'PMGPI' INDEX 226;
  4054.   FUNCTION Gpi16PlayMetaFile;    EXTERNAL 'PMGPI' INDEX 227;
  4055.   FUNCTION Gpi16SaveMetaFile;    EXTERNAL 'PMGPI' INDEX 228;
  4056.   FUNCTION Gpi16DeleteMetaFile;  EXTERNAL 'PMGPI' INDEX 229;
  4057.   FUNCTION Gpi16QueryMetaFileBits;
  4058.   EXTERNAL 'PMGPI' INDEX 230;
  4059.   FUNCTION Gpi16SetMetaFileBits; EXTERNAL 'PMGPI' INDEX 231;
  4060.   FUNCTION Gpi16QueryMetaFileLength;
  4061.   EXTERNAL 'PMGPI' INDEX 232;
  4062.   FUNCTION Gpi16SetClipPath;     EXTERNAL 'PMGPI' INDEX 233;
  4063.   FUNCTION Gpi16BeginPath;       EXTERNAL 'PMGPI' INDEX 234;
  4064.   FUNCTION Gpi16EndPath;         EXTERNAL 'PMGPI' INDEX 235;
  4065.   FUNCTION Gpi16CloseFigure;     EXTERNAL 'PMGPI' INDEX 236;
  4066.   FUNCTION Gpi16ModifyPath;      EXTERNAL 'PMGPI' INDEX 237;
  4067.   FUNCTION Gpi16FillPath;        EXTERNAL 'PMGPI' INDEX 238;
  4068. { -----------------> not implemented ---------------------->
  4069.   FUNCTION GPIStartRequest;       EXTERNAL 'PMGPI' INDEX 239;
  4070.   FUNCTION GPI16StartRequest;     EXTERNAL 'PMGPI' INDEX 239;
  4071.   ------------------------------------------                }
  4072.   FUNCTION Gpi16QueryDevice;     EXTERNAL 'PMGPI' INDEX 240;
  4073.  
  4074. (* ====================================================== *)
  4075.  
  4076. { -----------------> not implemented ---------------------->
  4077.   FUNCTION DevStdOpen;            EXTERNAL 'PMGPI' INDEX 244;
  4078.   FUNCTION Dev16StdOpen;          EXTERNAL 'PMGPI' INDEX 244;
  4079. }
  4080.   FUNCTION Gpi16QueryCharStringPos;
  4081.   EXTERNAL 'PMGPI' INDEX 245;
  4082.   FUNCTION Gpi16QueryCharStringPosAt;
  4083.   EXTERNAL 'PMGPI' INDEX 246;
  4084.  
  4085. (* ====================================================*)
  4086.  
  4087.   FUNCTION Gpi16SetPS;           EXTERNAL 'PMGPI' INDEX 248;
  4088.  
  4089. { -----------------> not implemented ---------------------->
  4090.   FUNCTION SegSGWOpenSegmentWindow;
  4091.     EXTERNAL 'PMGPI' INDEX 249;
  4092.  
  4093.   FUNCTION SegS16GWOpenSegmentWindow;
  4094.     EXTERNAL 'PMGPI' INDEX 249;
  4095.  
  4096.   FUNCTION MTEndReadRequest;
  4097.     EXTERNAL 'PMGPI' INDEX 250;
  4098.   FUNCTION MT16EndReadRequest;
  4099.     EXTERNAL 'PMGPI' INDEX 250;
  4100.  
  4101.   FUNCTION MTGetDescription;
  4102.     EXTERNAL 'PMGPI' INDEX 251;
  4103.   FUNCTION MT16GetDescription;
  4104.     EXTERNAL 'PMGPI' INDEX 251;
  4105.  
  4106.   FUNCTION FmtOrderTable;
  4107.     EXTERNAL 'PMGPI' INDEX 252;
  4108.   FUNCTION Fmt16OrderTable;
  4109.     EXTERNAL 'PMGPI' INDEX 252;
  4110.  
  4111.   FUNCTION MTGetCodepage;
  4112.     EXTERNAL 'PMGPI' INDEX 253;
  4113.   FUNCTION MT16GetCodepage;
  4114.     EXTERNAL 'PMGPI' INDEX 253;
  4115.  
  4116.   FUNCTION MTGetLCT;
  4117.     EXTERNAL 'PMGPI' INDEX 254;
  4118.   FUNCTION MT16GetLCT;
  4119.     EXTERNAL 'PMGPI' INDEX 254;
  4120.  
  4121.   FUNCTION MTGetGDDInfo;
  4122.     EXTERNAL 'PMGPI' INDEX 255;
  4123.   FUNCTION MT16GetGDDInfo;
  4124.     EXTERNAL 'PMGPI' INDEX 255;
  4125.  
  4126.   FUNCTION FmtConvertGoCapoly;
  4127.     EXTERNAL 'PMGPI' INDEX 256;
  4128.   FUNCTION Fmt16ConvertGoCaPoly;
  4129.     EXTERNAL 'PMGPI' INDEX 256;
  4130.  
  4131.   FUNCTION MTGetFirstFont;
  4132.     EXTERNAL 'PMGPI' INDEX 257;
  4133.   FUNCTION MT16GetFirstFont;
  4134.     EXTERNAL 'PMGPI' INDEX 257;
  4135.  
  4136.   FUNCTION SegSGWNewPartData;
  4137.     EXTERNAL 'PMGPI' INDEX 258;
  4138.   FUNCTION SegS16GWNewPartData;
  4139.     EXTERNAL 'PMGPI' INDEX 258;
  4140.  
  4141.   FUNCTION MTStartReadRequest;
  4142.     EXTERNAL 'PMGPI' INDEX 259;
  4143.   FUNCTION MT16StartReadRequest;
  4144.     EXTERNAL 'PMGPI' INDEX 259;
  4145.  
  4146.   FUNCTION MTGetFirstGraphicsData;
  4147.     EXTERNAL 'PMGPI' INDEX 260;
  4148.   FUNCTION MT16GetFirstGraphicsData;
  4149.     EXTERNAL 'PMGPI' INDEX 260;
  4150.  
  4151.   FUNCTION MTGetNextFont;
  4152.     EXTERNAL 'PMGPI' INDEX 261;
  4153.   FUNCTION MT16GetNextFont;
  4154.     EXTERNAL 'PMGPI' INDEX 261;
  4155.  
  4156.   FUNCTION MTGetNextGraphicsData;
  4157.     EXTERNAL 'PMGPI' INDEX 262;
  4158.   FUNCTION MT16GetNextGraphicsData;
  4159.     EXTERNAL 'PMGPI' INDEX 262;
  4160.  
  4161.   FUNCTION GPILoadPublicFonts;
  4162.     EXTERNAL 'PMGPI' INDEX 263;
  4163.   FUNCTION GPI16LoadPublicFonts;
  4164.     EXTERNAL 'PMGPI' INDEX 263;
  4165.  
  4166.   FUNCTION GPIUnLoadPublicFonts;
  4167.     EXTERNAL 'PMGPI' INDEX 264;
  4168.   FUNCTION GPI16UnLoadPublicFonts;
  4169.     EXTERNAL 'PMGPI' INDEX 264;
  4170.  
  4171.   ------------------------------------------------         }
  4172.  
  4173.   FUNCTION Gpi16Comment;         EXTERNAL 'PMGPI' INDEX 268;
  4174.   FUNCTION Gpi16WCBitBlt;        EXTERNAL 'PMGPI' INDEX 269;
  4175.   FUNCTION Gpi16StrokePath;      EXTERNAL 'PMGPI' INDEX 270;
  4176.  
  4177. { -----------------> not implemented ---------------------->
  4178.  
  4179.   FUNCTION SegSGWNextOrderF;     EXTERNAL 'PMGPI' INDEX 271;
  4180.   FUNCTION SegS16GWNextOrderF;   EXTERNAL 'PMGPI' INDEX 271;
  4181.  --------------------------------------------------------- }
  4182.  
  4183. (* ====================================================== *)
  4184.  
  4185.   FUNCTION Gpi16OutlinePath;     EXTERNAL 'PMGPI' INDEX 274;
  4186.   FUNCTION Gpi16SetDefTag;       EXTERNAL 'PMGPI' INDEX 275;
  4187.   FUNCTION Gpi16QueryDefTag;     EXTERNAL 'PMGPI' INDEX 276;
  4188.   FUNCTION Gpi16SetDefAttrs;     EXTERNAL 'PMGPI' INDEX 277;
  4189.   FUNCTION Gpi16QueryDefAttrs;   EXTERNAL 'PMGPI' INDEX 278;
  4190.   FUNCTION Gpi16SetDefViewingLimits;
  4191.   EXTERNAL 'PMGPI' INDEX 279;
  4192.   FUNCTION Gpi16QueryDefViewingLimits;
  4193.   EXTERNAL 'PMGPI' INDEX 280;
  4194.   FUNCTION Gpi16SetDefArcParams; EXTERNAL 'PMGPI' INDEX 281;
  4195.   FUNCTION Gpi16QueryDefArcParams;
  4196.   EXTERNAL 'PMGPI' INDEX 282;
  4197.   FUNCTION Gpi16Translate;       EXTERNAL 'PMGPI' INDEX 283;
  4198.   FUNCTION Gpi16Scale;           EXTERNAL 'PMGPI' INDEX 284;
  4199.   FUNCTION Gpi16Rotate;          EXTERNAL 'PMGPI' INDEX 285;
  4200.  
  4201. { -----------------> not implemented ---------------------->
  4202.  
  4203.   FUNCTION GPIPolyLineDisjoint;  EXTERNAL 'PMGPI' INDEX 286;
  4204.   FUNCTION GPI16PolyLineDisjoint;EXTERNAL 'PMGPI' INDEX 286;
  4205.  
  4206.   FUNCTION GPIPathToRegion;      EXTERNAL 'PMGPI' INDEX 287;
  4207.   FUNCTION GPI16PathToRegion;    EXTERNAL 'PMGPI' INDEX 287;
  4208. }
  4209.  
  4210. (* ====================================================== *)
  4211.  
  4212. {  -------------> not implemented ------------>
  4213.  
  4214.   FUNCTION GPIFloodFill;
  4215.     EXTERNAL 'PMGPI' INDEX 289;
  4216.   FUNCTION GPI16FloodFill;
  4217.     EXTERNAL 'PMGPI' INDEX 289;
  4218.  
  4219.   FUNCTION GPIDrawBits;
  4220.     EXTERNAL 'PMGPI' INDEX 290;
  4221.   FUNCTION GPI16DrawBits;
  4222.     EXTERNAL 'PMGPI' INDEX 290;
  4223.  
  4224.   FUNCTION GPIQueryBitmapInfoHeader;
  4225.     EXTERNAL 'PMGPI' INDEX 291;
  4226.   FUNCTION GPI16QueryBitmapInfoHeader;
  4227.     EXTERNAL 'PMGPI' INDEX 291;
  4228.  
  4229.   FUNCTION GPIQueryLogicalFont;
  4230.     EXTERNAL 'PMGPI' INDEX 292;
  4231.   FUNCTION GPI16QueryLogicalFont;
  4232.     EXTERNAL 'PMGPI' INDEX 292;
  4233.  
  4234.   FUNCTION GPIQueryFaceString;
  4235.     EXTERNAL 'PMGPI' INDEX 293;
  4236.   FUNCTION GPI16QueryFaceString;
  4237.     EXTERNAL 'PMGPI' INDEX 293;
  4238.  
  4239.   FUNCTION GPIQueryFontAction;
  4240.     EXTERNAL 'PMGPI' INDEX 294;
  4241.   FUNCTION GPI16QueryFontAction;
  4242.     EXTERNAL 'PMGPI' INDEX 294;
  4243.  
  4244.   FUNCTION GPICreatePalette;
  4245.     EXTERNAL 'PMGPI' INDEX 295;
  4246.   FUNCTION GPI16CreatePalette;
  4247.     EXTERNAL 'PMGPI' INDEX 295;
  4248.  
  4249.   FUNCTION GPIDeletePalette;
  4250.     EXTERNAL 'PMGPI' INDEX 296;
  4251.   FUNCTION GPI16DeletePalette;
  4252.     EXTERNAL 'PMGPI' INDEX 296;
  4253.  
  4254.   FUNCTION GPISelectPalette;
  4255.     EXTERNAL 'PMGPI' INDEX 297;
  4256.   FUNCTION GPI16SelectPalette;
  4257.     EXTERNAL 'PMGPI' INDEX 297;
  4258.  
  4259.   FUNCTION GPIAnimatePalette;
  4260.     EXTERNAL 'PMGPI' INDEX 298;
  4261.   FUNCTION GPI16AnimatePalette;
  4262.     EXTERNAL 'PMGPI' INDEX 298;
  4263.  
  4264.   FUNCTION GPISetPaletteEntries;
  4265.     EXTERNAL 'PMGPI' INDEX 299;
  4266.   FUNCTION GPI16SetPaletteEntries;
  4267.     EXTERNAL 'PMGPI' INDEX 299;
  4268.  
  4269.   FUNCTION GPIQueryPalette;
  4270.     EXTERNAL 'PMGPI' INDEX 300;
  4271.   FUNCTION GPI16QueryPalette;
  4272.     EXTERNAL 'PMGPI' INDEX 300;
  4273.  
  4274.   FUNCTION GPIQueryPaletteInfo;
  4275.     EXTERNAL 'PMGPI' INDEX 301;
  4276.   FUNCTION GPI16QueryPaletteInfo;
  4277.     EXTERNAL 'PMGPI' INDEX 301;
  4278.  
  4279.   FUNCTION GPIQueryCharExtra;
  4280.     EXTERNAL 'PMGPI' INDEX 302;
  4281.   FUNCTION GPI16QueryCharExtra;
  4282.     EXTERNAL 'PMGPI' INDEX 302;
  4283.  
  4284.   FUNCTION GPISetCharExtra;
  4285.     EXTERNAL 'PMGPI' INDEX 303;
  4286.   FUNCTION GPI16SetCharExtra;
  4287.     EXTERNAL 'PMGPI' INDEX 303;
  4288.  
  4289.   FUNCTION GPIQueryCharBreakExtra;
  4290.     EXTERNAL 'PMGPI' INDEX 304;
  4291.   FUNCTION GPI16QueryCharBreakExtra;
  4292.     EXTERNAL 'PMGPI' INDEX 304;
  4293.  
  4294.   FUNCTION GPISetCharBreakExtra;
  4295.     EXTERNAL 'PMGPI' INDEX 305;
  4296.   FUNCTION GPI16SetCharBreakExtra;
  4297.     EXTERNAL 'PMGPI' INDEX 305;
  4298.  
  4299.   FUNCTION GPIFrameRegion;
  4300.     EXTERNAL 'PMGPI' INDEX 306;
  4301.   FUNCTION GPI16FrameRegion;
  4302.     EXTERNAL 'PMGPI' INDEX 306;
  4303.  
  4304.   FUNCTION GPIConvertWithMatrix;
  4305.     EXTERNAL 'PMGPI' INDEX 307;
  4306.   FUNCTION GPI16ConvertWithMatrix;
  4307.     EXTERNAL 'PMGPI' INDEX 307;
  4308.  
  4309. }
  4310. {* ====================================================== *)
  4311. (*                         32 Bit                         *)
  4312. {*        Diese Funktionen sind nicht implementiert
  4313.  
  4314.   FUNCTION Gpi32Associate;
  4315.     EXTERNAL 'PMGPI' INDEX 351;
  4316.  
  4317.   FUNCTION Gpi32BeginArea;
  4318.     EXTERNAL 'PMGPI' INDEX 352;
  4319.  
  4320.   FUNCTION Gpi32BeginElement;
  4321.     EXTERNAL 'PMGPI' INDEX 353;
  4322.  
  4323.   FUNCTION Gpi32BeginPath;
  4324.     EXTERNAL 'PMGPI' INDEX 354;
  4325.  
  4326.   FUNCTION Gpi32BitBlt;
  4327.     EXTERNAL 'PMGPI' INDEX 355;
  4328.  
  4329.   FUNCTION Gpi32Box;
  4330.     EXTERNAL 'PMGPI' INDEX 356;
  4331.  
  4332.   FUNCTION Gpi32CallsegmentMatrix;
  4333.     EXTERNAL 'PMGPI' INDEX 357;
  4334.  
  4335.   FUNCTION Gpi32CharString;
  4336.     EXTERNAL 'PMGPI' INDEX 358;
  4337.  
  4338.   FUNCTION Gpi32CharStringAt;
  4339.     EXTERNAL 'PMGPI' INDEX 359;
  4340.  
  4341.   FUNCTION Gpi32CloseFigure;
  4342.     EXTERNAL 'PMGPI' INDEX 360;
  4343.  
  4344.   FUNCTION Gpi32CloseSegment;
  4345.     EXTERNAL 'PMGPI' INDEX 361;
  4346.  
  4347.   FUNCTION Gpi32CombineRegion;
  4348.     EXTERNAL 'PMGPI' INDEX 362;
  4349.  
  4350.   FUNCTION Gpi32Comment;
  4351.     EXTERNAL 'PMGPI' INDEX 363;
  4352.  
  4353.   FUNCTION Gpi32Convert;
  4354.     EXTERNAL 'PMGPI' INDEX 364;
  4355.  
  4356.   FUNCTION Gpi32CopyMetaFile;
  4357.     EXTERNAL 'PMGPI' INDEX 365;
  4358.  
  4359.   FUNCTION Gpi32CorrelateChain;
  4360.     EXTERNAL 'PMGPI' INDEX 366;
  4361.  
  4362.   FUNCTION Gpi32CorrelateFrom;
  4363.     EXTERNAL 'PMGPI' INDEX 367;
  4364.  
  4365.   FUNCTION Gpi32CreateLogFont;
  4366.     EXTERNAL 'PMGPI' INDEX 368;
  4367.  
  4368.   FUNCTION Gpi32CreatePS;
  4369.     EXTERNAL 'PMGPI' INDEX 369;
  4370.  
  4371.   FUNCTION Gpi32CreateRegion;
  4372.     EXTERNAL 'PMGPI' INDEX 370;
  4373.  
  4374.   FUNCTION Gpi32DeleteBitmap;
  4375.     EXTERNAL 'PMGPI' INDEX 371;
  4376.  
  4377.   FUNCTION Gpi32DeleteElement;
  4378.     EXTERNAL 'PMGPI' INDEX 372;
  4379.  
  4380.   FUNCTION Gpi32DeleteElementRange;
  4381.     EXTERNAL 'PMGPI' INDEX 373;
  4382.  
  4383.   FUNCTION Gpi32DeleteElementsBetweenLabels;
  4384.     EXTERNAL 'PMGPI' INDEX 374;
  4385.  
  4386.   FUNCTION Gpi32DeleteMetaFile;
  4387.     EXTERNAL 'PMGPI' INDEX 375;
  4388.  
  4389.   FUNCTION Gpi32DeleteSegment;
  4390.     EXTERNAL 'PMGPI' INDEX 376;
  4391.  
  4392.   FUNCTION Gpi32DeleteSegments;
  4393.     EXTERNAL 'PMGPI' INDEX 377;
  4394.  
  4395.   FUNCTION Gpi32DeleteSetId;
  4396.     EXTERNAL 'PMGPI' INDEX 378;
  4397.  
  4398.   FUNCTION Gpi32DestroyPS;
  4399.     EXTERNAL 'PMGPI' INDEX 379;
  4400.  
  4401.   FUNCTION Gpi32DrawChain;
  4402.     EXTERNAL 'PMGPI' INDEX 380;
  4403.  
  4404.   FUNCTION Gpi32DrawDynamics;
  4405.     EXTERNAL 'PMGPI' INDEX 381;
  4406.  
  4407.   FUNCTION Gpi32DrawFrom;
  4408.     EXTERNAL 'PMGPI' INDEX 382;
  4409.  
  4410.   FUNCTION Gpi32DrawSegment;
  4411.     EXTERNAL 'PMGPI' INDEX 383;
  4412.  
  4413.   FUNCTION Gpi32Element;
  4414.     EXTERNAL 'PMGPI' INDEX 384;
  4415.  
  4416.   FUNCTION Gpi32EndArea;
  4417.     EXTERNAL 'PMGPI' INDEX 385;
  4418.  
  4419.   FUNCTION Gpi32EndElement;
  4420.     EXTERNAL 'PMGPI' INDEX 386;
  4421.  
  4422.   FUNCTION Gpi32EndPath;
  4423.     EXTERNAL 'PMGPI' INDEX 387;
  4424.  
  4425.   FUNCTION Gpi32EqualRegion;
  4426.     EXTERNAL 'PMGPI' INDEX 388;
  4427.  
  4428.   FUNCTION Gpi32Erase;
  4429.     EXTERNAL 'PMGPI' INDEX 389;
  4430.  
  4431.   FUNCTION Gpi32ErrorSegmentData;
  4432.     EXTERNAL 'PMGPI' INDEX 390;
  4433.  
  4434.   FUNCTION Gpi32ExcludeClipRectangle;
  4435.     EXTERNAL 'PMGPI' INDEX 391;
  4436.  
  4437.   FUNCTION Gpi32FillPath;
  4438.     EXTERNAL 'PMGPI' INDEX 392;
  4439.  
  4440.   FUNCTION Gpi32FullArc;
  4441.     EXTERNAL 'PMGPI' INDEX 393;
  4442.  
  4443.   FUNCTION Gpi32GetData;
  4444.     EXTERNAL 'PMGPI' INDEX 394;
  4445.  
  4446.   FUNCTION Gpi32Image;
  4447.     EXTERNAL 'PMGPI' INDEX 395;
  4448.  
  4449.   FUNCTION Gpi32IntersectClipRectangle;
  4450.     EXTERNAL 'PMGPI' INDEX 396;
  4451.  
  4452.   FUNCTION Gpi32Label;
  4453.     EXTERNAL 'PMGPI' INDEX 397;
  4454.  
  4455.   FUNCTION Gpi32Line;
  4456.     EXTERNAL 'PMGPI' INDEX 398;
  4457.  
  4458.   FUNCTION Gpi32LoadBitmap;
  4459.     EXTERNAL 'PMGPI' INDEX 399;
  4460.  
  4461.   FUNCTION Gpi32LoadFonts;
  4462.     EXTERNAL 'PMGPI' INDEX 400;
  4463.  
  4464.   FUNCTION Gpi32LoadMetaFile;
  4465.     EXTERNAL 'PMGPI' INDEX 401;
  4466.  
  4467.   FUNCTION Gpi32Marker;
  4468.     EXTERNAL 'PMGPI' INDEX 402;
  4469.  
  4470.   FUNCTION Gpi32ModifyPath;
  4471.     EXTERNAL 'PMGPI' INDEX 403;
  4472.  
  4473.   FUNCTION Gpi32Move;
  4474.     EXTERNAL 'PMGPI' INDEX 404;
  4475.  
  4476.   FUNCTION Gpi32OffSetClipRegion;
  4477.     EXTERNAL 'PMGPI' INDEX 405;
  4478.  
  4479.   FUNCTION Gpi32OffSetElementPointer;
  4480.     EXTERNAL 'PMGPI' INDEX 406;
  4481.  
  4482.   FUNCTION Gpi32OffSetRegion;
  4483.     EXTERNAL 'PMGPI' INDEX 407;
  4484.  
  4485.   FUNCTION Gpi32OpenSegment;
  4486.     EXTERNAL 'PMGPI' INDEX 408;
  4487.  
  4488.   FUNCTION Gpi32PaintRegion;
  4489.     EXTERNAL 'PMGPI' INDEX 409;
  4490.  
  4491. (* ====================================================== *)
  4492.  
  4493.   FUNCTION Gpi32PlayMetaFile;
  4494.     EXTERNAL 'PMGPI' INDEX 411;
  4495.  
  4496.   FUNCTION Gpi32PointArc;
  4497.     EXTERNAL 'PMGPI' INDEX 412;
  4498.  
  4499.   FUNCTION Gpi32PolyFillet;
  4500.     EXTERNAL 'PMGPI' INDEX 413;
  4501.  
  4502.   FUNCTION Gpi32PolyFilletSharp;
  4503.     EXTERNAL 'PMGPI' INDEX 414;
  4504.  
  4505.   FUNCTION Gpi32PolyLine;
  4506.     EXTERNAL 'PMGPI' INDEX 415;
  4507.  
  4508.   FUNCTION Gpi32PolyMarker;
  4509.     EXTERNAL 'PMGPI' INDEX 416;
  4510.  
  4511.   FUNCTION Gpi32PolySpline;
  4512.     EXTERNAL 'PMGPI' INDEX 417;
  4513.  
  4514.   FUNCTION Gpi32Pop;
  4515.     EXTERNAL 'PMGPI' INDEX 418;
  4516.  
  4517.   FUNCTION Gpi32PtInRegion;
  4518.     EXTERNAL 'PMGPI' INDEX 419;
  4519.  
  4520.   FUNCTION Gpi32PtVisible;
  4521.     EXTERNAL 'PMGPI' INDEX 420;
  4522.  
  4523.   FUNCTION Gpi32PutData;
  4524.     EXTERNAL 'PMGPI' INDEX 421;
  4525.  
  4526.   FUNCTION Gpi32QueryArcParams;
  4527.     EXTERNAL 'PMGPI' INDEX 422;
  4528.  
  4529.   FUNCTION Gpi32QueryAttrMode;
  4530.     EXTERNAL 'PMGPI' INDEX 423;
  4531.  
  4532.   FUNCTION Gpi32QueryBackColor;
  4533.     EXTERNAL 'PMGPI' INDEX 424;
  4534.  
  4535.   FUNCTION Gpi32QueryBackMix;
  4536.     EXTERNAL 'PMGPI' INDEX 425;
  4537.  
  4538.   FUNCTION Gpi32QueryBitmapDimension;
  4539.     EXTERNAL 'PMGPI' INDEX 426;
  4540.  
  4541.   FUNCTION Gpi32QueryBitmapHandle;
  4542.     EXTERNAL 'PMGPI' INDEX 427;
  4543.  
  4544.   FUNCTION Gpi32QueryBoundaryData;
  4545.     EXTERNAL 'PMGPI' INDEX 428;
  4546.  
  4547.   FUNCTION Gpi32QueryCharAngle;
  4548.     EXTERNAL 'PMGPI' INDEX 429;
  4549.  
  4550.   FUNCTION Gpi32QueryCharBox;
  4551.     EXTERNAL 'PMGPI' INDEX 430;
  4552.  
  4553.   FUNCTION Gpi32QueryCharDirection;
  4554.     EXTERNAL 'PMGPI' INDEX 431;
  4555.  
  4556.   FUNCTION Gpi32QueryCharMode;
  4557.     EXTERNAL 'PMGPI' INDEX 432;
  4558.  
  4559.   FUNCTION Gpi32QueryCharSet;
  4560.     EXTERNAL 'PMGPI' INDEX 433;
  4561.  
  4562.   FUNCTION Gpi32QueryCharShear;
  4563.     EXTERNAL 'PMGPI' INDEX 434;
  4564.  
  4565.   FUNCTION Gpi32QueryClipBox;
  4566.     EXTERNAL 'PMGPI' INDEX 435;
  4567.  
  4568.   FUNCTION Gpi32QueryClipRegion;
  4569.     EXTERNAL 'PMGPI' INDEX 436;
  4570.  
  4571.   FUNCTION Gpi32QueryColor;
  4572.     EXTERNAL 'PMGPI' INDEX 437;
  4573.  
  4574.   FUNCTION Gpi32QueryColorData;
  4575.     EXTERNAL 'PMGPI' INDEX 438;
  4576.  
  4577.   FUNCTION Gpi32QueryColorIndex;
  4578.     EXTERNAL 'PMGPI' INDEX 439;
  4579.  
  4580.   FUNCTION Gpi32QueryCp;
  4581.     EXTERNAL 'PMGPI' INDEX 440;
  4582.  
  4583.   FUNCTION Gpi32QueryCurrentPosition;
  4584.     EXTERNAL 'PMGPI' INDEX 441;
  4585.  
  4586.   FUNCTION Gpi32QueryDefCharBox;
  4587.     EXTERNAL 'PMGPI' INDEX 442;
  4588.  
  4589.   FUNCTION Gpi32QueryDefaultViewMatrix;
  4590.     EXTERNAL 'PMGPI' INDEX 443;
  4591.  
  4592.   FUNCTION Gpi32QueryDevice;
  4593.     EXTERNAL 'PMGPI' INDEX 444;
  4594.  
  4595.   FUNCTION Gpi32QueryDeviceBitmapFormats;
  4596.     EXTERNAL 'PMGPI' INDEX 445;
  4597.  
  4598.   FUNCTION Gpi32QueryDrawControl;
  4599.     EXTERNAL 'PMGPI' INDEX 446;
  4600.  
  4601.   FUNCTION Gpi32QueryDrawingMode;
  4602.     EXTERNAL 'PMGPI' INDEX 447;
  4603.  
  4604.   FUNCTION Gpi32QueryEditMode;
  4605.     EXTERNAL 'PMGPI' INDEX 448;
  4606.  
  4607.   FUNCTION Gpi32QueryElement;
  4608.     EXTERNAL 'PMGPI' INDEX 449;
  4609.  
  4610.   FUNCTION Gpi32QueryElementPointer;
  4611.     EXTERNAL 'PMGPI' INDEX 450;
  4612.  
  4613.   FUNCTION Gpi32QueryElementType;
  4614.     EXTERNAL 'PMGPI' INDEX 451;
  4615.  
  4616.   FUNCTION Gpi32QueryFontFileDescriptions;
  4617.     EXTERNAL 'PMGPI' INDEX 452;
  4618.  
  4619.   FUNCTION Gpi32QueryFontMetrics;
  4620.     EXTERNAL 'PMGPI' INDEX 453;
  4621.  
  4622.   FUNCTION Gpi32QueryGraphicsField;
  4623.     EXTERNAL 'PMGPI' INDEX 454;
  4624.  
  4625.   FUNCTION Gpi32QueryInitialSegmentAttrs;
  4626.     EXTERNAL 'PMGPI' INDEX 455;
  4627.  
  4628.   FUNCTION Gpi32QueryKerningPairs;
  4629.     EXTERNAL 'PMGPI' INDEX 456;
  4630.  
  4631.   FUNCTION Gpi32QueryLineEnd;
  4632.     EXTERNAL 'PMGPI' INDEX 457;
  4633.  
  4634.   FUNCTION Gpi32QueryLineJoin;
  4635.     EXTERNAL 'PMGPI' INDEX 458;
  4636.  
  4637.   FUNCTION Gpi32QueryLineType;
  4638.     EXTERNAL 'PMGPI' INDEX 459;
  4639.  
  4640.   FUNCTION Gpi32QueryLineWidth;
  4641.     EXTERNAL 'PMGPI' INDEX 460;
  4642.  
  4643.   FUNCTION Gpi32QueryLineWidthGeom;
  4644.     EXTERNAL 'PMGPI' INDEX 461;
  4645.  
  4646.   FUNCTION Gpi32QueryMarker;
  4647.     EXTERNAL 'PMGPI' INDEX 462;
  4648.  
  4649.   FUNCTION Gpi32QueryMarkerBox;
  4650.     EXTERNAL 'PMGPI' INDEX 463;
  4651.  
  4652.   FUNCTION Gpi32QueryMarkerSet;
  4653.     EXTERNAL 'PMGPI' INDEX 464;
  4654.  
  4655.   FUNCTION Gpi32QueryMetaFileBits;
  4656.     EXTERNAL 'PMGPI' INDEX 465;
  4657.  
  4658.   FUNCTION Gpi32QueryMetaFileLength;
  4659.     EXTERNAL 'PMGPI' INDEX 466;
  4660.  
  4661.   FUNCTION Gpi32QueryMix;
  4662.     EXTERNAL 'PMGPI' INDEX 467;
  4663.  
  4664.   FUNCTION Gpi32QueryModelTransformMatrix;
  4665.     EXTERNAL 'PMGPI' INDEX 468;
  4666.  
  4667.   FUNCTION Gpi32QueryNearestColor;
  4668.     EXTERNAL 'PMGPI' INDEX 469;
  4669.  
  4670.   FUNCTION Gpi32QueryNumberSetIds;
  4671.     EXTERNAL 'PMGPI' INDEX 470;
  4672.  
  4673.   FUNCTION Gpi32QueryPS;
  4674.     EXTERNAL 'PMGPI' INDEX 471;
  4675.  
  4676.   FUNCTION Gpi32QueryPageViewport;
  4677.     EXTERNAL 'PMGPI' INDEX 472;
  4678.  
  4679.   FUNCTION Gpi32QueryPattern;
  4680.     EXTERNAL 'PMGPI' INDEX 473;
  4681.  
  4682.   FUNCTION Gpi32QueryPatternRefPoint;
  4683.     EXTERNAL 'PMGPI' INDEX 474;
  4684.  
  4685.   FUNCTION Gpi32QueryPatternSet;
  4686.     EXTERNAL 'PMGPI' INDEX 475;
  4687.  
  4688.   FUNCTION Gpi32QueryPel;
  4689.     EXTERNAL 'PMGPI' INDEX 476;
  4690.  
  4691.   FUNCTION Gpi32QueryPickAperaturePosition;
  4692.     EXTERNAL 'PMGPI' INDEX 477;
  4693.  
  4694.   FUNCTION Gpi32QueryPickAperatureSize;
  4695.     EXTERNAL 'PMGPI' INDEX 478;
  4696.  
  4697.   FUNCTION Gpi32QueryRGBColor;
  4698.     EXTERNAL 'PMGPI' INDEX 479;
  4699.  
  4700.   FUNCTION Gpi32QueryRealColors;
  4701.     EXTERNAL 'PMGPI' INDEX 480;
  4702.  
  4703.   FUNCTION Gpi32QueryRegionBox;
  4704.     EXTERNAL 'PMGPI' INDEX 481;
  4705.  
  4706.   FUNCTION Gpi32QuerySegmentAttrs;
  4707.     EXTERNAL 'PMGPI' INDEX 482;
  4708.  
  4709.   FUNCTION Gpi32QuerySegmentNames;
  4710.     EXTERNAL 'PMGPI' INDEX 483;
  4711.  
  4712.   FUNCTION Gpi32QuerySegmentPriority;
  4713.     EXTERNAL 'PMGPI' INDEX 484;
  4714.  
  4715.   FUNCTION Gpi32QuerySegmentTransformMatr;
  4716.     EXTERNAL 'PMGPI' INDEX 485;
  4717.  
  4718.   FUNCTION XGpi32QuerySegmentTransformMatrix;
  4719.     EXTERNAL 'PMGPI' INDEX 485;
  4720.  
  4721.   FUNCTION Gpi32QuerySetIds;
  4722.     EXTERNAL 'PMGPI' INDEX 486;
  4723.  
  4724.   FUNCTION Gpi32QueryStopDraw;
  4725.     EXTERNAL 'PMGPI' INDEX 487;
  4726.  
  4727.   FUNCTION Gpi32QueryTag;
  4728.     EXTERNAL 'PMGPI' INDEX 488;
  4729.  
  4730.   FUNCTION Gpi32QueryTextBox;
  4731.     EXTERNAL 'PMGPI' INDEX 489;
  4732.  
  4733.   FUNCTION Gpi32QueryViewingLimits;
  4734.     EXTERNAL 'PMGPI' INDEX 490;
  4735.  
  4736.   FUNCTION Gpi32QueryViewingTransformMatr;
  4737.     EXTERNAL 'PMGPI' INDEX 491;
  4738.  
  4739.   FUNCTION XGpi32QueryViewingTransformMatrix;
  4740.     EXTERNAL 'PMGPI' INDEX 491;
  4741.  
  4742.   FUNCTION Gpi32QueryWidthTable;
  4743.     EXTERNAL 'PMGPI' INDEX 492;
  4744.  
  4745. (* ====================================================== *)
  4746.  
  4747.   FUNCTION Gpi32RectInRegion;
  4748.     EXTERNAL 'PMGPI' INDEX 494;
  4749.  
  4750.   FUNCTION Gpi32RectVisible;
  4751.     EXTERNAL 'PMGPI' INDEX 495;
  4752.  
  4753.   FUNCTION Gpi32RemoveDynamics;
  4754.     EXTERNAL 'PMGPI' INDEX 496;
  4755.  
  4756.   FUNCTION Gpi32ReSetBoundaryData;
  4757.     EXTERNAL 'PMGPI' INDEX 497;
  4758.  
  4759.   FUNCTION Gpi32ReSetPS;
  4760.     EXTERNAL 'PMGPI' INDEX 498;
  4761.  
  4762.   FUNCTION Gpi32RestorePS;
  4763.     EXTERNAL 'PMGPI' INDEX 499;
  4764.  
  4765.   FUNCTION Gpi32SaveMetaFile;
  4766.     EXTERNAL 'PMGPI' INDEX 500;
  4767.  
  4768.   FUNCTION Gpi32SavePS;
  4769.     EXTERNAL 'PMGPI' INDEX 501;
  4770.  
  4771.   FUNCTION Gpi32SetArcParams;
  4772.     EXTERNAL 'PMGPI' INDEX 502;
  4773.  
  4774.   FUNCTION Gpi32SetAttrMode;
  4775.     EXTERNAL 'PMGPI' INDEX 503;
  4776.  
  4777.   FUNCTION Gpi32SetBackColor;
  4778.     EXTERNAL 'PMGPI' INDEX 504;
  4779.  
  4780.   FUNCTION Gpi32SetBackMix;
  4781.     EXTERNAL 'PMGPI' INDEX 505;
  4782.  
  4783.   FUNCTION Gpi32SetBitmap;
  4784.     EXTERNAL 'PMGPI' INDEX 506;
  4785.  
  4786.   FUNCTION Gpi32SetBitmapDimension;
  4787.     EXTERNAL 'PMGPI' INDEX 507;
  4788.  
  4789.   FUNCTION Gpi32SetBitmapId;
  4790.     EXTERNAL 'PMGPI' INDEX 508;
  4791.  
  4792.   FUNCTION Gpi32SetCharAngle;
  4793.     EXTERNAL 'PMGPI' INDEX 509;
  4794.  
  4795.   FUNCTION Gpi32SetCharBox;
  4796.     EXTERNAL 'PMGPI' INDEX 510;
  4797.  
  4798.   FUNCTION Gpi32SetCharDirection;
  4799.     EXTERNAL 'PMGPI' INDEX 511;
  4800.  
  4801.   FUNCTION Gpi32SetCharMode;
  4802.     EXTERNAL 'PMGPI' INDEX 512;
  4803.  
  4804.   FUNCTION Gpi32SetCharSet;
  4805.     EXTERNAL 'PMGPI' INDEX 513;
  4806.  
  4807.   FUNCTION Gpi32SetCharShear;
  4808.     EXTERNAL 'PMGPI' INDEX 514;
  4809.  
  4810.   FUNCTION Gpi32SetClipPath;
  4811.     EXTERNAL 'PMGPI' INDEX 515;
  4812.  
  4813.   FUNCTION Gpi32SetClipRegion;
  4814.     EXTERNAL 'PMGPI' INDEX 516;
  4815.  
  4816.   FUNCTION Gpi32SetColor;
  4817.     EXTERNAL 'PMGPI' INDEX 517;
  4818.  
  4819.   FUNCTION Gpi32SetCp;
  4820.     EXTERNAL 'PMGPI' INDEX 518;
  4821.  
  4822.   FUNCTION Gpi32SetCurrentPosition;
  4823.     EXTERNAL 'PMGPI' INDEX 519;
  4824.  
  4825.   FUNCTION Gpi32SetDefaultViewMatrix;
  4826.     EXTERNAL 'PMGPI' INDEX 520;
  4827.  
  4828.   FUNCTION Gpi32SetDrawControl;
  4829.     EXTERNAL 'PMGPI' INDEX 521;
  4830.  
  4831.   FUNCTION Gpi32SetDrawingMode;
  4832.     EXTERNAL 'PMGPI' INDEX 522;
  4833.  
  4834.   FUNCTION Gpi32SetEditMode;
  4835.     EXTERNAL 'PMGPI' INDEX 523;
  4836.  
  4837.   FUNCTION Gpi32SetElementPointer;
  4838.     EXTERNAL 'PMGPI' INDEX 524;
  4839.  
  4840.   FUNCTION Gpi32SetElementPointerAtLabel;
  4841.     EXTERNAL 'PMGPI' INDEX 525;
  4842.  
  4843.   FUNCTION Gpi32SetGraphicsField;
  4844.     EXTERNAL 'PMGPI' INDEX 526;
  4845.  
  4846.   FUNCTION Gpi32SetInitialSegmentAttrs;
  4847.     EXTERNAL 'PMGPI' INDEX 527;
  4848.  
  4849.   FUNCTION Gpi32SetLineEnd;
  4850.     EXTERNAL 'PMGPI' INDEX 528;
  4851.  
  4852.   FUNCTION Gpi32SetLineJoin;
  4853.     EXTERNAL 'PMGPI' INDEX 529;
  4854.  
  4855.   FUNCTION Gpi32SetLineType;
  4856.     EXTERNAL 'PMGPI' INDEX 530;
  4857.  
  4858.   FUNCTION Gpi32SetLineWidth;
  4859.     EXTERNAL 'PMGPI' INDEX 531;
  4860.  
  4861.   FUNCTION Gpi32SetLineWidthGeom;
  4862.     EXTERNAL 'PMGPI' INDEX 532;
  4863.  
  4864.   FUNCTION Gpi32SetMarker;
  4865.     EXTERNAL 'PMGPI' INDEX 533;
  4866.  
  4867.   FUNCTION Gpi32SetMarkerBox;
  4868.     EXTERNAL 'PMGPI' INDEX 534;
  4869.  
  4870.   FUNCTION Gpi32SetMarkerSet;
  4871.     EXTERNAL 'PMGPI' INDEX 535;
  4872.  
  4873.   FUNCTION Gpi32SetMetaFileBits;
  4874.     EXTERNAL 'PMGPI' INDEX 536;
  4875.  
  4876.   FUNCTION GPI32SetMix;
  4877.     EXTERNAL 'PMGPI' INDEX 537;
  4878.  
  4879.   FUNCTION GPI32SetModelTransformMatrix;
  4880.     EXTERNAL 'PMGPI' INDEX 538;
  4881.  
  4882.   FUNCTION GPI32SetPS;
  4883.     EXTERNAL 'PMGPI' INDEX 539;
  4884.  
  4885.   FUNCTION GPI32SetPageViewport;
  4886.     EXTERNAL 'PMGPI' INDEX 540;
  4887.  
  4888.   FUNCTION GPI32SetPattern;
  4889.     EXTERNAL 'PMGPI' INDEX 541;
  4890.  
  4891.   FUNCTION GPI32SetPatternRefPoint;
  4892.     EXTERNAL 'PMGPI' INDEX 542;
  4893.  
  4894.   FUNCTION GPI32SetPatternSet;
  4895.     EXTERNAL 'PMGPI' INDEX 543;
  4896.  
  4897.   FUNCTION GPI32SetPel;
  4898.     EXTERNAL 'PMGPI' INDEX 544;
  4899.  
  4900.   FUNCTION GPI32SetPickAperaturePosition;
  4901.     EXTERNAL 'PMGPI' INDEX 545;
  4902.  
  4903.   FUNCTION GPI32SetRegion;
  4904.     EXTERNAL 'PMGPI' INDEX 546;
  4905.  
  4906.   FUNCTION GPI32SetSegmentAttrs;
  4907.     EXTERNAL 'PMGPI' INDEX 547;
  4908.  
  4909.   FUNCTION GPI32SetSegmentPriority;
  4910.     EXTERNAL 'PMGPI' INDEX 548;
  4911.  
  4912.   FUNCTION GPI32SetSegmentTransformMatrix;
  4913.     EXTERNAL 'PMGPI' INDEX 549;
  4914.  
  4915.   FUNCTION GPI32SetStopDraw;
  4916.     EXTERNAL 'PMGPI' INDEX 550;
  4917.  
  4918.   FUNCTION GPI32SetTag;
  4919.     EXTERNAL 'PMGPI' INDEX 551;
  4920.  
  4921.   FUNCTION GPI32SetViewingLimits;
  4922.     EXTERNAL 'PMGPI' INDEX 552;
  4923.  
  4924.   FUNCTION GPI32SetViewingTransformMatrix;
  4925.     EXTERNAL 'PMGPI' INDEX 553;
  4926.  
  4927.   FUNCTION GPI32StrokePath;
  4928.     EXTERNAL 'PMGPI' INDEX 554;
  4929.  
  4930.   FUNCTION GPI32UnloadFonts;
  4931.     EXTERNAL 'PMGPI' INDEX 555;
  4932.  
  4933.   FUNCTION GPI32WCBitBlt;
  4934.     EXTERNAL 'PMGPI' INDEX 557;
  4935.  
  4936.   FUNCTION GPI32PolyLineDisjoint;
  4937.     EXTERNAL 'PMGPI' INDEX 558;
  4938.  
  4939.   FUNCTION GPI32PathToRegion;
  4940.     EXTERNAL 'PMGPI' INDEX 559;
  4941.  
  4942.   FUNCTION GPI32FloodFill;
  4943.     EXTERNAL 'PMGPI' INDEX 560;
  4944.  
  4945.   FUNCTION GPI32SuspendPlay;
  4946.     EXTERNAL 'PMGPI' INDEX 561;
  4947.  
  4948.   FUNCTION GPI32ResumePlay;
  4949.     EXTERNAL 'PMGPI' INDEX 562;
  4950.  
  4951.   FUNCTION GPI32OutlinePath;
  4952.     EXTERNAL 'PMGPI' INDEX 563;
  4953.  
  4954.   FUNCTION GPI32Translate;
  4955.     EXTERNAL 'PMGPI' INDEX 564;
  4956.  
  4957.   FUNCTION GPI32Scale;
  4958.     EXTERNAL 'PMGPI' INDEX 565;
  4959.  
  4960.   FUNCTION GPI32Rotate;
  4961.     EXTERNAL 'PMGPI' INDEX 566;
  4962.  
  4963.   FUNCTION GPI32QueryDefArcParams;
  4964.     EXTERNAL 'PMGPI' INDEX 567;
  4965.  
  4966.   FUNCTION GPI32QueryDefTag;
  4967.     EXTERNAL 'PMGPI' INDEX 568;
  4968.  
  4969.   FUNCTION GPI32QueryDefViewingLimits;
  4970.     EXTERNAL 'PMGPI' INDEX 569;
  4971.  
  4972.   FUNCTION GPI32SetDefArcParams;
  4973.     EXTERNAL 'PMGPI' INDEX 570;
  4974.  
  4975.   FUNCTION GPI32SetDefTag;
  4976.     EXTERNAL 'PMGPI' INDEX 571;
  4977.  
  4978.   FUNCTION GPI32SetDefViewingLimits;
  4979.     EXTERNAL 'PMGPI' INDEX 572;
  4980.  
  4981.   FUNCTION GPI32QueryBitmapParameters;
  4982.     EXTERNAL 'PMGPI' INDEX 573;
  4983.  
  4984.   FUNCTION GPI32QueryLogicalFont;
  4985.     EXTERNAL 'PMGPI' INDEX 574;
  4986.  
  4987.   FUNCTION GPI32QueryFaceString;
  4988.     EXTERNAL 'PMGPI' INDEX 575;
  4989.  
  4990.   FUNCTION GPI32QueryFontAction;
  4991.     EXTERNAL 'PMGPI' INDEX 576;
  4992.  
  4993.   FUNCTION GPI32DeletePalette;
  4994.     EXTERNAL 'PMGPI' INDEX 577;
  4995.  
  4996.   FUNCTION GPI32SelectPalette;
  4997.     EXTERNAL 'PMGPI' INDEX 578;
  4998.  
  4999.   FUNCTION GPI32QueryPalette;
  5000.     EXTERNAL 'PMGPI' INDEX 579;
  5001.  
  5002.   FUNCTION GPI32CharStringPos;
  5003.     EXTERNAL 'PMGPI' INDEX 580;
  5004.  
  5005.   FUNCTION GPI32CharStringPosAt;
  5006.     EXTERNAL 'PMGPI' INDEX 581;
  5007.  
  5008.   FUNCTION GPI32CorrelateSegment;
  5009.     EXTERNAL 'PMGPI' INDEX 582;
  5010.  
  5011.   FUNCTION GPI32QueryAttrs;
  5012.     EXTERNAL 'PMGPI' INDEX 583;
  5013.  
  5014.   FUNCTION GPI32QueryCharStringPos;
  5015.     EXTERNAL 'PMGPI' INDEX 584;
  5016.  
  5017.   FUNCTION GPI32QueryCharStringPosAt;
  5018.     EXTERNAL 'PMGPI' INDEX 585;
  5019.  
  5020.   FUNCTION GPI32QueryFonts;
  5021.     EXTERNAL 'PMGPI' INDEX 586;
  5022.  
  5023.   FUNCTION GPI32QueryRegionRects;
  5024.     EXTERNAL 'PMGPI' INDEX 587;
  5025.  
  5026.   FUNCTION GPI32SetAttrs;
  5027.     EXTERNAL 'PMGPI' INDEX 588;
  5028.  
  5029.   FUNCTION GPI32SetPickAperatureSize;
  5030.     EXTERNAL 'PMGPI' INDEX 589;
  5031.  
  5032.   FUNCTION GPI32QueryDefAttrs;
  5033.     EXTERNAL 'PMGPI' INDEX 590;
  5034.  
  5035.   FUNCTION GPI32SetDefAttrs;
  5036.     EXTERNAL 'PMGPI' INDEX 591;
  5037.  
  5038.   FUNCTION GPI32CreateLogColorTable;
  5039.     EXTERNAL 'PMGPI' INDEX 592;
  5040.  
  5041.   FUNCTION GPI32QueryLogColorTable;
  5042.     EXTERNAL 'PMGPI' INDEX 593;
  5043.  
  5044.   FUNCTION GPI32CreatePalette;
  5045.     EXTERNAL 'PMGPI' INDEX 594;
  5046.  
  5047.   FUNCTION GPI32AnimatePalette;
  5048.     EXTERNAL 'PMGPI' INDEX 595;
  5049.  
  5050.   FUNCTION GPI32SetPaletteEntries;
  5051.     EXTERNAL 'PMGPI' INDEX 596;
  5052.  
  5053.   FUNCTION GPI32QueryPaletteInfo;
  5054.     EXTERNAL 'PMGPI' INDEX 597;
  5055.  
  5056.   FUNCTION GPI32CreateBitmap;
  5057.     EXTERNAL 'PMGPI' INDEX 598;
  5058.  
  5059.   FUNCTION GPI32QueryBitmapBits;
  5060.     EXTERNAL 'PMGPI' INDEX 599;
  5061.  
  5062. (* ====================================================== *)
  5063.  
  5064.   FUNCTION GPI32QueryBitmapInfoHeader;
  5065.     EXTERNAL 'PMGPI' INDEX 601;
  5066.  
  5067.   FUNCTION GPI32SetBitmapBits;
  5068.     EXTERNAL 'PMGPI' INDEX 602;
  5069.  
  5070.   FUNCTION GPI32DrawBits;
  5071.     EXTERNAL 'PMGPI' INDEX 603;
  5072.  
  5073.   FUNCTION Dev32CloseDC;
  5074.     EXTERNAL 'PMGPI' INDEX 604;
  5075.  
  5076.   FUNCTION Dev32Escape;
  5077.     EXTERNAL 'PMGPI' INDEX 605;
  5078.  
  5079.   FUNCTION Dev32QueryCaps;
  5080.     EXTERNAL 'PMGPI' INDEX 606;
  5081.  
  5082.   FUNCTION Dev32QueryDeviceNames;
  5083.     EXTERNAL 'PMGPI' INDEX 607;
  5084.  
  5085.   FUNCTION Dev32QueryHardcopyCaps;
  5086.     EXTERNAL 'PMGPI' INDEX 608;
  5087.  
  5088.   FUNCTION Dev32PostDeviceModes;
  5089.     EXTERNAL 'PMGPI' INDEX 609;
  5090.  
  5091.   FUNCTION Dev32OpenDC;
  5092.     EXTERNAL 'PMGPI' INDEX 610;
  5093.  
  5094.   FUNCTION GPI32DestroyRegion;
  5095.     EXTERNAL 'PMGPI' INDEX 611;
  5096.  
  5097.   FUNCTION GPI32PartialArc;
  5098.     EXTERNAL 'PMGPI' INDEX 612;
  5099.  
  5100.   FUNCTION GPI32QueryCharExtra;
  5101.     EXTERNAL 'PMGPI' INDEX 613;
  5102.  
  5103.   FUNCTION GPI32SetCharExtra;
  5104.     EXTERNAL 'PMGPI' INDEX 614;
  5105.  
  5106.   FUNCTION GPI32QueryCharBreakExtra;
  5107.     EXTERNAL 'PMGPI' INDEX 615;
  5108.  
  5109.   FUNCTION GPI32SetCharBreakExtra;
  5110.     EXTERNAL 'PMGPI' INDEX 616;
  5111.  
  5112.   FUNCTION GPI32FrameRegion;
  5113.     EXTERNAL 'PMGPI' INDEX 617;
  5114.  
  5115.   FUNCTION GPI32ConvertWithMatrix;
  5116.     EXTERNAL 'PMGPI' INDEX 618;
  5117.  
  5118. (* ====================================================== *)
  5119.  
  5120.   FUNCTION GPI32LoadPublicFonts;
  5121.     EXTERNAL 'PMGPI' INDEX 622;
  5122.  
  5123.   FUNCTION GPI32UnloadPublicFonts;
  5124.     EXTERNAL 'PMGPI' INDEX 623;
  5125.  
  5126.   FUNCTION GPI32QueryTextAlignment;
  5127.     EXTERNAL 'PMGPI' INDEX 648;
  5128.  
  5129.   FUNCTION GPI32SetTextAlignment;
  5130.     EXTERNAL 'PMGPI' INDEX 649;
  5131.  
  5132.   FUNCTION GPI32Polygons;
  5133.     EXTERNAL 'PMGPI' INDEX 650;
  5134.  
  5135.   FUNCTION GPI32QueryFullFontFileDescs;
  5136.     EXTERNAL 'PMGPI' INDEX 657;
  5137. }
  5138.  
  5139. END.
  5140.  
  5141. (* ====================================================== *)
  5142. (*                  Ende von PMGPI.PAS                    *)
  5143.