home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sibdemo3.zip / SOURCE.DAT / SOURCE / RTL / PMGPI.PAS < prev    next >
Pascal/Delphi Source File  |  1997-12-01  |  67KB  |  1,553 lines

  1. UNIT PMGPI;
  2.  
  3. {****************************** Module Header ******************************
  4. *                                                                          *
  5. * Module Name: 'PMGPI'.PAS                                                   *
  6. *                                                                          *
  7. * OS/2 Presentation Manager GPI constants, types and function declarations *
  8. *                                                                          *
  9. ****************************************************************************}
  10.  
  11. INTERFACE
  12.  
  13. USES Os2Def,PmBitMap,PmWin;
  14.  
  15. { General GPI return values }
  16.  
  17. CONST
  18.      GPI_ERROR                       =0;
  19.      GPI_OK                          =1;
  20.      GPI_ALTERROR                    =-1;
  21.  
  22.  
  23. { fixed point number - implicit binary point between 2 and 3 hex digits }
  24.  
  25. TYPE
  26.     FIXED=LONG;
  27.     FIXED88=WORD;
  28.     FIXED114=WORD;
  29.  
  30.  
  31. { structure for size parameters e.g. for GpiCreatePS }
  32.  
  33. TYPE
  34.     PSIZEL=^SIZEL;
  35.     SIZEL=RECORD
  36.                cx:LONG;
  37.                cy:LONG;
  38.           END;
  39.  
  40. { return code on GpiQueryLogColorTable,GpiQueryRealColors and GpiQueryPel }
  41.  
  42. CONST
  43.      CLR_NOINDEX               =-254;
  44.  
  45. { units for GpiCreatePS and others }
  46.  
  47. CONST
  48.     PU_ARBITRARY               =$0004;
  49.     PU_PELS                    =$0008;
  50.     PU_LOMETRIC                =$000C;
  51.     PU_HIMETRIC                =$0010;
  52.     PU_LOENGLISH               =$0014;
  53.     PU_HIENGLISH               =$0018;
  54.     PU_TWIPS                   =$001C;
  55.  
  56.    { format for GpiCreatePS }
  57.     GPIF_DEFAULT               =0;
  58.     GPIF_SHORT                 =$0100;
  59.     GPIF_LONG                  =$0200;
  60.  
  61.  
  62.    { PS type for GpiCreatePS }
  63.     GPIT_NORMAL                =0;
  64.     GPIT_MICRO                 =$1000;
  65.  
  66.  
  67.    { implicit associate flag for GpiCreatePS }
  68.     GPIA_NOASSOC               =0;
  69.     GPIA_ASSOC                 =$4000;
  70.  
  71.    { PS Fill type for GpiCreatePS defect: 61035 RickT Add exclusive fill }
  72.     GPIM_AREAEXCL              =$8000;
  73.  
  74.  
  75.    { return error for GpiQueryDevice }
  76.     HDC_ERROR                  =-1;
  77.  
  78. { options for GpiResetPS }
  79. CONST
  80.     GRES_ATTRS                 =$0001;
  81.     GRES_SEGMENTS              =$0002;
  82.     GRES_ALL                   =$0004;
  83.  
  84.    { option masks for PS options used by GpiQueryPs }
  85.     PS_UNITS                   =$00FC;
  86.     PS_FORMAT                  =$0F00;
  87.     PS_TYPE                    =$1000;
  88.     PS_MODE                    =$2000;
  89.     PS_ASSOCIATE               =$4000;
  90.     PS_NORESET                 =$8000;
  91.  
  92.  
  93.    { error context returned by GpiErrorSegmentData }
  94.     GPIE_SEGMENT               =0;
  95.     GPIE_ELEMENT               =1;
  96.     GPIE_DATA                  =2;
  97.  
  98.  
  99.    { control parameter for GpiSetDrawControl }
  100.     DCTL_ERASE                     =1;
  101.     DCTL_DISPLAY                   =2;
  102.     DCTL_BOUNDARY                  =3;
  103.     DCTL_DYNAMIC                   =4;
  104.     DCTL_CORRELATE                 =5;
  105.  
  106.    { constants for GpiSet/QueryDrawControl }
  107.     DCTL_ERROR                     =-1;
  108.     DCTL_OFF                       =0;
  109.     DCTL_ON                        =1;
  110.  
  111.     { constants for GpiSet/QueryStopDraw }
  112.     SDW_ERROR                      =-1;
  113.     SDW_OFF                        =0;
  114.     SDW_ON                         =1;
  115.  
  116.  
  117.     { drawing for GpiSet/QueryDrawingMode }
  118.     DM_ERROR                        =0;
  119.     DM_DRAW                         =1;
  120.     DM_RETAIN                       =2;
  121.     DM_DRAWANDRETAIN                =3;
  122.  
  123.  
  124.    { options for GpiSetPickApertureSize }
  125. CONST
  126.     PICKAP_DEFAULT                  =0;
  127.     PICKAP_REC                      =2;
  128.  
  129.    { type of correlation for GpiCorrelateChain }
  130.     PICKSEL_VISIBLE                 =0;
  131.     PICKSEL_ALL                     =1;
  132.  
  133.    { return code to indicate correlate hit(s) }
  134.     GPI_HITS                        =2;
  135.  
  136.  
  137.    { data formats for GpiPutData and GpiGetData }
  138. CONST
  139.     DFORM_NOCONV                    =0;
  140.     DFORM_S370SHORT                 =1;
  141.     DFORM_PCSHORT                   =2;
  142.     DFORM_PCLONG                    =4;
  143.  
  144.  
  145.    { segment attributes used by GpiSet/QuerySegmentAttrs and others }
  146.     ATTR_ERROR                      =-1;
  147.     ATTR_DETECTABLE                 =1;
  148.     ATTR_VISIBLE                    =2;
  149.     ATTR_CHAINED                    =6;
  150.     ATTR_DYNAMIC                    =8;
  151.     ATTR_FASTCHAIN                  =9;
  152.     ATTR_PROP_DETECTABLE            =10;
  153.     ATTR_PROP_VISIBLE               =11;
  154.     ATTR_OFF                        =0;
  155.     ATTR_ON                         =1;
  156.  
  157.    { segment priority used by GpiSetSegmentPriority and others }
  158.     LOWER_PRI                       =-1;
  159.     HIGHER_PRI                      =1;
  160.  
  161.    { edit modes used by GpiSet/QueryEditMode }
  162. CONST
  163.     SEGEM_ERROR                         =0;
  164.     SEGEM_INSERT                        =1;
  165.     SEGEM_REPLACE                       =2;
  166.  
  167.  
  168.    { co-ordinates space for GpiConvert }
  169. CONST
  170.     CVTC_WORLD                      =1;
  171.     CVTC_MODEL                      =2;
  172.     CVTC_DEFAULTPAGE                =3;
  173.     CVTC_PAGE                       =4;
  174.     CVTC_DEVICE                     =5;
  175.  
  176.    { type of transformation for GpiSetSegmentTransformMatrix }
  177.     TRANSFORM_REPLACE               =0;
  178.     TRANSFORM_ADD                   =1;
  179.     TRANSFORM_PREEMPT               =2;
  180.  
  181.    { transform matrix }
  182. TYPE
  183.     PMATRIXLF=^MATRIXLF;
  184.     MATRIXLF=RECORD
  185.                   fxM11:FIXED;
  186.                   fxM12:FIXED;
  187.                   lM13:LONG;
  188.                   fxM21:FIXED;
  189.                   fxM22:FIXED;
  190.                   lM23:LONG;
  191.                   lM31:LONG;
  192.                   lM32:LONG;
  193.                   lM33:LONG;
  194.             END;
  195.  
  196.  
  197.    { modes for GpiModifyPath }
  198. CONST
  199.     MPATH_STROKE                    =6;
  200.  
  201.    { modes for GpiFillPath }
  202.     FPATH_ALTERNATE                 =0;
  203.     FPATH_WINDING                   =2;
  204.     FPATH_INCL                      =0;
  205.     FPATH_EXCL                      =8;
  206.  
  207.    { modes for GpiSetClipPath }
  208.     SCP_ALTERNATE                   =0;
  209.     SCP_WINDING                     =2;
  210.     SCP_AND                         =4;
  211.     SCP_RESET                       =0;
  212.     SCP_INCL                        =0;
  213.     SCP_EXCL                        =8;
  214.  
  215.  
  216.  
  217.    { options for GpiCreateLogColorTable and others }
  218. CONST
  219.     LCOL_RESET                   =$0001;
  220.     LCOL_REALIZABLE              =$0002;
  221.     LCOL_PURECOLOR               =$0004;
  222.     LCOL_OVERRIDE_DEFAULT_COLORS =$0008;
  223.     LCOL_REALIZED                =$0010;
  224.  
  225.    { format of logical lColor table for GpiCreateLogColorTable and others }
  226.     LCOLF_DEFAULT                =0;
  227.     LCOLF_INDRGB                 =1;
  228.     LCOLF_CONSECRGB              =2;
  229.     LCOLF_RGB                    =3;
  230.     LCOLF_PALETTE                =4;
  231.  
  232.    { options for GpiQueryRealColors and others }
  233.     LCOLOPT_REALIZED           =$0001;
  234.     LCOLOPT_INDEX              =$0002;
  235.  
  236.    { return codes from GpiQueryLogColorTable to indicate it is in RGB mode }
  237.     QLCT_ERROR                  =-1;
  238.     QLCT_RGB                    =-2;
  239.  
  240.    { GpiQueryLogColorTable index returned for colors not explicitly loaded }
  241.     QLCT_NOTLOADED              =-1;
  242.  
  243.    { return codes for GpiQueryColorData }
  244.     QCD_LCT_FORMAT              =0;
  245.     QCD_LCT_LOINDEX             =1;
  246.     QCD_LCT_HIINDEX             =2;
  247.     QCD_LCT_OPTIONS             =3;
  248.  
  249.    { Palette manager return values }
  250.     PAL_ERROR                   =-1;
  251.  
  252.    { color flags for GpiCreatePalette and others }
  253.     PC_RESERVED                   =$01;
  254.     PC_EXPLICIT                   =$02;
  255.     PC_NOCOLLAPSE                 =$04;
  256.  
  257.    { rgb colors }
  258. CONST
  259.     RGB_ERROR              =-255;
  260.     RGB_BLACK              =$00000000;
  261.     RGB_BLUE               =$000000FF;
  262.     RGB_GREEN              =$0000FF00;
  263.     RGB_CYAN               =$0000FFFF;
  264.     RGB_RED                =$00FF0000;
  265.     RGB_PINK               =$00FF00FF;
  266.     RGB_YELLOW             =$00FFFF00;
  267.     RGB_WHITE              =$00FFFFFF;
  268.  
  269.    { control flags used by GpiBeginArea }
  270.     BA_NOBOUNDARY              =0;
  271.     BA_BOUNDARY                =$0001;
  272.  
  273.  
  274.     BA_ALTERNATE               =0;
  275.     BA_WINDING                 =$0002;
  276.  
  277.     BA_INCL                    =0;
  278.     BA_EXCL                    =8;
  279.  
  280.  
  281.    { fill options for GpiBox/GpiFullArc }
  282.     DRO_FILL                   =1;
  283.     DRO_OUTLINE                =2;
  284.     DRO_OUTLINEFILL            =3;
  285.  
  286.    { basic pattern symbols }
  287.     PATSYM_ERROR                  =-1;
  288.     PATSYM_DEFAULT                = 0;
  289.     PATSYM_DENSE1                 = 1;
  290.     PATSYM_DENSE2                 = 2;
  291.     PATSYM_DENSE3                 = 3;
  292.     PATSYM_DENSE4                 = 4;
  293.     PATSYM_DENSE5                 = 5;
  294.     PATSYM_DENSE6                 = 6;
  295.     PATSYM_DENSE7                 = 7;
  296.     PATSYM_DENSE8                 = 8;
  297.     PATSYM_VERT                   = 9;
  298.     PATSYM_HORIZ                  =10;
  299.     PATSYM_DIAG1                  =11;
  300.     PATSYM_DIAG2                  =12;
  301.     PATSYM_DIAG3                  =13;
  302.     PATSYM_DIAG4                  =14;
  303.     PATSYM_NOSHADE                =15;
  304.     PATSYM_SOLID                  =16;
  305.     PATSYM_HALFTONE               =17;
  306.     PATSYM_HATCH                  =18;
  307.     PATSYM_DIAGHATCH              =19;
  308.     PATSYM_BLANK                  =64;
  309.  
  310.    { lcid values for GpiSet/QueryPattern and others }
  311.     LCID_ERROR                    =-1;
  312.     LCID_DEFAULT                  =0;
  313.  
  314.  
  315.  
  316.  
  317.    { mode for GpiSetAttrMode }
  318. CONST
  319.     AM_ERROR                       =-1;
  320.     AM_PRESERVE                    =0;
  321.     AM_NOPRESERVE                  =1;
  322.  
  323.    { foreground mixes }
  324.     FM_ERROR                       =-1;
  325.     FM_DEFAULT                     =0;
  326.     FM_OR                          =1;
  327.     FM_OVERPAINT                   =2;
  328.     FM_LEAVEALONE                  =5;
  329.  
  330.     FM_XOR                         =4;
  331.     FM_AND                         =6;
  332.     FM_SUBTRACT                    =7;
  333.     FM_MASKSRCNOT                  =8;
  334.     FM_ZERO                        =9;
  335.     FM_NOTMERGESRC                 =10;
  336.     FM_NOTXORSRC                   =11;
  337.     FM_INVERT                      =12;
  338.     FM_MERGESRCNOT                 =13;
  339.     FM_NOTCOPYSRC                  =14;
  340.     FM_MERGENOTSRC                 =15;
  341.     FM_NOTMASKSRC                  =16;
  342.     FM_ONE                         =17;
  343.  
  344.  
  345.    { background mixes }
  346.     BM_ERROR                       =-1;
  347.     BM_DEFAULT                     =0;
  348.     BM_OR                          =1;
  349.     BM_OVERPAINT                   =2;
  350.     BM_LEAVEALONE                  =5;
  351.  
  352.     BM_XOR                         =4;
  353.     BM_AND                         =6;
  354.     BM_SUBTRACT                    =7;
  355.     BM_MASKSRCNOT                  =8;
  356.     BM_ZERO                        =9;
  357.     BM_NOTMERGESRC                 =10;
  358.     BM_NOTXORSRC                   =11;
  359.     BM_INVERT                      =12;
  360.     BM_MERGESRCNOT                 =13;
  361.     BM_NOTCOPYSRC                  =14;
  362.     BM_MERGENOTSRC                 =15;
  363.     BM_NOTMASKSRC                  =16;
  364.     BM_ONE                         =17;
  365.     BM_SRCTRANSPARENT              =18;
  366.     BM_DESTTRANSPARENT             =19;
  367.  
  368.  
  369.  
  370.    { basic line type styles }
  371.     LINETYPE_ERROR                 =-1;
  372.     LINETYPE_DEFAULT               =0;
  373.     LINETYPE_DOT                   =1;
  374.     LINETYPE_SHORTDASH             =2;
  375.     LINETYPE_DASHDOT               =3;
  376.     LINETYPE_DOUBLEDOT             =4;
  377.     LINETYPE_LONGDASH              =5;
  378.     LINETYPE_DASHDOUBLEDOT         =6;
  379.     LINETYPE_SOLID                 =7;
  380.     LINETYPE_INVISIBLE             =8;
  381.     LINETYPE_ALTERNATE             =9;
  382.  
  383.    { cosmetic line widths }
  384.     LINEWIDTH_ERROR                =-1;
  385.     LINEWIDTH_DEFAULT              =0;
  386.     LINEWIDTH_NORMAL               =$00010000;   { MAKEFIXED(1,0) }
  387.     LINEWIDTH_THICK                =$00020000;   { MAKEFIXED(2,0) }
  388.  
  389.    { actual line widths }
  390.     LINEWIDTHGEOM_ERROR            =-1;
  391.  
  392.    { line end styles }
  393.     LINEEND_ERROR                  =-1;
  394.     LINEEND_DEFAULT                =0;
  395.     LINEEND_FLAT                   =1;
  396.     LINEEND_SQUARE                 =2;
  397.     LINEEND_ROUND                  =3;
  398.  
  399.    { line join styles }
  400.     LINEJOIN_ERROR                 =-1;
  401.     LINEJOIN_DEFAULT               =0;
  402.     LINEJOIN_BEVEL                 =1;
  403.     LINEJOIN_ROUND                 =2;
  404.     LINEJOIN_MITRE                 =3;
  405.  
  406.    { character directions }
  407.     CHDIRN_ERROR                   =-1;
  408.     CHDIRN_DEFAULT                 =0;
  409.     CHDIRN_LEFTRIGHT               =1;
  410.     CHDIRN_TOPBOTTOM               =2;
  411.     CHDIRN_RIGHTLEFT               =3;
  412.     CHDIRN_BOTTOMTOP               =4;
  413.  
  414.    { character text alignments }
  415.     TA_NORMAL_HORIZ     =$0001;
  416.     TA_LEFT             =$0002;
  417.     TA_CENTER           =$0003;
  418.     TA_RIGHT            =$0004;
  419.     TA_STANDARD_HORIZ   =$0005;
  420.     TA_NORMAL_VERT      =$0100;
  421.     TA_TOP              =$0200;
  422.     TA_HALF             =$0300;
  423.     TA_BASE             =$0400;
  424.     TA_BOTTOM           =$0500;
  425.     TA_STANDARD_VERT    =$0600;
  426.  
  427.    { character modes }
  428.     CM_ERROR                       =-1;
  429.     CM_DEFAULT                     =0;
  430.     CM_MODE1                       =1;
  431.     CM_MODE2                       =2;
  432.     CM_MODE3                       =3;
  433.  
  434.    { basic marker symbols }
  435.     MARKSYM_ERROR                  =-1;
  436.     MARKSYM_DEFAULT                =0;
  437.     MARKSYM_CROSS                  =1;
  438.     MARKSYM_PLUS                   =2;
  439.     MARKSYM_DIAMOND                =3;
  440.     MARKSYM_SQUARE                 =4;
  441.     MARKSYM_SIXPOINTSTAR           =5;
  442.     MARKSYM_EIGHTPOINTSTAR         =6;
  443.     MARKSYM_SOLIDDIAMOND           =7;
  444.     MARKSYM_SOLIDSQUARE            =8;
  445.     MARKSYM_DOT                    =9;
  446.     MARKSYM_SMALLCIRCLE            =10;
  447.     MARKSYM_BLANK                  =64;
  448.  
  449.    { formatting options for GpiCharStringPosAt }
  450.     CHS_OPAQUE                 =$0001;
  451.     CHS_VECTOR                 =$0002;
  452.     CHS_LEAVEPOS               =$0008;
  453.     CHS_CLIP                   =$0010;
  454.     CHS_UNDERSCORE             =$0200;
  455.     CHS_STRIKEOUT              =$0400;
  456.  
  457.    { bundle codes for GpiSetAttributes and GpiQueryAttributes }
  458.     PRIM_LINE                  =1;
  459.     PRIM_CHAR                  =2;
  460.     PRIM_MARKER                =3;
  461.     PRIM_AREA                  =4;
  462.     PRIM_IMAGE                 =5;
  463.  
  464.    { line bundle mask bits }
  465.     LBB_COLOR                  =$0001;
  466.     LBB_BACK_COLOR             =$0002;
  467.     LBB_MIX_MODE               =$0004;
  468.     LBB_BACK_MIX_MODE          =$0008;
  469.     LBB_WIDTH                  =$0010;
  470.     LBB_GEOM_WIDTH             =$0020;
  471.     LBB_TYPE                   =$0040;
  472.     LBB_END                    =$0080;
  473.     LBB_JOIN                   =$0100;
  474.  
  475.    { character bundle mask bits }
  476.     CBB_COLOR                  =$0001;
  477.     CBB_BACK_COLOR             =$0002;
  478.     CBB_MIX_MODE               =$0004;
  479.     CBB_BACK_MIX_MODE          =$0008;
  480.     CBB_SET                    =$0010;
  481.     CBB_MODE                   =$0020;
  482.     CBB_BOX                    =$0040;
  483.     CBB_ANGLE                  =$0080;
  484.     CBB_SHEAR                  =$0100;
  485.     CBB_DIRECTION              =$0200;
  486.     CBB_TEXT_ALIGN             =$0400;
  487.     CBB_EXTRA                  =$0800;
  488.     CBB_BREAK_EXTRA            =$1000;
  489.  
  490.    { marker bundle mask bits }
  491.     MBB_COLOR                  =$0001;
  492.     MBB_BACK_COLOR             =$0002;
  493.     MBB_MIX_MODE               =$0004;
  494.     MBB_BACK_MIX_MODE          =$0008;
  495.     MBB_SET                    =$0010;
  496.     MBB_SYMBOL                 =$0020;
  497.     MBB_BOX                    =$0040;
  498.  
  499.    { pattern bundle mask bits }
  500.     ABB_COLOR                  =$0001;
  501.     ABB_BACK_COLOR             =$0002;
  502.     ABB_MIX_MODE               =$0004;
  503.     ABB_BACK_MIX_MODE          =$0008;
  504.     ABB_SET                    =$0010;
  505.     ABB_SYMBOL                 =$0020;
  506.     ABB_REF_POINT              =$0040;
  507.  
  508.    { image bundle mask bits }
  509.     IBB_COLOR                  =$0001;
  510.     IBB_BACK_COLOR             =$0002;
  511.     IBB_MIX_MODE               =$0004;
  512.     IBB_BACK_MIX_MODE          =$0008;
  513.  
  514.    { structure for GpiSetArcParams and GpiQueryArcParams }
  515. TYPE
  516.     PARCPARAMS=^ARCPARAMS;
  517.     ARCPARAMS=RECORD
  518.                     lP:LONG;
  519.                     lQ:LONG;
  520.                     lR:LONG;
  521.                     lS:LONG;
  522.               END;
  523.  
  524.    { variation of SIZE used for FIXEDs }
  525. TYPE
  526.    PSIZEF=^SIZEF;
  527.    SIZEF=RECORD
  528.                cx:FIXED;
  529.                cy:FIXED;
  530.          END;
  531.  
  532.    { structure for gradient parameters e.g. for GpiSetCharAngle }
  533. TYPE
  534.    PGRADIENTL=^GRADIENTL;
  535.    GRADIENTL=RECORD
  536.                    x:LONG;
  537.                    y:LONG;
  538.              END;
  539.  
  540.    { line bundle for GpiSetAttributes and GpiQueryAttributes }
  541. TYPE
  542.    PLINEBUNDLE=^LINEBUNDLE;
  543.    LINEBUNDLE=RECORD
  544.                    lColor:LONG;
  545.                    lBackColor:LONG;
  546.                    usMixMode:WORD;
  547.                    usBackMixMode:WORD;
  548.                    fxWidth:FIXED;
  549.                    lGeomWidth:LONG;
  550.                    usType:WORD;
  551.                    usEnd:WORD;
  552.                    usJoin:WORD;
  553.                    usReserved:WORD;
  554.               END;
  555.  
  556.    { character bundle for GpiSetAttributes and GpiQueryAttributes }
  557. TYPE
  558.    PCHARBUNDLE=^CHARBUNDLE;
  559.    CHARBUNDLE=RECORD
  560.                    lColor:LONG;
  561.                    lBackColor:LONG;
  562.                    usMixMode:WORD;
  563.                    usBackMixMode:WORD;
  564.                    usSet:WORD;
  565.                    usPrecision:WORD;
  566.                    sizfxCell:SIZEF;
  567.                    ptlAngle:POINTL;
  568.                    ptlShear:POINTL;
  569.                    usDirection:WORD;
  570.                    usTextAlign:WORD;
  571.                    fxExtra:FIXED;
  572.                    fxBreakExtra:FIXED;
  573.              END;
  574.  
  575.    { marker bundle for GpiSetAttributes and GpiQueryAttributes }
  576. TYPE
  577.    PMARKERBUNDLE=^MARKERBUNDLE;
  578.    MARKERBUNDLE=RECORD
  579.                      lColor:LONG;
  580.                      lBackColor:LONG;
  581.                      usMixMode:WORD;
  582.                      usBackMixMode:WORD;
  583.                      usSet:WORD;
  584.                      usSymbol:WORD;
  585.                      sizfxCell:SIZEF;
  586.                END;
  587.  
  588.    { pattern bundle for GpiSetAttributes and GpiQueryAttributes }
  589. TYPE
  590.    PAREABUNDLE=^AREABUNDLE;
  591.    AREABUNDLE=RECORD
  592.                    lColor:LONG;
  593.                    lBackColor:LONG;
  594.                    usMixMode:WORD;
  595.                    usBackMixMode:WORD;
  596.                    usSet:WORD;
  597.                    usSymbol:WORD;
  598.                    ptlRefPoint:POINTL
  599.               END;
  600.  
  601.    { image bundle for GpiSetAttributes and GpiQueryAttributes }
  602. TYPE
  603.    PIMAGEBUNDLE=^IMAGEBUNDLE;
  604.    IMAGEBUNDLE=RECORD
  605.                     lColor:LONG;
  606.                     lBackColor:LONG;
  607.                     usMixMode:WORD;
  608.                     usBackMixMode:WORD;
  609.                END;
  610.  
  611.    { pointer to any bundle used by GpiSet/QueryAttrs }
  612. TYPE PBUNDLE=POINTER;
  613.  
  614.    { array indices for GpiQueryTextBox }
  615. CONST
  616.     TXTBOX_TOPLEFT                 =0;
  617.     TXTBOX_BOTTOMLEFT              =1;
  618.     TXTBOX_TOPRIGHT                =2;
  619.     TXTBOX_BOTTOMRIGHT             =3;
  620.     TXTBOX_CONCAT                  =4;
  621.    { array count for GpiQueryTextBox }
  622.     TXTBOX_COUNT                   =5;
  623.  
  624.    { return codes for GpiPtVisible }
  625.     PVIS_ERROR                     =0;
  626.     PVIS_INVISIBLE                 =1;
  627.     PVIS_VISIBLE                   =2;
  628.  
  629.    { return codes for GpiRectVisible }
  630.     RVIS_ERROR                     =0;
  631.     RVIS_INVISIBLE                 =1;
  632.     RVIS_PARTIAL                   =2;
  633.     RVIS_VISIBLE                   =3;
  634.  
  635.  
  636.  
  637.    { return codes from GpiCreateLogFont }
  638. CONST
  639.     FONT_DEFAULT                    =1;
  640.     FONT_MATCH                      =2;
  641.  
  642.    { lcid type for GpiQuerySetIds }
  643.     LCIDT_FONT                      =6;
  644.  
  645.     LCIDT_BITMAP                    =7;
  646.  
  647.    { constant used to delete all lcids by GpiDeleteSetId }
  648.     LCID_ALL                        =-1;
  649.  
  650.    { kerning data returned by GpiQueryKerningPairs }
  651. TYPE
  652.    PKERNINGPAIRS=^KERNINGPAIRS;
  653.    KERNINGPAIRS=RECORD
  654.                     sFirstChar:SHORT;
  655.                     sSecondChar:SHORT;
  656.                     lKerningAmount:LONG;
  657.                 END;
  658.  
  659.    { data required by GpiQueryFaceString }
  660. TYPE
  661.    PFACENAMEDESC=^FACENAMEDESC;
  662.    FACENAMEDESC=RECORD
  663.                      usSize:WORD;
  664.                      usWeightClass:WORD;
  665.                      usWidthClass:WORD;
  666.                      usReserved:WORD;
  667.                      flOptions:LONGWORD;
  668.                 END;
  669.  
  670.    { FACENAMEDESC 'WeightClass' options for GpiQueryFaceString }
  671. CONST
  672.     FWEIGHT_DONT_CARE      =0;
  673.     FWEIGHT_ULTRA_LIGHT    =1;
  674.     FWEIGHT_EXTRA_LIGHT    =2;
  675.     FWEIGHT_LIGHT          =3;
  676.     FWEIGHT_SEMI_LIGHT     =4;
  677.     FWEIGHT_NORMAL         =5;
  678.     FWEIGHT_SEMI_BOLD      =6;
  679.     FWEIGHT_BOLD           =7;
  680.     FWEIGHT_EXTRA_BOLD     =8;
  681.     FWEIGHT_ULTRA_BOLD     =9;
  682.  
  683.    { FACENAMEDESC 'WidthClass' options for GpiQueryFaceString }
  684.     FWIDTH_DONT_CARE       =0;
  685.     FWIDTH_ULTRA_CONDENSED =1;
  686.     FWIDTH_EXTRA_CONDENSED =2;
  687.     FWIDTH_CONDENSED       =3;
  688.     FWIDTH_SEMI_CONDENSED  =4;
  689.     FWIDTH_NORMAL          =5;
  690.     FWIDTH_SEMI_EXPANDED   =6;
  691.     FWIDTH_EXPANDED        =7;
  692.     FWIDTH_EXTRA_EXPANDED  =8;
  693.     FWIDTH_ULTRA_EXPANDED  =9;
  694.  
  695.    { FACENAMEDESC 'options' for GpiQueryFaceString }
  696.     FTYPE_ITALIC            =$0001;
  697.     FTYPE_ITALIC_DONT_CARE  =$0002;
  698.     FTYPE_OBLIQUE           =$0004;
  699.     FTYPE_OBLIQUE_DONT_CARE =$0008;
  700.     FTYPE_ROUNDED           =$0010;
  701.     FTYPE_ROUNDED_DONT_CARE =$0020;
  702.  
  703.    { actions for GpiQueryFontAction }
  704.     QFA_PUBLIC              =1;
  705.     QFA_PRIVATE             =2;
  706.     QFA_ERROR               =GPI_ALTERROR;
  707.  
  708.    { options for GpiQueryFonts }
  709.     QF_PUBLIC               =$0001;
  710.     QF_PRIVATE              =$0002;
  711.     QF_NO_GENERIC           =$0004;
  712.     QF_NO_DEVICE            =$0008;
  713.  
  714.    { font file descriptions for GpiQueryFontFileDescriptions }
  715. TYPE
  716.     FFDESCS=ARRAY[0..1,0..FACESIZE-1] OF BYTE;
  717.  
  718.     PFFDESCS2=^FFDESCS2;
  719.     FFDESCS2=RECORD
  720.                    cbLength:LONGWORD;
  721.                    cbFacenameOffset:LONGWORD;
  722.                    abFamilyName:BYTE;
  723.              END;
  724.  
  725.  
  726.  
  727.    { raster operations defined for GpiBitBlt }
  728. CONST
  729.     ROP_SRCCOPY                =$00CC;
  730.     ROP_SRCPAINT               =$00EE;
  731.     ROP_SRCAND                 =$0088;
  732.     ROP_SRCINVERT              =$0066;
  733.     ROP_SRCERASE               =$0044;
  734.     ROP_NOTSRCCOPY             =$0033;
  735.     ROP_NOTSRCERASE            =$0011;
  736.     ROP_MERGECOPY              =$00C0;
  737.     ROP_MERGEPAINT             =$00BB;
  738.     ROP_PATCOPY                =$00F0;
  739.     ROP_PATPAINT               =$00FB;
  740.     ROP_PATINVERT              =$005A;
  741.     ROP_DSTINVERT              =$0055;
  742.     ROP_ZERO                   =$0000;
  743.     ROP_ONE                    =$00FF;
  744.  
  745.    { Blt options for GpiBitBlt }
  746.     BBO_OR                     =0;
  747.     BBO_AND                    =1;
  748.     BBO_IGNORE                 =2;
  749.     BBO_PAL_COLORS             =4;
  750.     BBO_NO_COLOR_INFO          =8;
  751.  
  752.    { Fill options for GpiFloodFill }
  753.     FF_BOUNDARY                =0;
  754.     FF_SURFACE                 =1;
  755.  
  756.    { error return for GpiSetBitmap }
  757.     HBM_ERROR                  =-1;
  758.  
  759.  
  760.  
  761.    { usage flags for GpiCreateBitmap }
  762. CONST
  763.     CBM_INIT        =$0004;
  764.  
  765.    { error return code for GpiSet/QueryBitmapBits }
  766.     BMB_ERROR       =-1;
  767.  
  768.  
  769.  
  770.  
  771.    { options for GpiCombineRegion }
  772. CONST
  773.     CRGN_OR                         =1;
  774.     CRGN_COPY                       =2;
  775.     CRGN_XOR                        =4;
  776.     CRGN_AND                        =6;
  777.     CRGN_DIFF                       =7;
  778.  
  779.    { usDirection of returned region data for GpiQueryRegionRects }
  780.     RECTDIR_LFRT_TOPBOT             =1;
  781.     RECTDIR_RTLF_TOPBOT             =2;
  782.     RECTDIR_LFRT_BOTTOP             =3;
  783.     RECTDIR_RTLF_BOTTOP             =4;
  784.  
  785.    { control data for GpiQueryRegionRects }
  786. TYPE
  787.     PRGNRECT=^RGNRECT;
  788.     RGNRECT=RECORD
  789.                   ircStart:LONGWORD;
  790.                   crc:LONGWORD;
  791.                   crcReturned:LONGWORD;
  792.                   ulDirection:LONGWORD;
  793.             END;
  794.  
  795. TYPE
  796.     PStr8=POINTER;
  797.  
  798.    { return code to indicate type of region for GpiCombineRegion and others }
  799. CONST
  800.     RGN_ERROR                       =0;
  801.     RGN_NULL                        =1;
  802.     RGN_RECT                        =2;
  803.     RGN_COMPLEX                     =3;
  804.  
  805.    { return codes for GpiPtInRegion }
  806.     PRGN_ERROR                      =0;
  807.     PRGN_OUTSIDE                    =1;
  808.     PRGN_INSIDE                     =2;
  809.  
  810.    { return codes for GpiRectInRegion }
  811.     RRGN_ERROR                      =0;
  812.     RRGN_OUTSIDE                    =1;
  813.     RRGN_PARTIAL                    =2;
  814.     RRGN_INSIDE                     =3;
  815.  
  816.    { return codes for GpiEqualRegion }
  817.     EQRGN_ERROR                     =0;
  818.     EQRGN_NOTEQUAL                  =1;
  819.     EQRGN_EQUAL                     =2;
  820.  
  821.    { error return code for GpiSetRegion }
  822.     HRGN_ERROR                      =-1;
  823.  
  824.  
  825.  
  826. { constants for index values of options array for GpiPlayMetaFile }
  827. CONST
  828.        PMF_SEGBASE                     =0;
  829.        PMF_LOADTYPE                    =1;
  830.        PMF_RESOLVE                     =2;
  831.        PMF_LCIDS                       =3;
  832.        PMF_RESET                       =4;
  833.        PMF_SUPPRESS                    =5;
  834.        PMF_COLORTABLES                 =6;
  835.        PMF_COLORREALIZABLE             =7;
  836.        PMF_DEFAULTS                    =8;
  837.        PMF_DELETEOBJECTS               =9;
  838.  
  839.       { options for GpiPlayMetaFile }
  840.        RS_DEFAULT                      =0;
  841.        RS_NODISCARD                    =1;
  842.        LC_DEFAULT                      =0;
  843.        LC_NOLOAD                       =1;
  844.        LC_LOADDISC                     =3;
  845.        LT_DEFAULT                      =0;
  846.        LT_NOMODIFY                     =1;
  847.        LT_ORIGINALVIEW                 =4;
  848.        RES_DEFAULT                     =0;
  849.        RES_NORESET                     =1;
  850.        RES_RESET                       =2;
  851.        SUP_DEFAULT                     =0;
  852.        SUP_NOSUPPRESS                  =1;
  853.        SUP_SUPPRESS                    =2;
  854.        CTAB_DEFAULT                    =0;
  855.        CTAB_NOMODIFY                   =1;
  856.        CTAB_REPLACE                    =3;
  857.        CTAB_REPLACEPALETTE             =4;
  858.        CREA_DEFAULT                    =0;
  859.        CREA_REALIZE                    =1;
  860.        CREA_NOREALIZE                  =2;
  861.        CREA_DOREALIZE                  =3;
  862.  
  863.        DDEF_DEFAULT                    =0;
  864.        DDEF_IGNORE                     =1;
  865.        DDEF_LOADDISC                   =3;
  866.        DOBJ_DEFAULT                    =0;
  867.        DOBJ_NODELETE                   =1;
  868.        DOBJ_DELETE                     =2;
  869.        RSP_DEFAULT                     =0;
  870.        RSP_NODISCARD                   =1;
  871.  
  872.  
  873. TYPE
  874.    PPOLYGON=^POLYGON;
  875.    POLYGON=RECORD
  876.                 ulPoints:LONGWORD;
  877.                 Pointl:^POINTL;
  878.            END;
  879.  
  880.    PPOLYSET=^POLYSET;
  881.    POLYSET=RECORD
  882.                 ulPolys:LONGWORD;
  883.                 Polygon:POLYGON;
  884.            END;
  885.  
  886. { control flags used by GpiPolygons }
  887. CONST
  888.     POLYGON_NOBOUNDARY              =0;
  889.     POLYGON_BOUNDARY                =$0001;
  890.  
  891.     POLYGON_ALTERNATE               =0;
  892.     POLYGON_WINDING                 =$0002;
  893.  
  894.     POLYGON_INCL                    =0;
  895.     POLYGON_EXCL                    =$0008;
  896.  
  897. IMPORTS
  898.  
  899. FUNCTION GpiCreatePS(ahab:HAB;ahdc:HDC;VAR psizlSize:SIZEL;
  900.                      flOptions:LONGWORD):HPS;
  901.                     APIENTRY;                'PMGPI' index 369;
  902. FUNCTION GpiDestroyPS(ahps:HPS):BOOL;
  903.                     APIENTRY;                'PMGPI' index 379;
  904. FUNCTION GpiAssociate(ahps:HPS;ahdc:HDC):BOOL;
  905.                     APIENTRY;                'PMGPI' index 351;
  906. FUNCTION GpiRestorePS(ahps:HPS;lPSid:LONG):BOOL;
  907.                     APIENTRY;                'PMGPI' index 499;
  908. FUNCTION GpiSavePS(ahps:HPS):LONG;
  909.                     APIENTRY;                'PMGPI' index 501;
  910. FUNCTION GpiErase(ahps:HPS):BOOL;
  911.                     APIENTRY;                'PMGPI' index 389;
  912. FUNCTION GpiQueryDevice(ahps:HPS):HDC;
  913.                     APIENTRY;                'PMGPI' index 444;
  914. FUNCTION GpiResetPS(ahps:HPS;flOptions:LONGWORD):BOOL;
  915.                     APIENTRY;                'PMGPI' index 498;
  916. FUNCTION GpiSetPS(ahps:HPS;VAR psizlsize:SIZEL;flOptions:LONGWORD):BOOL;
  917.                     APIENTRY;                'PMGPI' index 539;
  918. FUNCTION GpiQueryPS(ahps:HPS;VAR psizlSize:SIZEL):LONGWORD;
  919.                     APIENTRY;                'PMGPI' index 471;
  920. FUNCTION GpiErrorSegmentData(ahps:HPS;VAR plSegment,plContext:LONG):LONG;
  921.                     APIENTRY;                'PMGPI' index 390;
  922. FUNCTION GpiQueryDrawControl(ahps:HPS;lControl:LONG):LONG;
  923.                     APIENTRY;                'PMGPI' index 446;
  924. FUNCTION GpiSetDrawControl(ahps:HPS;lControl,lValue:LONG):BOOL;
  925.                     APIENTRY;                'PMGPI' index 521;
  926. FUNCTION GpiQueryDrawingMode(ahps:HPS):LONG;
  927.                     APIENTRY;                'PMGPI' index 447;
  928. FUNCTION GpiSetDrawingMode(ahps:HPS;lMode:LONG):BOOL;
  929.                     APIENTRY;                'PMGPI' index 522;
  930. FUNCTION GpiQueryStopDraw(ahps:HPS):LONG;
  931.                     APIENTRY;                'PMGPI' index 487;
  932. FUNCTION GpiSetStopDraw(ahps:HPS;lValue:LONG):BOOL;
  933.                     APIENTRY;                'PMGPI' index 550;
  934. FUNCTION GpiCorrelateChain(ahps:HPS;lType:LONG;VAR pptlPick:POINTL;
  935.                            lMaxHits,lMaxDepth:LONG;VAR pl2:LONG):LONG;
  936.                     APIENTRY;                'PMGPI' index 366;
  937. FUNCTION GpiQueryTag(ahps:HPS;VAR plTag:LONG):BOOL;
  938.                     APIENTRY;                'PMGPI' index 488;
  939. FUNCTION GpiSetTag(ahps:HPS;lTag:LONG):BOOL;
  940.                     APIENTRY;                'PMGPI' index 551;
  941. FUNCTION GpiQueryPickApertureSize(ahps:HPS;VAR psizlSize:SIZEL):BOOL;
  942.                     APIENTRY;                'PMGPI' index 478;
  943. FUNCTION GpiSetPickApertureSize(ahps:HPS;lOptions:LONG;
  944.                                 VAR psizlSize:SIZEL):BOOL;
  945.                     APIENTRY;                'PMGPI' index 589;
  946. FUNCTION GpiQueryPickAperturePosition(ahps:HPS;VAR pptlPoint:POINTL):BOOL;
  947.                     APIENTRY;                'PMGPI' index 477;
  948. FUNCTION GpiSetPickAperturePosition(ahps:HPS;VAR pptlPick:POINTL):BOOL;
  949.                     APIENTRY;                'PMGPI' index 545;
  950. FUNCTION GpiQueryBoundaryData(ahps:HPS;VAR prclBoundary:RECTL):BOOL;
  951.                     APIENTRY;                'PMGPI' index 428;
  952. FUNCTION GpiResetBoundaryData(ahps:HPS):BOOL;
  953.                     APIENTRY;                'PMGPI' index 497;
  954. FUNCTION GpiCorrelateFrom(ahps:HPS;lFirstSegment,lLastSegment,lType:LONG;
  955.                           VAR pptlPick:POINTL;lMaxHits,lMaxDepth:LONG;
  956.                           VAR plSegTag:LONG):LONG;
  957.                     APIENTRY;                'PMGPI' index 367;
  958. FUNCTION GpiCorrelateSegment(ahps:HPS;lSegment,lType:LONG;
  959.                              VAR pptlPick:POINTL;lMaxHits,lMaxDepth:LONG;
  960.                              VAR alSegTag:LONG):LONG;
  961.                     APIENTRY;                'PMGPI' index 582;
  962. FUNCTION GpiOpenSegment(ahps:HPS;lSegment:LONG):BOOL;
  963.                     APIENTRY;                'PMGPI' index 408;
  964. FUNCTION GpiCloseSegment(ahps:HPS):BOOL;
  965.                     APIENTRY;                'PMGPI' index 361;
  966. FUNCTION GpiDeleteSegment(ahps:HPS;lSegid:LONG):BOOL;
  967.                     APIENTRY;                'PMGPI' index 376;
  968. FUNCTION GpiQueryInitialSegmentAttrs(ahps:HPS;lAttribute:LONG):LONG;
  969.                     APIENTRY;                'PMGPI' index 455;
  970. FUNCTION GpiSetInitialSegmentAttrs(ahps:HPS;lAttribute,lValue:LONG):BOOL;
  971.                     APIENTRY;                'PMGPI' index 527;
  972. FUNCTION GpiQuerySegmentAttrs(ahps:HPS;lSegid,lAttribute:LONG):LONG;
  973.                     APIENTRY;                'PMGPI' index 482;
  974. FUNCTION GpiSetSegmentAttrs(ahps:HPS;lSegid,lAttribute,lValue:LONG):LONG;
  975.                     APIENTRY;                'PMGPI' index 547;
  976. FUNCTION GpiQuerySegmentPriority(ahps:HPS;lRefSegid,lOrder:LONG):LONG;
  977.                     APIENTRY;                'PMGPI' index 484;
  978. FUNCTION GpiSetSegmentPriority(ahps:HPS;lSegid,lRefSegid,lOrder:LONG):BOOL;
  979.                     APIENTRY;                'PMGPI' index 548;
  980. FUNCTION GpiDeleteSegments(ahps:HPS;lFirstSegment,lLastSegment:LONG):BOOL;
  981.                     APIENTRY;                'PMGPI' index 377;
  982. FUNCTION GpiQuerySegmentNames(ahps:HPS;lFirstSegid,lLastSegid,lMax:LONG;
  983.                               VAR alSegids:LONG):LONG;
  984.                     APIENTRY;                'PMGPI' index 483;
  985. FUNCTION GpiGetData(ahps:HPS;lSegid:LONG;VAR plOffset:LONG;lFormat,
  986.                     lLength:LONG;VAR pbData):LONG;
  987.                     APIENTRY;                'PMGPI' index 394;
  988. FUNCTION GpiPutData(ahps:HPS;lFormat:LONG;VAR plCount:LONG;
  989.                     VAR pbData):LONG;
  990.                     APIENTRY;                'PMGPI' index 421;
  991. FUNCTION GpiDrawChain(ahps:HPS):BOOL;
  992.                     APIENTRY;                'PMGPI' index 380;
  993. FUNCTION GpiDrawFrom(ahps:HPS;lFirstSegment,lLastSegment:LONG):BOOL;
  994.                     APIENTRY;                'PMGPI' index 382;
  995. FUNCTION GpiDrawSegment(ahps:HPS;lSegment:LONG):BOOL;
  996.                     APIENTRY;                'PMGPI' index 383;
  997. FUNCTION GpiDrawDynamics(ahps:HPS):BOOL;
  998.                     APIENTRY;                'PMGPI' index 381;
  999. FUNCTION GpiRemoveDynamics(ahps:HPS;lFirstSegid,lLastSegid:LONG):BOOL;
  1000.                     APIENTRY;                'PMGPI' index 496;
  1001. FUNCTION GpiBeginElement(ahps:HPS;lType:LONG;VAR pszDesc:PSZ):BOOL;
  1002.                     APIENTRY;                'PMGPI' index 353;
  1003. FUNCTION GpiEndElement(ahps:HPS):BOOL;
  1004.                     APIENTRY;                'PMGPI' index 386;
  1005. FUNCTION GpiLabel(ahps:HPS;lLabel:LONG):BOOL;
  1006.                     APIENTRY;                'PMGPI' index 397;
  1007. FUNCTION GpiElement(ahps:HPS;lType:LONG;VAR pszDesc:PSZ;lLength:LONG;
  1008.                     VAR pbData):LONG;
  1009.                     APIENTRY;                'PMGPI' index 384;
  1010. FUNCTION GpiQueryElement(ahps:HPS;lOff,lMaxLength:LONG;
  1011.                          VAR pbData):LONG;
  1012.                     APIENTRY;                'PMGPI' index 449;
  1013. FUNCTION GpiDeleteElement(ahps:HPS):BOOL;
  1014.                     APIENTRY;                'PMGPI' index 372;
  1015. FUNCTION GpiDeleteElementRange(ahps:HPS;lFirstElement,
  1016.                                lLastElement:LONG):BOOL;
  1017.                     APIENTRY;                'PMGPI' index 373;
  1018. FUNCTION GpiDeleteElementsBetweenLabels(ahps:HPS;lFirstLabel,
  1019.                                         lLastLabel:LONG):BOOL;
  1020.                     APIENTRY;                'PMGPI' index 374;
  1021. FUNCTION GpiQueryEditMode(ahps:HPS):LONG;
  1022.                     APIENTRY;                'PMGPI' index 448;
  1023. FUNCTION GpiSetEditMode(ahps:HPS;lMode:LONG):BOOL;
  1024.                     APIENTRY;                'PMGPI' index 523;
  1025. FUNCTION GpiQueryElementPointer(ahps:HPS):LONG;
  1026.                     APIENTRY;                'PMGPI' index 450;
  1027. FUNCTION GpiSetElementPointer(ahps:HPS;lElement:LONG):BOOL;
  1028.                     APIENTRY;                'PMGPI' index 524;
  1029. FUNCTION GpiOffsetElementPointer(ahps:HPS;loffset:LONG):BOOL;
  1030.                     APIENTRY;                'PMGPI' index 406;
  1031. FUNCTION GpiQueryElementType(ahps:HPS;VAR plType:LONG;lLength:LONG;
  1032.                              VAR pszData:PSZ):LONG;
  1033.                     APIENTRY;                'PMGPI' index 451;
  1034. FUNCTION GpiSetElementPointerAtLabel(ahps:HPS;lLabel:LONG):BOOL;
  1035.                     APIENTRY;                'PMGPI' index 525;
  1036. FUNCTION GpiQuerySegmentTransformMatrix(ahps:HPS;lSegid,lCount:LONG;
  1037.                                         VAR pmatlfArray:MATRIXLF):BOOL;
  1038.                     APIENTRY;                'PMGPI' index 485;
  1039. FUNCTION GpiSetSegmentTransformMatrix(ahps:HPS;lSegid,lCount:LONG;
  1040.                                       VAR pmatlfarray:MATRIXLF;
  1041.                                       lOptions:LONG):BOOL;
  1042.                     APIENTRY;                'PMGPI' index 549;
  1043. FUNCTION GpiConvert(ahps:HPS;lSrc,lTarg,lCount:LONG;VAR aptlPoints:POINTL):BOOL;
  1044.                     APIENTRY;                'PMGPI' index 364;
  1045. FUNCTION GpiConvertWithMatrix(ahps:HPS;lCountp:LONG;VAR aptlPoints:POINTL;
  1046.                               lCount:LONG;VAR pmatlfArray:MATRIXLF):BOOL;
  1047.                     APIENTRY;                'PMGPI' index 618;
  1048. FUNCTION GpiQueryModelTransformMatrix(ahps:HPS;lCount:LONG;
  1049.                                       VAR pmatlfArray:MATRIXLF):BOOL;
  1050.                     APIENTRY;                'PMGPI' index 468;
  1051. FUNCTION GpiSetModelTransformMatrix(ahps:HPS;lCount:LONG;
  1052.                                     VAR pmatlfArray:MATRIXLF;
  1053.                                     lOptions:LONG):BOOL;
  1054.                     APIENTRY;                'PMGPI' index 538;
  1055. FUNCTION GpiCallSegmentMatrix(ahps:HPS;lSegment,lCount:LONG;
  1056.                               VAR pmatlfArray:MATRIXLF;
  1057.                               lOptions:LONG):LONG;
  1058.                     APIENTRY;                'PMGPI' index 357;
  1059. FUNCTION GpiQueryDefaultViewMatrix(ahps:HPS;lCount:LONG;
  1060.                                    VAR pmatlfArray:MATRIXLF):BOOL;
  1061.                     APIENTRY;                'PMGPI' index 443;
  1062. FUNCTION GpiSetDefaultViewMatrix(ahps:HPS;lCount:LONG;
  1063.                                  VAR pmatlfarray:MATRIXLF;
  1064.                                  lOptions:LONG):BOOL;
  1065.                     APIENTRY;                'PMGPI' index 520;
  1066. FUNCTION GpiQueryPageViewport(ahps:HPS;VAR prclViewport:RECTL):BOOL;
  1067.                     APIENTRY;                'PMGPI' index 472;
  1068. FUNCTION GpiSetPageViewport(ahps:HPS;VAR prclViewport:RECTL):BOOL;
  1069.                     APIENTRY;                'PMGPI' index 540;
  1070. FUNCTION GpiQueryViewingTransformMatrix(ahps:HPS;lCount:LONG;
  1071.                                         VAR pmatlfArray:MATRIXLF):BOOL;
  1072.                     APIENTRY;                'PMGPI' index 491;
  1073. FUNCTION GpiSetViewingTransformMatrix(ahps:HPS;lCount:LONG;
  1074.                                       VAR pmatlfArray:MATRIXLF;
  1075.                                       lOptions:LONG):BOOL;
  1076.                     APIENTRY;                'PMGPI' index 553;
  1077. FUNCTION GpiTranslate(ahps:HPS;VAR mat:MATRIXLF;cb:LONG;VAR ptl:POINTL):BOOL;
  1078.                     APIENTRY;                'PMGPI' index 564;
  1079. FUNCTION GpiScale(ahps:HPS;VAR mat:MATRIXLF;cb:LONG;VAR f:FIXED;
  1080.                   VAR pt:POINTL):BOOL;
  1081.                     APIENTRY;                'PMGPI' index 565;
  1082. FUNCTION GpiRotate(ahps:HPS;VAR mat:MATRIXLF;cb:LONG;f:FIXED;
  1083.                    VAR pt:POINTL):BOOL;
  1084.                     APIENTRY;                'PMGPI' index 566;
  1085. FUNCTION GpiSetGraphicsField(ahps:HPS;VAR prclField:RECTL):BOOL;
  1086.                     APIENTRY;                'PMGPI' index 526;
  1087. FUNCTION GpiQueryGraphicsField(ahps:HPS;VAR prclField:RECTL):BOOL;
  1088.                     APIENTRY;                'PMGPI' index 454;
  1089. FUNCTION GpiSetViewingLimits(ahps:HPS;VAR prclLimits:RECTL):BOOL;
  1090.                     APIENTRY;                'PMGPI' index 552;
  1091. FUNCTION GpiQueryViewingLimits(ahps:HPS;VAR prclLimits:RECTL):BOOL;
  1092.                     APIENTRY;                'PMGPI' index 490;
  1093. FUNCTION GpiBeginPath(ahps:HPS;lPath:LONG):BOOL;
  1094.                     APIENTRY;                'PMGPI' index 354;
  1095. FUNCTION GpiEndPath(ahps:HPS):BOOL;
  1096.                     APIENTRY;                'PMGPI' index 387;
  1097. FUNCTION GpiCloseFigure(ahps:HPS):BOOL;
  1098.                     APIENTRY;                'PMGPI' index 360;
  1099. FUNCTION GpiModifyPath(ahps:HPS;lPath,lMode:LONG):BOOL;
  1100.                     APIENTRY;                'PMGPI' index 403;
  1101. FUNCTION GpiFillPath(ahps:HPS;lPath,lOptions:LONG):LONG;
  1102.                     APIENTRY;                'PMGPI' index 392;
  1103. FUNCTION GpiSetClipPath(ahps:HPS;lPath,lOptions:LONG):BOOL;
  1104.                     APIENTRY;                'PMGPI' index 515;
  1105. FUNCTION GpiOutlinePath(ahps:HPS;lPath,lOptions:LONG):LONG;
  1106.                     APIENTRY;                'PMGPI' index 563;
  1107. FUNCTION GpiPathToRegion(GpiH:HPS;lPath,lOptions:LONG):HRGN;
  1108.                     APIENTRY;                'PMGPI' index 559;
  1109. FUNCTION GpiStrokePath(ahps:HPS;lPath:LONG;flOptions:LONGWORD):LONG;
  1110.                     APIENTRY;                'PMGPI' index 554;
  1111. FUNCTION GpiCreateLogColorTable(ahps:HPS;flOptions:LONGWORD;
  1112.                                 lFormat,lStart,lCount:LONG;
  1113.                                 VAR alTable):BOOL;
  1114.                     APIENTRY;                'PMGPI' index 592;
  1115. FUNCTION GpiQueryColorData(ahps:HPS;lCount:LONG;VAR alArray:LONG):BOOL;
  1116.                     APIENTRY;                'PMGPI' index 438;
  1117. FUNCTION GpiQueryLogColorTable(ahps:HPS;flOptions:LONGWORD;lStart,lCount:LONG;
  1118.                                VAR alArray:LONG):LONG;
  1119.                     APIENTRY;                'PMGPI' index 593;
  1120. FUNCTION GpiQueryRealColors(ahps:HPS;flOptions:LONGWORD;lStart,lCount:LONG;
  1121.                             VAR alColors:LONG):LONG;
  1122.                     APIENTRY;                'PMGPI' index 480;
  1123. FUNCTION GpiQueryNearestColor(ahps:HPS;flOptions:LONGWORD;lRgbIn:LONG):LONG;
  1124.                     APIENTRY;                'PMGPI' index 469;
  1125. FUNCTION GpiQueryColorIndex(ahps:HPS;flOptions:LONGWORD;lRgbColor:LONG):LONG;
  1126.                     APIENTRY;                'PMGPI' index 439;
  1127. FUNCTION GpiQueryRGBColor(ahps:HPS;flOptions:LONGWORD;lColorIndex:LONG):LONG;
  1128.                     APIENTRY;                'PMGPI' index 479;
  1129. FUNCTION GpiCreatePalette(ahab:HAB;flOptions,ulFormat,ulCount:LONGWORD;
  1130.                           VAR aulTable):HPAL;
  1131.                     APIENTRY;                'PMGPI' index 594;
  1132. FUNCTION GpiDeletePalette(ahpal:HPAL):BOOL;
  1133.                     APIENTRY;                'PMGPI' index 577;
  1134. FUNCTION GpiSelectPalette(ahps:HPS;ahpal:HPAL):HPAL;
  1135.                     APIENTRY;                'PMGPI' index 578;
  1136. FUNCTION GpiAnimatePalette(ahpal:HPAL;ulFormat,ulStart,ulCount:LONGWORD;
  1137.                            VAR aulTable:LONGWORD):LONG;
  1138.                     APIENTRY;                'PMGPI' index 595;
  1139. FUNCTION GpiSetPaletteEntries(ahpal:HPAL;ulFormat,ulStart,ulCount:LONGWORD;
  1140.                               VAR aulTable):BOOL;
  1141.                     APIENTRY;                'PMGPI' index 596;
  1142. FUNCTION GpiQueryPalette(ahps:HPS):HPAL;
  1143.                     APIENTRY;                'PMGPI' index 579;
  1144. FUNCTION GpiQueryPaletteInfo(ahpal:HPAL;ahps:HPS;flOptions,ulStart,
  1145.                              ulCount:LONGWORD;VAR aulArray):LONG;
  1146.                     APIENTRY;                'PMGPI' index 597;
  1147. FUNCTION GpiSetColor(ahps:HPS;lColor:LONG):BOOL;
  1148.                     APIENTRY;                'PMGPI' index 517;
  1149. FUNCTION GpiQueryColor(ahps:HPS):LONG;
  1150.                     APIENTRY;                'PMGPI' index 437;
  1151. FUNCTION GpiBox(ahps:HPS;lControl:LONG;VAR pptlPoint:POINTL;
  1152.                 lHRound,lVRound:LONG):LONG;
  1153.                     APIENTRY;                'PMGPI' index 356;
  1154. FUNCTION GpiMove(ahps:HPS;VAR pptlPoint:POINTL):BOOL;
  1155.                     APIENTRY;                'PMGPI' index 404;
  1156. FUNCTION GpiLine(ahps:HPS;VAR pptlEndPoint:POINTL):LONG;
  1157.                     APIENTRY;                'PMGPI' index 398;
  1158. FUNCTION GpiPolyLine(ahps:HPS;lCount:LONG;VAR aptlPoints:POINTL):LONG;
  1159.                     APIENTRY;                'PMGPI' index 415;
  1160. FUNCTION GpiPolyLineDisjoint(ahps:HPS;lCount:LONG;VAR aptlPoints:POINTL):LONG;
  1161.                     APIENTRY;                'PMGPI' index 558;
  1162. FUNCTION GpiSetPattern(ahps:HPS;lPatternSymbol:LONG):BOOL;
  1163.                     APIENTRY;                'PMGPI' index 541;
  1164. FUNCTION GpiQueryPattern(ahps:HPS):LONG;
  1165.                     APIENTRY;                'PMGPI' index 473;
  1166. FUNCTION GpiBeginArea(ahps:HPS;flOptions:LONGWORD):BOOL;
  1167.                     APIENTRY;                'PMGPI' index 352;
  1168. FUNCTION GpiEndArea(ahps:HPS):LONG;
  1169.                     APIENTRY;                'PMGPI' index 385;
  1170. FUNCTION GpiCharString(ahps:HPS;lCount:LONG;CONST pchString):LONG;
  1171.                     APIENTRY;                'PMGPI' index 358;
  1172. FUNCTION GpiCharStringAt(ahps:HPS;VAR pptlPoint:POINTL;lCount:LONG;
  1173.                          CONST pchString):LONG;
  1174.                     APIENTRY;                'PMGPI' index 359;
  1175. FUNCTION GpiSetAttrMode(ahps:HPS;lMode:LONG):BOOL;
  1176.                     APIENTRY;                'PMGPI' index 503;
  1177. FUNCTION GpiQueryAttrMode(ahps:HPS):LONG;
  1178.                     APIENTRY;                'PMGPI' index 423;
  1179. FUNCTION GpiSetAttrs(ahps:HPS;lPrimType:LONG;flAttrMask,flDefMask:LONGWORD;
  1180.                      VAR ppbunAttrs):BOOL;
  1181.                     APIENTRY;                'PMGPI' index 588;
  1182. FUNCTION GpiQueryAttrs(ahps:HPS;lPrimType:LONG;flAttrMask:LONGWORD;
  1183.                        VAR ppbunAttrs):LONG;
  1184.                     APIENTRY;                'PMGPI' index 583;
  1185. FUNCTION GpiSetBackColor(ahps:HPS;lColor:LONG):BOOL;
  1186.                     APIENTRY;                'PMGPI' index 504;
  1187. FUNCTION GpiQueryBackColor(ahps:HPS):LONG;
  1188.                     APIENTRY;                'PMGPI' index 424;
  1189. FUNCTION GpiSetMix(ahps:HPS;lMixMode:LONG):BOOL;
  1190.                     APIENTRY;                'PMGPI' index 537;
  1191. FUNCTION GpiQueryMix(ahps:HPS):LONG;
  1192.                     APIENTRY;                'PMGPI' index 467;
  1193. FUNCTION GpiSetBackMix(ahps:HPS;lMixMode:LONG):BOOL;
  1194.                     APIENTRY;                'PMGPI' index 505;
  1195. FUNCTION GpiQueryBackMix(ahps:HPS):LONG;
  1196.                     APIENTRY;                'PMGPI' index 425;
  1197. FUNCTION GpiSetLineType(ahps:HPS;lLineType:LONG):BOOL;
  1198.                     APIENTRY;                'PMGPI' index 530;
  1199. FUNCTION GpiQueryLineType(ahps:HPS):LONG;
  1200.                     APIENTRY;                'PMGPI' index 459;
  1201. FUNCTION GpiSetLineWidth(ahps:HPS;fxLineWidth:FIXED):BOOL;
  1202.                     APIENTRY;                'PMGPI' index 531;
  1203. FUNCTION GpiQueryLineWidth(ahps:HPS):FIXED;
  1204.                     APIENTRY;                'PMGPI' index 460;
  1205. FUNCTION GpiSetLineWidthGeom(ahps:HPS;lLineWidth:LONG):BOOL;
  1206.                     APIENTRY;                'PMGPI' index 532;
  1207. FUNCTION GpiQueryLineWidthGeom(ahps:HPS):LONG;
  1208.                     APIENTRY;                'PMGPI' index 461;
  1209. FUNCTION GpiSetLineEnd(ahps:HPS;lLineEnd:LONG):BOOL;
  1210.                     APIENTRY;                'PMGPI' index 528;
  1211. FUNCTION GpiQueryLineEnd(ahps:HPS):LONG;
  1212.                     APIENTRY;                'PMGPI' index 457;
  1213. FUNCTION GpiSetLineJoin(ahps:HPS;lLineJoin:LONG):BOOL;
  1214.                     APIENTRY;                'PMGPI' index 529;
  1215. FUNCTION GpiQueryLineJoin(ahps:HPS):LONG;
  1216.                     APIENTRY;                'PMGPI' index 458;
  1217. FUNCTION GpiSetCurrentPosition(ahps:HPS;VAR pptlPoint:POINTL):BOOL;
  1218.                     APIENTRY;                'PMGPI' index 519;
  1219. FUNCTION GpiQueryCurrentPosition(ahps:HPS;VAR pptlPoint:POINTL):BOOL;
  1220.                     APIENTRY;                'PMGPI' index 441;
  1221. FUNCTION GpiSetArcParams(ahps:HPS;VAR parcpArcParams:ARCPARAMS):BOOL;
  1222.                     APIENTRY;                'PMGPI' index 502;
  1223. FUNCTION GpiQueryArcParams(ahps:HPS;VAR parcpArcParams:ARCPARAMS):BOOL;
  1224.                     APIENTRY;                'PMGPI' index 422;
  1225. FUNCTION GpiPointArc(ahps:HPS;VAR pptl2:POINTL):LONG;
  1226.                     APIENTRY;                'PMGPI' index 412;
  1227. FUNCTION GpiFullArc(ahps:HPS;lControl:LONG;fxMultiplier:FIXED):LONG;
  1228.                     APIENTRY;                'PMGPI' index 393;
  1229. FUNCTION GpiPartialArc(ahps:HPS;VAR pptlCenter:POINTL;fxMultiplier,
  1230.                        fxStartAngle,fxSweepAngle:FIXED):LONG;
  1231.                     APIENTRY;                'PMGPI' index 612;
  1232. FUNCTION GpiPolyFillet(ahps:HPS;lCount:LONG;VAR aptlPoints:POINTL):LONG;
  1233.                     APIENTRY;                'PMGPI' index 413;
  1234. FUNCTION GpiPolySpline(ahps:HPS;lCount:LONG;VAR aptlPoints:POINTL):LONG;
  1235.                     APIENTRY;                'PMGPI' index 417;
  1236. FUNCTION GpiPolyFilletSharp(ahps:HPS;lCount:LONG;VAR aptlPoints:POINTL;
  1237.                             VAR afxPoints:FIXED):LONG;
  1238.                     APIENTRY;                'PMGPI' index 414;
  1239. FUNCTION GpiSetPatternSet(ahps:HPS;lSet:LONG):BOOL;
  1240.                     APIENTRY;                'PMGPI' index 543;
  1241. FUNCTION GpiQueryPatternSet(ahps:HPS):LONG;
  1242.                     APIENTRY;                'PMGPI' index 475;
  1243. FUNCTION GpiSetPatternRefPoint(ahps:HPS;VAR pptlRefPoint:POINTL):BOOL;
  1244.                     APIENTRY;                'PMGPI' index 542;
  1245. FUNCTION GpiQueryPatternRefPoint(ahps:HPS;VAR pptlRefPoint:POINTL):BOOL;
  1246.                     APIENTRY;                'PMGPI' index 474;
  1247. FUNCTION GpiQueryCharStringPos(ahps:HPS;flOptions:LONGWORD;lCount:LONG;
  1248.                                VAR pchString;VAR alXincrements:LONG;
  1249.                                VAR aptlPositions:POINTL):BOOL;
  1250.                     APIENTRY;                'PMGPI' index 584;
  1251. FUNCTION GpiQueryCharStringPosAt(ahps:HPS;VAR pptlStart:POINTL;
  1252.                                  flOptions:LONGWORD;lCount:LONG;
  1253.                                  VAR pchString;VAR alXincrements:LONG;
  1254.                                  VAR aptlPositions:POINTL):BOOL;
  1255.                     APIENTRY;                'PMGPI' index 585;
  1256. FUNCTION GpiQueryTextBox(ahps:HPS;lCount1:LONG;VAR pchString;lCount2:LONG;
  1257.                          VAR aptlPoints:POINTL):BOOL;
  1258.                     APIENTRY;                'PMGPI' index 489;
  1259. FUNCTION GpiQueryDefCharBox(ahps:HPS;VAR psizlSize:SIZEL):BOOL;
  1260.                     APIENTRY;                'PMGPI' index 442;
  1261. FUNCTION GpiSetCharSet(ahps:HPS;llcid:LONG):BOOL;
  1262.                     APIENTRY;                'PMGPI' index 513;
  1263. FUNCTION GpiQueryCharSet(ahps:HPS):LONG;
  1264.                     APIENTRY;                'PMGPI' index 433;
  1265. FUNCTION GpiSetCharBox(ahps:HPS;VAR psizfxBox:SIZEF):BOOL;
  1266.                     APIENTRY;                'PMGPI' index 510;
  1267. FUNCTION GpiQueryCharBox(ahps:HPS;VAR psizfxSize:SIZEF):BOOL;
  1268.                     APIENTRY;                'PMGPI' index 430;
  1269. FUNCTION GpiSetCharAngle(ahps:HPS;VAR pgradlAngle:GRADIENTL):BOOL;
  1270.                     APIENTRY;                'PMGPI' index 509;
  1271. FUNCTION GpiQueryCharAngle(ahps:HPS;VAR pgradlAngle:GRADIENTL):BOOL;
  1272.                     APIENTRY;                'PMGPI' index 429;
  1273. FUNCTION GpiSetCharShear(ahps:HPS;VAR pptlAngle:POINTL):BOOL;
  1274.                     APIENTRY;                'PMGPI' index 514;
  1275. FUNCTION GpiQueryCharShear(ahps:HPS;VAR pptlShear:POINTL):BOOL;
  1276.                     APIENTRY;                'PMGPI' index 434;
  1277. FUNCTION GpiSetCharDirection(ahps:HPS;lDirection:LONG):BOOL;
  1278.                     APIENTRY;                'PMGPI' index 511;
  1279. FUNCTION GpiQueryCharDirection(ahps:HPS):LONG;
  1280.                     APIENTRY;                'PMGPI' index 431;
  1281. FUNCTION GpiSetCharMode(ahps:HPS;lMode:LONG):BOOL;
  1282.                     APIENTRY;                'PMGPI' index 512;
  1283. FUNCTION GpiQueryCharMode(ahps:HPS):LONG;
  1284.                     APIENTRY;                'PMGPI' index 432;
  1285. FUNCTION GpiSetTextAlignment(ahps:HPS;lHoriz,lVert:LONG):BOOL;
  1286.                     APIENTRY;                'PMGPI' index 649;
  1287. FUNCTION GpiQueryTextAlignment(ahps:HPS;VAR plHoriz,plVert:LONG):BOOL;
  1288.                     APIENTRY;                'PMGPI' index 648;
  1289. FUNCTION GpiCharStringPos(ahps:HPS;VAR prclRect:RECTL;flOptions:LONGWORD;
  1290.                           lCount:LONG;VAR pchString;VAR alAdx:LONG):LONG;
  1291.                     APIENTRY;                'PMGPI' index 580;
  1292. FUNCTION GpiCharStringPosAt(ahps:HPS;VAR pptlStart:POINTL;VAR prclRect:RECTL;
  1293.                             flOptions:LONGWORD;lCount:LONG;VAR pchString;
  1294.                             VAR alAdx:LONG):LONG;
  1295.                     APIENTRY;                'PMGPI' index 581;
  1296. FUNCTION GpiSetCharExtra(ahps:HPS;Extra:FIXED):BOOL;
  1297.                     APIENTRY;                'PMGPI' index 614;
  1298. FUNCTION GpiSetCharBreakExtra(ahps:HPS;BreakExtra:FIXED):BOOL;
  1299.                     APIENTRY;                'PMGPI' index 616;
  1300. FUNCTION GpiQueryCharExtra(ahps:HPS;VAR Extra:FIXED):BOOL;
  1301.                     APIENTRY;                'PMGPI' index 613;
  1302. FUNCTION GpiQueryCharBreakExtra(ahps:HPS;VAR BreakExtra:FIXED):BOOL;
  1303.                     APIENTRY;                'PMGPI' index 615;
  1304. FUNCTION GpiMarker(ahps:HPS;VAR pptlPoint:POINTL):LONG;
  1305.                     APIENTRY;                'PMGPI' index 402;
  1306. FUNCTION GpiPolyMarker(ahps:HPS;lCount:LONG;VAR aptlPoints:POINTL):LONG;
  1307.                     APIENTRY;                'PMGPI' index 416;
  1308. FUNCTION GpiSetMarker(ahps:HPS;lSymbol:LONG):BOOL;
  1309.                     APIENTRY;                'PMGPI' index 533;
  1310. FUNCTION GpiSetMarkerBox(ahps:HPS;VAR psizfxSize:SIZEF):BOOL;
  1311.                     APIENTRY;                'PMGPI' index 534;
  1312. FUNCTION GpiSetMarkerSet(ahps:HPS;lSet:LONG):BOOL;
  1313.                     APIENTRY;                'PMGPI' index 535;
  1314. FUNCTION GpiQueryMarker(ahps:HPS):LONG;
  1315.                     APIENTRY;                'PMGPI' index 462;
  1316. FUNCTION GpiQueryMarkerBox(ahps:HPS;VAR psizfxSize:SIZEF):BOOL;
  1317.                     APIENTRY;                'PMGPI' index 463;
  1318. FUNCTION GpiQueryMarkerSet(ahps:HPS):LONG;
  1319.                     APIENTRY;                'PMGPI' index 464;
  1320. FUNCTION GpiImage(ahps:HPS;lFormat:LONG;VAR psizlImageSize:SIZEL;
  1321.                   lLength:LONG;VAR pbData):LONG;
  1322.                     APIENTRY;                'PMGPI' index 395;
  1323. FUNCTION GpiPop(ahps:HPS;lCount:LONG):BOOL;
  1324.                     APIENTRY;                'PMGPI' index 418;
  1325. FUNCTION GpiPtVisible(ahps:HPS;VAR pptlPoint:POINTL):LONG;
  1326.                     APIENTRY;                'PMGPI' index 420;
  1327. FUNCTION GpiRectVisible(ahps:HPS;VAR prclRectangle:RECTL):LONG;
  1328.                     APIENTRY;                'PMGPI' index 495;
  1329. FUNCTION GpiComment(ahps:HPS;lLength:LONG;VAR pbData):BOOL;
  1330.                     APIENTRY;                'PMGPI' index 363;
  1331. FUNCTION GpiCreateLogFont(ahps:HPS;pName:PStr8;lLcid:LONG;
  1332.                           VAR pfatAttrs:FATTRS):LONG;
  1333.                     APIENTRY;                'PMGPI' index 368;
  1334. FUNCTION GpiDeleteSetId(ahps:HPS;lLcid:LONG):BOOL;
  1335.                     APIENTRY;                'PMGPI' index 378;
  1336. FUNCTION GpiLoadFonts(ahab:HAB;VAR pszFilename:PSZ):BOOL;
  1337.                     APIENTRY;                'PMGPI' index 400;
  1338. FUNCTION GpiUnloadFonts(ahab:HAB;VAR pszFilename:PSZ):BOOL;
  1339.                     APIENTRY;                'PMGPI' index 555;
  1340. FUNCTION GpiQueryFonts(ahps:HPS;flOptions:LONGWORD;VAR pszFacename:PSZ;
  1341.                        VAR plReqFonts:LONG;lMetricsLength:LONG;
  1342.                        VAR afmMetrics:FONTMETRICS):LONG;
  1343.                     APIENTRY;                'PMGPI' index 586;
  1344. FUNCTION GpiQueryFontMetrics(ahps:HPS;lMetricsLength:LONG;
  1345.                              VAR pfmMetrics:FONTMETRICS):BOOL;
  1346.                     APIENTRY;                'PMGPI' index 453;
  1347. FUNCTION GpiQueryKerningPairs(ahps:HPS;lCount:LONG;
  1348.                               VAR akrnprData:KERNINGPAIRS):LONG;
  1349.                     APIENTRY;                'PMGPI' index 456;
  1350. FUNCTION GpiQueryWidthTable(ahps:HPS;lFirstChar,lCount:LONG;
  1351.                             VAR alData:LONG):BOOL;
  1352.                     APIENTRY;                'PMGPI' index 492;
  1353. FUNCTION GpiQueryNumberSetIds(ahps:HPS):LONG;
  1354.                     APIENTRY;                'PMGPI' index 470;
  1355. FUNCTION GpiQuerySetIds(ahps:HPS;lCount:LONG;VAR alTypes:LONG;
  1356.                         aNames:PStr8;VAR allcids:LONG):BOOL;
  1357.                     APIENTRY;                'PMGPI' index 486;
  1358. FUNCTION GpiQueryFaceString(PS:HPS;VAR FamilyName:PSZ;VAR attrs:FACENAMEDESC;
  1359.                             alength:LONG;VAR CompoundFaceName:PSZ):LONGWORD;
  1360.                     APIENTRY;                'PMGPI' index 575;
  1361. FUNCTION GpiQueryLogicalFont(PS:HPS;lcid:LONG;name:PStr8;VAR attrs:FATTRS;
  1362.                              alength:LONG):BOOL;
  1363.                     APIENTRY;                'PMGPI' index 574;
  1364. FUNCTION GpiQueryFontAction(anchor:HAB;options:LONGWORD):LONGWORD;
  1365.                     APIENTRY;                'PMGPI' index 576;
  1366. FUNCTION GpiLoadPublicFonts(ahab:HAB;VAR name:PSZ):BOOL;
  1367.                     APIENTRY;                'PMGPI' index 622;
  1368. FUNCTION GpiUnloadPublicFonts(ahab:HAB;VAR name:PSZ):BOOL;
  1369.                     APIENTRY;                'PMGPI' index 623;
  1370. FUNCTION GpiSetCp(ahps:HPS;ulCodePage:LONGWORD):BOOL;
  1371.                     APIENTRY;                'PMGPI' index 518;
  1372. FUNCTION GpiQueryCp(ahps:HPS):LONGWORD;
  1373.                     APIENTRY;                'PMGPI' index 440;
  1374. {FUNCTION GpiQueryFullFontFileDescs(ahab:HAB;VAR pszFilename:PSZ;
  1375.                                    VAR plCount:LONG;pNames:POINTER;
  1376.                                    VAR plNamesBuffLength:LONG):LONG;
  1377.                     APIENTRY;                'PMGPI' index}
  1378. FUNCTION GpiQueryFontFileDescriptions(ahab:HAB;VAR pszFilename:PSZ;
  1379.                                       VAR plCount:LONG;
  1380.                                       VAR affdescsNames:FFDESCS):LONG;
  1381.                     APIENTRY;                'PMGPI' index 452;
  1382. FUNCTION GpiBitBlt(hpsTarget,hpsSource:HPS;lCount:LONG;VAR aptlPoints:POINTL;
  1383.                    lRop:LONG;flOptions:LONGWORD):LONG;
  1384.                     APIENTRY;                'PMGPI' index 355;
  1385. FUNCTION GpiDeleteBitmap(hbm:HBITMAP):BOOL;
  1386.                     APIENTRY;                'PMGPI' index 371;
  1387. FUNCTION GpiLoadBitmap(ahps:HPS;aResource:HMODULE;idBitmap:LONGWORD;
  1388.                        lWidth,lHeight:LONG):HBITMAP;
  1389.                     APIENTRY;                'PMGPI' index 399;
  1390. FUNCTION GpiSetBitmap(ahps:HPS;hbm:HBITMAP):HBITMAP;
  1391.                     APIENTRY;                'PMGPI' index 506;
  1392. FUNCTION GpiWCBitBlt(hpsTarget:HPS;hbmSource:HBITMAP;lCount:LONG;
  1393.                      VAR aptlPoints:POINTL;lRop:LONG;flOptions:LONGWORD):LONG;
  1394.                     APIENTRY;                'PMGPI' index 557;
  1395. FUNCTION GpiCreateBitmap(ahps:HPS;VAR pbmpNew;
  1396.                          flOptions:LONGWORD;VAR pbInitData;
  1397.                          VAR pbmiInfoTable):HBITMAP;
  1398.                     APIENTRY;                'PMGPI' index 598;
  1399. FUNCTION GpiSetBitmapBits(ahps:HPS;lScanStart,lScans:LONG;
  1400.                           VAR pbBuffer;
  1401.                           VAR pbmiInfoTable):LONG;
  1402.                     APIENTRY;                'PMGPI' index 602;
  1403. FUNCTION GpiSetBitmapDimension(hbm:HBITMAP;
  1404.                                VAR psizlBitmapDimension:SIZEL):BOOL;
  1405.                     APIENTRY;                'PMGPI' index 507;
  1406. FUNCTION GpiSetBitmapId(ahps:HPS;hbm:HBITMAP;lLcid:LONG):BOOL;
  1407.                     APIENTRY;                'PMGPI' index 508;
  1408. FUNCTION GpiQueryBitmapBits(ahps:HPS;lScanStart,lScans:LONG;
  1409.                             VAR pbBuffer;
  1410.                             VAR pbmiInfoTable):LONG;
  1411.                     APIENTRY;                'PMGPI' index 599;
  1412. FUNCTION GpiQueryBitmapDimension(hbm:HBITMAP;
  1413.                                  VAR psizlBitmapDimension:SIZEL):BOOL;
  1414.                     APIENTRY;                'PMGPI' index 426;
  1415.  
  1416. FUNCTION GpiQueryBitmapHandle(ahps:HPS;lLcid:LONG):HBITMAP;
  1417.                     APIENTRY;                'PMGPI' index 427;
  1418. FUNCTION GpiQueryBitmapParameters(hbm:HBITMAP;
  1419.                                   VAR pbmpData:BITMAPINFOHEADER):BOOL;
  1420.                     APIENTRY;                'PMGPI' index 573;
  1421. FUNCTION GpiQueryBitmapInfoHeader(hbm:HBITMAP;
  1422.                                   VAR pbmpData):BOOL;
  1423.                     APIENTRY;                'PMGPI' index 601;
  1424. FUNCTION GpiQueryDeviceBitmapFormats(ahps:HPS;lCount:LONG;
  1425.                                      VAR alArray:LONG):BOOL;
  1426.                     APIENTRY;                'PMGPI' index 445;
  1427. FUNCTION GpiSetPel(ahps:HPS;VAR pptlPoint:POINTL):LONG;
  1428.                     APIENTRY;                'PMGPI' index 544;
  1429. FUNCTION GpiQueryPel(ahps:HPS;VAR pptlPoint:POINTL):LONG;
  1430.                     APIENTRY;                'PMGPI' index 476;
  1431. FUNCTION GpiFloodFill(ahps:HPS;lOptions,lColor:LONG):LONG;
  1432.                     APIENTRY;                'PMGPI' index 560;
  1433. FUNCTION GpiDrawBits(ahps:HPS;pBits:POINTER;
  1434.                      VAR pbmiInfoTable:BITMAPINFO2;lCount:LONG;
  1435.                      VAR aptlPoints:POINTL;lRop:LONG;
  1436.                      flOptions:LONGWORD):LONG;
  1437.                     APIENTRY;                'PMGPI' index 603;
  1438. FUNCTION GpiCombineRegion(ahps:HPS;hrgnDest,hrgnSrc1,hrgnSrc2:HRGN;
  1439.                           lMode:LONG):LONG;
  1440.                     APIENTRY;                'PMGPI' index 362;
  1441. FUNCTION GpiCreateRegion(ahps:HPS;lCount:LONG;
  1442.                          CONST arclRectangles:RECTL):HRGN;
  1443.                     APIENTRY;                'PMGPI' index 370;
  1444. FUNCTION GpiDestroyRegion(ahps:HPS;ahrgn:HRGN):BOOL;
  1445.                     APIENTRY;                'PMGPI' index 611;
  1446. FUNCTION GpiEqualRegion(ahps:HPS;hrgnSrc1,hrgnSrc2:HRGN):LONG;
  1447.                     APIENTRY;                'PMGPI' index 388;
  1448. FUNCTION GpiOffsetRegion(ahps:HPS;aHrgn:HRGN;VAR pptlOffset:POINTL):BOOL;
  1449.                     APIENTRY;                'PMGPI' index 407;
  1450. FUNCTION GpiPaintRegion(ahps:HPS;ahrgn:HRGN):LONG;
  1451.                     APIENTRY;                'PMGPI' index 409;
  1452. FUNCTION GpiFrameRegion(ahps:HPS;ahrgn:HRGN;VAR thickness:SIZEL):LONG;
  1453.                     APIENTRY;                'PMGPI' index 617;
  1454. FUNCTION GpiPtInRegion(ahps:HPS;ahrgn:HRGN;VAR pptlPoint:POINTL):LONG;
  1455.                     APIENTRY;                'PMGPI' index 419;
  1456. FUNCTION GpiQueryRegionBox(ahps:HPS;ahrgn:HRGN;VAR prclBound:RECTL):LONG;
  1457.                     APIENTRY;                'PMGPI' index 481;
  1458. FUNCTION GpiQueryRegionRects(ahps:HPS;ahrgn:HRGN;VAR prclBound:RECTL;
  1459.                              VAR prgnrcControl:RGNRECT;
  1460.                              VAR prclRect:RECTL):BOOL;
  1461.                     APIENTRY;                'PMGPI' index 587;
  1462. FUNCTION GpiRectInRegion(ahps:HPS;ahrgn:HRGN;VAR prclRect:RECTL):LONG;
  1463.                     APIENTRY;                'PMGPI' index 494;
  1464. FUNCTION GpiSetRegion(ahps:HPS;ahrgn:HRGN;lcount:LONG;
  1465.                       VAR arclRectangles:RECTL):BOOL;
  1466.                     APIENTRY;                'PMGPI' index 546;
  1467. FUNCTION GpiSetClipRegion(ahps:HPS;ahrgn:HRGN;VAR phrgnOld:HRGN):LONG;
  1468.                     APIENTRY;                'PMGPI' index 516;
  1469. FUNCTION GpiQueryClipRegion(ahps:HPS):HRGN;
  1470.                     APIENTRY;                'PMGPI' index 436;
  1471. FUNCTION GpiQueryClipBox(ahps:HPS;VAR prclBound:RECTL):LONG;
  1472.                     APIENTRY;                'PMGPI' index 435;
  1473. FUNCTION  GpiExcludeClipRectangle(ahps:HPS;CONST prclRectangle:RECTL):LONG;
  1474.                     APIENTRY;                'PMGPI' index 391;
  1475. FUNCTION GpiIntersectClipRectangle(ahps:HPS;VAR prclRectangle:RECTL):LONG;
  1476.                     APIENTRY;                'PMGPI' index 396;
  1477. FUNCTION GpiOffsetClipRegion(ahps:HPS;VAR pptlPoint:POINTL):LONG;
  1478.                     APIENTRY;                'PMGPI' index 405;
  1479. FUNCTION GpiCopyMetaFile(ahmf:HMF):HMF;
  1480.                     APIENTRY;                'PMGPI' index 365;
  1481. FUNCTION GpiDeleteMetaFile(ahmf:HMF):BOOL;
  1482.                     APIENTRY;                'PMGPI' index 375;
  1483. FUNCTION GpiLoadMetaFile(ahab:HAB;Const pszFilename:CString):HMF;
  1484.                     APIENTRY;                'PMGPI' index 401;
  1485. FUNCTION GpiPlayMetaFile(ahps:HPS;ahmf:HMF;lCount1:LONG;
  1486.                          VAR alOptarray,plSegCount:LONG;
  1487.                          lCount2:LONG;VAR pszDesc:PSZ):LONG;
  1488.                     APIENTRY;                'PMGPI' index 411;
  1489. FUNCTION GpiQueryMetaFileBits(ahmf:HMF;lOffset,lLength:LONG;
  1490.                               VAR pbData):LONG;
  1491.                     APIENTRY;                'PMGPI' index 465;
  1492. FUNCTION GpiQueryMetaFileLength(ahmf:HMF):LONG;
  1493.                     APIENTRY;                'PMGPI' index 466;
  1494. FUNCTION GpiSaveMetaFile(ahmf:HMF;Const pszFilename:CString):BOOL;
  1495.                     APIENTRY;                'PMGPI' index 500;
  1496. FUNCTION GpiSetMetaFileBits(ahmf:HMF;lOffset,lLength:LONG;
  1497.                             VAR pbBuffer):BOOL;
  1498.                     APIENTRY;                'PMGPI' index 536;
  1499. FUNCTION GpiQueryDefArcParams(ahps:HPS;
  1500.                               VAR parcpArcParams:ARCPARAMS):BOOL;
  1501.                     APIENTRY;                'PMGPI' index 567;
  1502. FUNCTION GpiQueryDefAttrs(ahps:HPS;lPrimType:LONG;flAttrMask:LONGWORD;
  1503.                           VAR ppbunAttrs):BOOL;
  1504.                     APIENTRY;                'PMGPI' index 590;
  1505. FUNCTION GpiQueryDefTag(ahps:HPS;VAR plTag:LONG):BOOL;
  1506.                     APIENTRY;                'PMGPI' index 568;
  1507. FUNCTION GpiQueryDefViewingLimits(ahps:HPS;VAR prclLimits:RECTL):BOOL;
  1508.                     APIENTRY;                'PMGPI' index 569;
  1509. FUNCTION GpiSetDefArcParams(ahps:HPS;VAR parcpArcParams:ARCPARAMS):BOOL;
  1510.                     APIENTRY;                'PMGPI' index 570;
  1511. FUNCTION GpiSetDefAttrs(ahps:HPS;lPrimType:LONG;flAttrMask:LONGWORD;
  1512.                         VAR ppbunAttrs):BOOL;
  1513.                     APIENTRY;                'PMGPI' index 591;
  1514. FUNCTION GpiSetDefTag(ahps:HPS;lTag:LONG):BOOL;
  1515.                     APIENTRY;                'PMGPI' index 571;
  1516. FUNCTION GpiSetDefViewingLimits(ahps:HPS;VAR prclLimits:RECTL):BOOL;
  1517.                     APIENTRY;                'PMGPI' index 572;
  1518. FUNCTION GpiPolygons(ahps:HPS;ulCount:LONGWORD;VAR paplgn:POLYGON;
  1519.                      flOptions,flModel:LONGWORD):LONG;
  1520.                     APIENTRY;                'PMGPI' index 650;
  1521. END; {IMPORTS}
  1522.  
  1523.  
  1524.  
  1525. FUNCTION MAKEFIXED(intpart,fractpart:WORD):FIXED;
  1526. FUNCTION FIXEDFRAC(fx:FIXED):WORD;
  1527. FUNCTION FIXEDINT(fx:FIXED):WORD;
  1528.  
  1529. IMPLEMENTATION
  1530.  
  1531.  
  1532. { make FIXED number from SHORT integer part and WORD fractional part }
  1533. FUNCTION MAKEFIXED(intpart,fractpart:WORD):FIXED;
  1534. BEGIN
  1535.      MAKEFIXED:=MAKELONG(fractpart,intpart);
  1536. END;
  1537.  
  1538.  
  1539. { extract fractional part from a fixed quantity }
  1540. FUNCTION FIXEDFRAC(fx:FIXED):WORD;
  1541. BEGIN
  1542.      FIXEDFRAC:=LOUSHORT(fx);
  1543. END;
  1544.  
  1545. { extract integer part from a fixed quantity }
  1546. FUNCTION FIXEDINT(fx:FIXED):WORD;
  1547. BEGIN
  1548.      FIXEDINT:=HIUSHORT(fx);
  1549. END;
  1550.  
  1551. BEGIN
  1552. END.
  1553.