diff options
author | fpc <fpc@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2005-05-16 18:37:41 +0000 |
---|---|---|
committer | fpc <fpc@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2005-05-16 18:37:41 +0000 |
commit | f206a9c2b1ae1d8727ca27a96d448b61fdb4c766 (patch) | |
tree | f28256ff9964c1fc7c0f7fb00891268a117b745d /rtl/os2/pmgpi.pas | |
download | fpc-f206a9c2b1ae1d8727ca27a96d448b61fdb4c766.tar.gz |
initial import
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@1 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/os2/pmgpi.pas')
-rw-r--r-- | rtl/os2/pmgpi.pas | 2173 |
1 files changed, 2173 insertions, 0 deletions
diff --git a/rtl/os2/pmgpi.pas b/rtl/os2/pmgpi.pas new file mode 100644 index 0000000000..67ad6b3980 --- /dev/null +++ b/rtl/os2/pmgpi.pas @@ -0,0 +1,2173 @@ +{**************************************************************************** + + $Id: pmgpi.pas,v 1.6 2005/02/14 17:13:31 peter Exp $ + + PMGPI interface unit + FPC Pascal Runtime Library for OS/2 + Copyright (c) 1999-2000 by Florian Klaempfl + Copyright (c) 1999-2000 by Ramon Bosque + + The Free Pascal runtime library is distributed under the Library GNU Public + License v2. So is this unit. The Library GNU Public License requires you to + distribute the source code of this unit with any product that uses it. + Because the EMX library isn't under the LGPL, we grant you an exception to + this, and that is, when you compile a program with the Free Pascal Compiler, + you do not need to ship source code with that program, AS LONG AS YOU ARE + USING UNMODIFIED CODE! If you modify this code, you MUST change the next + line: + + <This an official, unmodified Free Pascal source code file.> + + Send us your modified files, we can work together if you want! + + Free Pascal is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + Library GNU General Public License for more details. + + You should have received a copy of the Library GNU General Public License + along with Free Pascal; see the file COPYING.LIB. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + + ****************************************************************************} + +{Warning: This code is alfa. Future versions of this unit will propably + not be compatible.} + +unit pmgpi; + +interface + +{$MACRO ON} + +uses os2def,pmbitmap; + +const GPI_ERROR = 0; + GPI_OK = 1; + GPI_ALTERROR = (-1); + + CLR_NOINDEX = (-254); + + PU_ARBITRARY = $0004; + PU_PELS = $0008; + PU_LOMETRIC = $000C; + PU_HIMETRIC = $0010; + PU_LOENGLISH = $0014; + PU_HIENGLISH = $0018; + PU_TWIPS = $001C; + GPIF_DEFAULT = 0; + GPIF_SHORT = $0100; + GPIF_LONG = $0200; + GPIT_NORMAL = 0; + GPIT_MICRO = $1000; + GPIA_NOASSOC = 0; + GPIA_ASSOC = $4000; + HDC_ERROR = -1; + + GRES_ATTRS = $0001; + GRES_SEGMENTS = $0002; + GRES_ALL = $0004; + PS_UNITS = $00FC; + PS_FORMAT = $0F00; + PS_TYPE = $1000; + PS_MODE = $2000; + PS_ASSOCIATE = $4000; + PS_NORESET = $8000; + GPIE_SEGMENT = 0; + GPIE_ELEMENT = 1; + GPIE_DATA = 2; + DCTL_ERASE = 1; + DCTL_DISPLAY = 2; + DCTL_BOUNDARY = 3; + DCTL_DYNAMIC = 4; + DCTL_CORRELATE = 5; + DCTL_ERROR = -1; + DCTL_OFF = 0; + DCTL_ON = 1; + SDW_ERROR = -1; + SDW_OFF = 0; + SDW_ON = 1; + DM_ERROR = 0; + DM_DRAW = 1; + DM_RETAIN = 2; + DM_DRAWANDRETAIN = 3; + + PICKAP_DEFAULT = 0; + PICKAP_REC = 2; + PICKSEL_VISIBLE = 0; + PICKSEL_ALL = 1; + GPI_HITS = 2; + + DFORM_NOCONV = 0; + DFORM_S370SHORT = 1; + DFORM_PCSHORT = 2; + DFORM_PCLONG = 4; + ATTR_ERROR = (-1); + ATTR_DETECTABLE = 1; + ATTR_VISIBLE = 2; + ATTR_CHAINED = 6; + ATTR_DYNAMIC = 8; + ATTR_FASTCHAIN = 9; + ATTR_PROP_DETECTABLE = 10; + ATTR_PROP_VISIBLE = 11; + ATTR_OFF = 0; + ATTR_ON = 1; + LOWER_PRI = (-1); + HIGHER_PRI = 1; + + SEGEM_ERROR = 0; + SEGEM_INSERT = 1; + SEGEM_REPLACE = 2; + + CVTC_WORLD = 1; + CVTC_MODEL = 2; + CVTC_DEFAULTPAGE = 3; + CVTC_PAGE = 4; + CVTC_DEVICE = 5; + TRANSFORM_REPLACE = 0; + TRANSFORM_ADD = 1; + TRANSFORM_PREEMPT = 2; + + MPATH_STROKE = 6; + FPATH_ALTERNATE = 0; + FPATH_WINDING = 2; + FPATH_EXCL = 0; + FPATH_INCL = 8; + SCP_ALTERNATE = 0; + SCP_WINDING = 2; + SCP_AND = 4; + SCP_RESET = 0; + SCP_EXCL = 0; + SCP_INCL = 8; + + LCOL_RESET = $0001; + LCOL_REALIZABLE = $0002; + LCOL_PURECOLOR = $0004; + LCOL_OVERRIDE_DEFAULT_COLORS = $0008; + LCOL_REALIZED = $0010; + LCOLF_DEFAULT = 0; + LCOLF_INDRGB = 1; + LCOLF_CONSECRGB = 2; + LCOLF_RGB = 3; + LCOLF_PALETTE = 4; + LCOLOPT_REALIZED = $0001; + LCOLOPT_INDEX = $0002; + QLCT_ERROR = (-1); + QLCT_RGB = (-2); + QLCT_NOTLOADED = (-1); + QCD_LCT_FORMAT = 0; + QCD_LCT_LOINDEX = 1; + QCD_LCT_HIINDEX = 2; + QCD_LCT_OPTIONS = 3; + PAL_ERROR = (-1); + PC_RESERVED = $01; + PC_EXPLICIT = $02; + PC_NOCOLLAPSE = $04; + + CLR_false = (-5); + CLR_true = (-4); + CLR_error = (-255); + CLR_default = (-3); + CLR_white = (-2); + CLR_black = (-1); + CLR_background = 0; + CLR_blue = 1; + CLR_red = 2; + CLR_pink = 3; + CLR_green = 4; + CLR_cyan = 5; + CLR_yellow = 6; + CLR_neutral = 7; + CLR_darkgray = 8; + CLR_darkblue = 9; + CLR_darkred = 10; + CLR_darkpink = 11; + CLR_darkgreen = 12; + CLR_darkcyan = 13; + CLR_brown = 14; + CLR_palegray = 15; + + RGB_error = (-255); + RGB_black = $00000000; + RGB_blue = $000000FF; + RGB_green = $0000FF00; + RGB_cyan = $0000FFFF; + RGB_red = $00FF0000; + RGB_pink = $00FF00FF; + RGB_yellow = $00FFFF00; + RGB_white = $00FFFFFF; + + BA_NOBOUNDARY = 0; + BA_BOUNDARY = $0001; + BA_ALTERNATE = 0; + BA_WINDING = $0002; + BA_EXCL = 0; + BA_INCL = 8; + DRO_FILL = 1; + DRO_OUTLINE = 2; + DRO_OUTLINEFILL = 3; + PATSYM_ERROR = (-1); + PATSYM_DEFAULT = 0; + PATSYM_DENSE1 = 1; + PATSYM_DENSE2 = 2; + PATSYM_DENSE3 = 3; + PATSYM_DENSE4 = 4; + PATSYM_DENSE5 = 5; + PATSYM_DENSE6 = 6; + PATSYM_DENSE7 = 7; + PATSYM_DENSE8 = 8; + PATSYM_VERT = 9; + PATSYM_HORIZ = 10; + PATSYM_DIAG1 = 11; + PATSYM_DIAG2 = 12; + PATSYM_DIAG3 = 13; + PATSYM_DIAG4 = 14; + PATSYM_NOSHADE = 15; + PATSYM_SOLID = 16; + PATSYM_HALFTONE = 17; + PATSYM_HATCH = 18; + PATSYM_DIAGHATCH = 19; + PATSYM_BLANK = 64; + LCID_ERROR = (-1); + LCID_DEFAULT = 0; + + AM_ERROR = (-1); + AM_PRESERVE = 0; + AM_NOPRESERVE = 1; + FM_ERROR = (-1); + FM_DEFAULT = 0; + FM_OR = 1; + FM_OVERPAINT = 2; + FM_LEAVEALONE = 5; + FM_XOR = 4; + FM_AND = 6; + FM_SUBTRACT = 7; + FM_MASKSRCNOT = 8; + FM_ZERO = 9; + FM_NOTMERGESRC = 10; + FM_NOTXORSRC = 11; + FM_INVERT = 12; + FM_MERGESRCNOT = 13; + FM_NOTCOPYSRC = 14; + FM_MERGENOTSRC = 15; + FM_NOTMASKSRC = 16; + FM_ONE = 17; + BM_ERROR = (-1); + BM_DEFAULT = 0; + BM_OR = 1; + BM_OVERPAINT = 2; + BM_LEAVEALONE = 5; + BM_XOR = 4; + BM_AND = 6; + BM_SUBTRACT = 7; + BM_MASKSRCNOT = 8; + BM_ZERO = 9; + BM_NOTMERGESRC = 10; + BM_NOTXORSRC = 11; + BM_INVERT = 12; + BM_MERGESRCNOT = 13; + BM_NOTCOPYSRC = 14; + BM_MERGENOTSRC = 15; + BM_NOTMASKSRC = 16; + BM_ONE = 17; + BM_SRCTRANSPARENT = 18; + BM_DESTTRANSPARENT = 19; + LINETYPE_ERROR = (-1); + LINETYPE_DEFAULT = 0; + LINETYPE_DOT = 1; + LINETYPE_SHORTDASH = 2; + LINETYPE_DASHDOT = 3; + LINETYPE_DOUBLEDOT = 4; + LINETYPE_LONGDASH = 5; + LINETYPE_DASHDOUBLEDOT = 6; + LINETYPE_SOLID = 7; + LINETYPE_INVISIBLE = 8; + LINETYPE_ALTERNATE = 9; + LINEWIDTH_ERROR = (-1); + LINEWIDTH_DEFAULT = 0; + LINEWIDTH_NORMAL = $00010000; + LINEWIDTH_THICK = $00020000; + LINEWIDTHGEOM_ERROR = (-1); + LINEEND_ERROR = (-1); + LINEEND_DEFAULT = 0; + LINEEND_FLAT = 1; + LINEEND_SQUARE = 2; + LINEEND_ROUND = 3; + LINEJOIN_ERROR = (-1); + LINEJOIN_DEFAULT = 0; + LINEJOIN_BEVEL = 1; + LINEJOIN_ROUND = 2; + LINEJOIN_MITRE = 3; + CHDIRN_ERROR = (-1); + CHDIRN_DEFAULT = 0; + CHDIRN_LEFTRIGHT = 1; + CHDIRN_TOPBOTTOM = 2; + CHDIRN_RIGHTLEFT = 3; + CHDIRN_BOTTOMTOP = 4; + TA_NORMAL_HORIZ = $0001; + TA_LEFT = $0002; + TA_CENTER = $0003; + TA_RIGHT = $0004; + TA_STANDARD_HORIZ = $0005; + TA_NORMAL_VERT = $0100; + TA_TOP = $0200; + TA_HALF = $0300; + TA_BASE = $0400; + TA_BOTTOM = $0500; + TA_STANDARD_VERT = $0600; + CM_ERROR = (-1); + CM_DEFAULT = 0; + CM_MODE1 = 1; + CM_MODE2 = 2; + CM_MODE3 = 3; + MARKSYM_ERROR = (-1); + MARKSYM_DEFAULT = 0; + MARKSYM_CROSS = 1; + MARKSYM_PLUS = 2; + MARKSYM_DIAMOND = 3; + MARKSYM_SQUARE = 4; + MARKSYM_SIXPOINTSTAR = 5; + MARKSYM_EIGHTPOINTSTAR = 6; + MARKSYM_SOLIDDIAMOND = 7; + MARKSYM_SOLIDSQUARE = 8; + MARKSYM_DOT = 9; + MARKSYM_SMALLCIRCLE = 10; + MARKSYM_BLANK = 64; + CHS_OPAQUE = $0001; + CHS_VECTOR = $0002; + CHS_LEAVEPOS = $0008; + CHS_CLIP = $0010; + CHS_UNDERSCORE = $0200; + CHS_STRIKEOUT = $0400; + PRIM_LINE = 1; + PRIM_CHAR = 2; + PRIM_MARKER = 3; + PRIM_AREA = 4; + PRIM_IMAGE = 5; + LBB_COLOR = $0001; + LBB_BACK_COLOR = $0002; + LBB_MIX_MODE = $0004; + LBB_BACK_MIX_MODE = $0008; + LBB_WIDTH = $0010; + LBB_GEOM_WIDTH = $0020; + LBB_TYPE = $0040; + LBB_END = $0080; + LBB_JOIN = $0100; + CBB_COLOR = $0001; + CBB_BACK_COLOR = $0002; + CBB_MIX_MODE = $0004; + CBB_BACK_MIX_MODE = $0008; + CBB_SET = $0010; + CBB_MODE = $0020; + CBB_BOX = $0040; + CBB_ANGLE = $0080; + CBB_SHEAR = $0100; + CBB_DIRECTION = $0200; + CBB_TEXT_ALIGN = $0400; + CBB_EXTRA = $0800; + CBB_BREAK_EXTRA = $1000; + MBB_COLOR = $0001; + MBB_BACK_COLOR = $0002; + MBB_MIX_MODE = $0004; + MBB_BACK_MIX_MODE = $0008; + MBB_SET = $0010; + MBB_SYMBOL = $0020; + MBB_BOX = $0040; + ABB_COLOR = $0001; + ABB_BACK_COLOR = $0002; + ABB_MIX_MODE = $0004; + ABB_BACK_MIX_MODE = $0008; + ABB_SET = $0010; + ABB_SYMBOL = $0020; + ABB_REF_POINT = $0040; + IBB_COLOR = $0001; + IBB_BACK_COLOR = $0002; + IBB_MIX_MODE = $0004; + IBB_BACK_MIX_MODE = $0008; + + TXTBOX_TOPLEFT = 0; + TXTBOX_BOTTOMLEFT = 1; + TXTBOX_TOPRIGHT = 2; + TXTBOX_BOTTOMRIGHT = 3; + TXTBOX_CONCAT = 4; + TXTBOX_COUNT = 5; + PVIS_ERROR = 0; + PVIS_INVISIBLE = 1; + PVIS_VISIBLE = 2; + RVIS_ERROR = 0; + RVIS_INVISIBLE = 1; + RVIS_PARTIAL = 2; + RVIS_VISIBLE = 3; + + FONT_DEFAULT = 1; + FONT_MATCH = 2; + LCIDT_FONT = 6; + LCIDT_BITMAP = 7; + LCID_ALL = (-1); + + FWEIGHT_DONT_CARE = 0; + FWEIGHT_ULTRA_LIGHT = 1; + FWEIGHT_EXTRA_LIGHT = 2; + FWEIGHT_LIGHT = 3; + FWEIGHT_SEMI_LIGHT = 4; + FWEIGHT_NORMAL = 5; + FWEIGHT_SEMI_BOLD = 6; + FWEIGHT_BOLD = 7; + FWEIGHT_EXTRA_BOLD = 8; + FWEIGHT_ULTRA_BOLD = 9; + FWIDTH_DONT_CARE = 0; + FWIDTH_ULTRA_CONDENSED = 1; + FWIDTH_EXTRA_CONDENSED = 2; + FWIDTH_CONDENSED = 3; + FWIDTH_SEMI_CONDENSED = 4; + FWIDTH_NORMAL = 5; + FWIDTH_SEMI_EXPANDED = 6; + FWIDTH_EXPANDED = 7; + FWIDTH_EXTRA_EXPANDED = 8; + FWIDTH_ULTRA_EXPANDED = 9; + FTYPE_ITALIC = $0001; + FTYPE_ITALIC_DONT_CARE = $0002; + FTYPE_OBLIQUE = $0004; + FTYPE_OBLIQUE_DONT_CARE = $0008; + FTYPE_ROUNDED = $0010; + FTYPE_ROUNDED_DONT_CARE = $0020; + QFA_PUBLIC = 1; + QFA_PRIVATE = 2; + QFA_ERROR =GPI_ALTERROR; + QF_PUBLIC = $0001; + QF_PRIVATE = $0002; + QF_NO_GENERIC = $0004; + QF_NO_DEVICE = $0008; + + ROP_SRCCOPY = $00CC; + ROP_SRCPAINT = $00EE; + ROP_SRCAND = $0088; + ROP_SRCINVERT = $0066; + ROP_SRCERASE = $0044; + ROP_NOTSRCCOPY = $0033; + ROP_NOTSRCERASE = $0011; + ROP_MERGECOPY = $00C0; + ROP_MERGEPAINT = $00BB; + ROP_PATCOPY = $00F0; + ROP_PATPAINT = $00FB; + ROP_PATINVERT = $005A; + ROP_DSTINVERT = $0055; + ROP_ZERO = $0000; + ROP_ONE = $00FF; + BBO_OR = 0; + BBO_AND = 1; + BBO_IGNORE = 2; + BBO_PAL_COLORS = 4; + BBO_NO_COLOR_INFO = 8; + FF_BOUNDARY = 0; + FF_SURFACE = 1; + HBM_ERROR = -1; + + {Bitmaps} + CBM_INIT = $0004; + BMB_ERROR = (-1); + + {Regions} + CRGN_OR = 1; + CRGN_COPY = 2; + CRGN_XOR = 4; + CRGN_AND = 6; + CRGN_DIFF = 7; + RECTDIR_LFRT_TOPBOT = 1; + RECTDIR_RTLF_TOPBOT = 2; + RECTDIR_LFRT_BOTTOP = 3; + RECTDIR_RTLF_BOTTOP = 4; + RGN_ERROR = 0; + RGN_NULL = 1; + RGN_RECT = 2; + RGN_COMPLEX = 3; + PRGN_ERROR = 0; + PRGN_OUTSIDE = 1; + PRGN_INSIDE = 2; + RRGN_ERROR = 0; + RRGN_OUTSIDE = 1; + RRGN_PARTIAL = 2; + RRGN_INSIDE = 3; + EQRGN_ERROR = 0; + EQRGN_NOTEQUAL = 1; + EQRGN_EQUAL = 2; + HRGN_ERROR = -1; + + {Metafiles} + PMF_SEGBASE = 0; + PMF_LOADTYPE = 1; + PMF_RESOLVE = 2; + PMF_LCIDS = 3; + PMF_RESET = 4; + PMF_SUPPRESS = 5; + PMF_COLORTABLES = 6; + PMF_COLORREALIZABLE = 7; + PMF_DEFAULTS = 8; + PMF_DELETEOBJECTS = 9; + RS_DEFAULT = 0; + RS_NODISCARD = 1; + LC_DEFAULT = 0; + LC_NOLOAD = 1; + LC_LOADDISC = 3; + LT_DEFAULT = 0; + LT_NOMODIFY = 1; + LT_ORIGINALVIEW = 4; + RES_DEFAULT = 0; + RES_NORESET = 1; + RES_RESET = 2; + SUP_DEFAULT = 0; + SUP_NOSUPPRESS = 1; + SUP_SUPPRESS = 2; + CTAB_DEFAULT = 0; + CTAB_NOMODIFY = 1; + CTAB_REPLACE = 3; + CTAB_REPLACEPALETTE = 4; + CREA_DEFAULT = 0; + CREA_REALIZE = 1; + CREA_NOREALIZE = 2; + CREA_DOREALIZE = 3; + DDEF_DEFAULT = 0; + DDEF_IGNORE = 1; + DDEF_LOADDISC = 3; + DOBJ_DEFAULT = 0; + DOBJ_NODELETE = 1; + DOBJ_DELETE = 2; + RSP_DEFAULT = 0; + RSP_NODISCARD = 1; + + {Polygons} + POLYGON_NOBOUNDARY = 0; + POLYGON_BOUNDARY = $0001; + POLYGON_ALTERNATE = 0; + POLYGON_WINDING = $0002; + POLYGON_EXCL = 0; + POLYGON_INCL = $0008; + +type SizeL=record + cx,cy:longint; + end; + PSizeL=^SizeL; + TSizeL=SizeL; + + MatrixLF=record + fxm11:longint; + fxm12:longint; + lm13:longint; + fxm21:longint; + fxm22:longint; + lm23:longint; + lm31:longint; + lm32:longint; + lm33:longint; + end; + PMatrixLF=^MatrixLF; + TMatrixLF=MatrixLF; + + ArcParams=record + lp,lq,lr,ls:longint; + end; + PArcParams=^ArcParams; + TArcParams=ArcParams; + + SizeF=record + cx,cy:longint; + end; + PSizeF=^SizeF; + TSizeF=SizeF; + + GradientL=record + x,y:longint; + end; + PGradientL=^GradientL; + TGradientL=GradientL; + + LineBundle=record + lColor:longint; + lBackColor:longint; + usMixMode:word; + usBackMixMode:word; + fxWidth:longint; + lGeomWidth:longint; + usType:word; + usEnd:word; + usJoin:word; + usReserved:word; + end; + PLineBundle=^LineBundle; + TLineBundle=LineBundle; + + CharBundle=record + lColor:longint; + lBackColor:longint; + usMixMode:word; + usBackMixMode:word; + usSet:word; + usPrecision:word; + sizfxCell:sizef; + ptlAngle:pointl; + ptlShear:pointl; + usDirection:word; + usTextAlign:word; + fxExtra:longint; + fxBreakExtra:longint; + end; + PCharBundle=^CharBundle; + TCharBundle=CharBundle; + + MarkerBundle=record + lColor:longint; + lBackColor:longint; + usMixMode:word; + usBackMixMode:word; + usSet:word; + usSymbol:word; + sizFxCell:SizeF; + end; + PMarkerBundle=^MarkerBundle; + TMarkerBundle=MarkerBundle; + + AreaBundle=record + lColor:longint; + lBackColor:longint; + usMixMode:word; + usBackMixMode:word; + usSet:word; + usSymbol:word; + ptlRefPoint:pointl; + end; + PAreaBundle=^AreaBundle; + TAreaBundle=AreaBundle; + + ImageBundle=record + lColor:longint; + lBackColor:longint; + usMixMode:word; + usBackMixMode:word; + end; + PImageBundle=^ImageBundle; + TImageBundle=ImageBundle; + + KerningPairs=record + sFirstChar:integer; + sSecondChar:integer; + lKerningAmount:longint; + end; + PKerningPairs=^KerningPairs; + TKerningPairs=KerningPairs; + + FaceNameDesc=record + usSize:word; + usWeightClass:word; + usWidthClass:word; + usReserved:word; + flOptions:cardinal; + end; + PFaceNameDesc=^FaceNameDesc; + TFaceNameDesc=FaceNameDesc; + + FFDescs=array[0..1,0..FaceSize-1] of char; + PFFDescs=^FFDescs; + TFFDescs = FFDescs; + + FFDescs2=record + cbLength:cardinal; + cbFacenameOffset:cardinal; + abFamilyName:array[0..1-1] of byte; + end; + PFFDescs2=^FFDescs2; + TFFDescs2=FFDescs2; + + RgnRect=record + ircStart:cardinal; + crc:cardinal; + crcReturned:cardinal; + ulDirection:cardinal; + end; + PRgnRect=^RgnRect; + TRgnRect=RgnRect; + + Polygon=record + ulPoints:cardinal; + aPointl:Ppointl; + end; + PPolygon=^Polygon; + TPolygon=Polygon; + + Polyset=record + ulPolys:cardinal; + aPolygon:array[0..1-1] of TPolygon; + end; + PPolyset=^Polyset; + TPolyset=Polyset; + +// =========================================================================== +//* +//* The orders fall into 4 categories :- +//* +//* 1) 1-byte orders +//* +//* 2) 2-byte orders - second byte contains the value +//* +//* 3) Long orders - second byte gives the order length, subsequent bytes +//* contain the values (up to 256 bytes long) +//* +//* 4) Very long orders - third and fourth bytes gives the order length, +//* subsequent bytes contain the values (up to 64K long) +//* +//* =========================================================================== + +//#pragma pack(1) /* pack on byte boundary */ + +//***************************************************************************\ +//* +//* Miscellaneous structures used in this file +//* +//***************************************************************************/ + +// form of RECTL with shorts instead of longs +type + RECT1S=record // rcs + xLeft: Integer; + yBottom: Integer; + xRight: Integer; + yTop: Integer; + end; + +// form of POINTL with 1 byte offsets instead of longs + ODPOINT=record // odpt + dx: Char; + dy: Char; + end; + +// form of SIZEL with shorts instead of longs + SIZES=record // sizs + cx: Integer; + cy: Integer; + end; + +// unsigned two-byte swapped integer + SWPUSHORT=record // swpus + HiByte: Byte; + LoByte: Byte; + end; + +//***************************************************************************\ +//* +//* 1-byte orders +//* +//***************************************************************************/ + +// macro to tell whether this is a 1-byte order +{$define BYTE_ORDER(oc):=((oc)=OCODE_GNOP1 or (oc)=OCODE_GESD)} + +// 1-byte order codes +const + OCODE_GNOP1 =$00; // No-operation + OCODE_GESD =$FF; // End symbol definition + +//***************************************************************************\ +// +// 2-byte orders +// +//***************************************************************************/ + +// definitions to help determine whether an order code is a 2-byte order +const + OCODE2_1 =$80; + OCODE2_2 =$88; + +{$define SHORT_ORDER(oc):=((((oc) xor OCODE2_1) and OCODE2_2)=OCODE2_2)} + +// General 2-byte order structure +type + ORDER=record // ord + idCode: Byte; + uchData: Byte; + end; + +// 2-byte order codes +const + OCODE_GBAR =$68; // Begin area + OCODE_GCFIG =$7D; // Close figure + OCODE_GEEL =$49; // End element + OCODE_GEPTH =$7F; // End path + OCODE_GEPROL =$3E; // End prologue + OCODE_GPOP =$3F; // Pop + OCODE_GSBMX =$0D; // Set background mix + OCODE_GPSBMX =$4D; // Push & set b/g mix + OCODE_GSCD =$3A; // Set char direction + OCODE_GPSCD =$7A; // Push & set char direction + OCODE_GSCR =$39; // Set char precision + OCODE_GPSCR =$79; // Push & set char precision + OCODE_GSCS =$38; // Set char set + OCODE_GPSCS =$78; // Push & set char set + OCODE_GSCOL =$0A; // Set color + OCODE_GPSCOL =$4A; // Push & set color + OCODE_GSLE =$1A; // Set line end + OCODE_GPSLE =$5A; // Push & set line end + OCODE_GSLJ =$1B; // Set line join + OCODE_GPSLJ =$5B; // Push & set line join + OCODE_GSLT =$18; // Set line type + OCODE_GPSLT =$58; // Push & set line type + OCODE_GSLW =$19; // Set line width + OCODE_GPSLW =$59; // Push & set line width + OCODE_GSMP =$3B; // Set marker precision + OCODE_GPSMP =$7B; // Push & set marker precision + OCODE_GSMS =$3C; // Set marker set + OCODE_GPSMS =$7C; // Push & set marker set + OCODE_GSMT =$29; // Set marker symbol + OCODE_GPSMT =$69; // Push & set marker symbol + OCODE_GSMX =$0C; // Set mix + OCODE_GPSMX =$4C; // Push & set mix + OCODE_GSPS =$08; // Set pattern set + OCODE_GPSPS =$48; // Push & set pattern set + OCODE_GSPT =$28; // Set pattern symbol + OCODE_GPSPT =$09; // Push & set pattern symbol + +// constants for 2-byte orders + +// Begin area +const + GBAR_RESERVED =$80; + GBAR_BOUNDARY =$C0; + GBAR_NOBOUNDARY =$80; + GBAR_WINDING =$A0; + GBAR_ALTERNATE =$80; + +// Set Character Precision +const + GSCR_PRECISION =$0F; + +//***************************************************************************\ +//* +//* Long orders +//* +//***************************************************************************/ + +// definitions to help determine whether an order code is a long order +const + OCODE_VLONG =$FE; + +{$define LONG_ORDER(oc):=(not((oc)=OCODE_VLONG or BYTE_ORDER(oc) or SHORT_ORDER(oc)))} + +// long order structure +const + LORDER_ML=253; + +type + LORDER=record // lord + idCode: Byte; + uchLength: Byte; + uchData: Array[0..LORDER_ML-1] of Byte; + end; + +// Long orders for which the length of data is normally zero +const + OCODE_GEAR =$60; // End Area + OCODE_GEIMG =$93; // End Image + +// Long orders for which the data is contained in a type already defined + +// Character String +const + OCODE_GCCHST = $83; // char string at curr posn + GCCHST_MC = 255; // Max len of string in bytes + + OCODE_GCHST = $C3; // char string at given pos + GCHST_SMC = 251; // Max len of string (S) + GCHST_LMC = 247; // Max len of string (L) + +// Character String Move + OCODE_GCCHSTM = $B1; // char string move at c.p. + GCCHSTM_MC = 255; // Max len of string in byte + + OCODE_GCHSTM = $F1; // char string move at g.p. + GCHSTM_SMC = 251; // Max len of string (S) + GCHSTM_LMC = 247; // Max len of string (L) + +// Comment + OCODE_GCOMT = $01; // Comment + GCOMT_ML = 255; // Maximum len of comment data + +// Image + OCODE_GIMD = $92; // Image data + GIMD_ML = 255; // Maximum len of image data + +// Full Arc + OCODE_GCFARC = $87; // full arc at current posn + OCODE_GFARC = $C7; // full arc at given posn + +// Label + OCODE_GLABL = $D3; // Label + +// Set Current Position + OCODE_GSCP = $21; // Set current position + OCODE_GPSCP = $61; // Push and set curr posn + +// Bezier spline + OCODE_GCBEZ = $A5; // Bezier spline at curr pos + GCBEZ_SMB = 21; // Max number of splines (S) + GCBEZ_LMB = 10; // Max number of splines (L) + + OCODE_GBEZ = $E5; // Bezier spline at given pos + GBEZ_SMB = 20; // Max number of splines (S) + GBEZ_LMB = 10; // Max number of splines (L) + +// Fillet + OCODE_GCFLT = $85; // fillet at current posn + GCFLT_SMP = 63; // Max number of points (S) + GCFLT_LMP = 31; // Max number of points (L) + + OCODE_GFLT = $C5; // fillet at given position + GFLT_SMP = 62; // Max number of points (S) + GFLT_LMP = 30; // Max number of points (L) + +// Polyline + OCODE_GCLINE = $81; // polyline at current posn + GCLINE_SMP = 63; // Max number of points (S) + GCLINE_LMP = 31; // Max number of points (L) + + OCODE_GLINE = $C1; // polyline at given posn + GLINE_SMP = 62; // Max number of points (S) + GLINE_LMP = 30; // Max number of points (L) + +// Polymarker + OCODE_GCMRK = $82; // marker at current posn + GCMRK_SMP = 63; // Max number of points (S) + GCMRK_LMP = 31; // Max number of points (L) + + OCODE_GMRK = $C2; // marker at given posn + GMRK_SMP = 62; // Max number of points (S) + GMRK_LMP = 30; // Max number of points (L) + +// Relative Line + OCODE_GCRLINE =$A1; // Relative line at curr pos + GCRLINE_MP =127; // Max number of points + + OCODE_GRLINE = $E1; // Relative line at givn pos + GRLINE_SMP = 125; // Max number of points (S) + GRLINE_LMP = 123; // Max number of points (L) + +// Set Background Color + OCODE_GSBCOL = $25; // Set background color + OCODE_GPSBCOL = $65; // Push and set b/g color + +// Set Extended Color + OCODE_GSECOL = $26; // Set extended color + OCODE_GPSECOL = $66; // Push and set ext color + +// Extended Color values + SECOL_DEFAULT0 =$0000; + SECOL_DEFAULT1 =$FF00; + SECOL_NEUTRAL =$FF07; + SECOL_RESET =$FF08; + +// Set Character Angle + OCODE_GSCA = $34; // Set character angle + OCODE_GPSCA = $74; // Push and set char angle + +// Set Character Shear + OCODE_GSCH = $35; // Set character shear + OCODE_GPSCH = $75; // Push and set char shear + +// Set Fractional Line Width + OCODE_GSFLW = $11; // Set fractional line width + OCODE_GPSFLW = $51; // Push and set frac l width + +// Set Pick Identifier + OCODE_GSPIK = $43; // Set pick identifier + OCODE_GPSPIK = $23; // Push and set pick id + + +// Long Orders for which a structure can be defined for the data + +// Arc + OCODE_GCARC = $86; // Arc at Current Position + OCODE_GARC = $C6; // Arc at Given Position + +type + ORDERS_GCARC=record // osgcarc + ptInter: POINTS; + ptEnd: POINTS; + end; + + ORDERL_GCARC=record // olgcarc + ptInter: POINTL; + ptEnd: POINTL; + end; + +// Begin Element +const + OCODE_GBEL = $D2; // Begin Element + + GBEL_DL = 251; + +type + ORDER_GBEL=record // ogbel + lElementType: Longint; + achDesc: Array[0..GBEL_DL-1] of Char; + end; + +// Begin Image +const + OCODE_GCBIMG = $91; // Begin Image at curr posn + OCODE_GBIMG = $D1; // Begin Image at given posn + +type + ORDER_GCBIMG=record // ogbimg + uchFormat: Byte; + uchReserved: Byte; + cx: SWPUSHORT; + cy: SWPUSHORT; + end; + +// Begin Path +const + OCODE_GBPTH = $D0; // Begin Path + +type + ORDER_GBPTH=record // ogbpth + usReserved: Word; + idPath: Longint; + end; + +// Box +const + OCODE_GCBOX =$80; // Box at current position + OCODE_GBOX =$C0; // Box at given position + +type + ORDERS_GCBOX=record // osgcbox + fbFlags: Byte; + uchReserved: Byte; + ptCorner: POINTS; + hAxis: Integer; + vAxis: Integer; + end; + + ORDERL_GCBOX=record // olgcbox + fbFlags: Byte; + uchReserved: Byte; + ptCorner: POINTL; + hAxis: Longint; + vAxis: Longint; + end; + +const + GCBOX_FILL =$40; + GCBOX_BOUNDARY =$20; + +// Call Segment + OCODE_GCALLS =$07; // call segment + +type + ORDER_GCALLS=record // ogcalls + sReserved: Word; + idSegment: Longint; + end; + +// Fill Path +const + OCODE_GFPTH =$D7; // Fill path + +type + ORDER_GFPTH=record // ogfpth + fbFlags: Byte; + uchReserved: Byte; + idPath: Longint; + end; + +const + GFPTH_ALTERNATE =$00; + GFPTH_WINDING =$40; + GFPTH_MODIFY =$20; + +// Outline Path + OCODE_GOPTH =$D4; // Outline Path + +type + ORDER_GOPTH=record // ogopth + fbFlags: Byte; + uchReserved: Byte; + idPath: Longint; + end; + +// Modify Path +const + OCODE_GMPTH =$D8; // modify path + +type + ORDER_GMPTH=record // ogmpth + uchMode: Byte; + uchReserved: Byte; + idPath: Longint; + end; + +const + GMPTH_STROKE =$06; + +// Partial Arc + OCODE_GCPARC =$A3; // Partial arc at curr posn + OCODE_GPARC =$E3; // Partial arc at given posn + +type + ORDERS_GCPARC=record // osgcparc + ptCenter: POINTS; + ufx88Multiplier: FIXED88; + usStartAngle: Longint; + usSweepAngle: Longint; + end; + + ORDERL_GCPARC=record // olgcparc + ptCenter: POINTL; + ufxMultiplier: FIXED; + usStartAngle: Longint; + usSweepAngle: Longint; + end; + +// Set Clip Path +const + OCODE_GSCPTH =$B4; // Set clip path + +type + ORDER_GSCPTH=record // ogscpth + fbFlags: Byte; + uchReserved: Byte; + idPath: Longint; + end; + +const + GSCPTH_ALTERNATE =$00; + GSCPTH_WINDING =$40; + GSCPTH_RESET =$00; + GSCPTH_INTERSECT =$20; + +// Set Arc Parameters + OCODE_GSAP =$22; // Set arc parameters + OCODE_GPSAP =$62; // Push and set arc params + +type + ORDERS_GSAP=record // osgsap + p: Integer; + q: Integer; + r: Integer; + s: Integer; + end; + + ORDERL_GSAP=record // olgsap + p: Longint; + q: Longint; + r: Longint; + s: Longint; + end; + +// Set Background Indexed Color +const + OCODE_GSBICOL =$A7; // Set b/g indexed color + OCODE_GPSBICOL =$E7; // Push and set b/g ind color + OCODE_GSICOL =$A6; // Set indexed color + OCODE_GPSICOL =$E6; // Push and set indexd color + + +type + ORDER_GSBICOL=record // ogbicol + fbFlags: Byte; + auchColor: Array[0..3-1] of Byte; + end; + +const + SICOL_SPECIFY =$00; + SICOL_SPECIAL =$40; + SICOL_DEFAULT =$80; + SICOL_BLACK =1; + SICOL_WHITE =2; + SICOL_ONES =4; + SICOL_ZEROES =5; + +// Set Character Cell + OCODE_GSCC =$33; // Set character cell + OCODE_GPSCC =$03; // Push and set char cell + +type + ORDERS_GSCC=record // osgscc + cxInt: Integer; + cyInt: Integer; + cxFract: Word; + cyFract: Word; + fbFlags: Byte; + uchReserved: Byte; + end; + + ORDERL_GSCC=record // olgscc + cxInt: Longint; + cyInt: Longint; + cxFract: Word; + cyFract: Word; + fbFlags: Byte; + uchReserved: Byte; + end; + +const + GSCC_ZERODEF =$00; + GSCC_ZEROZERO =$80; + +// Set Marker Cell + OCODE_GSMC =$37; // Set marker cell + OCODE_GPSMC =$77; // Push and set marker cell + +type + ORDERS_GSMC=record // osgsmc + cx: Integer; + cy: Integer; + fbFlags: Byte; + uchReserved: Byte; + end; + + ORDERL_GSMC=record // olgsmc + cx: Longint; + cy: Longint; + fbFlags: Byte; + uchReserved: Byte; + end; + +const + GSMC_ZERODEF =$00; + GSMC_ZEROZERO =$80; + +// Set Pattern Reference Point + OCODE_GSPRP =$A0; // Set pattern ref point + OCODE_GPSPRP =$E0; // Push and set patt ref pt + +type + ORDERS_GSPRP=record // osgsprp + fbFlags: Byte; + uchReserved: Byte; + ptPos: POINTS; + end; + + ORDERL_GSPRP=record // olgsprp + fbFlags: Byte; + uchReserved: Byte; + ptPos: POINTL; + end; + +const + GSPRP_DEFAULT =$80; + GSPRP_SPECIFY =$00; + + +// Set Individual Attribute + OCODE_GSIA =$14; // Set individual attribute + OCODE_GPSIA =$54; // Push and set ind attr + + GSIA_VL=3; + +type + ORDER_GSIA=record // ogsia + uchAttrType: Byte; + uchPrimType: Byte; + fbFlags: Byte; + auchValue: Array[0..GSIA_VL-1] of Byte; + end; + +const + GSIA_COLOR =$01; + GSIA_BCOLOR =$02; + GSIA_MIX =$03; + GSIA_BMIX =$04; + GSIA_LINE =$01; + GSIA_CHAR =$02; + GSIA_MARKER =$03; + GSIA_PATTERN =$04; + GSIA_IMAGE =$05; + GSIA_SPECIFY =$00; + GSIA_SPECIAL =$40; + GSIA_DEFAULT =$80; + GSIA_BLACK =1; + GSIA_WHITE =2; + GSIA_ONES =4; + GSIA_ZEROES =5; + + +// Set Model /Viewing Transform + OCODE_GSTM =$24; // Set model transform + OCODE_GPSTM =$64; // Push and set model tfm + + OCODE_GSTV =$31; // Set Viewing Transform + + GSTM_ML =16; + +type + ORDERS_GSTM=record // osgstm + uchReserved: Byte; + fbFlags: Byte; + fsMask: Word; + asMatrix: Array[0..GSTM_ML-1] of Integer; + end; + + ORDERL_GSTM=record // olgstm + uchReserved: Byte; + fbFlags: Byte; + fsMask: Word; + alMatrix: Array[0..GSTM_ML-1] of Longint; + end; + +const + GSTM_M11 =$8000; + GSTM_M12 =$4000; + GSTM_M13 =$2000; + GSTM_M14 =$1000; + GSTM_M21 =$0800; + GSTM_M22 =$0400; + GSTM_M23 =$0200; + GSTM_M24 =$0100; + GSTM_M31 =$0080; + GSTM_M32 =$0040; + GSTM_M33 =$0020; + GSTM_M34 =$0010; + GSTM_M41 =$0008; + GSTM_M42 =$0004; + GSTM_M43 =$0002; + GSTM_M44 =$0001; + + GSTM_UNITY =$00; + GSTM_AFTER =$01; + GSTM_BEFORE =$02; + GSTM_OVERWRITE =$03; + + GSTV_OVERWRITE =$00; + GSTV_AFTER =$04; + +// Set Segment Boundary, Viewing Window + OCODE_GSSB =$32; // Set segment boundary + OCODE_GSVW =$27; // Set viewing window + OCODE_GPSVW =$67; // Push and set view window + + GSSB_ML =4; + +type + ORDERS_GSSB=record // osgssb + fbFlags: Byte; + fbMask: Byte; + alMatrix: Array[0..GSSB_ML-1] of Integer; + end; + + ORDERL_GSSB=record // olgssb + fbFLags: Byte; + fbMask: Byte; + alMatrix: Array[0..GSSB_ML-1] of Longint; + end; + +const + GSSB_XLEFT =$20; + GSSB_XRIGHT =$10; + GSSB_YBOTTOM =$08; + GSSB_YTOP =$04; + + GSVW_INTERSECT =$00; + GSVW_REPLACE =$80; + +// Set Segment Characteristics + OCODE_GSGCH =$04; // Set segment characteristics + + GSGCH_ML =254; + +type + ORDER_GSGCH=record // ogsgch + uchIdent: Byte; + auchData: Array[0..GSGCH_ML-1] of Byte; + end; + +// Set Stroke Line Width +const + OCODE_GSSLW =$15; // Set stroke line width + OCODE_GPSSLW =$55; // Push and set strk l width + +type + ORDERS_GSSLW=record // osgsslw + fbFlags: Byte; + uchReserved: Byte; + LineWidth: Integer; + end; + +type + ORDERL_GSSLW=record // olgsslw + fbFlags: Byte; + uchReserved: Byte; + LineWidth: Longint; + end; + +const + GSSLW_DEFAULT =$80; + GSSLW_SPECIFY =$00; + +// Sharp Fillet at Current Position + OCODE_GCSFLT =$A4; // Sharp fillet at curr pos + OCODE_GSFLT =$E4; // Sharp fillet at given pos + + GCSFLT_SMF =21; + GSFLT_SMF =20; + +type + ORDERS_GCSFLT=record // osgcsflt + apt: Array[0..2*GCSFLT_SMF-1] of POINTS; + afxSharpness: Array[0..GCSFLT_SMF-1] of FIXED; + end; + +const + GCSFLT_LMF = 12; + GSFLT_LMF = 12; + +type + ORDERL_GCSFLT=record // olgcsflt + apt: Array[0..2*GCSFLT_SMF-1] of POINTL; + afxSharpness: Array[0..GCSFLT_SMF-1] of FIXED; + end; + +// Bitblt +const + OCODE_GBBLT =$D6; // Bitblt + +type + ORDERS_GBBLT=record // osgbblt + fsFlags: Word; + usMix: Word; + hbmSrc: HBITMAP; + lOptions: Longint; + rcsTargetRect: RECT1S; + rclSourceRect: RECTL; + end; + + ORDERL_GBBLT=record // olgbblt + fsFlags: Word; + usMix: Word; + hbmSrc: HBITMAP; + lOptions: Longint; + rclTargetRect: RECTL; + rclSourceRect: RECTL; + end; + +// Char & break extra +const + OCODE_GSCE =$17; // Set char extra + OCODE_GPSCE =$57; // Push and set char extra + OCODE_GSCBE =$05; // Set char break extra + OCODE_GPSCBE =$45; // Push and set char break extra + +type + ORDER_GSCBE=record // osgsce + fbFlags: Byte; + uchReserved: Byte; + ufxextra: FIXED; + end; + ORDER_GSCE=ORDER_GSCBE; + ORDER_GPSCE=ORDER_GSCBE; + ORDER_GPSCBE=ORDER_GSCBE; + +// Escape +const + OCODE_GESCP =$D5; // Escape + + +//* type describes type of escape order, identifier gives the escape +//* order if the type is registered +const + GESCP_ML = 253; + +type + ORDER_GESCP=record // ogescp + uchType: Byte; + uchIdent: Byte; + auchData: Array[0..GESCP_ML-1] of Byte; // Escape data + end; + +const + GESCP_REG =$80; // identifier is registered + +// Escape (Bitblt) +const + GEBB_REGID =$02; // uchIdent - Bitblt + + ETYPE_GEBB =$800200D5; + + GEBB_LMP =29; + +type + ORDERL_GEBB=record // olgebb + fbFlags: Byte; + usMix: Word; + cPoints: Byte; + hbmSrc: HBITMAP; + lReserved: Longint; + lOptions: Longint; + aptPoints: Array[0..GEBB_LMP-1] of POINTL; + end; + +// Escape (Set Pel) +const + GEPEL_REGID =$01; // uchIdent - Set Pel + + ETYPE_GEPEL =$800100D5; + +// Escape (DrawBits) + GEDB_REGID =$04; // uchIdent - DrawBits + + ETYPE_GEDB =$800400D5; + +type + ORDERL_GEDB=record // olgedb + fsFlags: Word; + usMix: Word; + pBits: Pointer; + pbmi: PBITMAPINFO2; + lOptions: Longint; + rclTargetRect: RECTL; + rclSourceRect: RECTL; + end; + +// Escape (FloodFill) +const + GEFF_REGID =$03; // uchIdent - FloodFill + + ETYPE_GEFF =$800300D5; + +type + ORDERL_GEFF=record // olgeff + fsFlags: Byte; + auchColor: Array[0..3-1] of Byte; + end; + +// Element Types for attribute bundles +const + ETYPE_LINEBUNDLE =$0000FD01; + ETYPE_CHARBUNDLE =$0000FD02; + ETYPE_MARKERBUNDLE =$0000FD03; + ETYPE_AREABUNDLE =$0000FD04; + ETYPE_IMAGEBUNDLE =$0000FD05; + +//***************************************************************************\ +//* +//* Very long orders +//* +//***************************************************************************/ + +// macro to tell whether this is a very long order +{$define VLONG_ORDER(oc):=((oc)=OCODE_VLONG)} + +// Very long order structure +const + VORDER_ML =65531; + +type + VORDER=record // vord + idCode: Byte; + uchQualifier: Byte; + uchLength: SWPUSHORT; + uchData: Array[0..VORDER_ML-1] of Byte; + end; + +// Character String Extended +const + OCODEQ_GCCHSTE =$B0; // Qualifier - current posn + OCODEQ_GCHSTE =$F0; // Qualifier - given position + OCODEQ_GTCHSPA =$F4; // Tabbed Char String At + + ETYPE_GCCHSTE =$0000FEB0; + ETYPE_GCHSTE =$0000FEF0; + +type + ORDERS_GCCHSTE=record // osgcchste + fbFlags: Byte; + uchReserved: Byte; + ptRect: Array[0..2-1] of POINTS; + cchString: SWPUSHORT; + achString: Array[0..1-1] of Char; + adx: Array[0..1-1] of Integer; + end; + + ORDERL_GCCHSTE=record // olgcchste + fbFlags: Byte; + uchReserved: Byte; + ptRect: Array[0..2-1] of POINTL; + cchString: SWPUSHORT; + achString: Array[0..1-1] of Char; + adx: Array[0..1-1] of Longint; + end; + + ORDERL_GTCHSPA=record // olgcchspa + fbFlags: Byte; + uchReserved: Byte; + ptRect: Array[0..2-1] of POINTL; + cchString: SWPUSHORT; + achString: Array[0..1-1] of Char; + adx: Array[0..2-1] of Longint; + tabs: Array[0..1-1] of Longint; + end; + +const + GCCHSTE_DRAWRECT =$80; + GCCHSTE_NORECT =$00; + GCCHSTE_CLIP =$40; + GCCHSTE_NOCLIP =$00; + GCCHSTE_DEEMPHASIZE =$20; // Reserved + GCCHSTE_NODEEMPHASIZE =$00; + GCCHSTE_LEAVEPOS =$10; + GCCHSTE_MOVEPOS =$00; + GCCHSTE_UNDERSCORE =$08; + GCCHSTE_NOUNDERSCORE =$00; + GCCHSTE_STRIKEOUT =$04; + GCCHSTE_NOSTRIKEOUT =$00; + GTCHSPA_STARTPOS =$02; + GTCHSPA_NOSTARTPOS =$00; + +// Extended Escape + OCODEQ_GEESCP =$D5; // Qualifier - extended escape + + GEESCP_ML =65533; + +type + ORDER_GEESCP=record // ogeescp + uchType: Byte; + uchIdent: Byte; + auchData: Array[0..GEESCP_ML-1] of Byte; + end; + +//#pragma pack() /* reset to default packing */ + + + +function GpiCreatePS(hab,hdc : cardinal;var psizlSize : SIZEL;flOptions : cardinal) : cardinal;cdecl; +function GpiDestroyPS(hps : cardinal) : longbool;cdecl; +function GpiAssociate(hps,hdc : cardinal) : longbool;cdecl; +function GpiRestorePS(hps : cardinal;lPSid : longint) : longbool;cdecl; +function GpiSavePS(hps : cardinal) : longint;cdecl; +function GpiErase(hps : cardinal) : longbool;cdecl; +function GpiQueryDevice(hps : cardinal) : cardinal;cdecl; +function GpiResetPS(hps,flOptions : cardinal) : longbool;cdecl; +function GpiSetPS(hps : cardinal;var psizlsize : SIZEL;flOptions : cardinal) : longbool;cdecl; +function GpiQueryPS(hps : cardinal;var psizlSize : SIZEL) : cardinal;cdecl; +function GpiErrorSegmentData(hps : cardinal;var plSegment,plContext : longint) : longint; cdecl; +function GpiQueryDrawControl(hps : cardinal;lControl : longint) : longint;cdecl; +function GpiSetDrawControl(hps : cardinal;lControl,lValue : longint) : longbool;cdecl; +function GpiQueryDrawingMode(hps : cardinal) : longint;cdecl; +function GpiSetDrawingMode(hps : cardinal;lMode : longint) : longbool;cdecl; +function GpiQueryStopDraw(hps : cardinal) : longint;cdecl; +function GpiSetStopDraw(hps : cardinal;lValue : longint) : longbool;cdecl; +function GpiCorrelateChain(hps : cardinal;lType : longint;var pptlPick : POINTL;lMaxHits,lMaxDepth : longint;var pl2 : longint) : longint;cdecl; +function GpiQueryTag(hps : cardinal;var plTag : longint) : longbool;cdecl; +function GpiSetTag(hps : cardinal;lTag : longint) : longbool;cdecl; +function GpiQueryPickApertureSize(hps : cardinal;var psizlSize : SIZEL) : longbool; cdecl; +function GpiSetPickApertureSize(hps : cardinal;lOptions : longint;var psizlSize : SIZEL) : longbool; cdecl; +function GpiQueryPickAperturePosition(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl; +function GpiSetPickAperturePosition(hps : cardinal;var pptlPick : POINTL) : longbool; cdecl; +function GpiQueryBoundaryData(hps : cardinal;var prclBoundary : RECTL) : longbool; cdecl; +function GpiResetBoundaryData(hps : cardinal) : longbool; cdecl; +function GpiCorrelateFrom(hps : cardinal;lFirstSegment,lLastSegment,lType : longint;var pptlPick : POINTL;lMaxHits,lMaxDepth : longint;var plSegTag : longint) : longint; cdecl; +function GpiCorrelateSegment(hps : cardinal;lSegment,lType : longint;var pptlPick : POINTL;lMaxHits,lMaxDepth : longint;var alSegTag : longint) : longint; cdecl; +function GpiOpenSegment(hps : cardinal;lSegment : longint) : longbool; cdecl; +function GpiCloseSegment(hps : cardinal) : longbool; cdecl; +function GpiDeleteSegment(hps : cardinal;lSegid : longint) : longbool; cdecl; +function GpiQueryInitialSegmentAttrs(hps : cardinal;lAttribute : longint) : longint; cdecl; +function GpiSetInitialSegmentAttrs(hps : cardinal;lAttribute,lValue : longint) : longbool; cdecl; +function GpiQuerySegmentAttrs(hps : cardinal;lSegid,lAttribute : longint) : longint; cdecl; +function GpiSetSegmentAttrs(hps : cardinal;lSegid,lAttribute,lValue : longint) : longbool; cdecl; +function GpiQuerySegmentPriority(hps : cardinal;lRefSegid,lOrder : longint) : longint; cdecl; +function GpiSetSegmentPriority(hps : cardinal;lSegid,lRefSegid,lOrder : longint) : longbool; cdecl; +function GpiDeleteSegments(hps : cardinal;lFirstSegment,lLastSegment : longint) : longbool; cdecl; +function GpiQuerySegmentNames(hps : cardinal;lFirstSegid,lLastSegid,lMax : longint;var alSegids : longint) : longint; cdecl; +function GpiGetData(hps : cardinal;lSegid : longint;var plOffset : longint;lFormat,lLength : longint;var pbData : BYTE) : longint; cdecl; +function GpiPutData(hps : cardinal;lFormat : longint;var plCount : longint;var pbData : BYTE) : longint; cdecl; +function GpiDrawChain(hps : cardinal) : longbool; cdecl; +function GpiDrawFrom(hps : cardinal;lFirstSegment,lLastSegment : longint) : longbool; cdecl; +function GpiDrawSegment(hps : cardinal;lSegment : longint) : longbool; cdecl; +function GpiDrawDynamics(hps : cardinal) : longbool; cdecl; +function GpiRemoveDynamics(hps : cardinal;lFirstSegid,lLastSegid : longint) : longbool; cdecl; +function GpiBeginElement(hps : cardinal;lType : longint;pszDesc : pchar) : longbool; cdecl; +function GpiEndElement(hps : cardinal) : longbool; cdecl; +function GpiLabel(hps : cardinal;lLabel : longint) : longbool; cdecl; +function GpiElement(hps : cardinal;lType : longint;pszDesc : pchar;lLength : longint;var pbData : BYTE) : longint; cdecl; +function GpiQueryElement(hps : cardinal;lOff,lMaxLength : longint;var pbData : BYTE) : longint; cdecl; +function GpiDeleteElement(hps : cardinal) : longbool; cdecl; +function GpiDeleteElementRange(hps : cardinal;lFirstElement,lLastElement : longint) : longbool; cdecl; +function GpiDeleteElementsBetweenLabels(hps : cardinal;lFirstLabel,lLastLabel : longint) : longbool; cdecl; +function GpiQueryEditMode(hps : cardinal) : longint; cdecl; +function GpiSetEditMode(hps : cardinal;lMode : longint) : longbool; cdecl; +function GpiQueryElementPointer(hps : cardinal) : longint; cdecl; +function GpiSetElementPointer(hps : cardinal;lElement : longint) : longbool; cdecl; +function GpiOffsetElementPointer(hps : cardinal;loffset : longint) : longbool; cdecl; +function GpiQueryElementType(hps : cardinal;var plType : longint;lLength : longint;pszData : pchar) : longint; cdecl; +function GpiSetElementPointerAtLabel(hps : cardinal;lLabel : longint) : longbool; cdecl; +function GpiQuerySegmentTransformMatrix(hps : cardinal;lSegid,lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl; +function GpiSetSegmentTransformMatrix(hps : cardinal;lSegid,lCount : longint;var pmatlfarray : MATRIXLF;lOptions : longint) : longbool; cdecl; +function GpiConvert(hps : cardinal;lSrc,lTarg,lCount : longint;var aptlPoints : POINTL) : longbool; cdecl; +function GpiConvertWithMatrix(hps : cardinal;lCountp : longint;var aptlPoints : POINTL;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl; +function GpiQueryModelTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl; +function GpiSetModelTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF;lOptions : longint) : longbool; cdecl; +function GpiCallSegmentMatrix(hps : cardinal;lSegment,lCount : longint;var pmatlfArray : MATRIXLF;lOptions : longint) : longint; cdecl; +function GpiQueryDefaultViewMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl; +function GpiSetDefaultViewMatrix(hps : cardinal;lCount : longint;var pmatlfarray : MATRIXLF;lOptions : longint) : longbool; cdecl; +function GpiQueryPageViewport(hps : cardinal;var prclViewport : RECTL) : longbool; cdecl; +function GpiSetPageViewport(hps : cardinal;var prclViewport : RECTL) : longbool; cdecl; +function GpiQueryViewingTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl; +function GpiSetViewingTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF;lOptions : longint) : longbool; cdecl; +function GpiTranslate(hps : cardinal;var pmatrixlf : MATRIXLF;long : longint;var ppointl : POINTL) : longbool; cdecl; +function GpiScale(hps : cardinal;var p1 : MATRIXLF;p2 : longint;var p3 : longint;var p4 : POINTL) : longbool; cdecl; +function GpiRotate(p1 : cardinal;var p2 : MATRIXLF;p3,p4 : longint;var p5 : POINTL) : longbool; cdecl; +function GpiSetGraphicsField(hps : cardinal;var prclField : RECTL) : longbool; cdecl; +function GpiQueryGraphicsField(hps : cardinal;var prclField : RECTL) : longbool; cdecl; +function GpiSetViewingLimits(hps : cardinal;var prclLimits : RECTL) : longbool; cdecl; +function GpiQueryViewingLimits(hps : cardinal;var prclLimits : RECTL) : longbool; cdecl; +function GpiBeginPath(hps : cardinal;lPath : longint) : longbool; cdecl; +function GpiEndPath(hps : cardinal) : longbool; cdecl; +function GpiCloseFigure(hps : cardinal) : longbool; cdecl; +function GpiModifyPath(hps : cardinal;lPath,lMode : longint) : longbool; cdecl; +function GpiFillPath(hps : cardinal;lPath,lOptions : longint) : longint; cdecl; +function GpiSetClipPath(hps : cardinal;lPath,lOptions : longint) : longbool; cdecl; +function GpiOutlinePath(hps : cardinal;lPath,lOptions : longint) : longint; cdecl; +function GpiPathToRegion(GpiH : cardinal;lPath,lOptions : longint) : cardinal; cdecl; +function GpiStrokePath(hps : cardinal;lPath : longint;flOptions : cardinal) : longint; cdecl; +function GpiCreateLogColorTable(hps,flOptions : cardinal;lFormat,lStart,lCount : longint;var alTable : longint) : longbool; cdecl; +function GpiQueryColorData(hps : cardinal;lCount : longint;var alArray : longint) : longbool; cdecl; +function GpiQueryLogColorTable(hps,flOptions : cardinal;lStart,lCount : longint;var alArray : longint) : longint; cdecl; +function GpiQueryRealColors(hps,flOptions : cardinal;lStart,lCount : longint;var alColors : longint) : longint; cdecl; +function GpiQueryNearestColor(hps,flOptions : cardinal;lRgbIn : longint) : longint; cdecl; +function GpiQueryColorIndex(hps,flOptions : cardinal;lRgbColor : longint) : longint; cdecl; +function GpiQueryRGBColor(hps,flOptions : cardinal;lColorIndex : longint) : longint; cdecl; +function GpiCreatePalette(hab,flOptions,ulFormat,ulCount : cardinal;var aulTable) : cardinal; cdecl; +function GpiDeletePalette(hpal : cardinal) : longbool; cdecl; +function GpiSelectPalette(hps,hpal : cardinal) : cardinal; cdecl; +function GpiAnimatePalette(hpal,ulFormat,ulStart,ulCount : cardinal;var aulTable) : longint; cdecl; +function GpiSetPaletteEntries(hpal,ulFormat,ulStart,ulCount : cardinal;var aulTable) : longbool; cdecl; +function GpiQueryPalette(hps : cardinal) : cardinal; cdecl; +function GpiQueryPaletteInfo(hpal,hps,flOptions,ulStart,ulCount : cardinal;var aulArray) : longint; cdecl; +function GpiSetColor(hps : cardinal;lColor : longint) : longbool; cdecl; +function GpiQueryColor(hps : cardinal) : longint; cdecl; +function GpiBox(hps : cardinal;lControl : longint;var pptlPoint : POINTL;lHRound,lVRound : longint) : longint; cdecl; +function GpiMove(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl; +function GpiLine(hps : cardinal;var pptlEndPoint : POINTL) : longint; cdecl; +function GpiPolyLine(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl; +function GpiPolyLineDisjoint(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl; +function GpiSetPattern(hps : cardinal;lPatternSymbol : longint) : longbool; cdecl; +function GpiQueryPattern(hps : cardinal) : longint; cdecl; +function GpiBeginArea(hps,flOptions : cardinal) : longbool; cdecl; +function GpiEndArea(hps : cardinal) : longint; cdecl; +function GpiCharString(hps : cardinal;lCount : longint;pchString : pchar) : longint; cdecl; +function GpiCharStringAt(hps : cardinal;var pptlPoint : POINTL;lCount : longint;pchString : pchar) : longint; cdecl; +function GpiSetAttrMode(hps : cardinal;lMode : longint) : longbool; cdecl; +function GpiQueryAttrMode(hps : cardinal) : longint; cdecl; +function GpiSetAttrs(hps : cardinal;lPrimType : longint;flAttrMask,flDefMask : cardinal;ppbunAttrs : pointer) : longbool; cdecl; +function GpiQueryAttrs(hps : cardinal;lPrimType : longint;flAttrMask : cardinal;ppbunAttrs : pointer) : longint; cdecl; +function GpiSetBackColor(hps : cardinal;lColor : longint) : longbool; cdecl; +function GpiQueryBackColor(hps : cardinal) : longint; cdecl; +function GpiSetMix(hps : cardinal;lMixMode : longint) : longbool; cdecl; +function GpiQueryMix(hps : cardinal) : longint; cdecl; +function GpiSetBackMix(hps : cardinal;lMixMode : longint) : longbool; cdecl; +function GpiQueryBackMix(hps : cardinal) : longint; cdecl; +function GpiSetLineType(hps : cardinal;lLineType : longint) : longbool; cdecl; +function GpiQueryLineType(hps : cardinal) : longint; cdecl; +function GpiSetLineWidth(hps : cardinal;fxLineWidth : longint) : longbool; cdecl; +function GpiQueryLineWidth(hps : cardinal) : longint; cdecl; +function GpiSetLineWidthGeom(hps : cardinal;lLineWidth : longint) : longbool; cdecl; +function GpiQueryLineWidthGeom(hps : cardinal) : longint; cdecl; +function GpiSetLineEnd(hps : cardinal;lLineEnd : longint) : longbool; cdecl; +function GpiQueryLineEnd(hps : cardinal) : longint; cdecl; +function GpiSetLineJoin(hps : cardinal;lLineJoin : longint) : longbool; cdecl; +function GpiQueryLineJoin(hps : cardinal) : longint; cdecl; +function GpiSetCurrentPosition(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl; +function GpiQueryCurrentPosition(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl; +function GpiSetArcParams(hps : cardinal;var parcpArcParams : ARCPARAMS) : longbool; cdecl; +function GpiQueryArcParams(hps : cardinal;var parcpArcParams : ARCPARAMS) : longbool; cdecl; +function GpiPointArc(hps : cardinal;var pptl2 : POINTL) : longint; cdecl; +function GpiFullArc(hps : cardinal;lControl,fxMultiplier : longint) : longint; cdecl; +function GpiPartialArc(hps : cardinal;var pptlCenter : POINTL;fxMultiplier,fxStartAngle,fxSweepAngle : longint) : longint; cdecl; +function GpiPolyFillet(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl; +function GpiPolySpline(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl; +function GpiPolyFilletSharp(hps : cardinal;lCount : longint;var aptlPoints : POINTL;var afxPoints : longint) : longint; cdecl; +function GpiSetPatternSet(hps : cardinal;lSet : longint) : longbool; cdecl; +function GpiQueryPatternSet(hps : cardinal) : longint; cdecl; +function GpiSetPatternRefPoint(hps : cardinal;var pptlRefPoint : POINTL) : longbool; cdecl; +function GpiQueryPatternRefPoint(hps : cardinal;var pptlRefPoint : POINTL) : longbool; cdecl; +function GpiQueryCharStringPos(hps,flOptions : cardinal;lCount : longint;pchString : pchar;var alXincrements : longint;var aptlPositions : POINTL) : longbool; cdecl; +function GpiQueryCharStringPosAt(hps : cardinal;var pptlStart : POINTL;flOptions : cardinal;lCount : longint;pchString : pchar;var alXincrements : longint;var aptlPositions : POINTL) : longbool; cdecl; +function GpiQueryTextBox(hps : cardinal;lCount1 : longint;pchString : pchar;lCount2 : longint;var aptlPoints : POINTL) : longbool; cdecl; +function GpiQueryDefCharBox(hps : cardinal;var psizlSize : SIZEL) : longbool; cdecl; +function GpiSetCharSet(hps : cardinal;llcid : longint) : longbool; cdecl; +function GpiQueryCharSet(hps : cardinal) : longint; cdecl; +function GpiSetCharBox(hps : cardinal;var psizfxBox : SIZEF) : longbool; cdecl; +function GpiQueryCharBox(hps : cardinal;var psizfxSize : SIZEF) : longbool; cdecl; +function GpiSetCharAngle(hps : cardinal;var pgradlAngle : GRADIENTL) : longbool; cdecl; +function GpiQueryCharAngle(hps : cardinal;var pgradlAngle : GRADIENTL) : longbool; cdecl; +function GpiSetCharShear(hps : cardinal;var pptlAngle : POINTL) : longbool; cdecl; +function GpiQueryCharShear(hps : cardinal;var pptlShear : POINTL) : longbool; cdecl; +function GpiSetCharDirection(hps : cardinal;lDirection : longint) : longbool; cdecl; +function GpiQueryCharDirection(hps : cardinal) : longint; cdecl; +function GpiSetCharMode(hps : cardinal;lMode : longint) : longbool; cdecl; +function GpiQueryCharMode(hps : cardinal) : longint; cdecl; +function GpiSetTextAlignment(hps : cardinal;lHoriz,lVert : longint) : longbool; cdecl; +function GpiQueryTextAlignment(hps : cardinal;var plHoriz,plVert : longint) : longbool; cdecl; +function GpiCharStringPos(hps : cardinal;var prclRect : RECTL;flOptions : cardinal;lCount : longint;pchString : pchar;var alAdx : longint) : longint; cdecl; +function GpiCharStringPosAt(hps : cardinal;var pptlStart : POINTL;var prclRect : RECTL;flOptions : cardinal;lCount : longint;pchString : pchar;var alAdx : longint) : longint; cdecl; +function GpiSetCharExtra(hps : cardinal;Extra : longint) : longbool; cdecl; +function GpiSetCharBreakExtra(hps : cardinal;BreakExtra : longint) : longbool; cdecl; +function GpiQueryCharExtra(hps : cardinal;var Extra : longint) : longbool; cdecl; +function GpiQueryCharBreakExtra(hps : cardinal;var BreakExtra : longint) : longbool; cdecl; +function GpiMarker(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl; +function GpiPolyMarker(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl; +function GpiSetMarker(hps : cardinal;lSymbol : longint) : longbool; cdecl; +function GpiSetMarkerBox(hps : cardinal;var psizfxSize : SIZEF) : longbool; cdecl; +function GpiSetMarkerSet(hps : cardinal;lSet : longint) : longbool; cdecl; +function GpiQueryMarker(hps : cardinal) : longint; cdecl; +function GpiQueryMarkerBox(hps : cardinal;var psizfxSize : SIZEF) : longbool; cdecl; +function GpiQueryMarkerSet(hps : cardinal) : longint; cdecl; +function GpiImage(hps : cardinal;lFormat : longint;var psizlImageSize : SIZEL;lLength : longint;var pbData : BYTE) : longint; cdecl; +function GpiPop(hps : cardinal;lCount : longint) : longbool; cdecl; +function GpiPtVisible(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl; +function GpiRectVisible(hps : cardinal;var prclRectangle : RECTL) : longint; cdecl; +function GpiComment(hps : cardinal;lLength : longint;var pbData : BYTE) : longbool; cdecl; +function GpiCreateLogFont(hps : cardinal;var pName : STR8;lLcid : longint;var pfatAttrs : FATTRS) : longint; cdecl; +function GpiDeleteSetId(hps : cardinal;lLcid : longint) : longbool; cdecl; +function GpiLoadFonts(hab : cardinal;pszFilename : pchar) : longbool; cdecl; +function GpiUnloadFonts(hab : cardinal;pszFilename : pchar) : longbool; cdecl; +function GpiQueryFonts(hps,flOptions : cardinal;pszFacename : pchar;var plReqFonts : longint;lMetricsLength : longint;var afmMetrics : FONTMETRICS) : longint; cdecl; +function GpiQueryFontMetrics(hps : cardinal;lMetricsLength : longint;var pfmMetrics : FONTMETRICS) : longbool; cdecl; +function GpiQueryKerningPairs(hps : cardinal;lCount : longint;var akrnprData : KERNINGPAIRS) : longint; cdecl; +function GpiQueryWidthTable(hps : cardinal;lFirstChar,lCount : longint;var alData : longint) : longbool; cdecl; +function GpiQueryNumberSetIds(hps : cardinal) : longint; cdecl; +function GpiQuerySetIds(hps : cardinal;lCount : longint;var alTypes : longint;var aNames : STR8;var allcids : longint) : longbool; cdecl; +function GpiQueryFaceString(PS : cardinal;FamilyName : pchar;var attrs : FACENAMEDESC;length : longint;CompoundFaceName : pchar) : cardinal; cdecl; +function GpiQueryLogicalFont(PS : cardinal;lcid : longint;var name : STR8;var attrs : FATTRS;length : longint) : longbool; cdecl; +function GpiQueryFontAction(anchor,options : cardinal) : cardinal; cdecl; +function GpiLoadPublicFonts(p1 : cardinal;p2 : pchar):longbool; cdecl; +function GpiUnloadPublicFonts(p1 : cardinal;p2 : pchar) : longbool; cdecl; +function GpiSetCp(hps,ulCodePage : cardinal) : longbool; cdecl; +function GpiQueryCp(hps : cardinal) : cardinal; cdecl; +function GpiQueryFontFileDescriptions(hab : cardinal;pszFilename : pchar;var plCount : longint;var affdescsNames : FFDESCS) : longint; cdecl; +function GpiQueryFullFontFileDescs(hab : cardinal;pszFilename : pchar;var plCount : longint;pNames : pointer;var plNamesBuffLength : longint) : longint; cdecl; +function GpiBitBlt(hpsTarget,hpsSource : cardinal;lCount : longint;var aptlPoints : POINTL;lRop : longint;flOptions : cardinal) : longint; cdecl; +function GpiDeleteBitmap(hbm : cardinal) : longbool; cdecl; +function GpiLoadBitmap(hps,Resource,idBitmap : cardinal;lWidth,lHeight : longint) : cardinal; cdecl; +function GpiSetBitmap(hps,hbm : cardinal) : cardinal; cdecl; +function GpiWCBitBlt(hpsTarget,hbmSource : cardinal;lCount : longint;var aptlPoints : POINTL;lRop : longint;flOptions : cardinal) : longint; cdecl; +function GpiCreateBitmap(hps : cardinal;var pbmpNew : Tbitmapinfoheader2;flOptions : cardinal;var pbInitData : BYTE;var pbmiInfoTable : Tbitmapinfo2) : cardinal; cdecl; +function GpiSetBitmapBits(hps : cardinal;lScanStart,lScans : longint;var pbBuffer : BYTE;var pbmiInfoTable : Tbitmapinfo2) : longint; cdecl; +function GpiSetBitmapDimension(hbm : cardinal;var psizlBitmapDimension : SIZEL) : longbool; cdecl; +function GpiSetBitmapId(hps,hbm : cardinal;lLcid : longint) : longbool; cdecl; +function GpiQueryBitmapBits(hps : cardinal;lScanStart,lScans : longint;var pbBuffer : BYTE;var pbmiInfoTable :Tbitmapinfo2) : longint; cdecl; +function GpiQueryBitmapDimension(hbm : cardinal;var psizlBitmapDimension : SIZEL) : longbool; cdecl; +function GpiQueryBitmapHandle(hps : cardinal;lLcid : longint) : cardinal; cdecl; +function GpiQueryBitmapParameters(hbm : cardinal;var pbmpData : Tbitmapinfoheader) : longbool; cdecl; +function GpiQueryBitmapInfoHeader(hbm : cardinal;var pbmpData : Tbitmapinfoheader2) : longbool; cdecl; +function GpiQueryDeviceBitmapFormats(hps : cardinal;lCount : longint;var alArray : longint) : longbool; cdecl; +function GpiSetPel(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl; +function GpiQueryPel(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl; +function GpiFloodFill(hps : cardinal;lOptions,lColor : longint) : longint; cdecl; +function GpiDrawBits(hps : cardinal;pBits : pointer;var pbmiInfoTable :Tbitmapinfo2;lCount : longint;var aptlPoints : POINTL;lRop : longint;flOptions : cardinal) : longint; cdecl; +function GpiCombineRegion(hps,hrgnDest,hrgnSrc1,hrgnSrc2 : cardinal;lMode : longint) : longint; cdecl; +function GpiCreateRegion(hps : cardinal;lCount : longint;var arclRectangles : RECTL) : cardinal; cdecl; +function GpiDestroyRegion(hps,hrgn : cardinal) : longbool; cdecl; +function GpiEqualRegion(hps,hrgnSrc1,hrgnSrc2 : cardinal) : longint; cdecl; +function GpiOffsetRegion(hps,Hrgn : cardinal;var pptlOffset : POINTL) : longbool; cdecl; +function GpiPaintRegion(hps,hrgn : cardinal) : longint; cdecl; +function GpiFrameRegion(hps,hrgn : cardinal;var thickness : SIZEL) : longint; cdecl; +function GpiPtInRegion(hps,hrgn : cardinal;var pptlPoint : POINTL) : longint; cdecl; +function GpiQueryRegionBox(hps,hrgn : cardinal;var prclBound : RECTL) : longint; cdecl; +function GpiQueryRegionRects(hps,hrgn : cardinal;var prclBound : RECTL;var prgnrcControl : RGNRECT;var prclRect : RECTL) : longbool; cdecl; +function GpiRectInRegion(hps,hrgn : cardinal;var prclRect : RECTL) : longint; cdecl; +function GpiSetRegion(hps,hrgn : cardinal;lcount : longint;var arclRectangles : RECTL) : longbool;cdecl; +function GpiSetClipRegion(hps,hrgn : cardinal;var phrgnOld : cardinal) : longint; cdecl; +function GpiQueryClipRegion(hps : cardinal) : cardinal; cdecl; +function GpiQueryClipBox(hps : cardinal;var prclBound : RECTL) : longint; cdecl; +function GpiExcludeClipRectangle(hps : cardinal;var prclRectangle : RECTL) : longint; cdecl; +function GpiIntersectClipRectangle(hps : cardinal;var prclRectangle : RECTL) : longint; cdecl; +function GpiOffsetClipRegion(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl; +function GpiCopyMetaFile(hmf : cardinal) : cardinal; cdecl; +function GpiDeleteMetaFile(hmf : cardinal) : longbool; cdecl; +function GpiLoadMetaFile(hab : cardinal;pszFilename : pchar) : cardinal; cdecl; +function GpiPlayMetaFile(hps,hmf : cardinal;lCount1 : longint;var alOptarray,plSegCount : longint;lCount2 : longint;pszDesc : pchar) : longint; cdecl; +function GpiQueryMetaFileBits(hmf : cardinal;lOffset,lLength : longint;var pbData : BYTE) : longbool; cdecl; +function GpiQueryMetaFileLength(hmf : cardinal) : longint; cdecl; +function GpiSaveMetaFile(hmf : cardinal;pszFilename : pchar) : longbool; cdecl; +function GpiSetMetaFileBits(hmf : cardinal;lOffset,lLength : longint;var pbBuffer : BYTE) : longbool; cdecl; +function GpiQueryDefArcParams(hps : cardinal;var parcpArcParams : ARCPARAMS) : longbool; cdecl; +function GpiQueryDefAttrs(hps : cardinal;lPrimType : longint;flAttrMask : cardinal;ppbunAttrs : pointer) : longbool; cdecl; +function GpiQueryDefTag(hps : cardinal;var plTag : longint) : longbool; cdecl; +function GpiQueryDefViewingLimits(hps : cardinal;var prclLimits : RECTL) : longbool; cdecl; +function GpiSetDefArcParams(hps : cardinal;var parcpArcParams : ARCPARAMS) : longbool; cdecl; +function GpiSetDefAttrs(hps : cardinal;lPrimType : longint;flAttrMask : cardinal;ppbunAttrs : pointer) : longbool;cdecl; +function GpiSetDefTag(hps : cardinal;lTag : longint) : longbool; cdecl; +function GpiSetDefViewingLimits(hps : cardinal;var prclLimits : RECTL) : longbool; cdecl; +function GpiPolygons(hps,ulCount : cardinal;var paplgn : POLYGON;flOptions,flModel : cardinal) : longint; cdecl; + +implementation + +function GpiCreatePS(hab,hdc : cardinal;var psizlSize : SIZEL;flOptions : cardinal) : cardinal;cdecl;external 'pmgpi' index 369; +function GpiDestroyPS(hps : cardinal) : longbool;cdecl;external 'pmgpi' index 379; +function GpiAssociate(hps,hdc : cardinal) : longbool;cdecl;external 'pmgpi' index 351; +function GpiRestorePS(hps : cardinal;lPSid : longint) : longbool;cdecl;external 'pmgpi' index 499; +function GpiSavePS(hps : cardinal) : longint;cdecl;external 'pmgpi' index 501; +function GpiErase(hps : cardinal) : longbool;cdecl;external 'pmgpi' index 389; +function GpiQueryDevice(hps : cardinal) : cardinal;cdecl;external 'pmgpi' index 444; +function GpiResetPS(hps,flOptions : cardinal) : longbool;cdecl;external 'pmgpi' index 498; +function GpiSetPS(hps : cardinal;var psizlsize : SIZEL;flOptions : cardinal) : longbool;cdecl;external 'pmgpi' index 539; +function GpiQueryPS(hps : cardinal;var psizlSize : SIZEL) : cardinal;cdecl;external 'pmgpi' index 471; +function GpiErrorSegmentData(hps : cardinal;var plSegment,plContext : longint) : longint;cdecl;external 'pmgpi' index 390; +function GpiQueryDrawControl(hps : cardinal;lControl : longint) : longint;cdecl;external 'pmgpi' index 446; +function GpiSetDrawControl(hps : cardinal;lControl,lValue : longint) : longbool;cdecl;external 'pmgpi' index 521; +function GpiQueryDrawingMode(hps : cardinal) : longint;cdecl;external 'pmgpi' index 447; +function GpiSetDrawingMode(hps : cardinal;lMode : longint) : longbool;cdecl;external 'pmgpi' index 522; +function GpiQueryStopDraw(hps : cardinal) : longint;cdecl; external 'pmgpi' index 487; +function GpiSetStopDraw(hps : cardinal;lValue : longint) : longbool; cdecl; external 'pmgpi' index 550; +function GpiCorrelateChain(hps : cardinal;lType : longint;var pptlPick : POINTL;lMaxHits : longint;lMaxDepth : longint;var pl2 : longint) : longint; cdecl; external 'pmgpi' index 366; +function GpiQueryTag(hps : cardinal;var plTag : longint) : longbool; cdecl; external 'pmgpi' index 488; +function GpiSetTag(hps : cardinal;lTag : longint) : longbool; cdecl; external 'pmgpi' index 551; +function GpiQueryPickApertureSize(hps : cardinal;var psizlSize : SIZEL) : longbool; cdecl; external 'pmgpi' index 478; +function GpiSetPickApertureSize(hps : cardinal;lOptions : longint;var psizlSize : SIZEL) : longbool; cdecl; external 'pmgpi' index 589; +function GpiQueryPickAperturePosition(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl; external 'pmgpi' index 477; +function GpiSetPickAperturePosition(hps : cardinal;var pptlPick : POINTL) : longbool; cdecl; external 'pmgpi' index 545; +function GpiQueryBoundaryData(hps : cardinal;var prclBoundary : RECTL) : longbool; cdecl; external 'pmgpi' index 428; +function GpiResetBoundaryData(hps : cardinal) : longbool; cdecl; external 'pmgpi' index 497; +function GpiCorrelateFrom(hps : cardinal;lFirstSegment,lLastSegment,lType : longint;var pptlPick : POINTL;lMaxHits,lMaxDepth : longint;var plSegTag : longint) : longint; cdecl; external 'pmgpi' index 367; +function GpiCorrelateSegment(hps : cardinal;lSegment,lType : longint;var pptlPick : POINTL;lMaxHits,lMaxDepth : longint;var alSegTag : longint) : longint; cdecl; external 'pmgpi' index 582; +function GpiOpenSegment(hps : cardinal;lSegment : longint) : longbool; cdecl; external 'pmgpi' index 408; +function GpiCloseSegment(hps : cardinal) : longbool; cdecl; external 'pmgpi' index 361; +function GpiDeleteSegment(hps : cardinal;lSegid : longint) : longbool; cdecl; external 'pmgpi' index 376; +function GpiQueryInitialSegmentAttrs(hps : cardinal;lAttribute : longint) : longint; cdecl; external 'pmgpi' index 455; +function GpiSetInitialSegmentAttrs(hps : cardinal;lAttribute,lValue : longint) : longbool; cdecl; external 'pmgpi' index 527; +function GpiQuerySegmentAttrs(hps : cardinal;lSegid,lAttribute : longint) : longint; cdecl; external 'pmgpi' index 482; +function GpiSetSegmentAttrs(hps : cardinal;lSegid,lAttribute,lValue : longint) : longbool; cdecl; external 'pmgpi' index 547; +function GpiQuerySegmentPriority(hps : cardinal;lRefSegid,lOrder : longint) : longint; cdecl; external 'pmgpi' index 484; +function GpiSetSegmentPriority(hps : cardinal;lSegid,lRefSegid,lOrder : longint) : longbool; cdecl; external 'pmgpi' index 548; +function GpiDeleteSegments(hps : cardinal;lFirstSegment,lLastSegment : longint) : longbool; cdecl; external 'pmgpi' index 377; +function GpiQuerySegmentNames(hps : cardinal;lFirstSegid,lLastSegid,lMax : longint;var alSegids : longint) : longint; cdecl; external 'pmgpi' index 483; +function GpiGetData(hps : cardinal;lSegid : longint;var plOffset : longint;lFormat,lLength : longint;var pbData : BYTE) : longint; cdecl; external 'pmgpi' index 394; +function GpiPutData(hps : cardinal;lFormat : longint;var plCount : longint;var pbData : BYTE) : longint; cdecl; external 'pmgpi' index 421; +function GpiDrawChain(hps : cardinal) : longbool; cdecl; external 'pmgpi' index 380; +function GpiDrawFrom(hps : cardinal;lFirstSegment,lLastSegment : longint) : longbool; cdecl; external 'pmgpi' index 382; +function GpiDrawSegment(hps : cardinal;lSegment : longint) : longbool; cdecl; external 'pmgpi' index 383; +function GpiDrawDynamics(hps : cardinal) : longbool; cdecl; external 'pmgpi' index 381; +function GpiRemoveDynamics(hps : cardinal;lFirstSegid,lLastSegid : longint) : longbool; cdecl; external 'pmgpi' index 496; +function GpiBeginElement(hps : cardinal;lType : longint;pszDesc : pchar) : longbool; cdecl; external 'pmgpi' index 353; +function GpiEndElement(hps : cardinal) : longbool; cdecl; external 'pmgpi' index 386; +function GpiLabel(hps : cardinal;lLabel : longint) : longbool; cdecl; external 'pmgpi' index 397; +function GpiElement(hps : cardinal;lType : longint;pszDesc : pchar;lLength : longint;var pbData : BYTE) : longint; cdecl; external 'pmgpi' index 384; +function GpiQueryElement(hps : cardinal;lOff,lMaxLength : longint;var pbData : BYTE) : longint; cdecl; external 'pmgpi' index 449; +function GpiDeleteElement(hps : cardinal) : longbool; cdecl; external 'pmgpi' index 372; +function GpiDeleteElementRange(hps : cardinal;lFirstElement,lLastElement : longint) : longbool; cdecl; external 'pmgpi' index 373; +function GpiDeleteElementsBetweenLabels(hps : cardinal;lFirstLabel,lLastLabel : longint) : longbool; cdecl; external 'pmgpi' index 374; +function GpiQueryEditMode(hps : cardinal) : longint; cdecl; external 'pmgpi' index 448; +function GpiSetEditMode(hps : cardinal;lMode : longint) : longbool; cdecl; external 'pmgpi' index 523; +function GpiQueryElementPointer(hps : cardinal) : longint; cdecl; external 'pmgpi' index 450; +function GpiSetElementPointer(hps : cardinal;lElement : longint) : longbool; cdecl; external 'pmgpi' index 524; +function GpiOffsetElementPointer(hps : cardinal;loffset : longint) : longbool; cdecl; external 'pmgpi' index 406; +function GpiQueryElementType(hps : cardinal;var plType : longint;lLength : longint;pszData : pchar) : longint; cdecl; external 'pmgpi' index 451; +function GpiSetElementPointerAtLabel(hps : cardinal;lLabel : longint) : longbool; cdecl; external 'pmgpi' index 525; +function GpiQuerySegmentTransformMatrix(hps : cardinal;lSegid,lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl; external 'pmgpi' index 485; +function GpiSetSegmentTransformMatrix(hps : cardinal;lSegid,lCount : longint;var pmatlfarray : MATRIXLF;lOptions : longint) : longbool; cdecl; external 'pmgpi' index 549; +function GpiConvert(hps : cardinal;lSrc,lTarg,lCount : longint;var aptlPoints : POINTL) : longbool; cdecl; external 'pmgpi' index 364; +function GpiConvertWithMatrix(hps : cardinal;lCountp : longint;var aptlPoints : POINTL;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl; external 'pmgpi' index 618; +function GpiQueryModelTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl; external 'pmgpi' index 468; +function GpiSetModelTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF;lOptions : longint) : longbool; cdecl; external 'pmgpi' index 538; +function GpiCallSegmentMatrix(hps : cardinal;lSegment,lCount : longint;var pmatlfArray : MATRIXLF;lOptions : longint) : longint; cdecl; external 'pmgpi' index 357; +function GpiQueryDefaultViewMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl; external 'pmgpi' index 443; +function GpiSetDefaultViewMatrix(hps : cardinal;lCount : longint;var pmatlfarray : MATRIXLF;lOptions : longint) : longbool; cdecl; external 'pmgpi' index 520; +function GpiQueryPageViewport(hps : cardinal;var prclViewport : RECTL) : longbool; cdecl; external 'pmgpi' index 472; +function GpiSetPageViewport(hps : cardinal;var prclViewport : RECTL) : longbool; cdecl; external 'pmgpi' index 540; +function GpiQueryViewingTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF) : longbool; cdecl; external 'pmgpi' index 491; +function GpiSetViewingTransformMatrix(hps : cardinal;lCount : longint;var pmatlfArray : MATRIXLF;lOptions : longint) : longbool; cdecl; external 'pmgpi' index 553; +function GpiTranslate(hps : cardinal;var pmatrixlf : MATRIXLF;long : longint;var ppointl : POINTL) : longbool; cdecl; external 'pmgpi' index 564; +function GpiScale(hps : cardinal;var p1 : MATRIXLF;p2 : longint;var p3 : longint;var p4 : POINTL) : longbool; cdecl; external 'pmgpi' index 565; +function GpiRotate(p1 : cardinal;var p2 : MATRIXLF;p3,p4 : longint;var p5 : POINTL) : longbool; cdecl; external 'pmgpi' index 566; +function GpiSetGraphicsField(hps : cardinal;var prclField : RECTL) : longbool; cdecl; external 'pmgpi' index 526; +function GpiQueryGraphicsField(hps : cardinal;var prclField : RECTL) : longbool; cdecl; external 'pmgpi' index 454; +function GpiSetViewingLimits(hps : cardinal;var prclLimits : RECTL) : longbool; cdecl; external 'pmgpi' index 552; +function GpiQueryViewingLimits(hps : cardinal;var prclLimits : RECTL) : longbool; cdecl; external 'pmgpi' index 490; +function GpiBeginPath(hps : cardinal;lPath : longint) : longbool; cdecl; external 'pmgpi' index 354; +function GpiEndPath(hps : cardinal) : longbool; cdecl; external 'pmgpi' index 387; +function GpiCloseFigure(hps : cardinal) : longbool; cdecl; external 'pmgpi' index 360; +function GpiModifyPath(hps : cardinal;lPath,lMode : longint) : longbool; cdecl; external 'pmgpi' index 403; +function GpiFillPath(hps : cardinal;lPath,lOptions : longint) : longint; cdecl; external 'pmgpi' index 392; +function GpiSetClipPath(hps : cardinal;lPath,lOptions : longint) : longbool; cdecl; external 'pmgpi' index 515; +function GpiOutlinePath(hps : cardinal;lPath,lOptions : longint) : longint; cdecl; external 'pmgpi' index 563; +function GpiPathToRegion(GpiH : cardinal;lPath,lOptions : longint) : cardinal; cdecl; external 'pmgpi' index 559; +function GpiStrokePath(hps : cardinal;lPath : longint;flOptions : cardinal) : longint; cdecl; external 'pmgpi' index 554; +function GpiCreateLogColorTable(hps,flOptions : cardinal;lFormat,lStart,lCount : longint;var alTable : longint) : longbool; cdecl; external 'pmgpi' index 592; +function GpiQueryColorData(hps : cardinal;lCount : longint;var alArray : longint) : longbool; cdecl; external 'pmgpi' index 438; +function GpiQueryLogColorTable(hps,flOptions : cardinal;lStart,lCount : longint;var alArray : longint) : longint; cdecl; external 'pmgpi' index 593; +function GpiQueryRealColors(hps,flOptions : cardinal;lStart,lCount : longint;var alColors : longint) : longint; cdecl; external 'pmgpi' index 480; +function GpiQueryNearestColor(hps,flOptions : cardinal;lRgbIn : longint) : longint; cdecl; external 'pmgpi' index 469; +function GpiQueryColorIndex(hps,flOptions : cardinal;lRgbColor : longint) : longint; cdecl; external 'pmgpi' index 439; +function GpiQueryRGBColor(hps,flOptions : cardinal;lColorIndex : longint) : longint; cdecl; external 'pmgpi' index 479; +function GpiCreatePalette(hab,flOptions,ulFormat,ulCount : cardinal;var aulTable) : cardinal; cdecl; external 'pmgpi' index 594; +function GpiDeletePalette(hpal : cardinal) : longbool; cdecl; external 'pmgpi' index 577; +function GpiSelectPalette(hps,hpal : cardinal) : cardinal; cdecl; external 'pmgpi' index 578; +function GpiAnimatePalette(hpal,ulFormat,ulStart,ulCount : cardinal;var aulTable) : longint; cdecl; external 'pmgpi' index 595; +function GpiSetPaletteEntries(hpal,ulFormat,ulStart,ulCount : cardinal;var aulTable) : longbool; cdecl; external 'pmgpi' index 596; +function GpiQueryPalette(hps : cardinal) : cardinal; cdecl; external 'pmgpi' index 579; +function GpiQueryPaletteInfo(hpal,hps,flOptions,ulStart,ulCount : cardinal;var aulArray) : longint; cdecl; external 'pmgpi' index 597; +function GpiSetColor(hps : cardinal;lColor : longint) : longbool; cdecl; external 'pmgpi' index 517; +function GpiQueryColor(hps : cardinal) : longint; cdecl; external 'pmgpi' index 437; +function GpiBox(hps : cardinal;lControl : longint;var pptlPoint : POINTL;lHRound,lVRound : longint) : longint; cdecl; external 'pmgpi' index 356; +function GpiMove(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl; external 'pmgpi' index 404; +function GpiLine(hps : cardinal;var pptlEndPoint : POINTL) : longint; cdecl; external 'pmgpi' index 398; +function GpiPolyLine(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl; external 'pmgpi' index 415; +function GpiPolyLineDisjoint(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl; external 'pmgpi' index 558; +function GpiSetPattern(hps : cardinal;lPatternSymbol : longint) : longbool; cdecl; external 'pmgpi' index 541; +function GpiQueryPattern(hps : cardinal) : longint; cdecl; external 'pmgpi' index 473; +function GpiBeginArea(hps,flOptions : cardinal) : longbool; cdecl; external 'pmgpi' index 352; +function GpiEndArea(hps : cardinal) : longint; cdecl; external 'pmgpi' index 385; +function GpiCharString(hps : cardinal;lCount : longint;pchString : pchar) : longint; cdecl; external 'pmgpi' index 358; +function GpiCharStringAt(hps : cardinal;var pptlPoint : POINTL;lCount : longint;pchString : pchar) : longint; cdecl; external 'pmgpi' index 359; +function GpiSetAttrMode(hps : cardinal;lMode : longint) : longbool; cdecl; external 'pmgpi' index 503; +function GpiQueryAttrMode(hps : cardinal) : longint; cdecl; external 'pmgpi' index 423; +function GpiSetAttrs(hps : cardinal;lPrimType : longint;flAttrMask,flDefMask : cardinal;ppbunAttrs : pointer) : longbool; cdecl; external 'pmgpi' index 588; +function GpiQueryAttrs(hps : cardinal;lPrimType : longint;flAttrMask : cardinal;ppbunAttrs : pointer) : longint; cdecl; external 'pmgpi' index 583; +function GpiSetBackColor(hps : cardinal;lColor : longint) : longbool; cdecl; external 'pmgpi' index 504; +function GpiQueryBackColor(hps : cardinal) : longint; cdecl; external 'pmgpi' index 424; +function GpiSetMix(hps : cardinal;lMixMode : longint) : longbool; cdecl; external 'pmgpi' index 537; +function GpiQueryMix(hps : cardinal) : longint; cdecl; external 'pmgpi' index 467; +function GpiSetBackMix(hps : cardinal;lMixMode : longint) : longbool; cdecl; external 'pmgpi' index 505; +function GpiQueryBackMix(hps : cardinal) : longint; cdecl; external 'pmgpi' index 425; +function GpiSetLineType(hps : cardinal;lLineType : longint) : longbool; cdecl; external 'pmgpi' index 530; +function GpiQueryLineType(hps : cardinal) : longint; cdecl; external 'pmgpi' index 459; +function GpiSetLineWidth(hps : cardinal;fxLineWidth : longint) : longbool; cdecl; external 'pmgpi' index 531; +function GpiQueryLineWidth(hps : cardinal) : longint; cdecl; external 'pmgpi' index 460; +function GpiSetLineWidthGeom(hps : cardinal;lLineWidth : longint) : longbool; cdecl; external 'pmgpi' index 532; +function GpiQueryLineWidthGeom(hps : cardinal) : longint; cdecl; external 'pmgpi' index 461; +function GpiSetLineEnd(hps : cardinal;lLineEnd : longint) : longbool; cdecl; external 'pmgpi' index 528; +function GpiQueryLineEnd(hps : cardinal) : longint; cdecl; external 'pmgpi' index 457; +function GpiSetLineJoin(hps : cardinal;lLineJoin : longint) : longbool; cdecl; external 'pmgpi' index 529; +function GpiQueryLineJoin(hps : cardinal) : longint; cdecl; external 'pmgpi' index 458; +function GpiSetCurrentPosition(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl; external 'pmgpi' index 519; +function GpiQueryCurrentPosition(hps : cardinal;var pptlPoint : POINTL) : longbool; cdecl; external 'pmgpi' index 441; +function GpiSetArcParams(hps : cardinal;var parcpArcParams : ARCPARAMS) : longbool; cdecl; external 'pmgpi' index 502; +function GpiQueryArcParams(hps : cardinal;var parcpArcParams : ARCPARAMS) : longbool; cdecl; external 'pmgpi' index 422; +function GpiPointArc(hps : cardinal;var pptl2 : POINTL) : longint; cdecl; external 'pmgpi' index 412; +function GpiFullArc(hps : cardinal;lControl,fxMultiplier : longint) : longint; cdecl; external 'pmgpi' index 393; +function GpiPartialArc(hps : cardinal;var pptlCenter : POINTL;fxMultiplier,fxStartAngle,fxSweepAngle : longint) : longint; cdecl; external 'pmgpi' index 612; +function GpiPolyFillet(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl; external 'pmgpi' index 413; +function GpiPolySpline(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl; external 'pmgpi' index 417; +function GpiPolyFilletSharp(hps : cardinal;lCount : longint;var aptlPoints : POINTL;var afxPoints : longint) : longint; cdecl; external 'pmgpi' index 414; +function GpiSetPatternSet(hps : cardinal;lSet : longint) : longbool; cdecl; external 'pmgpi' index 543; +function GpiQueryPatternSet(hps : cardinal) : longint; cdecl; external 'pmgpi' index 475; +function GpiSetPatternRefPoint(hps : cardinal;var pptlRefPoint : POINTL) : longbool; cdecl; external 'pmgpi' index 542; +function GpiQueryPatternRefPoint(hps : cardinal;var pptlRefPoint : POINTL) : longbool; cdecl; external 'pmgpi' index 474; +function GpiQueryCharStringPos(hps,flOptions : cardinal;lCount : longint;pchString : pchar;var alXincrements : longint;var aptlPositions : POINTL) : longbool; cdecl; external 'pmgpi' index 584; +function GpiQueryCharStringPosAt(hps : cardinal;var pptlStart : POINTL;flOptions : cardinal;lCount : longint;pchString : pchar;var alXincrements : longint;var aptlPositions : POINTL) : longbool; cdecl; external 'pmgpi' index 585; +function GpiQueryTextBox(hps : cardinal;lCount1 : longint;pchString : pchar;lCount2 : longint;var aptlPoints : POINTL) : longbool; cdecl; external 'pmgpi' index 489; +function GpiQueryDefCharBox(hps : cardinal;var psizlSize : SIZEL) : longbool; cdecl; external 'pmgpi' index 442; +function GpiSetCharSet(hps : cardinal;llcid : longint) : longbool; cdecl; external 'pmgpi' index 513; +function GpiQueryCharSet(hps : cardinal) : longint; cdecl; external 'pmgpi' index 433; +function GpiSetCharBox(hps : cardinal;var psizfxBox : SIZEF) : longbool; cdecl; external 'pmgpi' index 510; +function GpiQueryCharBox(hps : cardinal;var psizfxSize : SIZEF) : longbool; cdecl; external 'pmgpi' index 430; +function GpiSetCharAngle(hps : cardinal;var pgradlAngle : GRADIENTL) : longbool; cdecl; external 'pmgpi' index 509; +function GpiQueryCharAngle(hps : cardinal;var pgradlAngle : GRADIENTL) : longbool; cdecl; external 'pmgpi' index 429; +function GpiSetCharShear(hps : cardinal;var pptlAngle : POINTL) : longbool; cdecl; external 'pmgpi' index 514; +function GpiQueryCharShear(hps : cardinal;var pptlShear : POINTL) : longbool; cdecl; external 'pmgpi' index 434; +function GpiSetCharDirection(hps : cardinal;lDirection : longint) : longbool; cdecl; external 'pmgpi' index 511; +function GpiQueryCharDirection(hps : cardinal) : longint; cdecl; external 'pmgpi' index 431; +function GpiSetCharMode(hps : cardinal;lMode : longint) : longbool; cdecl; external 'pmgpi' index 512; +function GpiQueryCharMode(hps : cardinal) : longint; cdecl; external 'pmgpi' index 432; +function GpiSetTextAlignment(hps : cardinal;lHoriz,lVert : longint) : longbool; cdecl; external 'pmgpi' index 649; +function GpiQueryTextAlignment(hps : cardinal;var plHoriz,plVert : longint) : longbool; cdecl; external 'pmgpi' index 648; +function GpiCharStringPos(hps : cardinal;var prclRect : RECTL;flOptions : cardinal;lCount : longint;pchString : pchar;var alAdx : longint) : longint; cdecl; external 'pmgpi' index 580; +function GpiCharStringPosAt(hps : cardinal;var pptlStart : POINTL;var prclRect : RECTL;flOptions : cardinal;lCount : longint;pchString : pchar;var alAdx : longint) : longint; cdecl; external 'pmgpi' index 581; +function GpiSetCharExtra(hps : cardinal;Extra : longint) : longbool; cdecl; external 'pmgpi' index 614; +function GpiSetCharBreakExtra(hps : cardinal;BreakExtra : longint) : longbool; cdecl; external 'pmgpi' index 616; +function GpiQueryCharExtra(hps : cardinal;var Extra : longint) : longbool; cdecl; external 'pmgpi' index 613; +function GpiQueryCharBreakExtra(hps : cardinal;var BreakExtra : longint) : longbool; cdecl; external 'pmgpi' index 615; +function GpiMarker(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl; external 'pmgpi' index 402; +function GpiPolyMarker(hps : cardinal;lCount : longint;var aptlPoints : POINTL) : longint; cdecl; external 'pmgpi' index 416; +function GpiSetMarker(hps : cardinal;lSymbol : longint) : longbool; cdecl; external 'pmgpi' index 533; +function GpiSetMarkerBox(hps : cardinal;var psizfxSize : SIZEF) : longbool; cdecl; external 'pmgpi' index 534; +function GpiSetMarkerSet(hps : cardinal;lSet : longint) : longbool; cdecl; external 'pmgpi' index 535; +function GpiQueryMarker(hps : cardinal) : longint; cdecl; external 'pmgpi' index 462; +function GpiQueryMarkerBox(hps : cardinal;var psizfxSize : SIZEF) : longbool; cdecl; external 'pmgpi' index 463; +function GpiQueryMarkerSet(hps : cardinal) : longint; cdecl; external 'pmgpi' index 464; +function GpiImage(hps : cardinal;lFormat : longint;var psizlImageSize : SIZEL;lLength : longint;var pbData : BYTE) : longint; cdecl; external 'pmgpi' index 395; +function GpiPop(hps : cardinal;lCount : longint) : longbool; cdecl; external 'pmgpi' index 418; +function GpiPtVisible(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl; external 'pmgpi' index 420; +function GpiRectVisible(hps : cardinal;var prclRectangle : RECTL) : longint; cdecl; external 'pmgpi' index 495; +function GpiComment(hps : cardinal;lLength : longint;var pbData : BYTE) : longbool; cdecl; external 'pmgpi' index 363; +function GpiCreateLogFont(hps : cardinal;var pName : STR8;lLcid : longint;var pfatAttrs : FATTRS) : longint; cdecl; external 'pmgpi' index 368; +function GpiDeleteSetId(hps : cardinal;lLcid : longint) : longbool; cdecl; external 'pmgpi' index 378; +function GpiLoadFonts(hab : cardinal;pszFilename : pchar) : longbool; cdecl; external 'pmgpi' index 400; +function GpiUnloadFonts(hab : cardinal;pszFilename : pchar) : longbool; cdecl; external 'pmgpi' index 555; +function GpiQueryFonts(hps,flOptions : cardinal;pszFacename : pchar;var plReqFonts : longint;lMetricsLength : longint;var afmMetrics : FONTMETRICS) : longint; cdecl; external 'pmgpi' index 586; +function GpiQueryFontMetrics(hps : cardinal;lMetricsLength : longint;var pfmMetrics : FONTMETRICS) : longbool; cdecl; external 'pmgpi' index 453; +function GpiQueryKerningPairs(hps : cardinal;lCount : longint;var akrnprData : KERNINGPAIRS) : longint; cdecl; external 'pmgpi' index 456; +function GpiQueryWidthTable(hps : cardinal;lFirstChar,lCount : longint;var alData : longint) : longbool; cdecl; external 'pmgpi' index 492; +function GpiQueryNumberSetIds(hps : cardinal) : longint; cdecl; external 'pmgpi' index 470; +function GpiQuerySetIds(hps : cardinal;lCount : longint;var alTypes : longint;var aNames : STR8;var allcids : longint) : longbool; cdecl; external 'pmgpi' index 486; +function GpiQueryFaceString(PS : cardinal;FamilyName : pchar;var attrs : FACENAMEDESC;length : longint;CompoundFaceName : pchar) : cardinal; cdecl; external 'pmgpi' index 575; +function GpiQueryLogicalFont(PS : cardinal;lcid : longint;var name : STR8;var attrs : FATTRS;length : longint) : longbool; cdecl; external 'pmgpi' index 574; +function GpiQueryFontAction(anchor,options : cardinal) : cardinal; cdecl; external 'pmgpi' index 576; +function GpiLoadPublicFonts(p1 : cardinal;p2 : pchar) : longbool; cdecl; external 'pmgpi' index 622; +function GpiUnloadPublicFonts(p1 : cardinal;p2 : pchar) : longbool; cdecl; external 'pmgpi' index 623; +function GpiSetCp(hps,ulCodePage : cardinal) : longbool; cdecl; external 'pmgpi' index 518; +function GpiQueryCp(hps : cardinal) : cardinal; cdecl; external 'pmgpi' index 440; +function GpiQueryFontFileDescriptions(hab : cardinal;pszFilename : pchar;var plCount : longint;var affdescsNames : FFDESCS) : longint; cdecl; external 'pmgpi' index 452; +function GpiQueryFullFontFileDescs(hab : cardinal;pszFilename : pchar;var plCount : longint;pNames : pointer;var plNamesBuffLength : longint) : longint; cdecl; external 'pmgpi' index 657; +function GpiBitBlt(hpsTarget,hpsSource : cardinal;lCount : longint;var aptlPoints : POINTL;lRop : longint;flOptions : cardinal) : longint; cdecl; external 'pmgpi' index 355; +function GpiDeleteBitmap(hbm : cardinal) : longbool; cdecl; external 'pmgpi' index 371; +function GpiLoadBitmap(hps,Resource,idBitmap:cardinal;lWidth,lHeight : longint) : cardinal; cdecl; external 'pmgpi' index 399; +function GpiSetBitmap(hps,hbm : cardinal) : cardinal; cdecl; external 'pmgpi' index 506; +function GpiWCBitBlt(hpsTarget,hbmSource : cardinal;lCount : longint;var aptlPoints : POINTL;lRop : longint;flOptions : cardinal) : longint; cdecl; external 'pmgpi' index 557; +function GpiCreateBitmap(hps : cardinal;var pbmpNew :Tbitmapinfoheader2;flOptions : cardinal;var pbInitData : BYTE;var pbmiInfoTable :Tbitmapinfo2) : cardinal; cdecl; external 'pmgpi' index 598; +function GpiSetBitmapBits(hps : cardinal;lScanStart,lScans : longint;var pbBuffer : BYTE;var pbmiInfoTable :Tbitmapinfo2) : longint; cdecl; external 'pmgpi' index 602; +function GpiSetBitmapDimension(hbm : cardinal;var psizlBitmapDimension : SIZEL) : longbool; cdecl; external 'pmgpi' index 507; +function GpiSetBitmapId(hps,hbm : cardinal;lLcid : longint) : longbool; cdecl; external 'pmgpi' index 508; +function GpiQueryBitmapBits(hps : cardinal;lScanStart,lScans : longint;var pbBuffer : BYTE;var pbmiInfoTable :Tbitmapinfo2) : longint; cdecl; external 'pmgpi' index 599; +function GpiQueryBitmapDimension(hbm : cardinal;var psizlBitmapDimension : SIZEL) : longbool; cdecl; external 'pmgpi' index 426; +function GpiQueryBitmapHandle(hps : cardinal;lLcid : longint) : cardinal; cdecl; external 'pmgpi' index 427; +function GpiQueryBitmapParameters(hbm : cardinal;var pbmpData :Tbitmapinfoheader) : longbool; cdecl; external 'pmgpi' index 573; +function GpiQueryBitmapInfoHeader(hbm : cardinal;var pbmpData :Tbitmapinfoheader2) : longbool; cdecl; external 'pmgpi' index 601; +function GpiQueryDeviceBitmapFormats(hps : cardinal;lCount : longint;var alArray : longint) : longbool; cdecl; external 'pmgpi' index 445; +function GpiSetPel(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl; external 'pmgpi' index 544; +function GpiQueryPel(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl; external 'pmgpi' index 476; +function GpiFloodFill(hps : cardinal;lOptions,lColor : longint) : longint; cdecl; external 'pmgpi' index 560; +function GpiDrawBits(hps : cardinal;pBits : pointer;var pbmiInfoTable :Tbitmapinfo2;lCount : longint;var aptlPoints : POINTL;lRop : longint;flOptions : cardinal) : longint; cdecl; external 'pmgpi' index 603; +function GpiCombineRegion(hps,hrgnDest,hrgnSrc1,hrgnSrc2 : cardinal;lMode : longint) : longint; cdecl; external 'pmgpi' index 362; +function GpiCreateRegion(hps : cardinal;lCount : longint;var arclRectangles : RECTL) : cardinal; cdecl; external 'pmgpi' index 370; +function GpiDestroyRegion(hps,hrgn : cardinal) : longbool; cdecl; external 'pmgpi' index 611; +function GpiEqualRegion(hps,hrgnSrc1,hrgnSrc2 : cardinal) : longint; cdecl; external 'pmgpi' index 388; +function GpiOffsetRegion(hps,Hrgn : cardinal;var pptlOffset : POINTL) : longbool; cdecl; external 'pmgpi' index 407; +function GpiPaintRegion(hps,hrgn : cardinal) : longint; cdecl; external 'pmgpi' index 409; +function GpiFrameRegion(hps,hrgn : cardinal;var thickness : SIZEL) : longint; cdecl; external 'pmgpi' index 617; +function GpiPtInRegion(hps,hrgn : cardinal;var pptlPoint : POINTL) : longint; cdecl; external 'pmgpi' index 419; +function GpiQueryRegionBox(hps,hrgn : cardinal;var prclBound : RECTL) : longint; cdecl; external 'pmgpi' index 481; +function GpiQueryRegionRects(hps,hrgn : cardinal;var prclBound : RECTL;var prgnrcControl : RGNRECT;var prclRect : RECTL) : longbool; cdecl; external 'pmgpi' index 587; +function GpiRectInRegion(hps,hrgn : cardinal;var prclRect : RECTL) : longint; cdecl; external 'pmgpi' index 494; +function GpiSetRegion(hps,hrgn : cardinal;lcount : longint;var arclRectangles : RECTL) : longbool; cdecl; external 'pmgpi' index 546; +function GpiSetClipRegion(hps,hrgn : cardinal;var phrgnOld : cardinal) : longint; cdecl; external 'pmgpi' index 516; +function GpiQueryClipRegion(hps : cardinal) : cardinal; cdecl; external 'pmgpi' index 436; +function GpiQueryClipBox(hps : cardinal;var prclBound : RECTL) : longint; cdecl; external 'pmgpi' index 435; +function GpiExcludeClipRectangle(hps : cardinal;var prclRectangle : RECTL) : longint; cdecl; external 'pmgpi' index 391; +function GpiIntersectClipRectangle(hps : cardinal;var prclRectangle : RECTL) : longint; cdecl; external 'pmgpi' index 396; +function GpiOffsetClipRegion(hps : cardinal;var pptlPoint : POINTL) : longint; cdecl; external 'pmgpi' index 405; +function GpiCopyMetaFile(hmf : cardinal) : cardinal; cdecl; external 'pmgpi' index 365; +function GpiDeleteMetaFile(hmf : cardinal) : longbool; cdecl; external 'pmgpi' index 375; +function GpiLoadMetaFile(hab : cardinal;pszFilename : pchar) : cardinal; cdecl; external 'pmgpi' index 401; +function GpiPlayMetaFile(hps,hmf : cardinal;lCount1 : longint;var alOptarray,plSegCount : longint;lCount2 : longint;pszDesc : pchar) : longint; cdecl; external 'pmgpi' index 411; +function GpiQueryMetaFileBits(hmf : cardinal;lOffset,lLength : longint;var pbData : BYTE) : longbool; cdecl; external 'pmgpi' index 465; +function GpiQueryMetaFileLength(hmf : cardinal) : longint; cdecl; external 'pmgpi' index 466; +function GpiSaveMetaFile(hmf : cardinal;pszFilename : pchar) : longbool; cdecl; external 'pmgpi' index 500; +function GpiSetMetaFileBits(hmf : cardinal;lOffset,lLength : longint;var pbBuffer : BYTE) : longbool; cdecl; external 'pmgpi' index 536; +function GpiQueryDefArcParams(hps : cardinal;var parcpArcParams : ARCPARAMS) : longbool; cdecl; external 'pmgpi' index 567; +function GpiQueryDefAttrs(hps : cardinal;lPrimType : longint;flAttrMask : cardinal;ppbunAttrs : pointer) : longbool; cdecl; external 'pmgpi' index 590; +function GpiQueryDefTag(hps : cardinal;var plTag : longint) : longbool; cdecl; external 'pmgpi' index 568; +function GpiQueryDefViewingLimits(hps : cardinal;var prclLimits : RECTL) : longbool; cdecl; external 'pmgpi' index 569; +function GpiSetDefArcParams(hps : cardinal;var parcpArcParams : ARCPARAMS) : longbool; cdecl; external 'pmgpi' index 570; +function GpiSetDefAttrs(hps : cardinal;lPrimType : longint;flAttrMask : cardinal;ppbunAttrs : pointer) : longbool; cdecl; external 'pmgpi' index 591; +function GpiSetDefTag(hps : cardinal;lTag : longint) : longbool; cdecl; external 'pmgpi' index 571; +function GpiSetDefViewingLimits(hps : cardinal;var prclLimits : RECTL) : longbool; cdecl; external 'pmgpi' index 572; +function GpiPolygons(hps,ulCount : cardinal;var paplgn : POLYGON;flOptions,flModel : cardinal) : longint; cdecl; external 'pmgpi' index 650; + +end. + +{ + $Log: pmgpi.pas,v $ + Revision 1.6 2005/02/14 17:13:31 peter + * truncate log + +} |