Răsfoiți Sursa

* changes by Ramon Bosque

Tomas Hajny 26 ani în urmă
părinte
comite
395ddade10
8 a modificat fișierele cu 3538 adăugiri și 3390 ștergeri
  1. 99 93
      rtl/os2/pmbitmap.pas
  2. 1209 1204
      rtl/os2/pmgpi.pas
  3. 2100 2093
      rtl/os2/pmwin.pas
  4. 12 0
      rtl/os2/tests/PMDEMO1.DEF
  5. 13 0
      rtl/os2/tests/PMDEMO1.H
  6. 6 0
      rtl/os2/tests/PMDEMO1.MAK
  7. 75 0
      rtl/os2/tests/PMDEMO1.PP
  8. 24 0
      rtl/os2/tests/PMDEMO1.RC

+ 99 - 93
rtl/os2/pmbitmap.pas

@@ -1,24 +1,23 @@
 {****************************************************************************
 {****************************************************************************
 
 
-                   Copyright (c) 1993,94 by Florian Kl„mpfl
+    $Id$
+
+                   Copyright (c) 1993,94,99 by FK, RB
                   
                   
  ****************************************************************************}
  ****************************************************************************}
 unit pmbitmap;
 unit pmbitmap;
 
 
   interface
   interface
-  
-    uses
-       os2def;
 
 
 {$PACKRECORDS 1}
 {$PACKRECORDS 1}
 
 
     type
     type
        BITMAPINFOHEADER = record
        BITMAPINFOHEADER = record
-          cbFix : ULONG;
-          cx : USHORT;
-          cy : USHORT;
-          cPlanes : USHORT;
-          cBitCount : USHORT;
+          cbFix : cardinal;
+          cx : word;
+          cy : word;
+          cPlanes : word;
+          cBitCount : word;
        end;
        end;
 
 
        PBITMAPINFOHEADER = ^BITMAPINFOHEADER;
        PBITMAPINFOHEADER = ^BITMAPINFOHEADER;
@@ -30,56 +29,36 @@ unit pmbitmap;
        end;
        end;
 
 
        BITMAPINFO = record
        BITMAPINFO = record
-          cbFix : ULONG;
-          cx : USHORT;
-          cy : USHORT;
-          cPlanes : USHORT;
-          cBitCount : USHORT;
+          cbFix : cardinal;
+          cx : word;
+          cy : word;
+          cPlanes : word;
+          cBitCount : word;
           argbColor : array[0..1-1] of RGB;
           argbColor : array[0..1-1] of RGB;
        end;
        end;
 
 
        PBITMAPINFO = ^BITMAPINFO;
        PBITMAPINFO = ^BITMAPINFO;
 
 
-    const
-       CBD_COMPRESSION = 1;
-       CBD_DECOMPRESSION = 2;
-       CBD_BITS = 0;
-       CBD_COLOR_CONVERSION = $00000001;
-       BCA_UNCOMP = 0;
-       BCA_HUFFMAN1D = 3;
-       BCA_RLE4 = 2;
-       BCA_RLE8 = 1;
-       BCA_RLE24 = 4;
-       BRU_METRIC = 0;
-       BRA_BOTTOMUP = 0;
-       BRH_NOTHALFTONED = 0;
-       BRH_ERRORDIFFUSION = 1;
-       BRH_PANDA = 2;
-       BRH_SUPERCIRCLE = 3;
-       BCE_PALETTE = (-1);
-       BCE_RGB = 0;
-
-    type
        BITMAPINFOHEADER2 = record
        BITMAPINFOHEADER2 = record
-          cbFix : ULONG;
-          cx : ULONG;
-          cy : ULONG;
-          cPlanes : USHORT;
-          cBitCount : USHORT;
-          ulCompression : ULONG;
-          cbImage : ULONG;
-          cxResolution : ULONG;
-          cyResolution : ULONG;
-          cclrUsed : ULONG;
-          cclrImportant : ULONG;
-          usUnits : USHORT;
-          usReserved : USHORT;
-          usRecording : USHORT;
-          usRendering : USHORT;
-          cSize1 : ULONG;
-          cSize2 : ULONG;
-          ulColorEncoding : ULONG;
-          ulIdentifier : ULONG;
+          cbFix : cardinal;
+          cx : cardinal;
+          cy : cardinal;
+          cPlanes : word;
+          cBitCount : word;
+          ulCompression : cardinal;
+          cbImage : cardinal;
+          cxResolution : cardinal;
+          cyResolution : cardinal;
+          cclrUsed : cardinal;
+          cclrImportant : cardinal;
+          usUnits : word;
+          usReserved : word;
+          usRecording : word;
+          usRendering : word;
+          cSize1 : cardinal;
+          cSize2 : cardinal;
+          ulColorEncoding : cardinal;
+          ulIdentifier : cardinal;
        end;
        end;
 
 
        PBITMAPINFOHEADER2 = ^BITMAPINFOHEADER2;
        PBITMAPINFOHEADER2 = ^BITMAPINFOHEADER2;
@@ -94,83 +73,110 @@ unit pmbitmap;
        PRGB2 = ^RGB2;
        PRGB2 = ^RGB2;
 
 
        BITMAPINFO2 = record
        BITMAPINFO2 = record
-          cbFix : ULONG;
-          cx : ULONG;
-          cy : ULONG;
-          cPlanes : USHORT;
-          cBitCount : USHORT;
-          ulCompression : ULONG;
-          cbImage : ULONG;
-          cxResolution : ULONG;
-          cyResolution : ULONG;
-          cclrUsed : ULONG;
-          cclrImportant : ULONG;
-          usUnits : USHORT;
-          usReserved : USHORT;
-          usRecording : USHORT;
-          usRendering : USHORT;
-          cSize1 : ULONG;
-          cSize2 : ULONG;
-          ulColorEncoding : ULONG;
-          ulIdentifier : ULONG;
+          cbFix : cardinal;
+          cx : cardinal;
+          cy : cardinal;
+          cPlanes : word;
+          cBitCount : word;
+          ulCompression : cardinal;
+          cbImage : cardinal;
+          cxResolution : cardinal;
+          cyResolution : cardinal;
+          cclrUsed : cardinal;
+          cclrImportant : cardinal;
+          usUnits : word;
+          usReserved : word;
+          usRecording : word;
+          usRendering : word;
+          cSize1 : cardinal;
+          cSize2 : cardinal;
+          ulColorEncoding : cardinal;
+          ulIdentifier : cardinal;
           argbColor : array[0..1-1] of RGB2;
           argbColor : array[0..1-1] of RGB2;
        end;
        end;
 
 
        PBITMAPINFO2 = ^BITMAPINFO2;
        PBITMAPINFO2 = ^BITMAPINFO2;
 
 
        BITMAPFILEHEADER = record
        BITMAPFILEHEADER = record
-          usType : USHORT;
-          cbSize : ULONG;
-          xHotspot : SHORT;
-          yHotspot : SHORT;
-          offBits : ULONG;
+          usType : word;
+          cbSize : cardinal;
+          xHotspot : integer;
+          yHotspot : integer;
+          offBits : cardinal;
           bmp : BITMAPINFOHEADER;
           bmp : BITMAPINFOHEADER;
        end;
        end;
 
 
        PBITMAPFILEHEADER = ^BITMAPFILEHEADER;
        PBITMAPFILEHEADER = ^BITMAPFILEHEADER;
 
 
        BITMAPARRAYFILEHEADER = record
        BITMAPARRAYFILEHEADER = record
-          usType : USHORT;
-          cbSize : ULONG;
-          offNext : ULONG;
-          cxDisplay : USHORT;
-          cyDisplay : USHORT;
+          usType : word;
+          cbSize : cardinal;
+          offNext : cardinal;
+          cxDisplay : word;
+          cyDisplay : word;
           bfh : BITMAPFILEHEADER;
           bfh : BITMAPFILEHEADER;
        end;
        end;
 
 
        PBITMAPARRAYFILEHEADER = ^BITMAPARRAYFILEHEADER;
        PBITMAPARRAYFILEHEADER = ^BITMAPARRAYFILEHEADER;
 
 
        BITMAPFILEHEADER2 = record
        BITMAPFILEHEADER2 = record
-          usType : USHORT;
-          cbSize : ULONG;
-          xHotspot : SHORT;
-          yHotspot : SHORT;
-          offBits : ULONG;
+          usType : word;
+          cbSize : cardinal;
+          xHotspot : integer;
+          yHotspot : integer;
+          offBits : cardinal;
           bmp2 : BITMAPINFOHEADER2;
           bmp2 : BITMAPINFOHEADER2;
        end;
        end;
 
 
        PBITMAPFILEHEADER2 = ^BITMAPFILEHEADER2;
        PBITMAPFILEHEADER2 = ^BITMAPFILEHEADER2;
 
 
        BITMAPARRAYFILEHEADER2 = record
        BITMAPARRAYFILEHEADER2 = record
-          usType : USHORT;
-          cbSize : ULONG;
-          offNext : ULONG;
-          cxDisplay : USHORT;
-          cyDisplay : USHORT;
+          usType : word;
+          cbSize : cardinal;
+          offNext : cardinal;
+          cxDisplay : word;
+          cyDisplay : word;
           bfh2 : BITMAPFILEHEADER2;
           bfh2 : BITMAPFILEHEADER2;
        end;
        end;
 
 
        PBITMAPARRAYFILEHEADER2 = ^BITMAPARRAYFILEHEADER2;
        PBITMAPARRAYFILEHEADER2 = ^BITMAPARRAYFILEHEADER2;
 
 
+{$PACKRECORDS NORMAL}
+
+
     const
     const
+       CBD_COMPRESSION = 1;
+       CBD_DECOMPRESSION = 2;
+       CBD_BITS = 0;
+       CBD_COLOR_CONVERSION = $00000001;
+       BCA_UNCOMP = 0;
+       BCA_HUFFMAN1D = 3;
+       BCA_RLE4 = 2;
+       BCA_RLE8 = 1;
+       BCA_RLE24 = 4;
+       BRU_METRIC = 0;
+       BRA_BOTTOMUP = 0;
+       BRH_NOTHALFTONED = 0;
+       BRH_ERRORDIFFUSION = 1;
+       BRH_PANDA = 2;
+       BRH_SUPERCIRCLE = 3;
+       BCE_PALETTE = (-1);
+       BCE_RGB = 0;
+
        BFT_ICON = $4349;
        BFT_ICON = $4349;
        BFT_BMAP = $4d42;
        BFT_BMAP = $4d42;
        BFT_POINTER = $5450;
        BFT_POINTER = $5450;
        BFT_COLORICON = $4943;
        BFT_COLORICON = $4943;
        BFT_COLORPOINTER = $5043;
        BFT_COLORPOINTER = $5043;
        BFT_BITMAPARRAY = $4142;
        BFT_BITMAPARRAY = $4142;
-{$PACKRECORDS NORMAL}
+
 
 
   implementation
   implementation
 
 
 end.
 end.
+{
+  $Log$
+  Revision 1.3  1999-06-02 16:01:31  hajny
+    * changes by Ramon Bosque
+
+}

+ 1209 - 1204
rtl/os2/pmgpi.pas

@@ -1,1204 +1,1209 @@
-{****************************************************************************
-
-                   Copyright (c) 1993,94 by Florian Kl„mpfl
-                  
- ****************************************************************************}
-unit pmgpi;
-
-  interface
-  
-    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 : longint;
-          cy : longint;
-       end;             
-       PSIZEL = ^SIZEL;
-
-       MATRIXLF = record
-          fxM11 : longint;
-          fxM12 : longint;
-          lM13 : longint;
-          fxM21 : longint;
-          fxM22 : longint;
-          lM23 : longint;
-          lM31 : longint;
-          lM32 : longint;
-          lM33 : longint;
-       end;
-
-       PMATRIXLF = ^MATRIXLF;
-
-       ARCPARAMS = record
-          lP : longint;
-          lQ : longint;
-          lR : longint;
-          lS : longint;
-       end;
-
-       PARCPARAMS = ^ARCPARAMS;
-
-       SIZEF = record
-          cx : longint;
-          cy : longint;
-       end;
-
-       PSIZEF = ^SIZEF;
-
-       GRADIENTL = record
-          x : longint;
-          y : longint;
-       end;
-
-       PGRADIENTL = ^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;
-
-       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;
-
-       MARKERBUNDLE = record
-          lColor : longint;
-          lBackColor : longint;
-          usMixMode : word;
-          usBackMixMode : word;
-          usSet : word;
-          usSymbol : word;
-          sizfxCell : SIZEF;
-       end;
-
-       PMARKERBUNDLE = ^MARKERBUNDLE;
-
-       AREABUNDLE = record
-          lColor : longint;
-          lBackColor : longint;
-          usMixMode : word;
-          usBackMixMode : word;
-          usSet : word;
-          usSymbol : word;
-          ptlRefPoint : POINTL;
-       end;
-
-       PAREABUNDLE = ^AREABUNDLE;
-
-       IMAGEBUNDLE = record
-          lColor : longint;
-          lBackColor : longint;
-          usMixMode : word;
-          usBackMixMode : word;
-       end;
-
-       PIMAGEBUNDLE = ^IMAGEBUNDLE;
-
-       KERNINGPAIRS = record
-          sFirstChar : integer;
-          sSecondChar : integer;
-          lKerningAmount : longint;
-       end;
-
-       PKERNINGPAIRS = ^KERNINGPAIRS;
-
-       FACENAMEDESC = record
-          usSize : word;
-          usWeightClass : word;
-          usWidthClass : word;
-          usReserved : word;
-          flOptions : cardinal;
-       end;
-
-       PFACENAMEDESC = ^FACENAMEDESC;
-
-       FFDESCS = array[0..1,0..FACESIZE-1] of char;
-    
-       PFFDESCS = ^FFDESCS;
-
-       FFDESCS2 = record
-          cbLength : cardinal;
-          cbFacenameOffset : cardinal;
-          abFamilyName : array[0..1-1] of BYTE;
-       end;
-
-       PFFDESCS2 = ^FFDESCS2;
-
-       RGNRECT = record
-          ircStart : cardinal;
-          crc : cardinal;
-          crcReturned : cardinal;
-          ulDirection : cardinal;
-       end;
-
-       PRGNRECT = ^RGNRECT;
-       
-          POLYGON = record
-          ulPoints : cardinal;
-          aPointl : PPOINTL;
-       end;
-
-       PPOLYGON = ^POLYGON;
-
-       POLYSET = record
-          ulPolys : cardinal;
-          aPolygon : array[0..1-1] of POLYGON;
-       end;
-
-       PPOLYSET = ^POLYSET;
-       
-    function GpiCreatePS(hab,hdc : cardinal;psizlSize : PSIZEL;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;psizlsize : PSIZEL;flOptions : cardinal) : longbool;cdecl;      
-    function GpiQueryPS(hps : cardinal;psizlSize : PSIZEL) : cardinal;cdecl;                 
-    function GpiErrorSegmentData(hps : cardinal;plSegment,plContext : plongint) : 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;pptlPick : PPOINTL;lMaxHits,lMaxDepth : longint;pl2 : plongint) : longint;cdecl;     
-    function GpiQueryTag(hps : cardinal;plTag : plongint) : longbool;cdecl;             
-    function GpiSetTag(hps : cardinal;lTag : longint) : longbool;cdecl;                 
-    function GpiQueryPickApertureSize(hps : cardinal;psizlSize : PSIZEL) : longbool; cdecl;                       
-    function GpiSetPickApertureSize(hps : cardinal;lOptions : longint;psizlSize : PSIZEL) : longbool; cdecl;         
-    function GpiQueryPickAperturePosition(hps : cardinal;pptlPoint : PPOINTL) : longbool; cdecl;                  
-    function GpiSetPickAperturePosition(hps : cardinal;pptlPick : PPOINTL) : longbool; cdecl;                     
-    function GpiQueryBoundaryData(hps : cardinal;prclBoundary : PRECTL) : longbool; cdecl;                        
-    function GpiResetBoundaryData(hps : cardinal) : longbool; cdecl;                                              
-    function GpiCorrelateFrom(hps : cardinal;lFirstSegment,lLastSegment,lType : longint;pptlPick : PPOINTL;lMaxHits,lMaxDepth : longint;plSegTag : plongint) : longint; cdecl;                
-    function GpiCorrelateSegment(hps : cardinal;lSegment,lType : longint;pptlPick : PPOINTL;lMaxHits,lMaxDepth : longint;alSegTag : plongint) : 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;alSegids : plongint) : longint; cdecl;        
-    function GpiGetData(hps : cardinal;lSegid : longint;plOffset : plongint;lFormat,lLength : longint;pbData : PBYTE) : longint; cdecl;        
-    function GpiPutData(hps : cardinal;lFormat : longint;plCount : plongint;pbData : PBYTE) : 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;pbData : PBYTE) : longint; cdecl;  
-    function GpiQueryElement(hps : cardinal;lOff,lMaxLength : longint;pbData : PBYTE) : 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;plType : plongint;lLength : longint;pszData : pchar) : longint; cdecl;
-    function GpiSetElementPointerAtLabel(hps : cardinal;lLabel : longint) : longbool; cdecl;
-    function GpiQuerySegmentTransformMatrix(hps : cardinal;lSegid,lCount : longint;pmatlfArray : PMATRIXLF) : longbool; cdecl;  
-    function GpiSetSegmentTransformMatrix(hps : cardinal;lSegid,lCount : longint;pmatlfarray : PMATRIXLF;lOptions : longint) : longbool; cdecl;        
-    function GpiConvert(hps : cardinal;lSrc,lTarg,lCount : longint;aptlPoints : PPOINTL) : longbool; cdecl;                                  
-    function GpiConvertWithMatrix(hps : cardinal;lCountp : longint;aptlPoints : PPOINTL;lCount : longint;pmatlfArray : PMATRIXLF) : longbool; cdecl;          
-    function GpiQueryModelTransformMatrix(hps : cardinal;lCount : longint;pmatlfArray : PMATRIXLF) : longbool; cdecl;                                      
-    function GpiSetModelTransformMatrix(hps : cardinal;lCount : longint;pmatlfArray : PMATRIXLF;lOptions : longint) : longbool; cdecl;                        
-    function GpiCallSegmentMatrix(hps : cardinal;lSegment,lCount : longint;pmatlfArray : PMATRIXLF;lOptions : longint) : longint; cdecl;              
-    function GpiQueryDefaultViewMatrix(hps : cardinal;lCount : longint;pmatlfArray : PMATRIXLF) : longbool; cdecl;                                         
-    function GpiSetDefaultViewMatrix(hps : cardinal;lCount : longint;pmatlfarray : PMATRIXLF;lOptions : longint) : longbool; cdecl;                           
-    function GpiQueryPageViewport(hps : cardinal;prclViewport : PRECTL) : longbool; cdecl;
-    function GpiSetPageViewport(hps : cardinal;prclViewport : PRECTL) : longbool; cdecl;  
-    function GpiQueryViewingTransformMatrix(hps : cardinal;lCount : longint;pmatlfArray : PMATRIXLF) : longbool; cdecl; 
-    function GpiSetViewingTransformMatrix(hps : cardinal;lCount : longint;pmatlfArray : PMATRIXLF;lOptions : longint) : longbool; cdecl;   
-    function GpiTranslate(hps : cardinal;pmatrixlf : PMATRIXLF;long : longint;ppointl : PPOINTL) : longbool; cdecl;                     
-    function GpiScale(hps : cardinal;p1 : PMATRIXLF;p2 : longint;p3 : plongint;p4 : PPOINTL) : longbool; cdecl;                           
-    function GpiRotate(p1 : cardinal;p2 : PMATRIXLF;p3,p4 : longint;p5 : PPOINTL) : longbool; cdecl;                            
-    function GpiSetGraphicsField(hps : cardinal;prclField : PRECTL) : longbool; cdecl;                                               
-    function GpiQueryGraphicsField(hps : cardinal;prclField : PRECTL) : longbool; cdecl;                                             
-    function GpiSetViewingLimits(hps : cardinal;prclLimits : PRECTL) : longbool; cdecl;                                              
-    function GpiQueryViewingLimits(hps : cardinal;prclLimits : PRECTL) : 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;alTable : plongint) : longbool; cdecl; 
-    function GpiQueryColorData(hps : cardinal;lCount : longint;alArray : plongint) : longbool; cdecl;                                                     
-    function GpiQueryLogColorTable(hps,flOptions : cardinal;lStart,lCount : longint;alArray : plongint) : longint; cdecl;                 
-    function GpiQueryRealColors(hps,flOptions : cardinal;lStart,lCount : longint;alColors : plongint) : 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;aulTable : pcardinal) : cardinal; cdecl;      
-    function GpiDeletePalette(hpal : cardinal) : longbool; cdecl;                                                                         
-    function GpiSelectPalette(hps,hpal : cardinal) : cardinal; cdecl;                                                               
-    function GpiAnimatePalette(hpal,ulFormat,ulStart,ulCount : cardinal;aulTable : pcardinal) : longint; cdecl;     
-    function GpiSetPaletteEntries(hpal,ulFormat,ulStart,ulCount : cardinal;aulTable : pcardinal) : longbool; cdecl;  
-    function GpiQueryPalette(hps : cardinal) : cardinal; cdecl;        
-    function GpiQueryPaletteInfo(hpal,hps,flOptions,ulStart,ulCount : cardinal;aulArray : pcardinal) : longint; cdecl;
-    function GpiSetColor(hps : cardinal;lColor : longint) : longbool; cdecl;  
-    function GpiQueryColor(hps : cardinal) : longint; cdecl;              
-    function GpiBox(hps : cardinal;lControl : longint;pptlPoint : PPOINTL;lHRound,lVRound : longint) : longint; cdecl;
-    function GpiMove(hps : cardinal;pptlPoint : PPOINTL) : longbool; cdecl;                                             
-    function GpiLine(hps : cardinal;pptlEndPoint : PPOINTL) : longint; cdecl;                                          
-    function GpiPolyLine(hps : cardinal;lCount : longint;aptlPoints : PPOINTL) : longint; cdecl;                          
-    function GpiPolyLineDisjoint(hps : cardinal;lCount : longint;aptlPoints : PPOINTL) : 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 : pshortint) : longint; cdecl;                             
-    function GpiCharStringAt(hps : cardinal;pptlPoint : PPOINTL;lCount : longint;pchString : pshortint) : 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;pptlPoint : PPOINTL) : longbool; cdecl; 
-    function GpiQueryCurrentPosition(hps : cardinal;pptlPoint : PPOINTL) : longbool; cdecl;
-    function GpiSetArcParams(hps : cardinal;parcpArcParams : PARCPARAMS) : longbool; cdecl;
-    function GpiQueryArcParams(hps : cardinal;parcpArcParams : PARCPARAMS) : longbool; cdecl; 
-    function GpiPointArc(hps : cardinal;pptl2 : PPOINTL) : longint; cdecl;                   
-    function GpiFullArc(hps : cardinal;lControl,fxMultiplier : longint) : longint; cdecl;  
-    function GpiPartialArc(hps : cardinal;pptlCenter : PPOINTL;fxMultiplier,fxStartAngle,fxSweepAngle : longint) : longint; cdecl;
-    function GpiPolyFillet(hps : cardinal;lCount : longint;aptlPoints : PPOINTL) : longint; cdecl;                                                 
-    function GpiPolySpline(hps : cardinal;lCount : longint;aptlPoints : PPOINTL) : longint; cdecl;                                                 
-    function GpiPolyFilletSharp(hps : cardinal;lCount : longint;aptlPoints : PPOINTL;afxPoints : plongint) : longint; cdecl;                         
-    function GpiSetPatternSet(hps : cardinal;lSet : longint) : longbool; cdecl;   
-    function GpiQueryPatternSet(hps : cardinal) : longint; cdecl;             
-    function GpiSetPatternRefPoint(hps : cardinal;pptlRefPoint : PPOINTL) : longbool; cdecl;   
-    function GpiQueryPatternRefPoint(hps : cardinal;pptlRefPoint : PPOINTL) : longbool; cdecl; 
-    function GpiQueryCharStringPos(hps,flOptions : cardinal;lCount : longint;pchString : pshortint;alXincrements : plongint;aptlPositions : PPOINTL) : longbool; cdecl;     
-    function GpiQueryCharStringPosAt(hps : cardinal;pptlStart : PPOINTL;flOptions : cardinal;lCount : longint;pchString : pshortint;alXincrements : plongint;aptlPositions : PPOINTL) : longbool; cdecl; 
-    function GpiQueryTextBox(hps : cardinal;lCount1 : longint;pchString : pshortint;lCount2 : longint;aptlPoints : PPOINTL) : longbool; cdecl;                                                        
-    function GpiQueryDefCharBox(hps : cardinal;psizlSize : PSIZEL) : longbool; cdecl;                                                                                                     
-    function GpiSetCharSet(hps : cardinal;llcid : longint) : longbool; cdecl;                                                                                                                
-    function GpiQueryCharSet(hps : cardinal) : longint; cdecl;                                    
-    function GpiSetCharBox(hps : cardinal;psizfxBox : PSIZEF) : longbool; cdecl;                   
-    function GpiQueryCharBox(hps : cardinal;psizfxSize : PSIZEF) : longbool; cdecl;                
-    function GpiSetCharAngle(hps : cardinal;pgradlAngle : PGRADIENTL) : longbool; cdecl;           
-    function GpiQueryCharAngle(hps : cardinal;pgradlAngle : PGRADIENTL) : longbool; cdecl;         
-    function GpiSetCharShear(hps : cardinal;pptlAngle : PPOINTL) : longbool; cdecl;                
-    function GpiQueryCharShear(hps : cardinal;pptlShear : PPOINTL) : 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;plHoriz,plVert : plongint) : longbool; cdecl; 
-    function GpiCharStringPos(hps : cardinal;prclRect : PRECTL;flOptions : cardinal;lCount : longint;pchString : pshortint;alAdx : plongint) : longint; cdecl;      
-    function GpiCharStringPosAt(hps : cardinal;pptlStart : PPOINTL;prclRect : PRECTL;flOptions : cardinal;lCount : longint;pchString : pshortint;alAdx : plongint) : longint; cdecl;       
-    function GpiSetCharExtra(hps : cardinal;Extra : longint) : longbool;  cdecl;                 
-    function GpiSetCharBreakExtra(hps : cardinal;BreakExtra : longint) : longbool; cdecl;        
-    function GpiQueryCharExtra(hps : cardinal;Extra : plongint) : longbool; cdecl;               
-    function GpiQueryCharBreakExtra(hps : cardinal;BreakExtra : plongint) : longbool; cdecl;     
-    function GpiMarker(hps : cardinal;pptlPoint : PPOINTL) : longint; cdecl;                  
-    function GpiPolyMarker(hps : cardinal;lCount : longint;aptlPoints : PPOINTL) : longint; cdecl;
-    function GpiSetMarker(hps : cardinal;lSymbol : longint) : longbool; cdecl;                     
-    function GpiSetMarkerBox(hps : cardinal;psizfxSize : PSIZEF) : longbool; cdecl;             
-    function GpiSetMarkerSet(hps : cardinal;lSet : longint) : longbool; cdecl;                     
-    function GpiQueryMarker(hps : cardinal) : longint; cdecl;                                  
-    function GpiQueryMarkerBox(hps : cardinal;psizfxSize : PSIZEF) : longbool; cdecl;           
-    function GpiQueryMarkerSet(hps : cardinal) : longint; cdecl;                               
-    function GpiImage(hps : cardinal;lFormat : longint;psizlImageSize : PSIZEL;lLength : longint;pbData : PBYTE) : longint; cdecl;     
-    function GpiPop(hps : cardinal;lCount : longint) : longbool; cdecl;                                                              
-    function GpiPtVisible(hps : cardinal;pptlPoint : PPOINTL) : longint; cdecl;                                                  
-    function GpiRectVisible(hps : cardinal;prclRectangle : PRECTL) : longint; cdecl;                                             
-    function GpiComment(hps : cardinal;lLength : longint;pbData : PBYTE) : longbool; cdecl;
-    function GpiCreateLogFont(hps : cardinal;pName : PSTR8;lLcid : longint;pfatAttrs : PFATTRS) : 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;plReqFonts : plongint;lMetricsLength : longint;afmMetrics : PFONTMETRICS) : longint; cdecl;        
-    function GpiQueryFontMetrics(hps : cardinal;lMetricsLength : longint;pfmMetrics : PFONTMETRICS) : longbool; cdecl;                                                         
-    function GpiQueryKerningPairs(hps : cardinal;lCount : longint;akrnprData : PKERNINGPAIRS) : longint; cdecl;                                                               
-    function GpiQueryWidthTable(hps : cardinal;lFirstChar,lCount : longint;alData : plongint) : longbool; cdecl;                                                           
-    function GpiQueryNumberSetIds(hps : cardinal) : longint; cdecl;     
-    function GpiQuerySetIds(hps : cardinal;lCount : longint;alTypes : plongint;aNames : PSTR8;allcids : plongint) : longbool; cdecl;  
-    function GpiQueryFaceString(PS : cardinal;FamilyName : pchar;attrs : PFACENAMEDESC;length : longint;CompoundFaceName : pchar) : cardinal; cdecl;
-    function GpiQueryLogicalFont(PS : cardinal;lcid : longint;name : PSTR8;attrs : PFATTRS;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;plCount : plongint;affdescsNames : PFFDESCS) : longint;  cdecl; 
-    function GpiQueryFullFontFileDescs(hab : cardinal;pszFilename : pchar;plCount : plongint;pNames : pointer;plNamesBuffLength : plongint) : longint; cdecl;  
-    function GpiBitBlt(hpsTarget,hpsSource : cardinal;lCount : longint;aptlPoints : PPOINTL;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;aptlPoints : PPOINTL;lRop : longint;flOptions : cardinal) : longint; cdecl;
-    function GpiCreateBitmap(hps : cardinal;pbmpNew : PBITMAPINFOHEADER2;flOptions : cardinal;pbInitData : PBYTE;pbmiInfoTable : PBITMAPINFO2) : cardinal; cdecl;
-    function GpiSetBitmapBits(hps : cardinal;lScanStart,lScans : longint;pbBuffer : PBYTE;pbmiInfoTable : PBITMAPINFO2) : longint; cdecl;                   
-    function GpiSetBitmapDimension(hbm : cardinal;psizlBitmapDimension : PSIZEL) : longbool; cdecl;                                                          
-    function GpiSetBitmapId(hps,hbm : cardinal;lLcid : longint) : longbool; cdecl;                                                                        
-    function GpiQueryBitmapBits(hps : cardinal;lScanStart,lScans : longint;pbBuffer : PBYTE;pbmiInfoTable : PBITMAPINFO2) : longint; cdecl;                 
-    function GpiQueryBitmapDimension(hbm : cardinal;psizlBitmapDimension : PSIZEL) : longbool; cdecl;                                                        
-    function GpiQueryBitmapHandle(hps : cardinal;lLcid : longint) : cardinal;  cdecl;                                                                            
-    function GpiQueryBitmapParameters(hbm : cardinal;pbmpData : PBITMAPINFOHEADER) : longbool; cdecl;                                                        
-    function GpiQueryBitmapInfoHeader(hbm : cardinal;pbmpData : PBITMAPINFOHEADER2) : longbool; cdecl;                                                       
-    function GpiQueryDeviceBitmapFormats(hps : cardinal;lCount : longint;alArray : plongint) : longbool; cdecl;                                                        
-    function GpiSetPel(hps : cardinal;pptlPoint : PPOINTL) : longint; cdecl;                                                                                    
-    function GpiQueryPel(hps : cardinal;pptlPoint : PPOINTL) : longint; cdecl;                                                                                  
-    function GpiFloodFill(hps : cardinal;lOptions,lColor : longint) : longint; cdecl;                                                                       
-    function GpiDrawBits(hps : cardinal;pBits : pointer;pbmiInfoTable : PBITMAPINFO2;lCount : longint;aptlPoints : PPOINTL;lRop : longint;flOptions : cardinal) : longint; cdecl; 
-    function GpiCombineRegion(hps,hrgnDest,hrgnSrc1,hrgnSrc2 : cardinal;lMode : longint) : longint;  cdecl;
-    function GpiCreateRegion(hps : cardinal;lCount : longint;arclRectangles : PRECTL) : cardinal;  cdecl;                        
-    function GpiDestroyRegion(hps,hrgn : cardinal) : longbool;  cdecl;                                                 
-    function GpiEqualRegion(hps,hrgnSrc1,hrgnSrc2 : cardinal) : longint; cdecl;                                
-    function GpiOffsetRegion(hps,Hrgn : cardinal;pptlOffset : PPOINTL) : longbool; cdecl;                              
-    function GpiPaintRegion(hps,hrgn : cardinal) : longint; cdecl;                                                    
-    function GpiFrameRegion(hps,hrgn : cardinal;thickness : PSIZEL) : longint; cdecl;                                 
-    function GpiPtInRegion(hps,hrgn : cardinal;pptlPoint : PPOINTL) : longint; cdecl;                                 
-    function GpiQueryRegionBox(hps,hrgn : cardinal;prclBound : PRECTL) : longint; cdecl;                              
-    function GpiQueryRegionRects(hps,hrgn : cardinal;prclBound : PRECTL;prgnrcControl : PRGNRECT;prclRect : PRECTL) : longbool; cdecl;     
-    function GpiRectInRegion(hps,hrgn : cardinal;prclRect : PRECTL) : longint; cdecl;                                                     
-    function GpiSetRegion(hps,hrgn : cardinal;lcount : longint;arclRectangles : PRECTL) : longbool;cdecl;  
-    function GpiSetClipRegion(hps,hrgn : cardinal;phrgnOld : pcardinal) : longint; cdecl;                  
-    function GpiQueryClipRegion(hps : cardinal) : cardinal;  cdecl;                                            
-    function GpiQueryClipBox(hps : cardinal;prclBound : PRECTL) : longint; cdecl;                             
-    function GpiExcludeClipRectangle(hps : cardinal;prclRectangle : PRECTL) : longint; cdecl;                 
-    function GpiIntersectClipRectangle(hps : cardinal;prclRectangle : PRECTL) : longint; cdecl;               
-    function GpiOffsetClipRegion(hps : cardinal;pptlPoint : PPOINTL) : 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;alOptarray,plSegCount : plongint;lCount2 : longint;pszDesc : pchar) : longint;  cdecl;  
-    function GpiQueryMetaFileBits(hmf : cardinal;lOffset,lLength : longint;pbData : PBYTE) : longbool;  cdecl;                                            
-    function GpiQueryMetaFileLength(hmf : cardinal) : longint;  cdecl;                                                                                       
-    function GpiSaveMetaFile(hmf : cardinal;pszFilename : pchar) : longbool; cdecl;                                                                             
-    function GpiSetMetaFileBits(hmf : cardinal;lOffset,lLength : longint;pbBuffer : PBYTE) : longbool; cdecl;                                             
-    function GpiQueryDefArcParams(hps : cardinal;parcpArcParams : PARCPARAMS) : longbool; cdecl;                                                              
-    function GpiQueryDefAttrs(hps : cardinal;lPrimType : longint;flAttrMask : cardinal;ppbunAttrs : pointer) : longbool; cdecl;                                     
-    function GpiQueryDefTag(hps : cardinal;plTag : plongint) : longbool; cdecl;                                                                                  
-    function GpiQueryDefViewingLimits(hps : cardinal;prclLimits : PRECTL) : longbool; cdecl;                                                                  
-    function GpiSetDefArcParams(hps : cardinal;parcpArcParams : PARCPARAMS) : 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;prclLimits : PRECTL) : longbool; cdecl;                                          
-    function GpiPolygons(hps,ulCount : cardinal;paplgn : PPOLYGON;flOptions,flModel : cardinal) : longint; cdecl;
-
-  implementation
-
-    function GpiCreatePS(hab,hdc : cardinal;psizlSize : PSIZEL;flOptions : cardinal) : cardinal;cdecl;external;
-    function GpiDestroyPS(hps : cardinal) : longbool;cdecl;external;
-    function GpiAssociate(hps,hdc : cardinal) : longbool;cdecl;external;
-    function GpiRestorePS(hps : cardinal;lPSid : longint) : longbool;cdecl;external;
-    function GpiSavePS(hps : cardinal) : longint;cdecl;external;
-    function GpiErase(hps : cardinal) : longbool;cdecl;external;
-    function GpiQueryDevice(hps : cardinal) : cardinal;cdecl;external;
-    function GpiResetPS(hps,flOptions : cardinal) : longbool;cdecl;external;
-    function GpiSetPS(hps : cardinal;psizlsize : PSIZEL;flOptions : cardinal) : longbool;cdecl;external;
-    function GpiQueryPS(hps : cardinal;psizlSize : PSIZEL) : cardinal;cdecl;external;
-    function GpiErrorSegmentData(hps : cardinal;plSegment,plContext : plongint) : longint;cdecl;external;
-    function GpiQueryDrawControl(hps : cardinal;lControl : longint) : longint;cdecl;external;
-    function GpiSetDrawControl(hps : cardinal;lControl,lValue : longint) : longbool;cdecl;external;
-    function GpiQueryDrawingMode(hps : cardinal) : longint;cdecl;external;
-    function GpiSetDrawingMode(hps : cardinal;lMode : longint) : longbool;cdecl;external;
-    function GpiQueryStopDraw(hps : cardinal) : longint;cdecl; external;
-    function GpiSetStopDraw(hps : cardinal;lValue : longint) : longbool; cdecl; external;
-    function GpiCorrelateChain(hps : cardinal;lType : longint;pptlPick : PPOINTL;lMaxHits : longint;lMaxDepth : longint;pl2 : plongint) : longint; cdecl; external;
-    function GpiQueryTag(hps : cardinal;plTag : plongint) : longbool; cdecl; external;
-    function GpiSetTag(hps : cardinal;lTag : longint) : longbool; cdecl; external;
-    function GpiQueryPickApertureSize(hps : cardinal;psizlSize : PSIZEL) : longbool; cdecl; external;
-    function GpiSetPickApertureSize(hps : cardinal;lOptions : longint;psizlSize : PSIZEL) : longbool; cdecl; external;
-    function GpiQueryPickAperturePosition(hps : cardinal;pptlPoint : PPOINTL) : longbool; cdecl; external;
-    function GpiSetPickAperturePosition(hps : cardinal;pptlPick : PPOINTL) : longbool; cdecl; external;
-    function GpiQueryBoundaryData(hps : cardinal;prclBoundary : PRECTL) : longbool; cdecl; external;
-    function GpiResetBoundaryData(hps : cardinal) : longbool; cdecl; external;
-    function GpiCorrelateFrom(hps : cardinal;lFirstSegment,lLastSegment,lType : longint;pptlPick : PPOINTL;lMaxHits,lMaxDepth : longint;plSegTag : plongint) : longint; cdecl; external;
-    function GpiCorrelateSegment(hps : cardinal;lSegment,lType : longint;pptlPick : PPOINTL;lMaxHits,lMaxDepth : longint;alSegTag : plongint) : longint; cdecl; external;
-    function GpiOpenSegment(hps : cardinal;lSegment : longint) : longbool; cdecl; external;
-    function GpiCloseSegment(hps : cardinal) : longbool; cdecl; external;
-    function GpiDeleteSegment(hps : cardinal;lSegid : longint) : longbool; cdecl; external;
-    function GpiQueryInitialSegmentAttrs(hps : cardinal;lAttribute : longint) : longint; cdecl; external;
-    function GpiSetInitialSegmentAttrs(hps : cardinal;lAttribute,lValue : longint) : longbool; cdecl; external;
-    function GpiQuerySegmentAttrs(hps : cardinal;lSegid,lAttribute : longint) : longint; cdecl; external;
-    function GpiSetSegmentAttrs(hps : cardinal;lSegid,lAttribute,lValue : longint) : longbool; cdecl; external;
-    function GpiQuerySegmentPriority(hps : cardinal;lRefSegid,lOrder : longint) : longint; cdecl; external;
-    function GpiSetSegmentPriority(hps : cardinal;lSegid,lRefSegid,lOrder : longint) : longbool; cdecl; external;
-    function GpiDeleteSegments(hps : cardinal;lFirstSegment,lLastSegment : longint) : longbool; cdecl; external;
-    function GpiQuerySegmentNames(hps : cardinal;lFirstSegid,lLastSegid,lMax : longint;alSegids : plongint) : longint; cdecl; external;
-    function GpiGetData(hps : cardinal;lSegid : longint;plOffset : plongint;lFormat,lLength : longint;pbData : PBYTE) : longint; cdecl; external;
-    function GpiPutData(hps : cardinal;lFormat : longint;plCount : plongint;pbData : PBYTE) : longint; cdecl; external;
-    function GpiDrawChain(hps : cardinal) : longbool; cdecl; external;
-    function GpiDrawFrom(hps : cardinal;lFirstSegment,lLastSegment : longint) : longbool; cdecl; external;
-    function GpiDrawSegment(hps : cardinal;lSegment : longint) : longbool; cdecl; external;
-    function GpiDrawDynamics(hps : cardinal) : longbool; cdecl; external;
-    function GpiRemoveDynamics(hps : cardinal;lFirstSegid,lLastSegid : longint) : longbool; cdecl; external;
-    function GpiBeginElement(hps : cardinal;lType : longint;pszDesc : pchar) : longbool; cdecl; external;
-    function GpiEndElement(hps : cardinal) : longbool; cdecl; external;
-    function GpiLabel(hps : cardinal;lLabel : longint) : longbool; cdecl; external;
-    function GpiElement(hps : cardinal;lType : longint;pszDesc : pchar;lLength : longint;pbData : PBYTE) : longint; cdecl; external;
-    function GpiQueryElement(hps : cardinal;lOff,lMaxLength : longint;pbData : PBYTE) : longint; cdecl; external;
-    function GpiDeleteElement(hps : cardinal) : longbool; cdecl; external;
-    function GpiDeleteElementRange(hps : cardinal;lFirstElement,lLastElement : longint) : longbool; cdecl; external;
-    function GpiDeleteElementsBetweenLabels(hps : cardinal;lFirstLabel,lLastLabel : longint) : longbool; cdecl; external;
-    function GpiQueryEditMode(hps : cardinal) : longint; cdecl; external;
-    function GpiSetEditMode(hps : cardinal;lMode : longint) : longbool; cdecl; external;
-    function GpiQueryElementPointer(hps : cardinal) : longint; cdecl; external;
-    function GpiSetElementPointer(hps : cardinal;lElement : longint) : longbool; cdecl; external;
-    function GpiOffsetElementPointer(hps : cardinal;loffset : longint) : longbool; cdecl; external;
-    function GpiQueryElementType(hps : cardinal;plType : plongint;lLength : longint;pszData : pchar) : longint; cdecl; external;
-    function GpiSetElementPointerAtLabel(hps : cardinal;lLabel : longint) : longbool; cdecl; external;
-    function GpiQuerySegmentTransformMatrix(hps : cardinal;lSegid,lCount : longint;pmatlfArray : PMATRIXLF) : longbool; cdecl; external;
-    function GpiSetSegmentTransformMatrix(hps : cardinal;lSegid,lCount : longint;pmatlfarray : PMATRIXLF;lOptions : longint) : longbool; cdecl; external;
-    function GpiConvert(hps : cardinal;lSrc,lTarg,lCount : longint;aptlPoints : PPOINTL) : longbool; cdecl; external;
-    function GpiConvertWithMatrix(hps : cardinal;lCountp : longint;aptlPoints : PPOINTL;lCount : longint;pmatlfArray : PMATRIXLF) : longbool; cdecl; external;
-    function GpiQueryModelTransformMatrix(hps : cardinal;lCount : longint;pmatlfArray : PMATRIXLF) : longbool; cdecl; external;
-    function GpiSetModelTransformMatrix(hps : cardinal;lCount : longint;pmatlfArray : PMATRIXLF;lOptions : longint) : longbool; cdecl; external;
-    function GpiCallSegmentMatrix(hps : cardinal;lSegment,lCount : longint;pmatlfArray : PMATRIXLF;lOptions : longint) : longint; cdecl; external;
-    function GpiQueryDefaultViewMatrix(hps : cardinal;lCount : longint;pmatlfArray : PMATRIXLF) : longbool; cdecl; external;
-    function GpiSetDefaultViewMatrix(hps : cardinal;lCount : longint;pmatlfarray : PMATRIXLF;lOptions : longint) : longbool; cdecl; external;
-    function GpiQueryPageViewport(hps : cardinal;prclViewport : PRECTL) : longbool; cdecl; external;
-    function GpiSetPageViewport(hps : cardinal;prclViewport : PRECTL) : longbool; cdecl; external;
-    function GpiQueryViewingTransformMatrix(hps : cardinal;lCount : longint;pmatlfArray : PMATRIXLF) : longbool; cdecl; external;
-    function GpiSetViewingTransformMatrix(hps : cardinal;lCount : longint;pmatlfArray : PMATRIXLF;lOptions : longint) : longbool; cdecl; external;
-    function GpiTranslate(hps : cardinal;pmatrixlf : PMATRIXLF;long : longint;ppointl : PPOINTL) : longbool; cdecl; external;
-    function GpiScale(hps : cardinal;p1 : PMATRIXLF;p2 : longint;p3 : plongint;p4 : PPOINTL) : longbool; cdecl; external;
-    function GpiRotate(p1 : cardinal;p2 : PMATRIXLF;p3,p4 : longint;p5 : PPOINTL) : longbool; cdecl; external;
-    function GpiSetGraphicsField(hps : cardinal;prclField : PRECTL) : longbool; cdecl; external;
-    function GpiQueryGraphicsField(hps : cardinal;prclField : PRECTL) : longbool; cdecl; external;
-    function GpiSetViewingLimits(hps : cardinal;prclLimits : PRECTL) : longbool; cdecl; external;
-    function GpiQueryViewingLimits(hps : cardinal;prclLimits : PRECTL) : longbool; cdecl; external;
-    function GpiBeginPath(hps : cardinal;lPath : longint) : longbool; cdecl; external;
-    function GpiEndPath(hps : cardinal) : longbool; cdecl; external;
-    function GpiCloseFigure(hps : cardinal) : longbool; cdecl; external;
-    function GpiModifyPath(hps : cardinal;lPath,lMode : longint) : longbool; cdecl; external;
-    function GpiFillPath(hps : cardinal;lPath,lOptions : longint) : longint; cdecl; external;
-    function GpiSetClipPath(hps : cardinal;lPath,lOptions : longint) : longbool; cdecl; external;
-    function GpiOutlinePath(hps : cardinal;lPath,lOptions : longint) : longint; cdecl; external;
-    function GpiPathToRegion(GpiH : cardinal;lPath,lOptions : longint) : cardinal; cdecl; external;
-    function GpiStrokePath(hps : cardinal;lPath : longint;flOptions : cardinal) : longint; cdecl; external;
-    function GpiCreateLogColorTable(hps,flOptions : cardinal;lFormat,lStart,lCount : longint;alTable : plongint) : longbool; cdecl; external;
-    function GpiQueryColorData(hps : cardinal;lCount : longint;alArray : plongint) : longbool; cdecl; external;
-    function GpiQueryLogColorTable(hps,flOptions : cardinal;lStart,lCount : longint;alArray : plongint) : longint; cdecl; external;
-    function GpiQueryRealColors(hps,flOptions : cardinal;lStart,lCount : longint;alColors : plongint) : longint; cdecl; external;
-    function GpiQueryNearestColor(hps,flOptions : cardinal;lRgbIn : longint) : longint; cdecl; external;
-    function GpiQueryColorIndex(hps,flOptions : cardinal;lRgbColor : longint) : longint; cdecl; external;
-    function GpiQueryRGBColor(hps,flOptions : cardinal;lColorIndex : longint) : longint; cdecl; external;
-    function GpiCreatePalette(hab,flOptions,ulFormat,ulCount : cardinal;aulTable : pcardinal) : cardinal; cdecl; external;
-    function GpiDeletePalette(hpal : cardinal) : longbool; cdecl; external;
-    function GpiSelectPalette(hps,hpal : cardinal) : cardinal; cdecl; external;
-    function GpiAnimatePalette(hpal,ulFormat,ulStart,ulCount : cardinal;aulTable : pcardinal) : longint; cdecl; external;
-    function GpiSetPaletteEntries(hpal,ulFormat,ulStart,ulCount : cardinal;aulTable : pcardinal) : longbool; cdecl; external;
-    function GpiQueryPalette(hps : cardinal) : cardinal; cdecl; external;
-    function GpiQueryPaletteInfo(hpal,hps,flOptions,ulStart,ulCount : cardinal;aulArray : pcardinal) : longint; cdecl; external;
-    function GpiSetColor(hps : cardinal;lColor : longint) : longbool; cdecl; external;
-    function GpiQueryColor(hps : cardinal) : longint; cdecl; external;
-    function GpiBox(hps : cardinal;lControl : longint;pptlPoint : PPOINTL;lHRound,lVRound : longint) : longint; cdecl; external;
-    function GpiMove(hps : cardinal;pptlPoint : PPOINTL) : longbool; cdecl; external;
-    function GpiLine(hps : cardinal;pptlEndPoint : PPOINTL) : longint; cdecl; external;
-    function GpiPolyLine(hps : cardinal;lCount : longint;aptlPoints : PPOINTL) : longint; cdecl; external;
-    function GpiPolyLineDisjoint(hps : cardinal;lCount : longint;aptlPoints : PPOINTL) : longint; cdecl; external;
-    function GpiSetPattern(hps : cardinal;lPatternSymbol : longint) : longbool; cdecl; external;
-    function GpiQueryPattern(hps : cardinal) : longint; cdecl; external;
-    function GpiBeginArea(hps,flOptions : cardinal) : longbool; cdecl; external;
-    function GpiEndArea(hps : cardinal) : longint; cdecl; external;
-    function GpiCharString(hps : cardinal;lCount : longint;pchString : pshortint) : longint; cdecl; external;
-    function GpiCharStringAt(hps : cardinal;pptlPoint : PPOINTL;lCount : longint;pchString : pshortint) : longint; cdecl; external;
-    function GpiSetAttrMode(hps : cardinal;lMode : longint) : longbool; cdecl; external;
-    function GpiQueryAttrMode(hps : cardinal) : longint; cdecl; external;
-    function GpiSetAttrs(hps : cardinal;lPrimType : longint;flAttrMask,flDefMask : cardinal;ppbunAttrs : pointer) : longbool; cdecl; external;
-    function GpiQueryAttrs(hps : cardinal;lPrimType : longint;flAttrMask : cardinal;ppbunAttrs : pointer) : longint; cdecl; external;
-    function GpiSetBackColor(hps : cardinal;lColor : longint) : longbool; cdecl; external;
-    function GpiQueryBackColor(hps : cardinal) : longint; cdecl; external;
-    function GpiSetMix(hps : cardinal;lMixMode : longint) : longbool; cdecl; external;
-    function GpiQueryMix(hps : cardinal) : longint; cdecl; external;
-    function GpiSetBackMix(hps : cardinal;lMixMode : longint) : longbool; cdecl; external;
-    
-    function GpiQueryBackMix(hps : cardinal) : longint; cdecl; external;
-    function GpiSetLineType(hps : cardinal;lLineType : longint) : longbool; cdecl; external;
-    function GpiQueryLineType(hps : cardinal) : longint; cdecl; external;
-    function GpiSetLineWidth(hps : cardinal;fxLineWidth : longint) : longbool; cdecl; external;
-    function GpiQueryLineWidth(hps : cardinal) : longint; cdecl; external;
-    function GpiSetLineWidthGeom(hps : cardinal;lLineWidth : longint) : longbool; cdecl; external;
-    function GpiQueryLineWidthGeom(hps : cardinal) : longint; cdecl; external;
-    function GpiSetLineEnd(hps : cardinal;lLineEnd : longint) : longbool; cdecl; external;
-    function GpiQueryLineEnd(hps : cardinal) : longint; cdecl; external;
-    function GpiSetLineJoin(hps : cardinal;lLineJoin : longint) : longbool; cdecl; external;
-    function GpiQueryLineJoin(hps : cardinal) : longint; cdecl; external;
-    function GpiSetCurrentPosition(hps : cardinal;pptlPoint : PPOINTL) : longbool; cdecl; external;
-    function GpiQueryCurrentPosition(hps : cardinal;pptlPoint : PPOINTL) : longbool; cdecl; external;
-    function GpiSetArcParams(hps : cardinal;parcpArcParams : PARCPARAMS) : longbool; cdecl; external;
-    function GpiQueryArcParams(hps : cardinal;parcpArcParams : PARCPARAMS) : longbool; cdecl; external;
-    function GpiPointArc(hps : cardinal;pptl2 : PPOINTL) : longint; cdecl; external;
-    function GpiFullArc(hps : cardinal;lControl,fxMultiplier : longint) : longint; cdecl; external;
-    function GpiPartialArc(hps : cardinal;pptlCenter : PPOINTL;fxMultiplier,fxStartAngle,fxSweepAngle : longint) : longint; cdecl; external;
-    function GpiPolyFillet(hps : cardinal;lCount : longint;aptlPoints : PPOINTL) : longint; cdecl; external;
-    function GpiPolySpline(hps : cardinal;lCount : longint;aptlPoints : PPOINTL) : longint; cdecl; external;
-    function GpiPolyFilletSharp(hps : cardinal;lCount : longint;aptlPoints : PPOINTL;afxPoints : plongint) : longint; cdecl; external;
-    function GpiSetPatternSet(hps : cardinal;lSet : longint) : longbool; cdecl; external;
-    function GpiQueryPatternSet(hps : cardinal) : longint; cdecl; external;
-    function GpiSetPatternRefPoint(hps : cardinal;pptlRefPoint : PPOINTL) : longbool; cdecl; external;
-    function GpiQueryPatternRefPoint(hps : cardinal;pptlRefPoint : PPOINTL) : longbool; cdecl; external;
-    function GpiQueryCharStringPos(hps,flOptions : cardinal;lCount : longint;pchString : pshortint;alXincrements : plongint;aptlPositions : PPOINTL) : longbool; cdecl; external;
-    function GpiQueryCharStringPosAt(hps : cardinal;pptlStart : PPOINTL;flOptions : cardinal;lCount : longint;pchString : pshortint;alXincrements : plongint;aptlPositions : PPOINTL) : longbool; cdecl; external;
-    function GpiQueryTextBox(hps : cardinal;lCount1 : longint;pchString : pshortint;lCount2 : longint;aptlPoints : PPOINTL) : longbool; cdecl; external;
-    function GpiQueryDefCharBox(hps : cardinal;psizlSize : PSIZEL) : longbool; cdecl; external;
-    function GpiSetCharSet(hps : cardinal;llcid : longint) : longbool; cdecl; external;
-    function GpiQueryCharSet(hps : cardinal) : longint; cdecl; external;
-    function GpiSetCharBox(hps : cardinal;psizfxBox : PSIZEF) : longbool; cdecl; external;
-    function GpiQueryCharBox(hps : cardinal;psizfxSize : PSIZEF) : longbool; cdecl; external;
-    function GpiSetCharAngle(hps : cardinal;pgradlAngle : PGRADIENTL) : longbool; cdecl; external;
-    function GpiQueryCharAngle(hps : cardinal;pgradlAngle : PGRADIENTL) : longbool; cdecl; external;
-    function GpiSetCharShear(hps : cardinal;pptlAngle : PPOINTL) : longbool; cdecl; external;
-    function GpiQueryCharShear(hps : cardinal;pptlShear : PPOINTL) : longbool; cdecl; external;
-    function GpiSetCharDirection(hps : cardinal;lDirection : longint) : longbool; cdecl; external;
-    function GpiQueryCharDirection(hps : cardinal) : longint; cdecl; external;
-    function GpiSetCharMode(hps : cardinal;lMode : longint) : longbool; cdecl; external;
-    function GpiQueryCharMode(hps : cardinal) : longint; cdecl; external;
-    function GpiSetTextAlignment(hps : cardinal;lHoriz,lVert : longint) : longbool; cdecl; external;
-    function GpiQueryTextAlignment(hps : cardinal;plHoriz,plVert : plongint) : longbool; cdecl; external;
-    function GpiCharStringPos(hps : cardinal;prclRect : PRECTL;flOptions : cardinal;lCount : longint;pchString : pshortint;alAdx : plongint) : longint; cdecl; external;
-    function GpiCharStringPosAt(hps : cardinal;pptlStart : PPOINTL;prclRect : PRECTL;flOptions : cardinal;lCount : longint;pchString : pshortint;alAdx : plongint) : longint; cdecl; external;
-    function GpiSetCharExtra(hps : cardinal;Extra : longint) : longbool; cdecl; external;
-    function GpiSetCharBreakExtra(hps : cardinal;BreakExtra : longint) : longbool; cdecl; external;
-    function GpiQueryCharExtra(hps : cardinal;Extra : plongint) : longbool; cdecl; external;
-    function GpiQueryCharBreakExtra(hps : cardinal;BreakExtra : plongint) : longbool; cdecl; external;
-    function GpiMarker(hps : cardinal;pptlPoint : PPOINTL) : longint; cdecl; external;
-    function GpiPolyMarker(hps : cardinal;lCount : longint;aptlPoints : PPOINTL) : longint; cdecl; external;
-    function GpiSetMarker(hps : cardinal;lSymbol : longint) : longbool; cdecl; external;
-    function GpiSetMarkerBox(hps : cardinal;psizfxSize : PSIZEF) : longbool; cdecl; external;
-    function GpiSetMarkerSet(hps : cardinal;lSet : longint) : longbool; cdecl; external;
-    function GpiQueryMarker(hps : cardinal) : longint; cdecl; external;
-    function GpiQueryMarkerBox(hps : cardinal;psizfxSize : PSIZEF) : longbool; cdecl; external;
-    function GpiQueryMarkerSet(hps : cardinal) : longint; cdecl; external;
-    function GpiImage(hps : cardinal;lFormat : longint;psizlImageSize : PSIZEL;lLength : longint;pbData : PBYTE) : longint; cdecl; external;
-    function GpiPop(hps : cardinal;lCount : longint) : longbool; cdecl; external;
-    function GpiPtVisible(hps : cardinal;pptlPoint : PPOINTL) : longint; cdecl; external;
-    function GpiRectVisible(hps : cardinal;prclRectangle : PRECTL) : longint; cdecl; external;
-    function GpiComment(hps : cardinal;lLength : longint;pbData : PBYTE) : longbool; cdecl; external;
-    function GpiCreateLogFont(hps : cardinal;pName : PSTR8;lLcid : longint;pfatAttrs : PFATTRS) : longint; cdecl; external;
-    function GpiDeleteSetId(hps : cardinal;lLcid : longint) : longbool; cdecl; external;
-    function GpiLoadFonts(hab : cardinal;pszFilename : pchar) : longbool; cdecl; external;
-    function GpiUnloadFonts(hab : cardinal;pszFilename : pchar) : longbool; cdecl; external;
-    function GpiQueryFonts(hps,flOptions : cardinal;pszFacename : pchar;plReqFonts : plongint;lMetricsLength : longint;afmMetrics : PFONTMETRICS) : longint; cdecl; external;
-    function GpiQueryFontMetrics(hps : cardinal;lMetricsLength : longint;pfmMetrics : PFONTMETRICS) : longbool; cdecl; external;
-    function GpiQueryKerningPairs(hps : cardinal;lCount : longint;akrnprData : PKERNINGPAIRS) : longint; cdecl; external;
-    function GpiQueryWidthTable(hps : cardinal;lFirstChar,lCount : longint;alData : plongint) : longbool; cdecl; external;
-    function GpiQueryNumberSetIds(hps : cardinal) : longint; cdecl; external;
-    function GpiQuerySetIds(hps : cardinal;lCount : longint;alTypes : plongint;aNames : PSTR8;allcids : plongint) : longbool; cdecl; external;
-    function GpiQueryFaceString(PS : cardinal;FamilyName : pchar;attrs : PFACENAMEDESC;length : longint;CompoundFaceName : pchar) : cardinal; cdecl; external;
-    function GpiQueryLogicalFont(PS : cardinal;lcid : longint;name : PSTR8;attrs : PFATTRS;length : longint) : longbool; cdecl; external;
-    function GpiQueryFontAction(anchor,options : cardinal) : cardinal; cdecl; external;
-    function GpiLoadPublicFonts(p1 : cardinal;p2 : pchar) : longbool; cdecl; external;
-    function GpiUnloadPublicFonts(p1 : cardinal;p2 : pchar) : longbool; cdecl; external;
-    function GpiSetCp(hps,ulCodePage : cardinal) : longbool; cdecl; external;
-    function GpiQueryCp(hps : cardinal) : cardinal; cdecl; external;
-    function GpiQueryFontFileDescriptions(hab : cardinal;pszFilename : pchar;plCount : plongint;affdescsNames : PFFDESCS) : longint; cdecl; external;
-    function GpiQueryFullFontFileDescs(hab : cardinal;pszFilename : pchar;plCount : plongint;pNames : pointer;plNamesBuffLength : plongint) : longint; cdecl; external;
-    function GpiBitBlt(hpsTarget,hpsSource : cardinal;lCount : longint;aptlPoints : PPOINTL;lRop : longint;flOptions : cardinal) : longint; cdecl; external;
-    function GpiDeleteBitmap(hbm : cardinal) : longbool; cdecl; external;
-    function GpiLoadBitmap(hps,Resource,idBitmap:cardinal;lWidth,lHeight : longint) : cardinal; cdecl; external;
-    function GpiSetBitmap(hps,hbm : cardinal) : cardinal; cdecl; external;
-    function GpiWCBitBlt(hpsTarget,hbmSource : cardinal;lCount : longint;aptlPoints : PPOINTL;lRop : longint;flOptions : cardinal) : longint; cdecl; external;
-    function GpiCreateBitmap(hps : cardinal;pbmpNew : PBITMAPINFOHEADER2;flOptions : cardinal;pbInitData : PBYTE;pbmiInfoTable : PBITMAPINFO2) : cardinal; cdecl; external;
-    function GpiSetBitmapBits(hps : cardinal;lScanStart,lScans : longint;pbBuffer : PBYTE;pbmiInfoTable : PBITMAPINFO2) : longint; cdecl; external;
-    function GpiSetBitmapDimension(hbm : cardinal;psizlBitmapDimension : PSIZEL) : longbool; cdecl; external;
-    function GpiSetBitmapId(hps,hbm : cardinal;lLcid : longint) : longbool; cdecl; external;
-    function GpiQueryBitmapBits(hps : cardinal;lScanStart,lScans : longint;pbBuffer : PBYTE;pbmiInfoTable : PBITMAPINFO2) : longint; cdecl; external;
-    function GpiQueryBitmapDimension(hbm : cardinal;psizlBitmapDimension : PSIZEL) : longbool; cdecl; external;
-    function GpiQueryBitmapHandle(hps : cardinal;lLcid : longint) : cardinal; cdecl; external;
-    function GpiQueryBitmapParameters(hbm : cardinal;pbmpData : PBITMAPINFOHEADER) : longbool; cdecl; external;
-    function GpiQueryBitmapInfoHeader(hbm : cardinal;pbmpData : PBITMAPINFOHEADER2) : longbool; cdecl; external;
-    function GpiQueryDeviceBitmapFormats(hps : cardinal;lCount : longint;alArray : plongint) : longbool; cdecl; external;
-    function GpiSetPel(hps : cardinal;pptlPoint : PPOINTL) : longint; cdecl; external;
-    function GpiQueryPel(hps : cardinal;pptlPoint : PPOINTL) : longint; cdecl; external;
-    function GpiFloodFill(hps : cardinal;lOptions,lColor : longint) : longint; cdecl; external;
-    function GpiDrawBits(hps : cardinal;pBits : pointer;pbmiInfoTable : PBITMAPINFO2;lCount : longint;aptlPoints : PPOINTL;lRop : longint;flOptions : cardinal) : longint; cdecl; external;
-    function GpiCombineRegion(hps,hrgnDest,hrgnSrc1,hrgnSrc2 : cardinal;lMode : longint) : longint; cdecl; external;
-    function GpiCreateRegion(hps : cardinal;lCount : longint;arclRectangles : PRECTL) : cardinal; cdecl; external;
-    function GpiDestroyRegion(hps,hrgn : cardinal) : longbool; cdecl; external;
-    function GpiEqualRegion(hps,hrgnSrc1,hrgnSrc2 : cardinal) : longint; cdecl; external;
-    function GpiOffsetRegion(hps,Hrgn : cardinal;pptlOffset : PPOINTL) : longbool; cdecl; external;
-    function GpiPaintRegion(hps,hrgn : cardinal) : longint; cdecl; external;
-    function GpiFrameRegion(hps,hrgn : cardinal;thickness : PSIZEL) : longint; cdecl; external;
-    function GpiPtInRegion(hps,hrgn : cardinal;pptlPoint : PPOINTL) : longint; cdecl; external;
-    function GpiQueryRegionBox(hps,hrgn : cardinal;prclBound : PRECTL) : longint; cdecl; external;
-    function GpiQueryRegionRects(hps,hrgn : cardinal;prclBound : PRECTL;prgnrcControl : PRGNRECT;prclRect : PRECTL) : longbool; cdecl; external;
-    function GpiRectInRegion(hps,hrgn : cardinal;prclRect : PRECTL) : longint; cdecl; external;
-    function GpiSetRegion(hps,hrgn : cardinal;lcount : longint;arclRectangles : PRECTL) : longbool; cdecl; external;
-    function GpiSetClipRegion(hps,hrgn : cardinal;phrgnOld : pcardinal) : longint; cdecl; external;
-    function GpiQueryClipRegion(hps : cardinal) : cardinal; cdecl; external;
-    function GpiQueryClipBox(hps : cardinal;prclBound : PRECTL) : longint; cdecl; external;
-    function GpiExcludeClipRectangle(hps : cardinal;prclRectangle : PRECTL) : longint; cdecl; external;
-    function GpiIntersectClipRectangle(hps : cardinal;prclRectangle : PRECTL) : longint; cdecl; external;
-    function GpiOffsetClipRegion(hps : cardinal;pptlPoint : PPOINTL) : longint; cdecl; external;
-    function GpiCopyMetaFile(hmf : cardinal) : cardinal; cdecl; external;
-    function GpiDeleteMetaFile(hmf : cardinal) : longbool; cdecl; external;
-    function GpiLoadMetaFile(hab : cardinal;pszFilename : pchar) : cardinal; cdecl; external;
-    function GpiPlayMetaFile(hps,hmf : cardinal;lCount1 : longint;alOptarray,plSegCount : plongint;lCount2 : longint;pszDesc : pchar) : longint; cdecl; external;
-    function GpiQueryMetaFileBits(hmf : cardinal;lOffset,lLength : longint;pbData : PBYTE) : longbool; cdecl; external;
-    function GpiQueryMetaFileLength(hmf : cardinal) : longint; cdecl; external;
-    function GpiSaveMetaFile(hmf : cardinal;pszFilename : pchar) : longbool; cdecl; external;
-    function GpiSetMetaFileBits(hmf : cardinal;lOffset,lLength : longint;pbBuffer : PBYTE) : longbool; cdecl; external;
-    function GpiQueryDefArcParams(hps : cardinal;parcpArcParams : PARCPARAMS) : longbool; cdecl; external;
-    function GpiQueryDefAttrs(hps : cardinal;lPrimType : longint;flAttrMask : cardinal;ppbunAttrs : pointer) : longbool; cdecl; external;
-    function GpiQueryDefTag(hps : cardinal;plTag : plongint) : longbool; cdecl; external;
-    function GpiQueryDefViewingLimits(hps : cardinal;prclLimits : PRECTL) : longbool; cdecl; external;
-    function GpiSetDefArcParams(hps : cardinal;parcpArcParams : PARCPARAMS) : longbool; cdecl; external;
-    function GpiSetDefAttrs(hps : cardinal;lPrimType : longint;flAttrMask : cardinal;ppbunAttrs : pointer) : longbool; cdecl; external;
-    function GpiSetDefTag(hps : cardinal;lTag : longint) : longbool; cdecl; external;
-    function GpiSetDefViewingLimits(hps : cardinal;prclLimits : PRECTL) : longbool; cdecl; external;
-    function GpiPolygons(hps,ulCount : cardinal;paplgn : PPOLYGON;flOptions,flModel : cardinal) : longint; cdecl; external;
-
-end.
-
+{****************************************************************************
+
+    $Id$
+
+                   Copyright (c) 1993,94,99 by FK, RB
+                  
+ ****************************************************************************}
+unit pmgpi;
+
+  interface
+  
+    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 : longint;
+          cy : longint;
+       end;             
+       PSIZEL = ^SIZEL;
+
+       MATRIXLF = record
+          fxM11 : longint;
+          fxM12 : longint;
+          lM13 : longint;
+          fxM21 : longint;
+          fxM22 : longint;
+          lM23 : longint;
+          lM31 : longint;
+          lM32 : longint;
+          lM33 : longint;
+       end;
+
+       PMATRIXLF = ^MATRIXLF;
+
+       ARCPARAMS = record
+          lP : longint;
+          lQ : longint;
+          lR : longint;
+          lS : longint;
+       end;
+
+       PARCPARAMS = ^ARCPARAMS;
+
+       SIZEF = record
+          cx : longint;
+          cy : longint;
+       end;
+
+       PSIZEF = ^SIZEF;
+
+       GRADIENTL = record
+          x : longint;
+          y : longint;
+       end;
+
+       PGRADIENTL = ^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;
+
+       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;
+
+       MARKERBUNDLE = record
+          lColor : longint;
+          lBackColor : longint;
+          usMixMode : word;
+          usBackMixMode : word;
+          usSet : word;
+          usSymbol : word;
+          sizfxCell : SIZEF;
+       end;
+
+       PMARKERBUNDLE = ^MARKERBUNDLE;
+
+       AREABUNDLE = record
+          lColor : longint;
+          lBackColor : longint;
+          usMixMode : word;
+          usBackMixMode : word;
+          usSet : word;
+          usSymbol : word;
+          ptlRefPoint : POINTL;
+       end;
+
+       PAREABUNDLE = ^AREABUNDLE;
+
+       IMAGEBUNDLE = record
+          lColor : longint;
+          lBackColor : longint;
+          usMixMode : word;
+          usBackMixMode : word;
+       end;
+
+       PIMAGEBUNDLE = ^IMAGEBUNDLE;
+
+       KERNINGPAIRS = record
+          sFirstChar : integer;
+          sSecondChar : integer;
+          lKerningAmount : longint;
+       end;
+
+       PKERNINGPAIRS = ^KERNINGPAIRS;
+
+       FACENAMEDESC = record
+          usSize : word;
+          usWeightClass : word;
+          usWidthClass : word;
+          usReserved : word;
+          flOptions : cardinal;
+       end;
+
+       PFACENAMEDESC = ^FACENAMEDESC;
+
+       FFDESCS = array[0..1,0..FACESIZE-1] of char;
+    
+       PFFDESCS = ^FFDESCS;
+
+       FFDESCS2 = record
+          cbLength : cardinal;
+          cbFacenameOffset : cardinal;
+          abFamilyName : array[0..1-1] of BYTE;
+       end;
+
+       PFFDESCS2 = ^FFDESCS2;
+
+       RGNRECT = record
+          ircStart : cardinal;
+          crc : cardinal;
+          crcReturned : cardinal;
+          ulDirection : cardinal;
+       end;
+
+       PRGNRECT = ^RGNRECT;
+       
+          POLYGON = record
+          ulPoints : cardinal;
+          aPointl : PPOINTL;
+       end;
+
+       PPOLYGON = ^POLYGON;
+
+       POLYSET = record
+          ulPolys : cardinal;
+          aPolygon : array[0..1-1] of POLYGON;
+       end;
+
+       PPOLYSET = ^POLYSET;
+       
+    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) : cardinal; cdecl;      
+    function GpiDeletePalette(hpal : cardinal) : longbool; cdecl;                                                                         
+    function GpiSelectPalette(hps,hpal : cardinal) : cardinal; cdecl;                                                               
+    function GpiAnimatePalette(hpal,ulFormat,ulStart,ulCount : cardinal;var aulTable : cardinal) : longint; cdecl;     
+    function GpiSetPaletteEntries(hpal,ulFormat,ulStart,ulCount : cardinal;var aulTable : cardinal) : longbool; cdecl;  
+    function GpiQueryPalette(hps : cardinal) : cardinal; cdecl;        
+    function GpiQueryPaletteInfo(hpal,hps,flOptions,ulStart,ulCount : cardinal;var aulArray : cardinal) : 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 : BITMAPINFOHEADER2;flOptions : cardinal;var pbInitData : BYTE;var pbmiInfoTable : BITMAPINFO2) : cardinal; cdecl;
+    function GpiSetBitmapBits(hps : cardinal;lScanStart,lScans : longint;var pbBuffer : BYTE;var pbmiInfoTable : BITMAPINFO2) : 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 : BITMAPINFO2) : 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 : BITMAPINFOHEADER) : longbool; cdecl;                                                        
+    function GpiQueryBitmapInfoHeader(hbm : cardinal;var pbmpData : BITMAPINFOHEADER2) : 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 : BITMAPINFO2;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) : 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 : cardinal) : longint; cdecl; external 'pmgpi' index 595;
+    function GpiSetPaletteEntries(hpal,ulFormat,ulStart,ulCount : cardinal;var aulTable : cardinal) : 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 : cardinal) : 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 : BITMAPINFOHEADER2;flOptions : cardinal;var pbInitData : BYTE;var pbmiInfoTable : BITMAPINFO2) : cardinal; cdecl; external 'pmgpi' index 598;
+    function GpiSetBitmapBits(hps : cardinal;lScanStart,lScans : longint;var pbBuffer : BYTE;var pbmiInfoTable : BITMAPINFO2) : 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 : BITMAPINFO2) : 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 : BITMAPINFOHEADER) : longbool; cdecl; external 'pmgpi' index 573;
+    function GpiQueryBitmapInfoHeader(hbm : cardinal;var pbmpData : BITMAPINFOHEADER2) : 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 : BITMAPINFO2;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$
+  Revision 1.4  1999-06-02 16:01:33  hajny
+    * changes by Ramon Bosque
+
+}

+ 2100 - 2093
rtl/os2/pmwin.pas

@@ -1,2093 +1,2100 @@
-{****************************************************************************
-
-                   Copyright (c) 1993,94 by Florian Kl„mpfl
-                  
- ****************************************************************************}
-unit pmwin;
-
-  interface
-
-    uses
-       os2def;    
-
-    type
-       QVERSDATA = record
-          environment : word;
-          version : word;
-       end;
-       PQVERSDATA = ^QVERSDATA;
-       SWP = record
-          fl : cardinal;
-          cy : longint;
-          cx : longint;
-          y : longint;
-          x : longint;
-          hwndInsertBehind : cardinal;
-          hwnd : cardinal;
-          ulReserved1 : cardinal;
-          ulReserved2 : cardinal;
-       end;
-       PSWP = ^SWP;
-       CREATESTRUCT = record
-          pPresParams : pointer;
-          pCtlData : pointer;
-          id : cardinal;
-          hwndInsertBehind : cardinal;
-          hwndOwner : cardinal;
-          cy : longint;
-          cx : longint;
-          y : longint;
-          x : longint;
-          flStyle : cardinal;
-          pszText : pchar;
-          pszClass : pchar;
-          hwndParent : cardinal;
-       end;
-       PCREATESTRUCT = ^CREATESTRUCT;
-       CLASSINFO = record
-          flClassStyle : cardinal;
-          pfnWindowProc : ppointer;
-          cbWindowData : cardinal;
-       end;
-       PCLASSINFO = ^CLASSINFO;
-       QMSG = record
-          hwnd : cardinal;
-          msg : cardinal;
-          mp1 : pointer;
-          mp2 : pointer;
-          time : cardinal;
-          ptl : POINTL;
-          reserved : cardinal;
-       end;
-       PQMSG = ^QMSG;
-       MQINFO = record
-          cb : cardinal;
-          pid : cardinal;
-          tid : cardinal;
-          cmsgs : cardinal;
-          pReserved : pointer;
-       end;
-       PMQINFO = ^MQINFO;
-       WNDPARAMS = record
-          fsStatus : cardinal;
-          cchText : cardinal;
-          pszText : pchar;
-          cbPresParams : cardinal;
-          pPresParams : pointer;
-          cbCtlData : cardinal;
-          pCtlData : pointer;
-       end;    
-       PWNDPARAMS = ^WNDPARAMS;
-       USERBUTTON = record
-          hwnd : cardinal;
-          hps : cardinal;
-          fsState : cardinal;
-          fsStateOld : cardinal;
-       end;
-       PUSERBUTTON = ^USERBUTTON;
-       OWNERITEM = record
-          hwnd : cardinal;
-          hps : cardinal;
-          fsState : cardinal;
-          fsAttribute : cardinal;
-          fsStateOld : cardinal;
-          fsAttributeOld : cardinal;
-          rclItem : RECTL;
-          idItem : longint;
-          hItem : cardinal;
-       end;     
-       POWNERITEM = ^OWNERITEM;
-       PARAM = record
-          id : cardinal;
-          cb : cardinal;
-          ab : array[0..1-1] of BYTE;
-       end;
-       PPARAM = ^PARAM;
-       PRESPARAMS = record
-          cb : cardinal;
-          aparam : array[0..1-1] of PARAM;
-       end;
-       PPRESPARAMS = ^PRESPARAMS;
-       TRACKINFO = record
-          cxBorder : longint;
-          cyBorder : longint;
-          cxGrid : longint;
-          cyGrid : longint;
-          cxKeyboard : longint;
-          cyKeyboard : longint;
-          rclTrack : RECTL;
-          rclBoundary : RECTL;
-          ptlMinTrackSize : POINTL;
-          ptlMaxTrackSize : POINTL;
-          fs : cardinal;
-       end;          
-       PTRACKINFO = ^TRACKINFO;
-       CURSORINFO = record
-          hwnd : cardinal;
-          x : longint;
-          y : longint;
-          cx : longint;
-          cy : longint;
-          fs : cardinal;
-          rclClip : RECTL;
-       end;
-       PCURSORINFO = ^CURSORINFO;
-       POINTERINFO = record
-          fPointer : cardinal;
-          xHotspot : longint;
-          yHotspot : longint;
-          hbmPointer : cardinal;
-          hbmColor : cardinal;
-          hbmMiniPointer : cardinal;
-          hbmMiniColor : cardinal;
-       end;
-       PPOINTERINFO = ^POINTERINFO;
-       SMHSTRUCT = record
-          mp2 : pointer;
-          mp1 : pointer;
-          msg : cardinal;
-          hwnd : cardinal;
-          model : cardinal;
-       end;
-       PSMHSTRUCT = ^SMHSTRUCT;
-       ERRINFO = record
-          cbFixedErrInfo : cardinal;
-          idError : cardinal;
-          cDetailLevel : cardinal;
-          offaoffszMsg : cardinal;
-          offBinaryData : cardinal;
-       end;
-       PERRINFO = ^ERRINFO;
-       CONVCONTEXT = record
-          cb : cardinal;
-          fsContext : cardinal;
-          idCountry : cardinal;
-          usCodepage : cardinal;
-          usLangID : cardinal;
-          usSubLangID : cardinal;
-       end;
-       PCONVCONTEXT = ^CONVCONTEXT;
-       DDEINIT = record
-          cb : cardinal;
-          pszAppName : pchar;
-          pszTopic : pchar;
-          offConvContext : cardinal;
-       end;
-       PDDEINIT = ^DDEINIT;
-       DDESTRUCT = record
-          cbData : cardinal;
-          fsStatus : word;
-          usFormat : word;
-          offszItemName : word;
-          offabData : word;
-       end;                
-       PDDESTRUCT = ^DDESTRUCT;
-       DESKTOP = record
-          cbSize : cardinal;
-          hbm : cardinal;
-          x : longint;
-          y : longint;
-          fl : cardinal;
-          lTileCount : longint;
-          szFile : array[0..260-1] of shortint;
-       end;
-       PDESKTOP = ^DESKTOP;
-{$PACKRECORDS 1}  
-       CMDMSG = record
-          cmd : word;
-          unused : word;
-          source : word;
-          fMouse : word;
-       end;
-       PCMDMSG = ^CMDMSG;
-       MSEMSG = record
-          x : integer;
-          y : integer;
-          codeHitTest : word;
-          fsInp : word;
-       end;   
-       PMSEMSG = ^MSEMSG;
-       CHRMSG = record
-          fs : word;
-          cRepeat : byte;
-          scancode : byte;
-          chr : word;
-          vkey : word;
-       end;              
-       PCHRMSG = ^CHRMSG;
-{$PACKRECORDS NORMAL}
-
-{$PACKRECORDS 2}
-    DLGTITEM = record
-          fsItemStatus : word;
-          cChildren : word;
-          cchClassName : word;
-          offClassName : word;
-          cchText : word;
-          offText : word;
-          flStyle : cardinal;
-          x : integer;
-          y : integer;
-          cx : integer;
-          cy : integer;
-          id : word;
-          offPresParams : word;
-          offCtlData : word;
-       end;     
-       PDLGTITEM = ^DLGTITEM;    
-       DLGTEMPLATE = record
-          cbTemplate : word;
-          _type : word;
-          codepage : word;
-          offadlgti : word;
-          fsTemplateStatus : word;
-          iItemFocus : word;
-          coffPresParams : word;
-          adlgti : array[0..0] of DLGTITEM;
-       end;
-       PDLGTEMPLATE = ^DLGTEMPLATE;
-       BTNCDATA = record
-          cb : word;
-          fsCheckState : word;
-          fsHiliteState : word;
-          hImage : cardinal;
-       end;
-       PBTNCDATA = ^BTNCDATA;  
-       ENTRYFDATA = record
-          cb : word;
-          cchEditLimit : word;
-          ichMinSel : word;
-          ichMaxSel : word;
-       end;                
-       PENTRYFDATA = ^ENTRYFDATA;
-       MENUITEM = record
-          iPosition : integer;
-          afStyle : word;
-          afAttribute : word;
-          id : word;
-          hwndSubMenu : cardinal;
-          hItem : cardinal;
-       end;
-       PMENUITEM = ^MENUITEM;
-       SBCDATA = record
-          cb : word;
-          sHilite : word;
-          posFirst : integer;
-          posLast : integer;
-          posThumb : integer;
-          cVisible : integer;
-          cTotal : integer;
-       end;
-       PSBCDATA = ^SBCDATA;
-       FRAMECDATA = record
-          cb : word;
-          flCreateFlags : cardinal;
-          hmodResources : word;
-          idResources : word;
-       end;
-       PFRAMECDATA = ^FRAMECDATA;
-       ACCEL = record
-          fs : word;
-          key : word;
-          cmd : word;
-       end;
-       PACCEL = ^ACCEL;
-       ACCELTABLE = record
-          cAccel : word;
-          codepage : word;
-          aaccel : array[0..1-1] of ACCEL;
-       end;            
-       PACCELTABLE = ^ACCELTABLE; 
-       MFP = record
-          sizeBounds : POINTL;
-          sizeMM : POINTL;
-          cbLength : cardinal;
-          mapMode : word;
-          reserved : word;
-          abData : array[0..1-1] of BYTE;
-       end;
-       PMFP = ^MFP;
-       CPTEXT = record
-          idCountry : word;
-          usCodepage : word;
-          usLangID : word;
-          usSubLangID : word;
-          abText : array[0..1-1] of BYTE;
-       end;
-       PCPTEXT = ^CPTEXT;
-{$PACKRECORDS NORMAL}
-
-
-const
-       WS_VISIBLE = $80000000;
-       WS_DISABLED = $40000000;
-       WS_CLIPCHILDREN = $20000000;
-       WS_CLIPSIBLINGS = $10000000;
-       WS_PARENTCLIP = $08000000;
-       WS_SAVEBITS = $04000000;
-       WS_SYNCPAINT = $02000000;
-       WS_MINIMIZED = $01000000;
-       WS_MAXIMIZED = $00800000;
-       WS_ANIMATE = $00400000;
-       WS_GROUP = $00010000;
-       WS_TABSTOP = $00020000;
-       WS_MULTISELECT = $00040000;
-       CS_MOVENOTIFY = $00000001;
-       CS_SIZEREDRAW = $00000004;
-       CS_HITTEST = $00000008;
-       CS_PUBLIC = $00000010;
-       CS_FRAME = $00000020;
-       CS_CLIPCHILDREN = $20000000;
-       CS_CLIPSIBLINGS = $10000000;
-       CS_PARENTCLIP = $08000000;
-       CS_SAVEBITS = $04000000;
-       CS_SYNCPAINT = $02000000;
-
-       HWND_DESKTOP = 1;
-       HWND_OBJECT = 2;
-       HWND_TOP = 3;
-       HWND_BOTTOM = 4;
-       HWND_THREADCAPTURE = 5;
-
-       PSF_LOCKWINDOWUPDATE = $0001;
-       PSF_CLIPUPWARDS = $0002;
-       PSF_CLIPDOWNWARDS = $0004;
-       PSF_CLIPSIBLINGS = $0008;
-       PSF_CLIPCHILDREN = $0010;
-       PSF_PARENTCLIP = $0020;
-       SW_SCROLLCHILDREN = $0001;
-       SW_INVALIDATERGN = $0002;
-
-       QV_OS2 = $0000;
-       QV_CMS = $0001;
-       QV_TSO = $0002;
-       QV_TSOBATCH = $0003;
-       QV_OS400 = $0004;
-
-       QW_NEXT = 0;
-       QW_PREV = 1;
-       QW_TOP = 2;
-       QW_BOTTOM = 3;
-       QW_OWNER = 4;
-       QW_PARENT = 5;
-       QW_NEXTTOP = 6;
-       QW_PREVTOP = 7;
-       QW_FRAMEOWNER = 8;
-
-       AWP_MINIMIZED = $00010000;
-       AWP_MAXIMIZED = $00020000;
-       AWP_RESTORED = $00040000;
-       AWP_ACTIVATE = $00080000;
-       AWP_DEACTIVATE = $00100000;
-       SWP_SIZE = $0001;
-       SWP_MOVE = $0002;
-       SWP_ZORDER = $0004;
-       SWP_SHOW = $0008;
-       SWP_HIDE = $0010;
-       SWP_NOREDRAW = $0020;
-       SWP_NOADJUST = $0040;
-       SWP_ACTIVATE = $0080;
-       SWP_DEACTIVATE = $0100;
-       SWP_EXTSTATECHANGE = $0200;
-       SWP_MINIMIZE = $0400;
-       SWP_MAXIMIZE = $0800;
-       SWP_RESTORE = $1000;
-       SWP_FOCUSACTIVATE = $2000;
-       SWP_FOCUSDEACTIVATE = $4000;
-       SWP_NOAUTOCLOSE = $8000;
-
-       DBM_NORMAL = $0000;
-       DBM_INVERT = $0001;
-       DBM_HALFTONE = $0002;
-       DBM_STRETCH = $0004;
-       DBM_IMAGEATTRS = $0008;
-
-       DT_LEFT = $0000;
-       DT_QUERYEXTENT = $0002;
-       DT_UNDERSCORE = $0010;
-       DT_STRIKEOUT = $0020;
-       DT_TEXTATTRS = $0040;
-       DT_EXTERNALLEADING = $0080;
-       DT_CENTER = $0100;
-       DT_RIGHT = $0200;
-       DT_TOP = $0000;
-       DT_VCENTER = $0400;
-       DT_BOTTOM = $0800;
-       DT_HALFTONE = $1000;
-       DT_MNEMONIC = $2000;
-       DT_WORDBREAK = $4000;
-       DT_ERASERECT = $8000;
-
-       DB_PATCOPY = $0000;
-       DB_PATINVERT = $0001;
-       DB_DESTINVERT = $0002;
-       DB_AREAMIXMODE = $0003;
-       DB_ROP = $0007;
-       DB_INTERIOR = $0008;
-       DB_AREAATTRS = $0010;
-       DB_STANDARD = $0100;
-       DB_DLGBORDER = $0200;
-
-       QWS_USER = 0;
-       QWS_ID = -1;
-       QWS_MIN = -1;
-       QWL_USER = 0;
-       QWL_STYLE = -2;
-       QWP_PFNWP = -3;
-       QWL_HMQ = -4;
-       QWL_RESERVED = -5;
-       QWL_MIN = -6;
-       QWL_HHEAP = $0004;
-       QWL_HWNDFOCUSSAVE = $0018;
-       QWL_DEFBUTTON = $0040;
-       QWL_PSSCBLK = $0048;
-       QWL_PFEPBLK = $004c;
-       QWL_PSTATBLK = $0050;
-       QWS_FLAGS = $0008;
-       QWS_RESULT = $000a;
-       QWS_XRESTORE = $000c;
-       QWS_YRESTORE = $000e;
-       QWS_CXRESTORE = $0010;
-       QWS_CYRESTORE = $0012;
-       QWS_XMINIMIZE = $0014;
-       QWS_YMINIMIZE = $0016;
-
-       WM_NULL = $0000;
-       WM_CREATE = $0001;
-       WM_DESTROY = $0002;
-       WM_ENABLE = $0004;
-       WM_SHOW = $0005;
-       WM_MOVE = $0006;
-       WM_SIZE = $0007;
-       WM_ADJUSTWINDOWPOS = $0008;
-       WM_CALCVALIDRECTS = $0009;
-       WM_SETWINDOWPARAMS = $000a;
-       WM_QUERYWINDOWPARAMS = $000b;
-       WM_HITTEST = $000c;
-       WM_ACTIVATE = $000d;
-       WM_SETFOCUS = $000f;
-       WM_SETSELECTION = $0010;
-       WM_PPAINT = $0011;
-       WM_PSETFOCUS = $0012;
-       WM_PSYSCOLORCHANGE = $0013;
-       WM_PSIZE = $0014;
-       WM_PACTIVATE = $0015;
-       WM_PCONTROL = $0016;
-       WM_COMMAND = $0020;
-       WM_SYSCOMMAND = $0021;
-       WM_HELP = $0022;
-       WM_PAINT = $0023;
-       WM_TIMER = $0024;
-       WM_SEM1 = $0025;
-       WM_SEM2 = $0026;
-       WM_SEM3 = $0027;
-       WM_SEM4 = $0028;
-       WM_CLOSE = $0029;
-       WM_QUIT = $002a;
-       WM_SYSCOLORCHANGE = $002b;
-       WM_SYSVALUECHANGED = $002d;
-       WM_APPTERMINATENOTIFY = $002e;
-       WM_PRESPARAMCHANGED = $002f;
-       WM_CONTROL = $0030;
-       WM_VSCROLL = $0031;
-       WM_HSCROLL = $0032;
-       WM_INITMENU = $0033;
-       WM_MENUSELECT = $0034;
-       WM_MENUEND = $0035;
-       WM_DRAWITEM = $0036;
-       WM_MEASUREITEM = $0037;
-       WM_CONTROLPOINTER = $0038;
-       WM_QUERYDLGCODE = $003a;
-       WM_INITDLG = $003b;
-       WM_SUBSTITUTESTRING = $003c;
-       WM_MATCHMNEMONIC = $003d;
-       WM_SAVEAPPLICATION = $003e;
-       WM_HELPBASE = $0F00;
-       WM_HELPTOP = $0FFF;
-       WM_USER = $1000;
-       CMDSRC_PUSHBUTTON = 1;
-       CMDSRC_MENU = 2;
-       CMDSRC_ACCELERATOR = 3;
-       CMDSRC_FONTDLG = 4;
-       CMDSRC_FILEDLG = 5;
-       CMDSRC_PRINTDLG = 6;
-       CMDSRC_COLORDLG = 7;
-       CMDSRC_OTHER = 0;
-
-       PM_REMOVE = $0001;
-       PM_NOREMOVE = $0000;
-       RUM_IN = 1;
-       RUM_OUT = 2;
-       RUM_INOUT = 3;
-       SMD_DELAYED = $0001;
-       SMD_IMMEDIATE = $0002;
-       SSM_SYNCHRONOUS = $0001;
-       SSM_ASYNCHRONOUS = $0002;
-       SSM_MIXED = $0003;
-       CVR_ALIGNLEFT = $0001;
-       CVR_ALIGNBOTTOM = $0002;
-       CVR_ALIGNRIGHT = $0004;
-       CVR_ALIGNTOP = $0008;
-       CVR_REDRAW = $0010;
-       HT_NORMAL = 0;
-       HT_TRANSPARENT = (-1);
-       HT_DISCARD = (-2);
-       HT_ERROR = (-3);
-
-       WPM_TEXT = $0001;
-       WPM_CTLDATA = $0002;
-       WPM_PRESPARAMS = $0004;
-       WPM_CCHTEXT = $0008;
-       WPM_CBCTLDATA = $0010;
-       WPM_CBPRESPARAMS = $0020;
-
-       BMSG_POST = $0000;
-       BMSG_SEND = $0001;
-       BMSG_POSTQUEUE = $0002;
-       BMSG_DESCENDANTS = $0004;
-       BMSG_FRAMEONLY = $0008;
-
-       QS_KEY = $0001;
-       QS_MOUSEBUTTON = $0002;
-       QS_MOUSEMOVE = $0004;
-       QS_MOUSE = $0006;
-       QS_TIMER = $0008;
-       QS_PAINT = $0010;
-       QS_POSTMSG = $0020;
-       QS_SEM1 = $0040;
-       QS_SEM2 = $0080;
-       QS_SEM3 = $0100;
-       QS_SEM4 = $0200;
-       QS_SENDMSG = $0400;
-
-       SMIM_ALL = $0EFF;
-       SMI_NOINTEREST = $0001;
-       SMI_INTEREST = $0002;
-       SMI_RESET = $0004;
-       SMI_AUTODISPATCH = $0008;
-
-       FC_NOSETFOCUS = $0001;
-       FC_NOBRINGTOTOP = FC_NOSETFOCUS;
-       FC_NOLOSEFOCUS = $0002;
-       FC_NOBRINGTOPFIRSTWINDOW = FC_NOLOSEFOCUS;
-       FC_NOSETACTIVE = $0004;
-       FC_NOLOSEACTIVE = $0008;
-       FC_NOSETSELECTION = $0010;
-       FC_NOLOSESELECTION = $0020;
-       QFC_NEXTINCHAIN = $0001;
-       QFC_ACTIVE = $0002;
-       QFC_FRAME = $0003;
-       QFC_SELECTACTIVE = $0004;
-       QFC_PARTOFCHAIN = $0005;
-
-       WM_MOUSEFIRST = $0070;
-       WM_MOUSELAST = $0079;
-       WM_BUTTONCLICKFIRST = $0071;
-       WM_BUTTONCLICKLAST = $0079;
-       WM_MOUSEMOVE = $0070;
-       WM_BUTTON1DOWN = $0071;
-       WM_BUTTON1UP = $0072;
-       WM_BUTTON1DBLCLK = $0073;
-       WM_BUTTON2DOWN = $0074;
-       WM_BUTTON2UP = $0075;
-       WM_BUTTON2DBLCLK = $0076;
-       WM_BUTTON3DOWN = $0077;
-       WM_BUTTON3UP = $0078;
-       WM_BUTTON3DBLCLK = $0079;
-       WM_EXTMOUSEFIRST = $0410;
-       WM_EXTMOUSELAST = $0419;
-       WM_CHORD = $0410;
-       WM_BUTTON1MOTIONSTART = $0411;
-       WM_BUTTON1MOTIONEND = $0412;
-       WM_BUTTON1CLICK = $0413;
-       WM_BUTTON2MOTIONSTART = $0414;
-       WM_BUTTON2MOTIONEND = $0415;
-       WM_BUTTON2CLICK = $0416;
-       WM_BUTTON3MOTIONSTART = $0417;
-       WM_BUTTON3MOTIONEND = $0418;
-       WM_BUTTON3CLICK = $0419;
-       WM_MOUSETRANSLATEFIRST = $0420;
-       WM_MOUSETRANSLATELAST = $0428;
-       WM_BEGINDRAG = $0420;
-       WM_ENDDRAG = $0421;
-       WM_SINGLESELECT = $0422;
-       WM_OPEN = $0423;
-       WM_CONTEXTMENU = $0424;
-       WM_CONTEXTHELP = $0425;
-       WM_TEXTEDIT = $0426;
-       WM_BEGINSELECT = $0427;
-       WM_ENDSELECT = $0428;
-
-       WM_CHAR = $007a;
-       WM_VIOCHAR = $007b;
-       KC_NONE = $0000;
-       KC_CHAR = $0001;
-       KC_VIRTUALKEY = $0002;
-       KC_SCANCODE = $0004;
-       KC_SHIFT = $0008;
-       KC_CTRL = $0010;
-       KC_ALT = $0020;
-       KC_KEYUP = $0040;
-       KC_PREVDOWN = $0080;
-       KC_LONEKEY = $0100;
-       KC_DEADKEY = $0200;
-       KC_COMPOSITE = $0400;
-       KC_INVALIDCOMP = $0800;
-       KC_TOGGLE = $1000;
-       KC_INVALIDCHAR = $2000;
-       KC_DBCSRSRVD1 = $4000;
-       KC_DBCSRSRVD2 = $8000;
-
-       INP_NONE = $0000;
-       INP_KBD = $0001;
-       INP_MULT = $0002;
-       INP_RES2 = $0004;
-       INP_SHIFT = $0008;
-       INP_CTRL = $0010;
-       INP_ALT = $0020;
-       INP_RES3 = $0040;
-       INP_RES4 = $0080;
-       INP_IGNORE = $FFFF;
-       VK_BUTTON1 = $01;
-       VK_BUTTON2 = $02;
-       VK_BUTTON3 = $03;
-       VK_BREAK = $04;
-       VK_BACKSPACE = $05;
-       VK_TAB = $06;
-       VK_BACKTAB = $07;
-       VK_NEWLINE = $08;
-       VK_SHIFT = $09;
-       VK_CTRL = $0A;
-       VK_ALT = $0B;
-       VK_ALTGRAF = $0C;
-       VK_PAUSE = $0D;
-       VK_CAPSLOCK = $0E;
-       VK_ESC = $0F;
-       VK_SPACE = $10;
-       VK_PAGEUP = $11;
-       VK_PAGEDOWN = $12;
-       VK_END = $13;
-       VK_HOME = $14;
-       VK_LEFT = $15;
-       VK_UP = $16;
-       VK_RIGHT = $17;
-       VK_DOWN = $18;
-       VK_PRINTSCRN = $19;
-       VK_INSERT = $1A;
-       VK_DELETE = $1B;
-       VK_SCRLLOCK = $1C;
-       VK_NUMLOCK = $1D;
-       VK_ENTER = $1E;
-       VK_SYSRQ = $1F;
-       VK_F1 = $20;
-       VK_F2 = $21;
-       VK_F3 = $22;
-       VK_F4 = $23;
-       VK_F5 = $24;
-       VK_F6 = $25;
-       VK_F7 = $26;
-       VK_F8 = $27;
-       VK_F9 = $28;
-       VK_F10 = $29;
-       VK_F11 = $2A;
-       VK_F12 = $2B;
-       VK_F13 = $2C;
-       VK_F14 = $2D;
-       VK_F15 = $2E;
-       VK_F16 = $2F;
-       VK_F17 = $30;
-       VK_F18 = $31;
-       VK_F19 = $32;
-       VK_F20 = $33;
-       VK_F21 = $34;
-       VK_F22 = $35;
-       VK_F23 = $36;
-       VK_F24 = $37;
-       VK_ENDDRAG = $38;
-       VK_MENU = VK_F10;
-       VK_DBCSFIRST = $0080;
-       VK_DBCSLAST = $00ff;
-       VK_USERFIRST = $0100;
-       VK_USERLAST = $01ff;
-
-       WM_JOURNALNOTIFY = $007c;
-       JRN_QUEUESTATUS = $00000001;
-       JRN_PHYSKEYSTATE = $00000002;
-
-       DID_OK = 1;
-       DID_CANCEL = 2;
-       DID_ERROR = $ffff;
-
-       WA_WARNING = 0;
-       WA_NOTE = 1;
-       WA_ERROR = 2;
-       WA_CWINALARMS = 3;
-
-       MB_OK = $0000;
-       MB_OKCANCEL = $0001;
-       MB_RETRYCANCEL = $0002;
-       MB_ABORTRETRYIGNORE = $0003;
-       MB_YESNO = $0004;
-       MB_YESNOCANCEL = $0005;
-       MB_CANCEL = $0006;
-       MB_ENTER = $0007;
-       MB_ENTERCANCEL = $0008;
-       MB_NOICON = $0000;
-       MB_CUANOTIFICATION = $0000;
-       MB_ICONQUESTION = $0010;
-       MB_ICONEXCLAMATION = $0020;
-       MB_CUAWARNING = $0020;
-       MB_ICONASTERISK = $0030;
-       MB_ICONHAND = $0040;
-       MB_CUACRITICAL = $0040;
-       MB_QUERY = MB_ICONQUESTION;
-       MB_WARNING = MB_CUAWARNING;
-       MB_INFORMATION = MB_ICONASTERISK;
-       MB_CRITICAL = MB_CUACRITICAL;
-       MB_ERROR = MB_CRITICAL;
-       MB_DEFBUTTON1 = $0000;
-       MB_DEFBUTTON2 = $0100;
-       MB_DEFBUTTON3 = $0200;
-       MB_APPLMODAL = $0000;
-       MB_SYSTEMMODAL = $1000;
-       MB_HELP = $2000;
-       MB_MOVEABLE = $4000;
-       MBID_OK = 1;
-       MBID_CANCEL = 2;
-       MBID_ABORT = 3;
-       MBID_RETRY = 4;
-       MBID_IGNORE = 5;
-       MBID_YES = 6;
-       MBID_NO = 7;
-       MBID_HELP = 8;
-       MBID_ENTER = 9;
-       MBID_ERROR = $ffff;
-       DLGC_ENTRYFIELD = $0001;
-       DLGC_BUTTON = $0002;
-       DLGC_RADIOBUTTON = $0004;
-       DLGC_STATIC = $0008;
-       DLGC_DEFAULT = $0010;
-       DLGC_PUSHBUTTON = $0020;
-       DLGC_CHECKBOX = $0040;
-       DLGC_SCROLLBAR = $0080;
-       DLGC_MENU = $0100;
-       DLGC_TABONCLICK = $0200;
-       DLGC_MLE = $0400;
-
-       EDI_FIRSTTABITEM = 0;
-       EDI_LASTTABITEM = 1;
-       EDI_NEXTTABITEM = 2;
-       EDI_PREVTABITEM = 3;
-       EDI_FIRSTGROUPITEM = 4;
-       EDI_LASTGROUPITEM = 5;
-       EDI_NEXTGROUPITEM = 6;
-       EDI_PREVGROUPITEM = 7;
-
-       SS_TEXT = $0001;
-       SS_GROUPBOX = $0002;
-       SS_ICON = $0003;
-       SS_BITMAP = $0004;
-       SS_FGNDRECT = $0005;
-       SS_HALFTONERECT = $0006;
-       SS_BKGNDRECT = $0007;
-       SS_FGNDFRAME = $0008;
-       SS_HALFTONEFRAME = $0009;
-       SS_BKGNDFRAME = $000a;
-       SS_SYSICON = $000b;
-       SS_AUTOSIZE = $0040;
-       SM_SETHANDLE = $0100;
-       SM_QUERYHANDLE = $0101;
-       BS_PUSHBUTTON = 0;
-       BS_CHECKBOX = 1;
-       BS_AUTOCHECKBOX = 2;
-       BS_RADIOBUTTON = 3;
-       BS_AUTORADIOBUTTON = 4;
-       BS_3STATE = 5;
-       BS_AUTO3STATE = 6;
-       BS_USERBUTTON = 7;
-       BS_PRIMARYSTYLES = $000f;
-       BS_BITMAP = $0040;
-       BS_ICON = $0080;
-       BS_HELP = $0100;
-       BS_SYSCOMMAND = $0200;
-       BS_DEFAULT = $0400;
-       BS_NOPOINTERFOCUS = $0800;
-       BS_NOBORDER = $1000;
-       BS_NOCURSORSELECT = $2000;
-       BS_AUTOSIZE = $4000;
-
-       BM_CLICK = $0120;
-       BM_QUERYCHECKINDEX = $0121;
-       BM_QUERYHILITE = $0122;
-       BM_SETHILITE = $0123;
-       BM_QUERYCHECK = $0124;
-       BM_SETCHECK = $0125;
-       BM_SETDEFAULT = $0126;
-       BN_CLICKED = 1;
-       BN_DBLCLICKED = 2;
-       BN_PAINT = 3;
-       BDS_HILITED = $0100;
-       BDS_DISABLED = $0200;
-       BDS_DEFAULT = $0400;
-       ES_LEFT = $00000000;
-       ES_CENTER = $00000001;
-       ES_RIGHT = $00000002;
-       ES_AUTOSCROLL = $00000004;
-       ES_MARGIN = $00000008;
-       ES_AUTOTAB = $00000010;
-       ES_READONLY = $00000020;
-       ES_COMMAND = $00000040;
-       ES_UNREADABLE = $00000080;
-       ES_AUTOSIZE = $00000200;
-       ES_ANY = $00000000;
-       ES_SBCS = $00001000;
-       ES_DBCS = $00002000;
-       ES_MIXED = $00003000;
-       CBS_SIMPLE = $0001;
-       CBS_DROPDOWN = $0002;
-       CBS_DROPDOWNLIST = $0004;
-       CBS_COMPATIBLE = $0008;
-       CBID_LIST = $029A;
-       CBID_EDIT = $029B;
-       CBM_SHOWLIST = $0170;
-       CBM_HILITE = $0171;
-       CBM_ISLISTSHOWING = $0172;
-       CBN_EFCHANGE = 1;
-       CBN_EFSCROLL = 2;
-       CBN_MEMERROR = 3;
-       CBN_LBSELECT = 4;
-       CBN_LBSCROLL = 5;
-       CBN_SHOWLIST = 6;
-       CBN_ENTER = 7;
-
-       EM_QUERYCHANGED = $0140;
-       EM_QUERYSEL = $0141;
-       EM_SETSEL = $0142;
-       EM_SETTEXTLIMIT = $0143;
-       EM_CUT = $0144;
-       EM_COPY = $0145;
-       EM_CLEAR = $0146;
-       EM_PASTE = $0147;
-       EM_QUERYFIRSTCHAR = $0148;
-       EM_SETFIRSTCHAR = $0149;
-       EM_QUERYREADONLY = $014a;
-       EM_SETREADONLY = $014b;
-       EM_SETINSERTMODE = $014c;
-       EN_SETFOCUS = $0001;
-       EN_KILLFOCUS = $0002;
-       EN_CHANGE = $0004;
-       EN_SCROLL = $0008;
-       EN_MEMERROR = $0010;
-       EN_OVERFLOW = $0020;
-       EN_INSERTMODETOGGLE = $0040;
-       LS_MULTIPLESEL = $00000001;
-       LS_OWNERDRAW = $00000002;
-       LS_NOADJUSTPOS = $00000004;
-       LS_HORZSCROLL = $00000008;
-       LS_EXTENDEDSEL = $00000010;
-       LN_SELECT = 1;
-       LN_SETFOCUS = 2;
-       LN_KILLFOCUS = 3;
-       LN_SCROLL = 4;
-       LN_ENTER = 5;
-       LM_QUERYITEMCOUNT = $0160;
-       LM_INSERTITEM = $0161;
-       LM_SETTOPINDEX = $0162;
-       LM_DELETEITEM = $0163;
-       LM_SELECTITEM = $0164;
-       LM_QUERYSELECTION = $0165;
-       LM_SETITEMTEXT = $0166;
-       LM_QUERYITEMTEXTLENGTH = $0167;
-       LM_QUERYITEMTEXT = $0168;
-       LM_SETITEMHANDLE = $0169;
-       LM_QUERYITEMHANDLE = $016a;
-       LM_SEARCHSTRING = $016b;
-       LM_SETITEMHEIGHT = $016c;
-       LM_QUERYTOPINDEX = $016d;
-       LM_DELETEALL = $016e;
-       LIT_CURSOR = (-4);
-       LIT_ERROR = (-3);
-       LIT_MEMERROR = (-2);
-       LIT_NONE = (-1);
-       LIT_FIRST = (-1);
-       LIT_END = (-1);
-       LIT_SORTASCENDING = (-2);
-       LIT_SORTDESCENDING = (-3);
-       LSS_SUBSTRING = $0001;
-       LSS_PREFIX = $0002;
-       LSS_CASESENSITIVE = $0004;
-       MS_ACTIONBAR = $00000001;
-       MS_TITLEBUTTON = $00000002;
-       MS_VERTICALFLIP = $00000004;
-       MS_CONDITIONALCASCADE = $00000040;
-
-       MM_INSERTITEM = $0180;
-       MM_DELETEITEM = $0181;
-       MM_QUERYITEM = $0182;
-       MM_SETITEM = $0183;
-       MM_QUERYITEMCOUNT = $0184;
-       MM_STARTMENUMODE = $0185;
-       MM_ENDMENUMODE = $0186;
-       MM_REMOVEITEM = $0188;
-       MM_SELECTITEM = $0189;
-       MM_QUERYSELITEMID = $018a;
-       MM_QUERYITEMTEXT = $018b;
-       MM_QUERYITEMTEXTLENGTH = $018c;
-       MM_SETITEMHANDLE = $018d;
-       MM_SETITEMTEXT = $018e;
-       MM_ITEMPOSITIONFROMID = $018f;
-       MM_ITEMIDFROMPOSITION = $0190;
-       MM_QUERYITEMATTR = $0191;
-       MM_SETITEMATTR = $0192;
-       MM_ISITEMVALID = $0193;
-       MM_QUERYITEMRECT = $0194;
-       MM_QUERYDEFAULTITEMID = $0431;
-       MM_SETDEFAULTITEMID = $0432;
-
-       MIT_END = (-1);
-       MIT_NONE = (-1);
-       MIT_MEMERROR = (-1);
-       MIT_ERROR = (-1);
-       MIT_FIRST = (-2);
-       MIT_LAST = (-3);
-       MID_NONE = MIT_NONE;
-       MID_ERROR = (-1);
-       MIS_TEXT = $0001;
-       MIS_BITMAP = $0002;
-       MIS_SEPARATOR = $0004;
-       MIS_OWNERDRAW = $0008;
-       MIS_SUBMENU = $0010;
-       MIS_MULTMENU = $0020;
-       MIS_SYSCOMMAND = $0040;
-       MIS_HELP = $0080;
-       MIS_STATIC = $0100;
-       MIS_BUTTONSEPARATOR = $0200;
-       MIS_BREAK = $0400;
-       MIS_BREAKSEPARATOR = $0800;
-       MIS_GROUP = $1000;
-       MIS_SINGLE = $2000;
-       MIA_NODISMISS = $0020;
-       MIA_FRAMED = $1000;
-       MIA_CHECKED = $2000;
-       MIA_DISABLED = $4000;
-       MIA_HILITED = $8000;
-
-       PU_POSITIONONITEM = $0001;
-       PU_HCONSTRAIN = $0002;
-       PU_VCONSTRAIN = $0004;
-       PU_NONE = $0000;
-       PU_MOUSEBUTTON1DOWN = $0008;
-       PU_MOUSEBUTTON2DOWN = $0010;
-       PU_MOUSEBUTTON3DOWN = $0018;
-       PU_SELECTITEM = $0020;
-       PU_MOUSEBUTTON1 = $0040;
-       PU_MOUSEBUTTON2 = $0080;
-       PU_MOUSEBUTTON3 = $0100;
-       PU_KEYBOARD = $0200;
-       SBS_HORZ = 0;
-       SBS_VERT = 1;
-       SBS_THUMBSIZE = 2;
-       SBS_AUTOTRACK = 4;
-       SBS_AUTOSIZE = $2000;
-       SBM_SETSCROLLBAR = $01a0;
-       SBM_SETPOS = $01a1;
-       SBM_QUERYPOS = $01a2;
-       SBM_QUERYRANGE = $01a3;
-       SBM_SETTHUMBSIZE = $01a6;
-       SB_LINEUP = 1;
-       SB_LINEDOWN = 2;
-       SB_LINELEFT = 1;
-       SB_LINERIGHT = 2;
-       SB_PAGEUP = 3;
-       SB_PAGEDOWN = 4;
-       SB_PAGELEFT = 3;
-       SB_PAGERIGHT = 4;
-       SB_SLIDERTRACK = 5;
-       SB_SLIDERPOSITION = 6;
-       SB_ENDSCROLL = 7;
-
-       FCF_TITLEBAR = $00000001;
-       FCF_SYSMENU = $00000002;
-       FCF_MENU = $00000004;
-       FCF_SIZEBORDER = $00000008;
-       FCF_MINBUTTON = $00000010;
-       FCF_MAXBUTTON = $00000020;
-       FCF_MINMAX = $00000030;
-       FCF_VERTSCROLL = $00000040;
-       FCF_HORZSCROLL = $00000080;
-       FCF_DLGBORDER = $00000100;
-       FCF_BORDER = $00000200;
-       FCF_SHELLPOSITION = $00000400;
-       FCF_TASKLIST = $00000800;
-       FCF_NOBYTEALIGN = $00001000;
-       FCF_NOMOVEWITHOWNER = $00002000;
-       FCF_ICON = $00004000;
-       FCF_ACCELTABLE = $00008000;
-       FCF_SYSMODAL = $00010000;
-       FCF_SCREENALIGN = $00020000;
-       FCF_MOUSEALIGN = $00040000;
-       FCF_HIDEBUTTON = $01000000;
-       FCF_HIDEMAX = $01000020;
-       FCF_DBE_APPSTAT = $80000000;
-       FCF_AUTOICON = $40000000;
-       FCF_STANDARD = $0000CC3F;
-       FS_ICON = $00000001;
-       FS_ACCELTABLE = $00000002;
-       FS_SHELLPOSITION = $00000004;
-       FS_TASKLIST = $00000008;
-       FS_NOBYTEALIGN = $00000010;
-       FS_NOMOVEWITHOWNER = $00000020;
-       FS_SYSMODAL = $00000040;
-       FS_DLGBORDER = $00000080;
-       FS_BORDER = $00000100;
-       FS_SCREENALIGN = $00000200;
-       FS_MOUSEALIGN = $00000400;
-       FS_SIZEBORDER = $00000800;
-       FS_AUTOICON = $00001000;
-       FS_DBE_APPSTAT = $00008000;
-       FS_STANDARD = $0000000F;
-       FF_FLASHWINDOW = $0001;
-       FF_ACTIVE = $0002;
-       FF_FLASHHILITE = $0004;
-       FF_OWNERHIDDEN = $0008;
-       FF_DLGDISMISSED = $0010;
-       FF_OWNERDISABLED = $0020;
-       FF_SELECTED = $0040;
-       FF_NOACTIVATESWP = $0080;
-
-       WM_FLASHWINDOW = $0040;
-       WM_FORMATFRAME = $0041;
-       WM_UPDATEFRAME = $0042;
-       WM_FOCUSCHANGE = $0043;
-       WM_SETBORDERSIZE = $0044;
-       WM_TRACKFRAME = $0045;
-       WM_MINMAXFRAME = $0046;
-       WM_SETICON = $0047;
-       WM_QUERYICON = $0048;
-       WM_SETACCELTABLE = $0049;
-       WM_QUERYACCELTABLE = $004a;
-       WM_TRANSLATEACCEL = $004b;
-       WM_QUERYTRACKINFO = $004c;
-       WM_QUERYBORDERSIZE = $004d;
-       WM_NEXTMENU = $004e;
-       WM_ERASEBACKGROUND = $004f;
-       WM_QUERYFRAMEINFO = $0050;
-       WM_QUERYFOCUSCHAIN = $0051;
-       WM_OWNERPOSCHANGE = $0052;
-       WM_CALCFRAMERECT = $0053;
-       WM_WINDOWPOSCHANGED = $0055;
-       WM_ADJUSTFRAMEPOS = $0056;
-       WM_QUERYFRAMECTLCOUNT = $0059;
-       WM_QUERYHELPINFO = $005B;
-       WM_SETHELPINFO = $005C;
-       WM_ERROR = $005D;
-       WM_REALIZEPALETTE = $005E;
-       FI_FRAME = $00000001;
-       FI_OWNERHIDE = $00000002;
-       FI_ACTIVATEOK = $00000004;
-       FI_NOMOVEWITHOWNER = $00000008;
-
-       FID_SYSMENU = $8002;
-       FID_TITLEBAR = $8003;
-       FID_MINMAX = $8004;
-       FID_MENU = $8005;
-       FID_VERTSCROLL = $8006;
-       FID_HORZSCROLL = $8007;
-       FID_CLIENT = $8008;
-       FID_DBE_APPSTAT = $8010;
-       FID_DBE_KBDSTAT = $8011;
-       FID_DBE_PECIC = $8012;
-       FID_DBE_KKPOPUP = $8013;
-       SC_SIZE = $8000;
-       SC_MOVE = $8001;
-       SC_MINIMIZE = $8002;
-       SC_MAXIMIZE = $8003;
-       SC_CLOSE = $8004;
-       SC_NEXT = $8005;
-       SC_APPMENU = $8006;
-       SC_SYSMENU = $8007;
-       SC_RESTORE = $8008;
-       SC_NEXTFRAME = $8009;
-       SC_NEXTWINDOW = $8010;
-       SC_TASKMANAGER = $8011;
-       SC_HELPKEYS = $8012;
-       SC_HELPINDEX = $8013;
-       SC_HELPEXTENDED = $8014;
-       SC_SWITCHPANELIDS = $8015;
-       SC_DBE_FIRST = $8018;
-       SC_DBE_LAST = $801F;
-       SC_BEGINDRAG = $8020;
-       SC_ENDDRAG = $8021;
-       SC_SELECT = $8022;
-       SC_OPEN = $8023;
-       SC_CONTEXTMENU = $8024;
-       SC_CONTEXTHELP = $8025;
-       SC_TEXTEDIT = $8026;
-       SC_BEGINSELECT = $8027;
-       SC_ENDSELECT = $8028;
-       SC_WINDOW = $8029;
-       SC_HIDE = $802a;
-       TBM_SETHILITE = $01e3;
-       TBM_QUERYHILITE = $01e4;
-
-       SV_SWAPBUTTON = 0;
-       SV_DBLCLKTIME = 1;
-       SV_CXDBLCLK = 2;
-       SV_CYDBLCLK = 3;
-       SV_CXSIZEBORDER = 4;
-       SV_CYSIZEBORDER = 5;
-       SV_ALARM = 6;
-       SV_RESERVEDFIRST1 = 7;
-       SV_RESERVEDLAST1 = 8;
-       SV_CURSORRATE = 9;
-       SV_FIRSTSCROLLRATE = 10;
-       SV_SCROLLRATE = 11;
-       SV_NUMBEREDLISTS = 12;
-       SV_WARNINGFREQ = 13;
-       SV_NOTEFREQ = 14;
-       SV_ERRORFREQ = 15;
-       SV_WARNINGDURATION = 16;
-       SV_NOTEDURATION = 17;
-       SV_ERRORDURATION = 18;
-       SV_RESERVEDFIRST = 19;
-       SV_RESERVEDLAST = 19;
-       SV_CXSCREEN = 20;
-       SV_CYSCREEN = 21;
-       SV_CXVSCROLL = 22;
-       SV_CYHSCROLL = 23;
-       SV_CYVSCROLLARROW = 24;
-       SV_CXHSCROLLARROW = 25;
-       SV_CXBORDER = 26;
-       SV_CYBORDER = 27;
-       SV_CXDLGFRAME = 28;
-       SV_CYDLGFRAME = 29;
-       SV_CYTITLEBAR = 30;
-       SV_CYVSLIDER = 31;
-       SV_CXHSLIDER = 32;
-       SV_CXMINMAXBUTTON = 33;
-       SV_CYMINMAXBUTTON = 34;
-       SV_CYMENU = 35;
-       SV_CXFULLSCREEN = 36;
-       SV_CYFULLSCREEN = 37;
-       SV_CXICON = 38;
-       SV_CYICON = 39;
-       SV_CXPOINTER = 40;
-       SV_CYPOINTER = 41;
-       SV_DEBUG = 42;
-       SV_CMOUSEBUTTONS = 43;
-       SV_CPOINTERBUTTONS = 43;
-       SV_POINTERLEVEL = 44;
-       SV_CURSORLEVEL = 45;
-       SV_TRACKRECTLEVEL = 46;
-       SV_CTIMERS = 47;
-       SV_MOUSEPRESENT = 48;
-       SV_CXBYTEALIGN = 49;
-       SV_CXALIGN = 49;
-       SV_CYBYTEALIGN = 50;
-       SV_CYALIGN = 50;
-       SV_NOTRESERVED = 56;
-       SV_EXTRAKEYBEEP = 57;
-       SV_SETLIGHTS = 58;
-       SV_INSERTMODE = 59;
-       SV_MENUROLLDOWNDELAY = 64;
-       SV_MENUROLLUPDELAY = 65;
-       SV_ALTMNEMONIC = 66;
-       SV_TASKLISTMOUSEACCESS = 67;
-       SV_CXICONTEXTWIDTH = 68;
-       SV_CICONTEXTLINES = 69;
-       SV_CHORDTIME = 70;
-       SV_CXCHORD = 71;
-       SV_CYCHORD = 72;
-       SV_CXMOTION = 73;
-       SV_CYMOTION = 74;
-       SV_BEGINDRAG = 75;
-       SV_ENDDRAG = 76;
-       SV_SINGLESELECT = 77;
-       SV_OPEN = 78;
-       SV_CONTEXTMENU = 79;
-       SV_CONTEXTHELP = 80;
-       SV_TEXTEDIT = 81;
-       SV_BEGINSELECT = 82;
-       SV_ENDSELECT = 83;
-       SV_BEGINDRAGKB = 84;
-       SV_ENDDRAGKB = 85;
-       SV_SELECTKB = 86;
-       SV_OPENKB = 87;
-       SV_CONTEXTMENUKB = 88;
-       SV_CONTEXTHELPKB = 89;
-       SV_TEXTEDITKB = 90;
-       SV_BEGINSELECTKB = 91;
-       SV_ENDSELECTKB = 92;
-       SV_ANIMATION = 93;
-       SV_ANIMATIONSPEED = 94;
-       SV_MONOICONS = 95;
-       SV_KBDALTERED = 96;
-       SV_PRINTSCREEN = 97;
-       SV_CSYSVALUES = 98;
-
-       PP_FOREGROUNDCOLOR = 1;
-       PP_FOREGROUNDCOLORINDEX = 2;
-       PP_BACKGROUNDCOLOR = 3;
-       PP_BACKGROUNDCOLORINDEX = 4;
-       PP_HILITEFOREGROUNDCOLOR = 5;
-       PP_HILITEFOREGROUNDCOLORINDEX = 6;
-       PP_HILITEBACKGROUNDCOLOR = 7;
-       PP_HILITEBACKGROUNDCOLORINDEX = 8;
-       PP_DISABLEDFOREGROUNDCOLOR = 9;
-       PP_DISABLEDFOREGROUNDCOLORINDEX = 10;
-       PP_DISABLEDBACKGROUNDCOLOR = 11;
-       PP_DISABLEDBACKGROUNDCOLORINDEX = 12;
-       PP_BORDERCOLOR = 13;
-       PP_BORDERCOLORINDEX = 14;
-       PP_FONTNAMESIZE = 15;
-       PP_FONTHANDLE = 16;
-       PP_RESERVED = 17;
-       PP_ACTIVECOLOR = 18;
-       PP_ACTIVECOLORINDEX = 19;
-       PP_INACTIVECOLOR = 20;
-       PP_INACTIVECOLORINDEX = 21;
-       PP_ACTIVETEXTFGNDCOLOR = 22;
-       PP_ACTIVETEXTFGNDCOLORINDEX = 23;
-       PP_ACTIVETEXTBGNDCOLOR = 24;
-       PP_ACTIVETEXTBGNDCOLORINDEX = 25;
-       PP_INACTIVETEXTFGNDCOLOR = 26;
-       PP_INACTIVETEXTFGNDCOLORINDEX = 27;
-       PP_INACTIVETEXTBGNDCOLOR = 28;
-       PP_INACTIVETEXTBGNDCOLORINDEX = 29;
-       PP_SHADOW = 30;
-       PP_MENUFOREGROUNDCOLOR = 31;
-       PP_MENUFOREGROUNDCOLORINDEX = 32;
-       PP_MENUBACKGROUNDCOLOR = 33;
-       PP_MENUBACKGROUNDCOLORINDEX = 34;
-       PP_MENUHILITEFGNDCOLOR = 35;
-       PP_MENUHILITEFGNDCOLORINDEX = 36;
-       PP_MENUHILITEBGNDCOLOR = 37;
-       PP_MENUHILITEBGNDCOLORINDEX = 38;
-       PP_MENUDISABLEDFGNDCOLOR = 39;
-       PP_MENUDISABLEDFGNDCOLORINDEX = 40;
-       PP_MENUDISABLEDBGNDCOLOR = 41;
-       PP_MENUDISABLEDBGNDCOLORINDEX = 42;
-       PP_USER = $8000;
-       QPF_NOINHERIT = $0001;
-       QPF_ID1COLORINDEX = $0002;
-       QPF_ID2COLORINDEX = $0004;
-       QPF_PURERGBCOLOR = $0008;
-       QPF_VALIDFLAGS = $000F;
-
-       SYSCLR_SHADOWHILITEBGND = (-50);
-       SYSCLR_SHADOWHILITEFGND = (-49);
-       SYSCLR_SHADOWTEXT = (-48);
-       SYSCLR_ENTRYFIELD = (-47);
-       SYSCLR_MENUDISABLEDTEXT = (-46);
-       SYSCLR_MENUHILITE = (-45);
-       SYSCLR_MENUHILITEBGND = (-44);
-       SYSCLR_PAGEBACKGROUND = (-43);
-       SYSCLR_FIELDBACKGROUND = (-42);
-       SYSCLR_BUTTONLIGHT = (-41);
-       SYSCLR_BUTTONMIDDLE = (-40);
-       SYSCLR_BUTTONDARK = (-39);
-       SYSCLR_BUTTONDEFAULT = (-38);
-       SYSCLR_TITLEBOTTOM = (-37);
-       SYSCLR_SHADOW = (-36);
-       SYSCLR_ICONTEXT = (-35);
-       SYSCLR_DIALOGBACKGROUND = (-34);
-       SYSCLR_HILITEFOREGROUND = (-33);
-       SYSCLR_HILITEBACKGROUND = (-32);
-       SYSCLR_INACTIVETITLETEXTBGND = (-31);
-       SYSCLR_ACTIVETITLETEXTBGND = (-30);
-       SYSCLR_INACTIVETITLETEXT = (-29);
-       SYSCLR_ACTIVETITLETEXT = (-28);
-       SYSCLR_OUTPUTTEXT = (-27);
-       SYSCLR_WINDOWSTATICTEXT = (-26);
-       SYSCLR_SCROLLBAR = (-25);
-       SYSCLR_BACKGROUND = (-24);
-       SYSCLR_ACTIVETITLE = (-23);
-       SYSCLR_INACTIVETITLE = (-22);
-       SYSCLR_MENU = (-21);
-       SYSCLR_WINDOW = (-20);
-       SYSCLR_WINDOWFRAME = (-19);
-       SYSCLR_MENUTEXT = (-18);
-       SYSCLR_WINDOWTEXT = (-17);
-       SYSCLR_TITLETEXT = (-16);
-       SYSCLR_ACTIVEBORDER = (-15);
-       SYSCLR_INACTIVEBORDER = (-14);
-       SYSCLR_APPWORKSPACE = (-13);
-       SYSCLR_HELPBACKGROUND = (-12);
-       SYSCLR_HELPTEXT = (-11);
-       SYSCLR_HELPHILITE = (-10);
-       SYSCLR_CSYSCOLORS = 41;
-
-       TID_CURSOR = $ffff;
-       TID_SCROLL = $fffe;
-       TID_FLASHWINDOW = $fffd;
-       TID_USERMAX = $7fff;
-
-       AF_CHAR = $0001;
-       AF_VIRTUALKEY = $0002;
-       AF_SCANCODE = $0004;
-       AF_SHIFT = $0008;
-       AF_CONTROL = $0010;
-       AF_ALT = $0020;
-       AF_LONEKEY = $0040;
-       AF_SYSCOMMAND = $0100;
-       AF_HELP = $0200;
-
-       EAF_DEFAULTOWNER = $0001;
-       EAF_UNCHANGEABLE = $0002;
-       EAF_REUSEICON = $0004;
-
-       TF_LEFT = $0001;
-       TF_TOP = $0002;
-       TF_RIGHT = $0004;
-       TF_BOTTOM = $0008;
-       TF_MOVE = $000F;
-       TF_SETPOINTERPOS = $0010;
-       TF_GRID = $0020;
-       TF_STANDARD = $0040;
-       TF_ALLINBOUNDARY = $0080;
-       TF_VALIDATETRACKRECT = $0100;
-       TF_PARTINBOUNDARY = $0200;
-       WM_RENDERFMT = $0060;
-       WM_RENDERALLFMTS = $0061;
-       WM_DESTROYCLIPBOARD = $0062;
-       WM_PAINTCLIPBOARD = $0063;
-       WM_SIZECLIPBOARD = $0064;
-       WM_HSCROLLCLIPBOARD = $0065;
-       WM_VSCROLLCLIPBOARD = $0066;
-       WM_DRAWCLIPBOARD = $0067;
-       CF_TEXT = 1;
-       CF_BITMAP = 2;
-       CF_DSPTEXT = 3;
-       CF_DSPBITMAP = 4;
-       CF_METAFILE = 5;
-       CF_DSPMETAFILE = 6;
-       CF_PALETTE = 9;
-       SZFMT_TEXT = '#1';
-       SZFMT_BITMAP = '#2';
-       SZFMT_DSPTEXT = '#3';
-       SZFMT_DSPBITMAP = '#4';
-       SZFMT_METAFILE = '#5';
-       SZFMT_DSPMETAFILE = '#6';
-       SZFMT_PALETTE = '#9';
-       SZFMT_SYLK = 'Sylk';
-       SZFMT_DIF = 'Dif';
-       SZFMT_TIFF = 'Tiff';
-       SZFMT_OEMTEXT = 'OemText';
-       SZFMT_DIB = 'Dib';
-       SZFMT_OWNERDISPLAY = 'OwnerDisplay';
-       SZFMT_LINK = 'Link';
-       SZFMT_METAFILEPICT = 'MetaFilePict';
-       SZFMT_DSPMETAFILEPICT = 'DspMetaFilePict';
-       SZFMT_CPTEXT = 'Codepage Text';
-       SZDDEFMT_RTF = 'Rich Text Format';
-       SZDDEFMT_PTRPICT = 'Printer_Picture';
-
-       CFI_OWNERFREE = $0001;
-       CFI_OWNERDISPLAY = $0002;
-       CFI_POINTER = $0400;
-       CFI_HANDLE = $0200;
-
-       CURSOR_SOLID = $0000;
-       CURSOR_HALFTONE = $0001;
-       CURSOR_FRAME = $0002;
-       CURSOR_FLASH = $0004;
-       CURSOR_SETPOS = $8000;
-
-       SPTR_ARROW = 1;
-       SPTR_TEXT = 2;
-       SPTR_WAIT = 3;
-       SPTR_SIZE = 4;
-       SPTR_MOVE = 5;
-       SPTR_SIZENWSE = 6;
-       SPTR_SIZENESW = 7;
-       SPTR_SIZEWE = 8;
-       SPTR_SIZENS = 9;
-       SPTR_APPICON = 10;
-       SPTR_ICONINFORMATION = 11;
-       SPTR_ICONQUESTION = 12;
-       SPTR_ICONERROR = 13;
-       SPTR_ICONWARNING = 14;
-       SPTR_CPTR = 14;
-       SPTR_ILLEGAL = 18;
-       SPTR_FILE = 19;
-       SPTR_FOLDER = 20;
-       SPTR_MULTFILE = 21;
-       SPTR_PROGRAM = 22;
-       SPTR_HANDICON = SPTR_ICONERROR;
-       SPTR_QUESICON = SPTR_ICONQUESTION;
-       SPTR_BANGICON = SPTR_ICONWARNING;
-       SPTR_NOTEICON = SPTR_ICONINFORMATION;
-
-       DP_NORMAL = $0000;
-       DP_HALFTONED = $0001;
-       DP_INVERTED = $0002;
-
-       SBMP_OLD_SYSMENU = 1;
-       SBMP_OLD_SBUPARROW = 2;
-       SBMP_OLD_SBDNARROW = 3;
-       SBMP_OLD_SBRGARROW = 4;
-       SBMP_OLD_SBLFARROW = 5;
-       SBMP_MENUCHECK = 6;
-       SBMP_OLD_CHECKBOXES = 7;
-       SBMP_BTNCORNERS = 8;
-       SBMP_OLD_MINBUTTON = 9;
-       SBMP_OLD_MAXBUTTON = 10;
-       SBMP_OLD_RESTOREBUTTON = 11;
-       SBMP_OLD_CHILDSYSMENU = 12;
-       SBMP_DRIVE = 15;
-       SBMP_FILE = 16;
-       SBMP_FOLDER = 17;
-       SBMP_TREEPLUS = 18;
-       SBMP_TREEMINUS = 19;
-       SBMP_PROGRAM = 22;
-       SBMP_MENUATTACHED = 23;
-       SBMP_SIZEBOX = 24;
-       SBMP_SYSMENU = 25;
-       SBMP_MINBUTTON = 26;
-       SBMP_MAXBUTTON = 27;
-       SBMP_RESTOREBUTTON = 28;
-       SBMP_CHILDSYSMENU = 29;
-       SBMP_SYSMENUDEP = 30;
-       SBMP_MINBUTTONDEP = 31;
-       SBMP_MAXBUTTONDEP = 32;
-       SBMP_RESTOREBUTTONDEP = 33;
-       SBMP_CHILDSYSMENUDEP = 34;
-       SBMP_SBUPARROW = 35;
-       SBMP_SBDNARROW = 36;
-       SBMP_SBLFARROW = 37;
-       SBMP_SBRGARROW = 38;
-       SBMP_SBUPARROWDEP = 39;
-       SBMP_SBDNARROWDEP = 40;
-       SBMP_SBLFARROWDEP = 41;
-       SBMP_SBRGARROWDEP = 42;
-       SBMP_SBUPARROWDIS = 43;
-       SBMP_SBDNARROWDIS = 44;
-       SBMP_SBLFARROWDIS = 45;
-       SBMP_SBRGARROWDIS = 46;
-       SBMP_COMBODOWN = 47;
-       SBMP_CHECKBOXES = 48;
-
-       HK_SENDMSG = 0;
-       HK_INPUT = 1;
-       HK_MSGFILTER = 2;
-       HK_JOURNALRECORD = 3;
-       HK_JOURNALPLAYBACK = 4;
-       HK_HELP = 5;
-       HK_LOADER = 6;
-       HK_REGISTERUSERMSG = 7;
-       HK_MSGCONTROL = 8;
-       HK_PLIST_ENTRY = 9;
-       HK_PLIST_EXIT = 10;
-       HK_FINDWORD = 11;
-       HK_CODEPAGECHANGED = 12;
-       HK_WINDOWDC = 15;
-       HK_DESTROYWINDOW = 16;
-       HK_CHECKMSGFILTER = 20;
-       HMQ_CURRENT = 1;
-       MSGF_DIALOGBOX = 1;
-       MSGF_MESSAGEBOX = 2;
-       MSGF_TRACK = 8;
-       MSGF_DDEPOSTMSG = 3;
-       HLPM_FRAME = (-1);
-       HLPM_WINDOW = (-2);
-       HLPM_MENU = (-3);
-       PM_MODEL_1X = 0;
-       PM_MODEL_2X = 1;
-
-       LHK_DELETEPROC = 1;
-       LHK_DELETELIB = 2;
-       LHK_LOADPROC = 3;
-       LHK_LOADLIB = 4;
-       MCHK_MSGINTEREST = 1;
-       MCHK_CLASSMSGINTEREST = 2;
-       MCHK_SYNCHRONISATION = 3;
-       MCHK_MSGMODE = 4;
-       RUMHK_DATATYPE = 1;
-       RUMHK_MSG = 2;
-
-       {WinCompareStrings}
-       WCS_ERROR = 0;
-       WCS_EQ = 1;
-       WCS_LT = 2;
-       WCS_GT = 3;
-
-       WINDBG_HWND_NOT_DESTROYED = $1022;
-       WINDBG_HPTR_NOT_DESTROYED = $1023;
-       WINDBG_HACCEL_NOT_DESTROYED = $1024;
-       WINDBG_HENUM_NOT_DESTROYED = $1025;
-       WINDBG_VISRGN_SEM_BUSY = $1026;
-       WINDBG_USER_SEM_BUSY = $1027;
-       WINDBG_DC_CACHE_BUSY = $1028;
-       WINDBG_HOOK_STILL_INSTALLED = $1029;
-       WINDBG_WINDOW_STILL_LOCKED = $102a;
-       WINDBG_UPDATEPS_ASSERTION_FAIL = $102b;
-       WINDBG_SENDMSG_WITHIN_USER_SEM = $102c;
-       WINDBG_USER_SEM_NOT_ENTERED = $102d;
-       WINDBG_PROC_NOT_EXPORTED = $102e;
-       WINDBG_BAD_SENDMSG_cardinal = $102f;
-       WINDBG_ABNORMAL_EXIT = $1030;
-       WINDBG_INTERNAL_REVISION = $1031;
-       WINDBG_INITSYSTEM_FAILED = $1032;
-       WINDBG_HATOMTBL_NOT_DESTROYED = $1033;
-       WINDBG_WINDOW_UNLOCK_WAIT = $1035;
-
-       SZDDESYS_TOPIC = 'System';
-       SZDDESYS_ITEM_TOPICS = 'Topics';
-       SZDDESYS_ITEM_SYSITEMS = 'SysItems';
-       SZDDESYS_ITEM_RTNMSG = 'ReturnMessage';
-       SZDDESYS_ITEM_STATUS = 'Status';
-       SZDDESYS_ITEM_FORMATS = 'Formats';
-       SZDDESYS_ITEM_SECURITY = 'Security';
-       SZDDESYS_ITEM_ITEMFORMATS = 'ItemFormats';
-       SZDDESYS_ITEM_HELP = 'Help';
-       SZDDESYS_ITEM_PROTOCOLS = 'Protocols';
-       SZDDESYS_ITEM_RESTART = 'Restart'; 
-       
-       DDECTXT_CASESENSITIVE = $0001;     
-
-       {DDE}
-       DDE_FACK = $0001;
-       DDE_FBUSY = $0002;
-       DDE_FNODATA = $0004;
-       DDE_FACKREQ = $0008;
-       DDE_FRESPONSE = $0010;
-       DDE_NOTPROCESSED = $0020;
-       DDE_FRESERVED = $00C0;
-       DDE_FAPPSTATUS = $FF00;
-       DDEFMT_TEXT = $0001;
-       DDEPM_RETRY = $00000001;
-       DDEPM_NOFREE = $00000002;
-       WM_DDE_FIRST = $00A0;
-       WM_DDE_INITIATE = $00A0;
-       WM_DDE_REQUEST = $00A1;
-       WM_DDE_ACK = $00A2;
-       WM_DDE_DATA = $00A3;
-       WM_DDE_ADVISE = $00A4;
-       WM_DDE_UNADVISE = $00A5;
-       WM_DDE_POKE = $00A6;
-       WM_DDE_EXECUTE = $00A7;
-       WM_DDE_TERMINATE = $00A8;
-       WM_DDE_INITIATEACK = $00A9;
-       WM_DDE_LAST = $00AF;
-       WM_QUERYCONVERTPOS = $00b0;
-       QCP_CONVERT = $0001;
-       QCP_NOCONVERT = $0000;
-
-       SDT_DESTROY = $0001;
-       SDT_NOBKGND = $0002;
-       SDT_TILE = $0004;
-       SDT_SCALE = $0008;
-       SDT_PATTERN = $0010;
-       SDT_CENTER = $0020;
-       SDT_RETAIN = $0040;
-       SDT_LOADFILE = $0080;
-
-       STR_DLLNAME = 'keyremap';
-       WM_DBCSFIRST = $00b0;
-       WM_DBCSLAST = $00cf;
-
-    function WinRegisterClass(hab : cardinal;pszClassName : pchar;pfnWndProc : ppointer;flStyle,cbWindowData : cardinal) : longbool; cdecl;
-    function WinDefWindowProc(hwnd,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;
-    function WinDestroyWindow(hwnd : cardinal) : longbool; cdecl;
-    function WinShowWindow(hwnd : cardinal;fShow : longbool) : longbool;  cdecl;
-    function WinQueryWindowRect(hwnd : cardinal;prclDest : PRECTL) : longbool; cdecl;
-    function WinGetPS(hwnd : cardinal) : cardinal;  cdecl;
-    function WinReleasePS(hps : cardinal) : longbool;  cdecl;
-    function WinEndPaint(hps : cardinal) : longbool; cdecl;
-    function WinGetClipPS(hwnd,hwndClip,fl : cardinal) : cardinal; cdecl;
-    function WinIsWindowShowing(hwnd : cardinal) : longbool; cdecl;
-    function WinBeginPaint(hwnd,hps : cardinal;prclPaint : PRECTL) : cardinal; cdecl;
-    function WinOpenWindowDC(hwnd : cardinal) : cardinal; cdecl;
-    function WinScrollWindow(hwnd : cardinal;dx,dy : longint;prclScroll,prclClip : PRECTL;hrgnUpdate : cardinal;prclUpdate : PRECTL;rgfsw : cardinal) : longint; cdecl;                                             
-    function WinFillRect(hps : cardinal;prcl : PRECTL;lColor : longint) : longbool; cdecl;
-    function WinQueryVersion(hab : cardinal) : cardinal; cdecl;
-    function WinInitialize(flOptions : cardinal) : cardinal; cdecl;
-    function WinTerminate(hab : cardinal) : longbool; cdecl;      
-    function WinQueryAnchorBlock(hwnd : cardinal) : cardinal; cdecl;
-    function WinCreateWindow(hwndParent : cardinal;pszClass,pszName : pchar;flStyle : cardinal;x,y,cx,cy : longint;hwndOwner,hwndInsertBehind,id : cardinal;pCtlData,pPresParams : pointer) : cardinal; cdecl;
-    function WinEnableWindow(hwnd : cardinal;fEnable : longbool) : longbool; cdecl;
-    function WinIsWindowEnabled(hwnd : cardinal) : longbool; cdecl;
-    function WinEnableWindowUpdate(hwnd : cardinal;fEnable : longbool) : longbool; cdecl;
-    function WinIsWindowVisible(hwnd : cardinal) : longbool; cdecl;
-    function WinQueryWindowText(hwnd : cardinal;cchBufferMax : longint;pchBuffer : pshortint) : longint; cdecl;                                                                 
-    function WinSetWindowText(hwnd : cardinal;pszText : pchar) : longbool; cdecl;
-    function WinQueryWindowTextLength(hwnd : cardinal) : longint; cdecl;
-    function WinWindowFromID(hwndParent,id : cardinal) : cardinal; cdecl;
-    function WinIsWindow(hab,hwnd : cardinal) : longbool; cdecl;
-    function WinQueryWindow(hwnd : cardinal;cmd : longint) : cardinal; cdecl;
-    function WinMultWindowFromIDs(hwndParent : cardinal;prghwnd : pcardinal;idFirst,idLast : cardinal) : longint; cdecl;
-    function WinSetParent(hwnd,hwndNewParent : cardinal;fRedraw : longbool) : longbool; cdecl;
-    function WinIsChild(hwnd,hwndParent : cardinal) : longbool; cdecl;
-    function WinSetOwner(hwnd,hwndNewOwner : cardinal) : longbool; cdecl;
-    function WinQueryWindowProcess(hwnd : cardinal;ppid,ptid : pcardinal) : longbool; cdecl;
-    function WinQueryObjectWindow(hwndDesktop : cardinal) : cardinal; cdecl;
-    function WinQueryDesktopWindow(hab,hdc : cardinal) : cardinal; cdecl;
-    function WinSetWindowPos(hwnd,hwndInsertBehind : cardinal;x,y,cx,cy : longint;fl : cardinal) : longbool; cdecl; 
-    function WinSetMultWindowPos(hab : cardinal;pswp : PSWP;cswp : cardinal) : longbool; cdecl;
-    function WinQueryWindowPos(hwnd : cardinal;pswp : PSWP) : longbool; cdecl;
-    function WinUpdateWindow(hwnd : cardinal) : longbool; cdecl;
-    function WinInvalidateRect(hwnd : cardinal;pwrc : PRECTL;fIncludeChildren : longbool) : longbool; cdecl;
-    function WinInvalidateRegion(hwnd,hrgn : cardinal;fIncludeChildren : longbool) : longbool; cdecl;
-    function WinInvertRect(hps : cardinal;prcl : PRECTL) : longbool; cdecl;
-    function WinDrawBitmap(hpsDst,hbm : cardinal;pwrcSrc : PRECTL;pptlDst : PPOINTL;clrFore : longint;clrBack : longint;fl : cardinal) : longbool; cdecl;
-    function WinDrawText(hps : cardinal;cchText : longint;lpchText : pshortint;prcl : PRECTL;clrFore,clrBack : longint;flCmd : cardinal) : longint; cdecl;
-    function WinDrawBorder(hps : cardinal;prcl : PRECTL;cx,cy : longint;clrFore,clrBack : longint;flCmd : cardinal) : longbool; cdecl;
-    function WinLoadString(hab,hmod,id : cardinal;cchMax : longint;pchBuffer : pchar) : longint; cdecl;
-    function WinLoadMessage(hab,hmod,id : cardinal;cchMax : longint;pchBuffer : pchar) : longint; cdecl;
-    function WinSetActiveWindow(hwndDesktop,hwnd : cardinal) : longbool; cdecl;
-    function WinSubclassWindow(hwnd : cardinal;pfnwp : ppointer) : ppointer; cdecl;
-    function WinQueryClassName(hwnd : cardinal;cchMax : longint;pch : pshortint) : longint; cdecl;
-    function WinQueryClassInfo(hab : cardinal;pszClassName : pchar;pClassInfo : PCLASSINFO) : longbool; cdecl;
-    function WinQueryActiveWindow(hwndDesktop : cardinal) : cardinal; cdecl;
-    function WinIsThreadActive(hab : cardinal) : longbool; cdecl;
-    function WinQuerySysModalWindow(hwndDesktop : cardinal) : cardinal; cdecl;
-    function WinSetSysModalWindow(hwndDesktop,hwnd : cardinal) : longbool; cdecl; 
-    function WinQueryWindowUShort(hwnd : cardinal;index : longint) : word; cdecl;
-    function WinSetWindowUShort(hwnd : cardinal;index : longint;us : word) : longbool; cdecl;
-    function WinQueryWindowULong(hwnd : cardinal;index : longint) : cardinal; cdecl;
-    function WinSetWindowULong(hwnd : cardinal;index : longint;ul : cardinal) : longbool; cdecl;
-    function WinQueryWindowPtr(hwnd : cardinal;index : longint) : pointer; cdecl;    
-    function WinSetWindowPtr(hwnd : cardinal;index : longint;p : pointer) : longbool; cdecl;
-    function WinSetWindowBits(hwnd : cardinal;index : longint;flData,flMask : cardinal) : longbool; cdecl;
-    function WinBeginEnumWindows(hwnd : cardinal) : cardinal; cdecl;                                             
-    function WinGetNextWindow(henum : cardinal) : cardinal; cdecl;                                               
-    function WinEndEnumWindows(henum : cardinal) : longbool; cdecl;                                                  
-    function WinWindowFromPoint(hwnd : cardinal;pptl : PPOINTL;fChildren : longbool) : cardinal; cdecl;              
-    function WinMapWindowPoints(hwndFrom,hwndTo : cardinal;prgptl : PPOINTL;cwpt : longint) : longbool; cdecl;
-    function WinValidateRect(hwnd : cardinal;prcl : PRECTL;fIncludeChildren : longbool) : longbool; cdecl;                   
-    function WinValidateRegion(hwnd,hrgn : cardinal;fIncludeChildren : longbool) : longbool; cdecl;                   
-    function WinWindowFromDC(hdc : cardinal) : cardinal; cdecl;                                                      
-    function WinQueryWindowDC(hwnd : cardinal) : cardinal; cdecl;                                                    
-    function WinGetScreenPS(hwndDesktop : cardinal) : cardinal; cdecl;                                               
-    function WinLockWindowUpdate(hwndDesktop,hwndLockUpdate : cardinal) : longbool; cdecl;                    
-    function WinLockVisRegions(hwndDesktop : cardinal;fLock : longbool) : longbool; cdecl;                                   
-    function WinQueryUpdateRect(hwnd : cardinal;prcl : PRECTL) : longbool; cdecl;                                        
-    function WinQueryUpdateRegion(hwnd,hrgn : cardinal) : longint; cdecl;                                     
-    function WinExcludeUpdateRegion(hps,hwnd : cardinal) : longint; cdecl;
-    function WinSendMsg(hwnd,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;
-    function WinCreateMsgQueue(hab : cardinal;cmsg : longint) : cardinal; cdecl;                        
-    function WinDestroyMsgQueue(hmq : cardinal) : longbool; cdecl;                                          
-    function WinQueryQueueInfo(hmq : cardinal;pmqi : PMQINFO;cbCopy : cardinal) : longbool; cdecl;          
-    function WinCancelShutdown(hmq : cardinal;fCancelAlways : longbool) : longbool; cdecl;                      
-    function WinGetMsg(hab : cardinal;pqmsg : PQMSG;hwndFilter,msgFilterFirst,msgFilterLast : cardinal) : longbool; cdecl;
-    function WinPeekMsg(hab : cardinal;pqmsg : PQMSG;hwndFilter,msgFilterFirst,msgFilterLast,fl : cardinal) : longbool; cdecl; 
-    function WinDispatchMsg(hab : cardinal;pqmsg : PQMSG) : pointer; cdecl;
-    function WinPostMsg(hwnd,msg : cardinal;mp1,mp2 : pointer) : longbool; cdecl;
-    function WinRegisterUserMsg(hab,msgid : cardinal;datatype1,dir1,datatype2,dir2,datatyper : longint) : longbool; cdecl;
-    function WinRegisterUserDatatype(hab : cardinal;datatype,count : longint;types : Plongint) : longbool; cdecl;
-    function WinSetMsgMode(hab : cardinal;classname : pchar;control : longint) : longbool; cdecl;                      
-    function WinSetSynchroMode(hab : cardinal;mode : longint) : longbool;  cdecl;                        
-    function WinInSendMsg(hab : cardinal) : longbool; cdecl; 
-    function WinBroadcastMsg(hwnd,msg : cardinal;mp1,mp2 : pointer;rgf : cardinal) : longbool; cdecl;
-    function WinWaitMsg(hab,msgFirst,msgLast : cardinal) : longbool; cdecl;                       
-    function WinQueryQueueStatus(hwndDesktop : cardinal) : cardinal; cdecl;
-    function WinQueryMsgPos(hab : cardinal;pptl : PPOINTL) : longbool; cdecl;  
-    function WinQueryMsgTime(hab : cardinal) : cardinal; cdecl;            
-    function WinWaitEventSem(hev,ulTimeout : cardinal) : cardinal; cdecl;   
-    function WinRequestMutexSem(hmtx,ulTimeout : cardinal) : cardinal; cdecl;
-    function WinWaitMuxWaitSem(hmux,ulTimeout:cardinal;pulUser : pcardinal) : cardinal; cdecl;   
-    function WinPostQueueMsg(hmq,msg : cardinal;mp1,mp2 : pointer) : longbool; cdecl;  
-    function WinSetMsgInterest(hwnd,msg_class : cardinal;control : longint) : longbool; cdecl;
-    function WinSetClassMsgInterest(hab : cardinal;pszClassName : pchar;msg_class : cardinal;control : longint) : longbool; cdecl;     
-    function WinSetFocus(hwndDesktop,hwndSetFocus : cardinal) : longbool; cdecl;                                                
-    function WinFocusChange(hwndDesktop,hwndSetFocus,flFocusChange : cardinal) : longbool; cdecl;                    
-    function WinSetCapture(hwndDesktop,hwnd : cardinal) : longbool; cdecl; 
-    function WinQueryCapture(hwndDesktop : cardinal) : cardinal; cdecl;
-    function WinQueryFocus(hwndDesktop : cardinal) : cardinal; cdecl;   
-    function WinGetKeyState(hwndDesktop : cardinal;vkey : longint) : longint; cdecl;     
-    function WinGetPhysKeyState(hwndDesktop : cardinal;sc : longint) : longint; cdecl;   
-    function WinEnablePhysInput(hwndDesktop : cardinal;fEnable : longbool) : longbool; cdecl;    
-    function WinIsPhysInputEnabled(hwndDesktop : cardinal) : longbool; cdecl;                
-    function WinSetKeyboardStateTable(hwndDesktop : cardinal;pKeyStateTable : PBYTE;fSet : longbool) : longbool; cdecl;
-    function WinGetDlgMsg(hwndDlg : cardinal;pqmsg : PQMSG) : longbool; cdecl;             
-    function WinLoadDlg(hwndParent,hwndOwner : cardinal;pfnDlgProc : ppointer;hmod,idDlg : cardinal;pCreateParams : pointer) : cardinal; cdecl;  
-    function WinDlgBox(hwndParent,hwndOwner : cardinal;pfnDlgProc : ppointer;hmod,idDlg : cardinal;pCreateParams : pointer) : cardinal; cdecl;   
-    function WinDismissDlg(hwndDlg,usResult : cardinal) : longbool; cdecl;  
-    function WinQueryDlgItemShort(hwndDlg,idItem : cardinal;pResult : Pinteger;fSigned : longbool) : longbool; cdecl;  
-    function WinSetDlgItemShort(hwndDlg,idItem : cardinal;usValue : word;fSigned : longbool) : longbool; cdecl;        
-    function WinSetDlgItemText(hwndDlg,idItem : cardinal;pszText : pchar) : longbool; cdecl;
-    function WinQueryDlgItemText(hwndDlg,idItem : cardinal;cchBufferMax : longint;pchBuffer : pchar) : cardinal; cdecl;       
-    function WinQueryDlgItemTextLength(hwndDlg,idItem : cardinal) : longint; cdecl;                                               
-    function WinDefDlgProc(hwndDlg,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;                              
-    function WinAlarm(hwndDesktop,rgfType : cardinal) : longbool; cdecl;
-    function WinMessageBox(hwndParent,hwndOwner : cardinal;pszText,pszCaption : pchar;idWindow,flStyle : cardinal) : cardinal; cdecl;
-    function WinProcessDlg(hwndDlg : cardinal) : cardinal; cdecl;
-    function WinSendDlgItemMsg(hwndDlg,idItem,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;
-    function WinMapDlgPoints(hwndDlg : cardinal;prgwptl : PPOINTL;cwpt : cardinal;fCalcWindowCoords : longbool) : longbool; cdecl;     
-    function WinEnumDlgItem(hwndDlg,hwnd,code : cardinal) : cardinal; cdecl;                             
-    function WinSubstituteStrings(hwnd : cardinal;pszSrc : pchar;cchDstMax : longint;pszDst : pchar) : longint; cdecl;     
-    function WinCreateDlg(hwndParent,hwndOwner : cardinal;pfnDlgProc : ppointer;pdlgt : PDLGTEMPLATE;pCreateParams : pointer) : cardinal; cdecl;
-    function WinLoadMenu(hwndFrame,hmod,idMenu : cardinal) : cardinal; cdecl;
-    function WinCreateMenu(hwndParent : cardinal;lpmt : pointer) : cardinal; cdecl; 
-    function WinPopupMenu(hwndParent,hwndOwner,hwndMenu : cardinal;x,y,idItem : longint;fs : cardinal) : longbool; cdecl;
-    function WinCreateStdWindow(hwndParent,flStyle : cardinal;pflCreateFlags : pcardinal;pszClientClass,pszTitle : pchar;styleClient,hmod,idResources : cardinal;phwndClient : pcardinal) : cardinal; cdecl;
-    function WinFlashWindow(hwndFrame : cardinal;fFlash : longbool) : longbool; cdecl; 
-    function WinCreateFrameControls(hwndFrame : cardinal;pfcdata : PFRAMECDATA;pszTitle : pchar) : longbool;  cdecl;    
-    function WinCalcFrameRect(hwndFrame : cardinal;prcl : PRECTL;fClient : longbool) : longbool; cdecl;                         
-    function WinGetMinPosition(hwnd : cardinal;pswp : PSWP;pptl : PPOINTL) : longbool; cdecl;                               
-    function WinGetMaxPosition(hwnd : cardinal;pswp : PSWP) : longbool; cdecl;                                              
-    function WinSaveWindowPos(hsvwp : cardinal;pswp : PSWP;cswp : cardinal) : longbool; cdecl;        
-    function WinCopyRect(hab : cardinal;prclDst,prclSrc : PRECTL) : longbool; cdecl;         
-    function WinSetRect(hab : cardinal;prcl : PRECTL;xLeft,yBottom,xRight,yTop : longint) : longbool; cdecl; 
-    function WinIsRectEmpty(hab : cardinal;prcl : PRECTL) : longbool; cdecl;                                                              
-    function WinEqualRect(hab : cardinal;prcl1,prcl2 : PRECTL) : longbool; cdecl;                                                
-    function WinSetRectEmpty(hab : cardinal;prcl : PRECTL) : longbool; cdecl;                                                             
-    function WinOffsetRect(hab : cardinal;prcl : PRECTL;cx,cy : longint) : longbool; cdecl;                                     
-    function WinInflateRect(hab : cardinal;prcl : PRECTL;cx,cy : longint) : longbool; cdecl;                                    
-    function WinPtInRect(hab : cardinal;prcl : PRECTL;pptl : PPOINTL) : longbool; cdecl;                                                  
-    function WinIntersectRect(hab : cardinal;prclDst,prclSrc1,prclSrc2 : PRECTL) : longbool; cdecl;                     
-    function WinUnionRect(hab : cardinal;prclDst,prclSrc1,prclSrc2 : PRECTL) : longbool; cdecl;                         
-    function WinSubtractRect(hab : cardinal;prclDst,prclSrc1,prclSrc2 : PRECTL) : longbool; cdecl;                      
-    function WinMakeRect(hab : cardinal;pwrc : PRECTL) : longbool; cdecl;                                                                 
-    function WinMakePoints(hab : cardinal;pwpt : PPOINTL;cwpt : cardinal) : longbool; cdecl;                                              
-    function WinQuerySysValue(hwndDesktop : cardinal;iSysValue : longint) : longint; cdecl;                                           
-    function WinSetSysValue(hwndDesktop : cardinal;iSysValue,lValue : longint) : longbool; cdecl;                               
-    function WinSetPresParam(hwnd,id,cbParam : cardinal;pbParam : pointer) : longbool;  cdecl; 
-    function WinQueryPresParam(hwnd,id1,id2 : cardinal;pulId : pcardinal;cbBuf : cardinal;pbBuf : pointer;fs : cardinal) : cardinal; cdecl;    
-    function WinRemovePresParam(hwnd,id : cardinal) : longbool; cdecl; 
-    function WinQuerySysColor(hwndDesktop : cardinal;clr,lReserved : longint) : longint; cdecl; 
-    function WinSetSysColors(hwndDesktop,flOptions,flFormat : cardinal;clrFirst : longint;cclr : cardinal;pclr : Plongint) : longbool; cdecl;        
-    function WinStartTimer(hab,hwnd,idTimer,dtTimeout : cardinal) : cardinal; cdecl; 
-    function WinStopTimer(hab,hwnd,idTimer : cardinal) : longbool; cdecl; 
-    function WinGetCurrentTime(hab : cardinal) : cardinal; cdecl;                           
-    function WinLoadAccelTable(hab,hmod,idAccelTable : cardinal) : cardinal; cdecl;    
-    function WinCopyAccelTable(haccel : cardinal;pAccelTable : PACCELTABLE;cbCopyMax : cardinal) : cardinal; cdecl;
-    function WinCreateAccelTable(hab : cardinal;pAccelTable : PACCELTABLE) : cardinal; cdecl;                      
-    function WinDestroyAccelTable(haccel : cardinal) : longbool; cdecl;                                                
-    function WinTranslateAccel(hab,hwnd,haccel : cardinal;pqmsg : PQMSG) : longbool; cdecl;      
-    function WinSetAccelTable(hab,haccel,hwndFrame : cardinal) : longbool; cdecl;                
-    function WinQueryAccelTable(hab,hwndFrame : cardinal) : cardinal; cdecl;                            
-    function WinTrackRect(hwnd,hps : cardinal;pti : PTRACKINFO) : longbool; cdecl;        
-    function WinShowTrackRect(hwnd : cardinal;fShow : longbool) : longbool; cdecl;
-    function WinSetClipbrdOwner(hab,hwnd : cardinal) : longbool; cdecl;  
-    function WinSetClipbrdData(hab,ulData,fmt,rgfFmtInfo : cardinal) : longbool;  cdecl;  
-    function WinQueryClipbrdData(hab,fmt : cardinal) : cardinal;  cdecl;                                    
-    function WinQueryClipbrdFmtInfo(hab,fmt : cardinal;prgfFmtInfo : pcardinal) : longbool; cdecl;              
-    function WinSetClipbrdViewer(hab,hwndNewClipViewer : cardinal) : longbool;  cdecl;                      
-    function WinEnumClipbrdFmts(hab,fmt : cardinal) : cardinal; cdecl;   
-    function WinEmptyClipbrd(hab : cardinal) : longbool; cdecl;                         
-    function WinOpenClipbrd(hab : cardinal) : longbool;  cdecl;                         
-    function WinCloseClipbrd(hab : cardinal) : longbool; cdecl;                         
-    function WinQueryClipbrdOwner(hab : cardinal) : cardinal; cdecl;                
-    function WinQueryClipbrdViewer(hab : cardinal) : cardinal; cdecl;               
-    function WinDestroyCursor(hwnd : cardinal) : longbool; cdecl;                       
-    function WinShowCursor(hwnd : cardinal;fShow : longbool) : longbool; cdecl;             
-    function WinCreateCursor(hwnd : cardinal;x,y,cx,cy : longint;fs : cardinal;prclClip : PRECTL) : longbool; cdecl; 
-    function WinQueryCursorInfo(hwndDesktop : cardinal;pCursorInfo : PCURSORINFO) : longbool; cdecl;
-    function WinSetPointer(hwndDesktop,hptrNew : cardinal) : longbool; cdecl;       
-    function WinSetPointerOwner(hptr,pid : cardinal;fDestroy : longbool) : longbool; cdecl;  
-    function WinShowPointer(hwndDesktop : cardinal;fShow : longbool) : longbool; cdecl;            
-    function WinQuerySysPointer(hwndDesktop : cardinal;iptr : longint;fLoad : longbool) : cardinal; cdecl;
-    function WinLoadPointer(hwndDesktop,hmod,idres : cardinal) : cardinal; cdecl;           
-    function WinCreatePointer(hwndDesktop,hbmPointer : cardinal;fPointer : longbool;xHotspot,yHotspot : longint) : cardinal; cdecl; 
-    function WinSetPointerPos(hwndDesktop : cardinal;x,y : longint) : longbool; cdecl;                                                        
-    function WinDestroyPointer(hptr : cardinal) : longbool; cdecl;        
-    function WinQueryPointer(hwndDesktop : cardinal) : cardinal; cdecl;
-    function WinQueryPointerPos(hwndDesktop : cardinal;pptl : PPOINTL) : longbool; cdecl;
-    function WinCreatePointerIndirect(hwndDesktop : cardinal;pptri : PPOINTERINFO) : cardinal; cdecl;        
-    function WinQueryPointerInfo(hptr : cardinal;pPointerInfo : PPOINTERINFO) : longbool; cdecl;                 
-    function WinDrawPointer(hps : cardinal;x,y : longint;hptr,fs : cardinal) : longbool; cdecl;  
-    function WinGetSysBitmap(hwndDesktop,ibm : cardinal) : cardinal; cdecl;
-    function WinSetHook(hab : cardinal;hmq : cardinal;iHook : longint;pfnHook : pointer;hmod : cardinal) : longbool; cdecl;
-    function WinReleaseHook(hab,hmq : cardinal;iHook : longint;pfnHook : pointer;hmod : cardinal) : longbool; cdecl; 
-    function WinCallMsgFilter(hab : cardinal;pqmsg : PQMSG;msgf : cardinal) : longbool; cdecl;         
-    function WinSetClassThunkProc(pszClassname : pchar;pfnThunkProc : pointer) : longbool; cdecl;      
-    function WinQueryClassThunkProc(pszClassname : pchar) : pointer; cdecl;                        
-    function WinSetWindowThunkProc(hwnd : cardinal;pfnThunkProc : pointer) : longbool; cdecl;              
-    function WinQueryWindowThunkProc(hwnd : cardinal) : pointer; cdecl;                                
-    function WinQueryWindowModel(hwnd : cardinal) : longint; cdecl;                                
-    function WinQueryCp(hmq : cardinal) : cardinal; cdecl;                                         
-    function WinSetCp(hmq,idCodePage : cardinal) : longbool; cdecl;                         
-    function WinQueryCpList(hab,ccpMax : cardinal;prgcp : pcardinal) : cardinal; cdecl; 
-    function WinCpTranslateString(hab,cpSrc : cardinal;pszSrc : pchar;cpDst,cchDestMax : cardinal;pchDest : pchar) : longbool; cdecl; 
-    function WinCpTranslateChar(hab,cpSrc : cardinal;chSrc : byte;cpDst : cardinal) : byte; cdecl;                                                   
-    function WinUpper(hab,idcp,idcc : cardinal;psz : pchar) : cardinal; cdecl;                                                        
-    function WinUpperChar(hab,idcp,idcc,c : cardinal) : cardinal; cdecl;                                                       
-    function WinNextChar(hab,idcp,idcc : cardinal;psz : pchar) : pshortint; cdecl;                                                    
-    function WinPrevChar(hab,idcp,idcc : cardinal;pszStart,psz : pchar) : pshortint; cdecl;                               
-    function WinCompareStrings(hab,idcp,idcc : cardinal;psz1,psz2 : pchar;reserved : cardinal) : cardinal; cdecl;         
-    function WinCreateAtomTable(cbInitial,cBuckets : cardinal) : cardinal; cdecl;         
-    function WinDestroyAtomTable(hAtomTbl : cardinal) : cardinal; cdecl;                             
-    function WinAddAtom(hAtomTbl : cardinal;pszAtomName : pchar) : cardinal; cdecl;              
-    function WinFindAtom(hAtomTbl : cardinal;pszAtomName : pchar) : cardinal; cdecl;             
-    function WinDeleteAtom(hAtomTbl,atom : cardinal) : cardinal; cdecl;                   
-    function WinQueryAtomUsage(hAtomTbl,atom : cardinal) : cardinal; cdecl;               
-    function WinQueryAtomLength(hAtomTbl,atom : cardinal) : cardinal; cdecl;              
-    function WinQueryAtomName(hAtomTbl,atom : cardinal;pchBuffer : pchar;cchBufferMax : cardinal) : cardinal; cdecl;
-    function WinGetLastError(hab : cardinal) : cardinal; cdecl;
-    function WinGetErrorInfo(hab : cardinal) : PERRINFO; cdecl;
-    function WinFreeErrorInfo(perrinfo : PERRINFO) : longbool; cdecl;
-    {DDE Functions}
-    function WinDdeInitiate(hwndClient : cardinal;pszAppName,pszTopicName : pchar;pcctxt : PCONVCONTEXT) : longbool; cdecl;
-    function WinDdeRespond(hwndClient,hwndServer : cardinal;pszAppName,pszTopicName : pchar;pcctxt : PCONVCONTEXT) : pointer; cdecl;
-    function WinDdePostMsg(hwndTo,hwndFrom,wm : cardinal;pddest : PDDESTRUCT;flOptions : cardinal) : longbool; cdecl;                        
-    {Library related functions}
-    function WinDeleteProcedure(hab : cardinal;wndproc : ppointer) : longbool; cdecl;
-    function WinDeleteLibrary(hab,libhandle : cardinal) : longbool; cdecl;
-    function WinLoadProcedure(hab,libhandle : cardinal;procname : pchar) : ppointer; cdecl; 
-    function WinLoadLibrary(hab : cardinal;libname : pchar) : cardinal; cdecl;                      
-    function WinSetDesktopBkgnd(hwndDesktop : cardinal;pdskNew : PDESKTOP) : cardinal; cdecl;
-    function WinQueryDesktopBkgnd(hwndDesktop : cardinal;pdsk : PDESKTOP) : longbool; cdecl;    
-    function WinRealizePalette(hwnd,hps : cardinal;pcclr : pcardinal) : longint; cdecl;
-    function cardinalFROMMP(mp : pointer) : cardinal; cdecl;
-    function integer1FROMMP(mp : pointer) : word; cdecl;
-    function integer2FROMMP(mp : pointer) : word; cdecl;
-
-  implementation
-
-    function WinRegisterClass(hab : cardinal;pszClassName : pchar;pfnWndProc : ppointer;flStyle,cbWindowData : cardinal) : longbool; cdecl;external 'pmwin' index 926;
-    function WinDefWindowProc(hwnd,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;external 'pmwin' index 911;
-    function WinDestroyWindow(hwnd : cardinal) : longbool; cdecl;external 'pmwin' index 728;
-    function WinShowWindow(hwnd : cardinal;fShow : longbool) : longbool; cdecl;external 'pmwin' index 883;
-    function WinQueryWindowRect(hwnd : cardinal;prclDest : PRECTL) : longbool; cdecl;external 'pmwin' index 840;
-    function WinGetPS(hwnd : cardinal) : cardinal; cdecl;external 'pmwin' index 757;
-    function WinReleasePS(hps : cardinal) : longbool; cdecl;external 'pmwin' index 848;
-    function WinEndPaint(hps : cardinal) : longbool; cdecl;external 'pmwin' index 738;
-    function WinGetClipPS(hwnd,hwndClip,fl : cardinal) : cardinal; cdecl;external 'pmwin' index 749;
-    function WinIsWindowShowing(hwnd : cardinal) : longbool; cdecl;external 'pmwin' index 774;
-    function WinBeginPaint(hwnd,hps : cardinal;prclPaint : PRECTL) : cardinal; cdecl;external 'pmwin' index 703;
-    function WinOpenWindowDC(hwnd : cardinal) : cardinal; cdecl;external 'pmwin' index 794;
-    function WinScrollWindow(hwnd : cardinal;dx,dy : longint;prclScroll,prclClip : PRECTL;hrgnUpdate : cardinal;prclUpdate : PRECTL;rgfsw : cardinal) : longint; cdecl;external 'pmwin' index 849;
-    function WinFillRect(hps : cardinal;prcl : PRECTL;lColor : longint) : longbool; cdecl;external 'pmwin' index 743;
-    function WinQueryVersion(hab : cardinal) : cardinal; cdecl;external 'pmwin' index 833;
-    function WinInitialize(flOptions : cardinal) : cardinal; cdecl;external 'pmwin' index 763;
-    function WinTerminate(hab : cardinal) : longbool; cdecl;external 'pmwin' index 888;
-    function WinQueryAnchorBlock(hwnd : cardinal) : cardinal; cdecl;external 'pmwin' index 800;
-    function WinCreateWindow(hwndParent : cardinal;pszClass,pszName : pchar;flStyle : cardinal;x,y,cx,cy : longint;hwndOwner,hwndInsertBehind,id : cardinal;pCtlData,pPresParams : pointer) : cardinal; cdecl;external 'pmwin' index 909;
-    function WinEnableWindow(hwnd : cardinal;fEnable : longbool) : longbool; cdecl;external 'pmwin' index 735;     
-    function WinIsWindowEnabled(hwnd : cardinal) : longbool; cdecl;external 'pmwin' index 773;
-    function WinEnableWindowUpdate(hwnd : cardinal;fEnable : longbool) : longbool; cdecl;external 'pmwin' index 736;
-    function WinIsWindowVisible(hwnd : cardinal) : longbool; cdecl;external 'pmwin' index 775;
-    function WinQueryWindowText(hwnd : cardinal;cchBufferMax : longint;pchBuffer : pshortint) : longint; cdecl;external 'pmwin' index 841;
-    function WinSetWindowText(hwnd : cardinal;pszText : pchar) : longbool; cdecl;external 'pmwin' index 877;
-    function WinQueryWindowTextLength(hwnd : cardinal) : longint; cdecl;external 'pmwin' index 842;
-    function WinWindowFromID(hwndParent,id : cardinal) : cardinal; cdecl;external 'pmwin' index 899;
-    function WinIsWindow(hab,hwnd : cardinal) : longbool; cdecl;external 'pmwin' index 772;
-    function WinQueryWindow(hwnd : cardinal;cmd : longint) : cardinal; cdecl;external 'pmwin' index 834;
-    function WinMultWindowFromIDs(hwndParent : cardinal;prghwnd : pcardinal;idFirst,idLast : cardinal) : longint; cdecl;external 'pmwin' index 917;
-    function WinSetParent(hwnd,hwndNewParent : cardinal;fRedraw : longbool) : longbool; cdecl;external 'pmwin' index 865;
-    function WinIsChild(hwnd,hwndParent : cardinal) : longbool; cdecl;external 'pmwin' index 768;
-    function WinSetOwner(hwnd,hwndNewOwner : cardinal) : longbool; cdecl;external 'pmwin' index 864;
-    function WinQueryWindowProcess(hwnd : cardinal;ppid,ptid : pcardinal) : longbool; cdecl;external 'pmwin' index 838;
-    function WinQueryObjectWindow(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin' index 820;
-    function WinQueryDesktopWindow(hab,hdc : cardinal) : cardinal; cdecl;external 'pmwin' index 813;
-    function WinSetWindowPos(hwnd,hwndInsertBehind : cardinal;x,y,cx,cy : longint;fl : cardinal) : longbool; cdecl;external 'pmwin' index 875;
-    function WinSetMultWindowPos(hab : cardinal;pswp : PSWP;cswp : cardinal) : longbool; cdecl;external 'pmwin' index 863;
-    function WinQueryWindowPos(hwnd : cardinal;pswp : PSWP) : longbool; cdecl;external 'pmwin' index 837;
-    function WinUpdateWindow(hwnd : cardinal) : longbool; cdecl;external 'pmwin' index 892;
-    function WinInvalidateRect(hwnd : cardinal;pwrc : PRECTL;fIncludeChildren : longbool) : longbool; cdecl;external 'pmwin' index 765;
-    function WinInvalidateRegion(hwnd,hrgn : cardinal;fIncludeChildren : longbool) : longbool; cdecl;external 'pmwin' index 766;
-    function WinInvertRect(hps : cardinal;prcl : PRECTL) : longbool; cdecl;external 'pmwin' index 767;
-    function WinDrawBitmap(hpsDst,hbm : cardinal;pwrcSrc : PRECTL;pptlDst : PPOINTL;clrFore,clrBack : longint;fl : cardinal) : longbool; cdecl;external 'pmwin' index 730;
-    function WinDrawText(hps : cardinal;cchText : longint;lpchText : pshortint;prcl : PRECTL;clrFore,clrBack : longint;flCmd : cardinal) : longint; cdecl;external 'pmwin' index 913;
-    function WinDrawBorder(hps : cardinal;prcl : PRECTL;cx,cy,clrFore,clrBack : longint;flCmd : cardinal) : longbool; cdecl;external 'pmwin' index 731; 
-    function WinLoadString(hab,hmod,id : cardinal;cchMax : longint;pchBuffer : pchar) : longint; cdecl;external 'pmwin' index 781;
-    function WinLoadMessage(hab,hmod,id : cardinal;cchMax : longint;pchBuffer : pchar) : longint; cdecl;external 'pmwin' index 779;
-    function WinSetActiveWindow(hwndDesktop,hwnd : cardinal) : longbool; cdecl;external 'pmwin' index 851;
-    function WinSubclassWindow(hwnd : cardinal;pfnwp : ppointer) : ppointer; cdecl;external 'pmwin' index 929;
-    function WinQueryClassName(hwnd : cardinal;cchMax : longint;pch : pshortint) : longint; cdecl;external 'pmwin' index 805;
-    function WinQueryClassInfo(hab : cardinal;pszClassName : pchar;pClassInfo : PCLASSINFO) : longbool; cdecl;external 'pmwin' index 925;
-    function WinQueryActiveWindow(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin' index 799;
-    function WinIsThreadActive(hab : cardinal) : longbool; cdecl;external 'pmwin' index 771;
-    function WinQuerySysModalWindow(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin' index 827;
-    function WinSetSysModalWindow(hwndDesktop,hwnd : cardinal) : longbool; cdecl;external 'pmwin' index 872;
-    function WinQueryWindowUShort(hwnd : cardinal;index : longint) : word; cdecl;external 'pmwin' index 844;
-    function WinSetWindowUShort(hwnd : cardinal;index : longint;us : word) : longbool; cdecl;external 'pmwin' index 879;
-    function WinQueryWindowULong(hwnd : cardinal;index : longint) : cardinal; cdecl;external 'pmwin' index 843;
-    function WinSetWindowULong(hwnd : cardinal;index : longint;ul : cardinal) : longbool; cdecl;external 'pmwin' index 878;
-    function WinQueryWindowPtr(hwnd : cardinal;index : longint) : pointer; cdecl;external 'pmwin' index 839;
-    function WinSetWindowPtr(hwnd : cardinal;index : longint;p : pointer) : longbool; cdecl;external 'pmwin' index 876;
-    function WinSetWindowBits(hwnd : cardinal;index : longint;flData,flMask : cardinal) : longbool; cdecl;external 'pmwin' index 874;  
-    function WinBeginEnumWindows(hwnd : cardinal) : cardinal; cdecl;external 'pmwin' index 702;
-    function WinGetNextWindow(henum : cardinal) : cardinal; cdecl;external 'pmwin' index 756;
-    function WinEndEnumWindows(henum : cardinal) : longbool; cdecl;external 'pmwin' index 737;
-    function WinWindowFromPoint(hwnd : cardinal;pptl : PPOINTL;fChildren : longbool) : cardinal; cdecl;external 'pmwin' index 900;
-    function WinMapWindowPoints(hwndFrom,hwndTo : cardinal;prgptl : PPOINTL;cwpt : longint) : longbool; cdecl;external 'pmwin' index 788;
-    function WinValidateRect(hwnd : cardinal;prcl : PRECTL;fIncludeChildren : longbool) : longbool; cdecl;external 'pmwin' index 895;
-    function WinValidateRegion(hwnd,hrgn : cardinal;fIncludeChildren : longbool) : longbool; cdecl;external 'pmwin' index 896;
-    function WinWindowFromDC(hdc : cardinal) : cardinal; cdecl;external 'pmwin' index 898;
-    function WinQueryWindowDC(hwnd : cardinal) : cardinal; cdecl;external 'pmwin' index 835;
-    function WinGetScreenPS(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin' index 759;
-    function WinLockWindowUpdate(hwndDesktop,hwndLockUpdate : cardinal) : longbool; cdecl;external 'pmwin' index 784;
-    function WinLockVisRegions(hwndDesktop : cardinal;fLock : longbool) : longbool; cdecl;external 'pmwin' index 782;
-    function WinQueryUpdateRect(hwnd : cardinal;prcl : PRECTL) : longbool; cdecl;external 'pmwin' index 831;
-    function WinQueryUpdateRegion(hwnd,hrgn : cardinal) : longint; cdecl;external 'pmwin' index 832;
-    function WinExcludeUpdateRegion(hps,hwnd : cardinal) : longint; cdecl;external 'pmwin' index 742;
-    function WinSendMsg(hwnd,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;external 'pmwin' index 920;
-    function WinCreateMsgQueue(hab : cardinal;cmsg : longint) : cardinal; cdecl;external 'pmwin' index 716;
-    function WinDestroyMsgQueue(hmq : cardinal) : longbool; cdecl;external 'pmwin' index 726;
-    function WinQueryQueueInfo(hmq : cardinal;pmqi : PMQINFO;cbCopy : cardinal) : longbool; cdecl;external 'pmwin' index 824;
-    function WinCancelShutdown(hmq : cardinal;fCancelAlways : longbool) : longbool; cdecl;external 'pmwin' index 705;
-    function WinGetMsg(hab : cardinal;pqmsg : PQMSG;hwndFilter,msgFilterFirst,msgFilterLast : cardinal) : longbool; cdecl;external 'pmwin' index 915; 
-    function WinPeekMsg(hab : cardinal;pqmsg : PQMSG;hwndFilter,msgFilterFirst,msgFilterLast,fl : cardinal) : longbool; cdecl;external 'pmwin' index 918;
-    function WinDispatchMsg(hab : cardinal;pqmsg : PQMSG) : pointer; cdecl;external 'pmwin' index 912;
-    function WinPostMsg(hwnd,msg : cardinal;mp1,mp2 : pointer) : longbool; cdecl;external 'pmwin' index 919;
-    function WinRegisterUserMsg(hab,msgid : cardinal;datatype1,dir1,datatype2,dir2,datatyper : longint) : longbool; cdecl;external 'pmwin' index 846;
-    function WinRegisterUserDatatype(hab : cardinal;datatype,count : longint;types : Plongint) : longbool; cdecl;external 'pmwin' index 845;
-    function WinSetMsgMode(hab : cardinal;classname :pchar;control : longint) : longbool; cdecl;external 'pmwin' index 862;
-    function WinSetSynchroMode(hab : cardinal;mode : longint) : longbool; cdecl;external 'pmwin' index 870;
-    function WinInSendMsg(hab : cardinal) : longbool; cdecl;external 'pmwin' index 761;
-    function WinBroadcastMsg(hwnd,msg : cardinal;mp1,mp2 : pointer;rgf : cardinal) : longbool; cdecl;external 'pmwin' index 901;
-    function WinWaitMsg(hab,msgFirst,msgLast : cardinal) : longbool; cdecl;external 'pmwin' index 897;
-    function WinQueryQueueStatus(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin' index 825;
-    function WinQueryMsgPos(hab : cardinal;pptl : PPOINTL) : longbool; cdecl;external 'pmwin' index 818;
-    function WinQueryMsgTime(hab : cardinal) : cardinal; cdecl;external 'pmwin' index 819;
-    function WinWaitEventSem(hev,ulTimeout : cardinal) : cardinal; cdecl;external 'pmwin' index 978;
-    function WinRequestMutexSem(hmtx,ulTimeout : cardinal) : cardinal; cdecl;external 'pmwin' index 979;
-    function WinWaitMuxWaitSem(hmux,ulTimeout : cardinal;pulUser : pcardinal) : cardinal; cdecl;external 'pmwin' index 980;
-    function WinPostQueueMsg(hmq,msg : cardinal;mp1,mp2 : pointer) : longbool; cdecl;external 'pmwin' index 902;
-    function WinSetMsgInterest(hwnd,msg_class : cardinal;control : longint) : longbool; cdecl;external 'pmwin' index 861;
-    function WinSetClassMsgInterest(hab : cardinal;pszClassName : pchar;msg_class : cardinal;control : longint) : longbool; cdecl;external 'pmwin' index 853;
-    function WinSetFocus(hwndDesktop,hwndSetFocus : cardinal) : longbool; cdecl;external 'pmwin' index 860;
-    function WinFocusChange(hwndDesktop,hwndSetFocus,flFocusChange : cardinal) : longbool; cdecl;external 'pmwin' index 746;
-    function WinSetCapture(hwndDesktop,hwnd : cardinal) : longbool; cdecl;external 'pmwin' index 852;
-    function WinQueryCapture(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin' index 804;
-    function WinQueryFocus(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin' index 817;
-    function WinGetKeyState(hwndDesktop : cardinal;vkey : longint) : longint; cdecl;external 'pmwin' index 752;
-    function WinGetPhysKeyState(hwndDesktop : cardinal;sc : longint) : longint; cdecl;external 'pmwin' index 758;
-    function WinEnablePhysInput(hwndDesktop : cardinal;fEnable : longbool) : longbool; cdecl;external 'pmwin' index 734;
-    function WinIsPhysInputEnabled(hwndDesktop : cardinal) : longbool; cdecl;external 'pmwin' index 769;
-    function WinSetKeyboardStateTable(hwndDesktop : cardinal;pKeyStateTable : PBYTE;fSet : longbool) : longbool; cdecl;external 'pmwin' index 921;
-    function WinGetDlgMsg(hwndDlg : cardinal;pqmsg : PQMSG) : longbool; cdecl;external 'pmwin' index 914;
-    function WinLoadDlg(hwndParent,hwndOwner : cardinal;pfnDlgProc : ppointer;hmod,idDlg : cardinal;pCreateParams : pointer) : cardinal; cdecl;external 'pmwin' index 924;
-    function WinDlgBox(hwndParent,hwndOwner : cardinal;pfnDlgProc : ppointer;hmod,idDlg : cardinal;pCreateParams : pointer) : cardinal; cdecl;external 'pmwin' index 923;
-    function WinDismissDlg(hwndDlg,usResult : cardinal) : longbool; cdecl;external 'pmwin' index 729;
-    function WinQueryDlgItemShort(hwndDlg,idItem : cardinal;pResult : Pinteger;fSigned : longbool) : longbool; cdecl;external 'pmwin' index 814;
-    function WinSetDlgItemShort(hwndDlg,idItem : cardinal;usValue : word;fSigned : longbool) : longbool; cdecl;external 'pmwin' index 858;
-    function WinSetDlgItemText(hwndDlg,idItem : cardinal;pszText : pchar) : longbool; cdecl;external 'pmwin' index 859;
-    function WinQueryDlgItemText(hwndDlg,idItem : cardinal;cchBufferMax : longint;pchBuffer : pchar) : cardinal; cdecl;external 'pmwin' index 815;
-    function WinQueryDlgItemTextLength(hwndDlg,idItem : cardinal) : longint; cdecl;external 'pmwin' index 816;
-    function WinDefDlgProc(hwndDlg,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;external 'pmwin' index 910;
-    function WinAlarm(hwndDesktop,rgfType : cardinal) : longbool; cdecl;external 'pmwin' index 701;
-    function WinMessageBox(hwndParent,hwndOwner : cardinal;pszText,pszCaption : pchar;idWindow,flStyle : cardinal) : cardinal; cdecl;external 'pmwin' index 789;
-    function WinProcessDlg(hwndDlg : cardinal) : cardinal; cdecl;external 'pmwin' index 796;
-    function WinSendDlgItemMsg(hwndDlg,idItem,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;external 'pmwin' index 903;
-    function WinMapDlgPoints(hwndDlg : cardinal;prgwptl : PPOINTL;cwpt : cardinal;fCalcWindowCoords : longbool) : longbool; cdecl;external 'pmwin' index 787;
-    function WinEnumDlgItem(hwndDlg,hwnd,code : cardinal) : cardinal; cdecl;external 'pmwin' index 740;
-    function WinSubstituteStrings(hwnd : cardinal;pszSrc : pchar;cchDstMax : longint;pszDst : pchar) : longint; cdecl;external 'pmwin' index 886;
-    function WinCreateDlg(hwndParent,hwndOwner : cardinal;pfnDlgProc : ppointer;pdlgt : PDLGTEMPLATE;pCreateParams : pointer) : cardinal; cdecl;external 'pmwin' index 922;
-    function WinLoadMenu(hwndFrame,hmod,idMenu : cardinal) : cardinal; cdecl;external 'pmwin' index 778;
-    function WinCreateMenu(hwndParent : cardinal;lpmt : pointer) : cardinal; cdecl;external 'pmwin' index 907;
-    function WinPopupMenu(hwndParent,hwndOwner,hwndMenu : cardinal;x,y,idItem : longint;fs : cardinal) : longbool; cdecl;external 'pmwin' index 937;
-    function WinCreateStdWindow(hwndParent,flStyle : cardinal;pflCreateFlags : pcardinal;pszClientClass,pszTitle : pchar;styleClient,hmod,idResources : cardinal;phwndClient : pcardinal) : cardinal; cdecl;external 'pmwin' index 908;
-    function WinFlashWindow(hwndFrame : cardinal;fFlash : longbool) : longbool; cdecl;external 'pmwin' index 745;
-    function WinCreateFrameControls(hwndFrame : cardinal;pfcdata : PFRAMECDATA;pszTitle : pchar) : longbool; cdecl;external 'pmwin' index 906;
-    function WinCalcFrameRect(hwndFrame : cardinal;prcl : PRECTL;fClient : longbool) : longbool; cdecl;external 'pmwin' index 704;
-    function WinGetMinPosition(hwnd : cardinal;pswp : PSWP;pptl : PPOINTL) : longbool; cdecl;external 'pmwin' index 755;
-    function WinGetMaxPosition(hwnd : cardinal;pswp : PSWP) : longbool; cdecl;external 'pmwin' index 754;
-    function WinSaveWindowPos(hsvwp : cardinal;pswp : PSWP;cswp : cardinal) : longbool; cdecl;external 'pmwin' index 943;
-    function WinCopyRect(hab : cardinal;prclDst,prclSrc : PRECTL) : longbool; cdecl;external 'pmwin' index 710;
-    
-    function WinSetRect(hab : cardinal;prcl : PRECTL;xLeft,yBottom,xRight,yTop : longint) : longbool; cdecl;external 'pmwin' index 868;
-    function WinIsRectEmpty(hab : cardinal;prcl : PRECTL) : longbool; cdecl;external 'pmwin' index 770;
-    function WinEqualRect(hab : cardinal;prcl1,prcl2 : PRECTL) : longbool; cdecl;external 'pmwin' index 741;
-    function WinSetRectEmpty(hab : cardinal;prcl : PRECTL) : longbool; cdecl;external 'pmwin' index 869;
-    function WinOffsetRect(hab : cardinal;prcl : PRECTL;cx,cy : longint) : longbool; cdecl;external 'pmwin' index 792;
-    function WinInflateRect(hab : cardinal;prcl : PRECTL;cx,cy : longint) : longbool; cdecl;external 'pmwin' index 762;
-    function WinPtInRect(hab : cardinal;prcl : PRECTL;pptl : PPOINTL) : longbool; cdecl;external 'pmwin' index 797;
-    function WinIntersectRect(hab : cardinal;prclDst,prclSrc1,prclSrc2 : PRECTL) : longbool; cdecl;external 'pmwin' index 764;
-    function WinUnionRect(hab : cardinal;prclDst,prclSrc1,prclSrc2 : PRECTL) : longbool; cdecl;external 'pmwin' index 891;
-    function WinSubtractRect(hab : cardinal;prclDst,prclSrc1,prclSrc2 : PRECTL) : longbool; cdecl;external 'pmwin' index 887;
-    function WinMakeRect(hab : cardinal;pwrc : PRECTL) : longbool; cdecl;external 'pmwin' index 786;
-    function WinMakePoints(hab : cardinal;pwpt : PPOINTL;cwpt : cardinal) : longbool; cdecl;external 'pmwin' index 785;
-    function WinQuerySysValue(hwndDesktop : cardinal;iSysValue : longint) : longint; cdecl;external 'pmwin' index 829;
-    function WinSetSysValue(hwndDesktop : cardinal;iSysValue,lValue : longint) : longbool; cdecl;external 'pmwin' index 873;
-    function WinSetPresParam(hwnd,id,cbParam : cardinal;pbParam : pointer) : longbool; cdecl;external 'pmwin' index 938;
-    function WinQueryPresParam(hwnd,id1,id2 : cardinal;pulId : pcardinal;cbBuf : cardinal;pbBuf : pointer;fs : cardinal) : cardinal; cdecl;external 'pmwin' index 939;
-    function WinRemovePresParam(hwnd,id : cardinal) : longbool; cdecl;external 'pmwin' index 940;
-    function WinQuerySysColor(hwndDesktop : cardinal;clr,lReserved : longint) : longint; cdecl;external 'pmwin' index 826;
-    function WinSetSysColors(hwndDesktop,flOptions,flFormat : cardinal;clrFirst : longint;cclr : cardinal;pclr : Plongint) : longbool; cdecl;external 'pmwin' index 871;
-    function WinStartTimer(hab,hwnd,idTimer,dtTimeout : cardinal) : cardinal; cdecl;external 'pmwin' index 884;
-    function WinStopTimer(hab,hwnd,idTimer : cardinal) : longbool; cdecl;external 'pmwin' index 885;
-    function WinGetCurrentTime(hab : cardinal) : cardinal; cdecl;external 'pmwin' index 750;
-    function WinLoadAccelTable(hab,hmod,idAccelTable : cardinal) : cardinal; cdecl;external 'pmwin' index 776;
-    function WinCopyAccelTable(haccel : cardinal;pAccelTable : PACCELTABLE;cbCopyMax : cardinal) : cardinal; cdecl;external 'pmwin' index 709;
-    function WinCreateAccelTable(hab : cardinal;pAccelTable : PACCELTABLE) : cardinal; cdecl;external 'pmwin' index 713;
-    function WinDestroyAccelTable(haccel : cardinal) : longbool; cdecl;external 'pmwin' index 723;
-    function WinTranslateAccel(hab,hwnd,haccel : cardinal;pqmsg : PQMSG) : longbool; cdecl;external 'pmwin' index 904;
-    function WinSetAccelTable(hab,haccel,hwndFrame : cardinal) : longbool; cdecl;external 'pmwin' index 850;
-    function WinQueryAccelTable(hab,hwndFrame : cardinal) : cardinal; cdecl;external 'pmwin' index 798;
-    function WinTrackRect(hwnd,hps : cardinal;pti : PTRACKINFO) : longbool; cdecl;external 'pmwin' index 890;
-    function WinShowTrackRect(hwnd : cardinal;fShow : longbool) : longbool; cdecl;external 'pmwin' index 882;
-    function WinSetClipbrdOwner(hab,hwnd : cardinal) : longbool; cdecl;external 'pmwin' index 855;
-    function WinSetClipbrdData(hab,ulData,fmt,rgfFmtInfo : cardinal) : longbool; cdecl;external 'pmwin' index 854;
-    function WinQueryClipbrdData(hab,fmt : cardinal) : cardinal; cdecl;external 'pmwin' index 806;
-    function WinQueryClipbrdFmtInfo(hab,fmt : cardinal;prgfFmtInfo : pcardinal) : longbool; cdecl;external 'pmwin' index 807;
-    function WinSetClipbrdViewer(hab,hwndNewClipViewer : cardinal) : longbool; cdecl;external 'pmwin' index 856;
-    function WinEnumClipbrdFmts(hab,fmt : cardinal) : cardinal; cdecl;external 'pmwin' index 739;
-    function WinEmptyClipbrd(hab : cardinal) : longbool; cdecl;external 'pmwin' index 733;
-    function WinOpenClipbrd(hab : cardinal) : longbool; cdecl;external 'pmwin' index 793;
-    function WinCloseClipbrd(hab : cardinal) : longbool; cdecl;external 'pmwin' index 707;
-    function WinQueryClipbrdOwner(hab : cardinal) : cardinal; cdecl;external 'pmwin' index 808;
-    function WinQueryClipbrdViewer(hab : cardinal) : cardinal; cdecl;external 'pmwin' index 809;
-    function WinDestroyCursor(hwnd : cardinal) : longbool; cdecl;external 'pmwin' index 725;
-    function WinShowCursor(hwnd : cardinal;fShow : longbool) : longbool; cdecl;external 'pmwin' index 880;
-    function WinCreateCursor(hwnd : cardinal;x,y,cx,cy : longint;fs : cardinal;prclClip : PRECTL) : longbool; cdecl;external 'pmwin' index 715;
-    function WinQueryCursorInfo(hwndDesktop : cardinal;pCursorInfo : PCURSORINFO) : longbool; cdecl;external 'pmwin' index 812;
-    function WinSetPointer(hwndDesktop,hptrNew : cardinal) : longbool; cdecl;external 'pmwin' index 866;
-    function WinSetPointerOwner(hptr,pid : cardinal;fDestroy : longbool) : longbool; cdecl;external 'pmwin' index 971;
-    function WinShowPointer(hwndDesktop : cardinal;fShow : longbool) : longbool; cdecl;external 'pmwin' index 881;
-    function WinQuerySysPointer(hwndDesktop : cardinal;iptr : longint;fLoad : longbool) : cardinal; cdecl;external 'pmwin' index 828;
-    function WinLoadPointer(hwndDesktop,hmod,idres : cardinal) : cardinal; cdecl;external 'pmwin' index 780;
-    function WinCreatePointer(hwndDesktop,hbmPointer : cardinal;fPointer : longbool;xHotspot,yHotspot : longint) : cardinal; cdecl;external 'pmwin' index 717;
-    function WinSetPointerPos(hwndDesktop : cardinal;x,y : longint) : longbool; cdecl;external 'pmwin' index 867;
-    function WinDestroyPointer(hptr : cardinal) : longbool; cdecl;external 'pmwin' index 727;
-    function WinQueryPointer(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin' index 821;
-    function WinQueryPointerPos(hwndDesktop : cardinal;pptl : PPOINTL) : longbool; cdecl;external 'pmwin' index 823;
-    function WinCreatePointerIndirect(hwndDesktop : cardinal;pptri : PPOINTERINFO) : cardinal; cdecl;external 'pmwin' index 942;
-    function WinQueryPointerInfo(hptr : cardinal;pPointerInfo : PPOINTERINFO) : longbool; cdecl;external 'pmwin' index 822;
-    function WinDrawPointer(hps : cardinal;x,y : longint;hptr,fs : cardinal) : longbool; cdecl;external 'pmwin' index 732;
-    function WinGetSysBitmap(hwndDesktop,ibm : cardinal) : cardinal; cdecl;external 'pmwin' index 760;
-    function WinSetHook(hab,hmq : cardinal;iHook : longint;pfnHook : pointer;hmod : cardinal) : longbool; cdecl;external 'pmwin' index 928;
-    function WinReleaseHook(hab,hmq : cardinal;iHook : longint;pfnHook : pointer;hmod : cardinal) : longbool; cdecl;external 'pmwin' index 927;
-    function WinCallMsgFilter(hab : cardinal;pqmsg : PQMSG;msgf : cardinal) : longbool; cdecl;external 'pmwin' index 905;
-    function WinSetClassThunkProc(pszClassname : pchar;pfnThunkProc : pointer) : longbool; cdecl;external 'pmwin' index 959;
-    function WinQueryClassThunkProc(pszClassname : pchar) : pointer; cdecl;external 'pmwin' index 960;
-    function WinSetWindowThunkProc(hwnd : cardinal;pfnThunkProc : pointer) : longbool; cdecl;external 'pmwin' index 961;
-    function WinQueryWindowThunkProc(hwnd : cardinal) : pointer; cdecl;external 'pmwin' index 962;
-    function WinQueryWindowModel(hwnd : cardinal) : longint; cdecl;external 'pmwin' index 934;
-    function WinQueryCp(hmq : cardinal) : cardinal; cdecl;external 'pmwin' index 810;
-    function WinSetCp(hmq,idCodePage : cardinal) : longbool; cdecl;external 'pmwin' index 857;
-    function WinQueryCpList(hab,ccpMax : cardinal;prgcp : pcardinal) : cardinal; cdecl;external 'pmwin' index 811;
-    function WinCpTranslateString(hab,cpSrc : cardinal;pszSrc : pchar;cpDst,cchDestMax : cardinal;pchDest : pchar) : longbool; cdecl;external 'pmwin' index 712;
-    function WinCpTranslateChar(hab,cpSrc : cardinal;chSrc : byte;cpDst : cardinal) : byte; cdecl;external 'pmwin' index 711;
-    function WinUpper(hab,idcp,idcc : cardinal;psz : pchar) : cardinal; cdecl;external 'pmwin' index 893;
-    function WinUpperChar(hab,idcp,idcc,c : cardinal) : cardinal; cdecl;external 'pmwin' index 894;
-    function WinNextChar(hab,idcp,idcc : cardinal;psz : pchar) : pshortint; cdecl;external 'pmwin' index 791;
-    function WinPrevChar(hab,idcp,idcc : cardinal;pszStart,psz : pchar) : pshortint; cdecl;external 'pmwin' index 795;
-    function WinCompareStrings(hab,idcp,idcc : cardinal;psz1,psz2 : pchar;reserved : cardinal) : cardinal; cdecl;external 'pmwin' index 708;
-    function WinCreateAtomTable(cbInitial,cBuckets : cardinal) : cardinal; cdecl;external 'pmwin' index 714;
-    function WinDestroyAtomTable(hAtomTbl : cardinal) : cardinal; cdecl;external 'pmwin' index 724;
-    function WinAddAtom(hAtomTbl : cardinal;pszAtomName : pchar) : cardinal; cdecl;external 'pmwin' index 700;
-    function WinFindAtom(hAtomTbl : cardinal;pszAtomName : pchar) : cardinal; cdecl;external 'pmwin' index 744;
-    function WinDeleteAtom(hAtomTbl,atom : cardinal) : cardinal; cdecl;external 'pmwin' index 721;
-    function WinQueryAtomUsage(hAtomTbl,atom : cardinal) : cardinal; cdecl;external 'pmwin' index 803;
-    function WinQueryAtomLength(hAtomTbl,atom : cardinal) : cardinal; cdecl;external 'pmwin' index 801;
-    function WinQueryAtomName(hAtomTbl,atom : cardinal;pchBuffer : pchar;cchBufferMax : cardinal) : cardinal; cdecl;external 'pmwin' index 802;
-    function WinGetLastError(hab : cardinal) : cardinal; cdecl;external 'pmwin' index 753;
-    function WinGetErrorInfo(hab : cardinal) : PERRINFO; cdecl;external 'pmwin' index 751;
-    function WinFreeErrorInfo(perrinfo : PERRINFO) : longbool; cdecl;external 'pmwin' index 748;
-    function WinDdeInitiate(hwndClient : cardinal;pszAppName,pszTopicName : pchar;pcctxt : PCONVCONTEXT) : longbool; cdecl;external 'pmwin' index 718;
-    function WinDdeRespond(hwndClient,hwndServer : cardinal;pszAppName,pszTopicName : pchar;pcctxt : PCONVCONTEXT) : pointer; cdecl;external 'pmwin' index 720;
-    function WinDdePostMsg(hwndTo,hwndFrom,wm : cardinal;pddest : PDDESTRUCT;flOptions : cardinal) : longbool; cdecl;external 'pmwin' index 719;
-    function WinDeleteProcedure(hab : cardinal;wndproc : ppointer) : longbool; cdecl;external 'pmwin' index 987;
-    function WinDeleteLibrary(hab,libhandle : cardinal) : longbool; cdecl;external 'pmwin' index 722;
-    function WinLoadProcedure(hab,libhandle : cardinal;procname : pchar) : ppointer; cdecl;external 'pmwin' index 986;
-    function WinLoadLibrary(hab : cardinal;libname : pchar) : cardinal; cdecl;external 'pmwin' index 777;
-    function WinSetDesktopBkgnd(hwndDesktop : cardinal;pdskNew : PDESKTOP) : cardinal; cdecl;external 'pmwin' index 935;
-    function WinQueryDesktopBkgnd(hwndDesktop : cardinal;pdsk : PDESKTOP) : longbool; cdecl;external 'pmwin' index 936;
-    function WinRealizePalette(hwnd,hps : cardinal;pcclr : pcardinal) : longint; cdecl;external 'pmwin' index 941;          
-    function cardinalFROMMP(mp : pointer) : cardinal;cdecl;
-      begin
-         cardinalFROMMP:=cardinal(mp);
-      end;                                         
-    function integer1FROMMP(mp : pointer) : word;cdecl;
-      begin
-         integer1FROMMP:=lo(cardinal(mp));
-      end;                                             
-    function integer2FROMMP(mp : pointer) : word;cdecl; 
-      begin
-         integer2FROMMP:=hi(cardinal(mp))
-      end;                                             
-end.
-
+{****************************************************************************
+
+    $Id$
+
+		   Copyright (c) 1993,94,99 by FK, RB
+		  
+ ****************************************************************************}
+unit pmwin;
+
+  interface
+
+    uses
+       os2def;    
+
+    type
+       proc=procedure;
+       QVERSDATA = record
+	  environment : word;
+	  version : word;
+       end;
+       PQVERSDATA = ^QVERSDATA;
+       SWP = record
+	  fl : cardinal;
+	  cy : longint;
+	  cx : longint;
+	  y : longint;
+	  x : longint;
+	  hwndInsertBehind : cardinal;
+	  hwnd : cardinal;
+	  ulReserved1 : cardinal;
+	  ulReserved2 : cardinal;
+       end;
+       PSWP = ^SWP;
+       CREATESTRUCT = record
+	  pPresParams : pointer;
+	  pCtlData : pointer;
+	  id : cardinal;
+	  hwndInsertBehind : cardinal;
+	  hwndOwner : cardinal;
+	  cy : longint;
+	  cx : longint;
+	  y : longint;
+	  x : longint;
+	  flStyle : cardinal;
+	  pszText : pchar;
+	  pszClass : pchar;
+	  hwndParent : cardinal;
+       end;
+       PCREATESTRUCT = ^CREATESTRUCT;
+       CLASSINFO = record
+	  flClassStyle : cardinal;
+	  pfnWindowProc : proc;
+	  cbWindowData : cardinal;
+       end;
+       PCLASSINFO = ^CLASSINFO;
+       QMSG = record
+	  hwnd : cardinal;
+	  msg : cardinal;
+	  mp1 : pointer;
+	  mp2 : pointer;
+	  time : cardinal;
+	  ptl : POINTL;
+	  reserved : cardinal;
+       end;
+       PQMSG = ^QMSG;
+       MQINFO = record
+	  cb : cardinal;
+	  pid : cardinal;
+	  tid : cardinal;
+	  cmsgs : cardinal;
+	  pReserved : pointer;
+       end;
+       PMQINFO = ^MQINFO;
+       WNDPARAMS = record
+	  fsStatus : cardinal;
+	  cchText : cardinal;
+	  pszText : pchar;
+	  cbPresParams : cardinal;
+	  pPresParams : pointer;
+	  cbCtlData : cardinal;
+	  pCtlData : pointer;
+       end;    
+       PWNDPARAMS = ^WNDPARAMS;
+       USERBUTTON = record
+	  hwnd : cardinal;
+	  hps : cardinal;
+	  fsState : cardinal;
+	  fsStateOld : cardinal;
+       end;
+       PUSERBUTTON = ^USERBUTTON;
+       OWNERITEM = record
+	  hwnd : cardinal;
+	  hps : cardinal;
+	  fsState : cardinal;
+	  fsAttribute : cardinal;
+	  fsStateOld : cardinal;
+	  fsAttributeOld : cardinal;
+	  rclItem : RECTL;
+	  idItem : longint;
+	  hItem : cardinal;
+       end;     
+       POWNERITEM = ^OWNERITEM;
+       PARAM = record
+	  id : cardinal;
+	  cb : cardinal;
+	  ab : array[0..1-1] of BYTE;
+       end;
+       PPARAM = ^PARAM;
+       PRESPARAMS = record
+	  cb : cardinal;
+	  aparam : array[0..1-1] of PARAM;
+       end;
+       PPRESPARAMS = ^PRESPARAMS;
+       TRACKINFO = record
+	  cxBorder : longint;
+	  cyBorder : longint;
+	  cxGrid : longint;
+	  cyGrid : longint;
+	  cxKeyboard : longint;
+	  cyKeyboard : longint;
+	  rclTrack : RECTL;
+	  rclBoundary : RECTL;
+	  ptlMinTrackSize : POINTL;
+	  ptlMaxTrackSize : POINTL;
+	  fs : cardinal;
+       end;          
+       PTRACKINFO = ^TRACKINFO;
+       CURSORINFO = record
+	  hwnd : cardinal;
+	  x : longint;
+	  y : longint;
+	  cx : longint;
+	  cy : longint;
+	  fs : cardinal;
+	  rclClip : RECTL;
+       end;
+       PCURSORINFO = ^CURSORINFO;
+       POINTERINFO = record
+	  fPointer : cardinal;
+	  xHotspot : longint;
+	  yHotspot : longint;
+	  hbmPointer : cardinal;
+	  hbmColor : cardinal;
+	  hbmMiniPointer : cardinal;
+	  hbmMiniColor : cardinal;
+       end;
+       PPOINTERINFO = ^POINTERINFO;
+       SMHSTRUCT = record
+	  mp2 : pointer;
+	  mp1 : pointer;
+	  msg : cardinal;
+	  hwnd : cardinal;
+	  model : cardinal;
+       end;
+       PSMHSTRUCT = ^SMHSTRUCT;
+       ERRINFO = record
+	  cbFixedErrInfo : cardinal;
+	  idError : cardinal;
+	  cDetailLevel : cardinal;
+	  offaoffszMsg : cardinal;
+	  offBinaryData : cardinal;
+       end;
+       PERRINFO = ^ERRINFO;
+       CONVCONTEXT = record
+	  cb : cardinal;
+	  fsContext : cardinal;
+	  idCountry : cardinal;
+	  usCodepage : cardinal;
+	  usLangID : cardinal;
+	  usSubLangID : cardinal;
+       end;
+       PCONVCONTEXT = ^CONVCONTEXT;
+       DDEINIT = record
+	  cb : cardinal;
+	  pszAppName : pchar;
+	  pszTopic : pchar;
+	  offConvContext : cardinal;
+       end;
+       PDDEINIT = ^DDEINIT;
+       DDESTRUCT = record
+	  cbData : cardinal;
+	  fsStatus : word;
+	  usFormat : word;
+	  offszItemName : word;
+	  offabData : word;
+       end;                
+       PDDESTRUCT = ^DDESTRUCT;
+       DESKTOP = record
+	  cbSize : cardinal;
+	  hbm : cardinal;
+	  x : longint;
+	  y : longint;
+	  fl : cardinal;
+	  lTileCount : longint;
+	  szFile : array[0..260-1] of shortint;
+       end;
+       PDESKTOP = ^DESKTOP;
+{$PACKRECORDS 1}  
+       CMDMSG = record
+	  cmd : word;
+	  unused : word;
+	  source : word;
+	  fMouse : word;
+       end;
+       PCMDMSG = ^CMDMSG;
+       MSEMSG = record
+	  x : integer;
+	  y : integer;
+	  codeHitTest : word;
+	  fsInp : word;
+       end;   
+       PMSEMSG = ^MSEMSG;
+       CHRMSG = record
+	  fs : word;
+	  cRepeat : byte;
+	  scancode : byte;
+	  chr : word;
+	  vkey : word;
+       end;              
+       PCHRMSG = ^CHRMSG;
+{$PACKRECORDS NORMAL}
+
+{$PACKRECORDS 2}
+    DLGTITEM = record
+	  fsItemStatus : word;
+	  cChildren : word;
+	  cchClassName : word;
+	  offClassName : word;
+	  cchText : word;
+	  offText : word;
+	  flStyle : cardinal;
+	  x : integer;
+	  y : integer;
+	  cx : integer;
+	  cy : integer;
+	  id : word;
+	  offPresParams : word;
+	  offCtlData : word;
+       end;     
+       PDLGTITEM = ^DLGTITEM;    
+       DLGTEMPLATE = record
+	  cbTemplate : word;
+	  _type : word;
+	  codepage : word;
+	  offadlgti : word;
+	  fsTemplateStatus : word;
+	  iItemFocus : word;
+	  coffPresParams : word;
+	  adlgti : array[0..0] of DLGTITEM;
+       end;
+       PDLGTEMPLATE = ^DLGTEMPLATE;
+       BTNCDATA = record
+	  cb : word;
+	  fsCheckState : word;
+	  fsHiliteState : word;
+	  hImage : cardinal;
+       end;
+       PBTNCDATA = ^BTNCDATA;  
+       ENTRYFDATA = record
+	  cb : word;
+	  cchEditLimit : word;
+	  ichMinSel : word;
+	  ichMaxSel : word;
+       end;                
+       PENTRYFDATA = ^ENTRYFDATA;
+       MENUITEM = record
+	  iPosition : integer;
+	  afStyle : word;
+	  afAttribute : word;
+	  id : word;
+	  hwndSubMenu : cardinal;
+	  hItem : cardinal;
+       end;
+       PMENUITEM = ^MENUITEM;
+       SBCDATA = record
+	  cb : word;
+	  sHilite : word;
+	  posFirst : integer;
+	  posLast : integer;
+	  posThumb : integer;
+	  cVisible : integer;
+	  cTotal : integer;
+       end;
+       PSBCDATA = ^SBCDATA;
+       FRAMECDATA = record
+	  cb : word;
+	  flCreateFlags : cardinal;
+	  hmodResources : word;
+	  idResources : word;
+       end;
+       PFRAMECDATA = ^FRAMECDATA;
+       ACCEL = record
+	  fs : word;
+	  key : word;
+	  cmd : word;
+       end;
+       PACCEL = ^ACCEL;
+       ACCELTABLE = record
+	  cAccel : word;
+	  codepage : word;
+	  aaccel : array[0..1-1] of ACCEL;
+       end;            
+       PACCELTABLE = ^ACCELTABLE; 
+       MFP = record
+	  sizeBounds : POINTL;
+	  sizeMM : POINTL;
+	  cbLength : cardinal;
+	  mapMode : word;
+	  reserved : word;
+	  abData : array[0..1-1] of BYTE;
+       end;
+       PMFP = ^MFP;
+       CPTEXT = record
+	  idCountry : word;
+	  usCodepage : word;
+	  usLangID : word;
+	  usSubLangID : word;
+	  abText : array[0..1-1] of BYTE;
+       end;
+       PCPTEXT = ^CPTEXT;
+{$PACKRECORDS NORMAL}
+
+
+const
+       WS_VISIBLE = $80000000;
+       WS_DISABLED = $40000000;
+       WS_CLIPCHILDREN = $20000000;
+       WS_CLIPSIBLINGS = $10000000;
+       WS_PARENTCLIP = $08000000;
+       WS_SAVEBITS = $04000000;
+       WS_SYNCPAINT = $02000000;
+       WS_MINIMIZED = $01000000;
+       WS_MAXIMIZED = $00800000;
+       WS_ANIMATE = $00400000;
+       WS_GROUP = $00010000;
+       WS_TABSTOP = $00020000;
+       WS_MULTISELECT = $00040000;
+       CS_MOVENOTIFY = $00000001;
+       CS_SIZEREDRAW = $00000004;
+       CS_HITTEST = $00000008;
+       CS_PUBLIC = $00000010;
+       CS_FRAME = $00000020;
+       CS_CLIPCHILDREN = $20000000;
+       CS_CLIPSIBLINGS = $10000000;
+       CS_PARENTCLIP = $08000000;
+       CS_SAVEBITS = $04000000;
+       CS_SYNCPAINT = $02000000;
+
+       HWND_DESKTOP = 1;
+       HWND_OBJECT = 2;
+       HWND_TOP = 3;
+       HWND_BOTTOM = 4;
+       HWND_THREADCAPTURE = 5;
+
+       PSF_LOCKWINDOWUPDATE = $0001;
+       PSF_CLIPUPWARDS = $0002;
+       PSF_CLIPDOWNWARDS = $0004;
+       PSF_CLIPSIBLINGS = $0008;
+       PSF_CLIPCHILDREN = $0010;
+       PSF_PARENTCLIP = $0020;
+       SW_SCROLLCHILDREN = $0001;
+       SW_INVALIDATERGN = $0002;
+
+       QV_OS2 = $0000;
+       QV_CMS = $0001;
+       QV_TSO = $0002;
+       QV_TSOBATCH = $0003;
+       QV_OS400 = $0004;
+
+       QW_NEXT = 0;
+       QW_PREV = 1;
+       QW_TOP = 2;
+       QW_BOTTOM = 3;
+       QW_OWNER = 4;
+       QW_PARENT = 5;
+       QW_NEXTTOP = 6;
+       QW_PREVTOP = 7;
+       QW_FRAMEOWNER = 8;
+
+       AWP_MINIMIZED = $00010000;
+       AWP_MAXIMIZED = $00020000;
+       AWP_RESTORED = $00040000;
+       AWP_ACTIVATE = $00080000;
+       AWP_DEACTIVATE = $00100000;
+       SWP_SIZE = $0001;
+       SWP_MOVE = $0002;
+       SWP_ZORDER = $0004;
+       SWP_SHOW = $0008;
+       SWP_HIDE = $0010;
+       SWP_NOREDRAW = $0020;
+       SWP_NOADJUST = $0040;
+       SWP_ACTIVATE = $0080;
+       SWP_DEACTIVATE = $0100;
+       SWP_EXTSTATECHANGE = $0200;
+       SWP_MINIMIZE = $0400;
+       SWP_MAXIMIZE = $0800;
+       SWP_RESTORE = $1000;
+       SWP_FOCUSACTIVATE = $2000;
+       SWP_FOCUSDEACTIVATE = $4000;
+       SWP_NOAUTOCLOSE = $8000;
+
+       DBM_NORMAL = $0000;
+       DBM_INVERT = $0001;
+       DBM_HALFTONE = $0002;
+       DBM_STRETCH = $0004;
+       DBM_IMAGEATTRS = $0008;
+
+       DT_LEFT = $0000;
+       DT_QUERYEXTENT = $0002;
+       DT_UNDERSCORE = $0010;
+       DT_STRIKEOUT = $0020;
+       DT_TEXTATTRS = $0040;
+       DT_EXTERNALLEADING = $0080;
+       DT_CENTER = $0100;
+       DT_RIGHT = $0200;
+       DT_TOP = $0000;
+       DT_VCENTER = $0400;
+       DT_BOTTOM = $0800;
+       DT_HALFTONE = $1000;
+       DT_MNEMONIC = $2000;
+       DT_WORDBREAK = $4000;
+       DT_ERASERECT = $8000;
+
+       DB_PATCOPY = $0000;
+       DB_PATINVERT = $0001;
+       DB_DESTINVERT = $0002;
+       DB_AREAMIXMODE = $0003;
+       DB_ROP = $0007;
+       DB_INTERIOR = $0008;
+       DB_AREAATTRS = $0010;
+       DB_STANDARD = $0100;
+       DB_DLGBORDER = $0200;
+
+       QWS_USER = 0;
+       QWS_ID = -1;
+       QWS_MIN = -1;
+       QWL_USER = 0;
+       QWL_STYLE = -2;
+       QWP_PFNWP = -3;
+       QWL_HMQ = -4;
+       QWL_RESERVED = -5;
+       QWL_MIN = -6;
+       QWL_HHEAP = $0004;
+       QWL_HWNDFOCUSSAVE = $0018;
+       QWL_DEFBUTTON = $0040;
+       QWL_PSSCBLK = $0048;
+       QWL_PFEPBLK = $004c;
+       QWL_PSTATBLK = $0050;
+       QWS_FLAGS = $0008;
+       QWS_RESULT = $000a;
+       QWS_XRESTORE = $000c;
+       QWS_YRESTORE = $000e;
+       QWS_CXRESTORE = $0010;
+       QWS_CYRESTORE = $0012;
+       QWS_XMINIMIZE = $0014;
+       QWS_YMINIMIZE = $0016;
+
+       WM_NULL = $0000;
+       WM_CREATE = $0001;
+       WM_DESTROY = $0002;
+       WM_ENABLE = $0004;
+       WM_SHOW = $0005;
+       WM_MOVE = $0006;
+       WM_SIZE = $0007;
+       WM_ADJUSTWINDOWPOS = $0008;
+       WM_CALCVALIDRECTS = $0009;
+       WM_SETWINDOWPARAMS = $000a;
+       WM_QUERYWINDOWPARAMS = $000b;
+       WM_HITTEST = $000c;
+       WM_ACTIVATE = $000d;
+       WM_SETFOCUS = $000f;
+       WM_SETSELECTION = $0010;
+       WM_PPAINT = $0011;
+       WM_PSETFOCUS = $0012;
+       WM_PSYSCOLORCHANGE = $0013;
+       WM_PSIZE = $0014;
+       WM_PACTIVATE = $0015;
+       WM_PCONTROL = $0016;
+       WM_COMMAND = $0020;
+       WM_SYSCOMMAND = $0021;
+       WM_HELP = $0022;
+       WM_PAINT = $0023;
+       WM_TIMER = $0024;
+       WM_SEM1 = $0025;
+       WM_SEM2 = $0026;
+       WM_SEM3 = $0027;
+       WM_SEM4 = $0028;
+       WM_CLOSE = $0029;
+       WM_QUIT = $002a;
+       WM_SYSCOLORCHANGE = $002b;
+       WM_SYSVALUECHANGED = $002d;
+       WM_APPTERMINATENOTIFY = $002e;
+       WM_PRESPARAMCHANGED = $002f;
+       WM_CONTROL = $0030;
+       WM_VSCROLL = $0031;
+       WM_HSCROLL = $0032;
+       WM_INITMENU = $0033;
+       WM_MENUSELECT = $0034;
+       WM_MENUEND = $0035;
+       WM_DRAWITEM = $0036;
+       WM_MEASUREITEM = $0037;
+       WM_CONTROLPOINTER = $0038;
+       WM_QUERYDLGCODE = $003a;
+       WM_INITDLG = $003b;
+       WM_SUBSTITUTESTRING = $003c;
+       WM_MATCHMNEMONIC = $003d;
+       WM_SAVEAPPLICATION = $003e;
+       WM_HELPBASE = $0F00;
+       WM_HELPTOP = $0FFF;
+       WM_USER = $1000;
+       CMDSRC_PUSHBUTTON = 1;
+       CMDSRC_MENU = 2;
+       CMDSRC_ACCELERATOR = 3;
+       CMDSRC_FONTDLG = 4;
+       CMDSRC_FILEDLG = 5;
+       CMDSRC_PRINTDLG = 6;
+       CMDSRC_COLORDLG = 7;
+       CMDSRC_OTHER = 0;
+
+       PM_REMOVE = $0001;
+       PM_NOREMOVE = $0000;
+       RUM_IN = 1;
+       RUM_OUT = 2;
+       RUM_INOUT = 3;
+       SMD_DELAYED = $0001;
+       SMD_IMMEDIATE = $0002;
+       SSM_SYNCHRONOUS = $0001;
+       SSM_ASYNCHRONOUS = $0002;
+       SSM_MIXED = $0003;
+       CVR_ALIGNLEFT = $0001;
+       CVR_ALIGNBOTTOM = $0002;
+       CVR_ALIGNRIGHT = $0004;
+       CVR_ALIGNTOP = $0008;
+       CVR_REDRAW = $0010;
+       HT_NORMAL = 0;
+       HT_TRANSPARENT = (-1);
+       HT_DISCARD = (-2);
+       HT_ERROR = (-3);
+
+       WPM_TEXT = $0001;
+       WPM_CTLDATA = $0002;
+       WPM_PRESPARAMS = $0004;
+       WPM_CCHTEXT = $0008;
+       WPM_CBCTLDATA = $0010;
+       WPM_CBPRESPARAMS = $0020;
+
+       BMSG_POST = $0000;
+       BMSG_SEND = $0001;
+       BMSG_POSTQUEUE = $0002;
+       BMSG_DESCENDANTS = $0004;
+       BMSG_FRAMEONLY = $0008;
+
+       QS_KEY = $0001;
+       QS_MOUSEBUTTON = $0002;
+       QS_MOUSEMOVE = $0004;
+       QS_MOUSE = $0006;
+       QS_TIMER = $0008;
+       QS_PAINT = $0010;
+       QS_POSTMSG = $0020;
+       QS_SEM1 = $0040;
+       QS_SEM2 = $0080;
+       QS_SEM3 = $0100;
+       QS_SEM4 = $0200;
+       QS_SENDMSG = $0400;
+
+       SMIM_ALL = $0EFF;
+       SMI_NOINTEREST = $0001;
+       SMI_INTEREST = $0002;
+       SMI_RESET = $0004;
+       SMI_AUTODISPATCH = $0008;
+
+       FC_NOSETFOCUS = $0001;
+       FC_NOBRINGTOTOP = FC_NOSETFOCUS;
+       FC_NOLOSEFOCUS = $0002;
+       FC_NOBRINGTOPFIRSTWINDOW = FC_NOLOSEFOCUS;
+       FC_NOSETACTIVE = $0004;
+       FC_NOLOSEACTIVE = $0008;
+       FC_NOSETSELECTION = $0010;
+       FC_NOLOSESELECTION = $0020;
+       QFC_NEXTINCHAIN = $0001;
+       QFC_ACTIVE = $0002;
+       QFC_FRAME = $0003;
+       QFC_SELECTACTIVE = $0004;
+       QFC_PARTOFCHAIN = $0005;
+
+       WM_MOUSEFIRST = $0070;
+       WM_MOUSELAST = $0079;
+       WM_BUTTONCLICKFIRST = $0071;
+       WM_BUTTONCLICKLAST = $0079;
+       WM_MOUSEMOVE = $0070;
+       WM_BUTTON1DOWN = $0071;
+       WM_BUTTON1UP = $0072;
+       WM_BUTTON1DBLCLK = $0073;
+       WM_BUTTON2DOWN = $0074;
+       WM_BUTTON2UP = $0075;
+       WM_BUTTON2DBLCLK = $0076;
+       WM_BUTTON3DOWN = $0077;
+       WM_BUTTON3UP = $0078;
+       WM_BUTTON3DBLCLK = $0079;
+       WM_EXTMOUSEFIRST = $0410;
+       WM_EXTMOUSELAST = $0419;
+       WM_CHORD = $0410;
+       WM_BUTTON1MOTIONSTART = $0411;
+       WM_BUTTON1MOTIONEND = $0412;
+       WM_BUTTON1CLICK = $0413;
+       WM_BUTTON2MOTIONSTART = $0414;
+       WM_BUTTON2MOTIONEND = $0415;
+       WM_BUTTON2CLICK = $0416;
+       WM_BUTTON3MOTIONSTART = $0417;
+       WM_BUTTON3MOTIONEND = $0418;
+       WM_BUTTON3CLICK = $0419;
+       WM_MOUSETRANSLATEFIRST = $0420;
+       WM_MOUSETRANSLATELAST = $0428;
+       WM_BEGINDRAG = $0420;
+       WM_ENDDRAG = $0421;
+       WM_SINGLESELECT = $0422;
+       WM_OPEN = $0423;
+       WM_CONTEXTMENU = $0424;
+       WM_CONTEXTHELP = $0425;
+       WM_TEXTEDIT = $0426;
+       WM_BEGINSELECT = $0427;
+       WM_ENDSELECT = $0428;
+
+       WM_CHAR = $007a;
+       WM_VIOCHAR = $007b;
+       KC_NONE = $0000;
+       KC_CHAR = $0001;
+       KC_VIRTUALKEY = $0002;
+       KC_SCANCODE = $0004;
+       KC_SHIFT = $0008;
+       KC_CTRL = $0010;
+       KC_ALT = $0020;
+       KC_KEYUP = $0040;
+       KC_PREVDOWN = $0080;
+       KC_LONEKEY = $0100;
+       KC_DEADKEY = $0200;
+       KC_COMPOSITE = $0400;
+       KC_INVALIDCOMP = $0800;
+       KC_TOGGLE = $1000;
+       KC_INVALIDCHAR = $2000;
+       KC_DBCSRSRVD1 = $4000;
+       KC_DBCSRSRVD2 = $8000;
+
+       INP_NONE = $0000;
+       INP_KBD = $0001;
+       INP_MULT = $0002;
+       INP_RES2 = $0004;
+       INP_SHIFT = $0008;
+       INP_CTRL = $0010;
+       INP_ALT = $0020;
+       INP_RES3 = $0040;
+       INP_RES4 = $0080;
+       INP_IGNORE = $FFFF;
+       VK_BUTTON1 = $01;
+       VK_BUTTON2 = $02;
+       VK_BUTTON3 = $03;
+       VK_BREAK = $04;
+       VK_BACKSPACE = $05;
+       VK_TAB = $06;
+       VK_BACKTAB = $07;
+       VK_NEWLINE = $08;
+       VK_SHIFT = $09;
+       VK_CTRL = $0A;
+       VK_ALT = $0B;
+       VK_ALTGRAF = $0C;
+       VK_PAUSE = $0D;
+       VK_CAPSLOCK = $0E;
+       VK_ESC = $0F;
+       VK_SPACE = $10;
+       VK_PAGEUP = $11;
+       VK_PAGEDOWN = $12;
+       VK_END = $13;
+       VK_HOME = $14;
+       VK_LEFT = $15;
+       VK_UP = $16;
+       VK_RIGHT = $17;
+       VK_DOWN = $18;
+       VK_PRINTSCRN = $19;
+       VK_INSERT = $1A;
+       VK_DELETE = $1B;
+       VK_SCRLLOCK = $1C;
+       VK_NUMLOCK = $1D;
+       VK_ENTER = $1E;
+       VK_SYSRQ = $1F;
+       VK_F1 = $20;
+       VK_F2 = $21;
+       VK_F3 = $22;
+       VK_F4 = $23;
+       VK_F5 = $24;
+       VK_F6 = $25;
+       VK_F7 = $26;
+       VK_F8 = $27;
+       VK_F9 = $28;
+       VK_F10 = $29;
+       VK_F11 = $2A;
+       VK_F12 = $2B;
+       VK_F13 = $2C;
+       VK_F14 = $2D;
+       VK_F15 = $2E;
+       VK_F16 = $2F;
+       VK_F17 = $30;
+       VK_F18 = $31;
+       VK_F19 = $32;
+       VK_F20 = $33;
+       VK_F21 = $34;
+       VK_F22 = $35;
+       VK_F23 = $36;
+       VK_F24 = $37;
+       VK_ENDDRAG = $38;
+       VK_MENU = VK_F10;
+       VK_DBCSFIRST = $0080;
+       VK_DBCSLAST = $00ff;
+       VK_USERFIRST = $0100;
+       VK_USERLAST = $01ff;
+
+       WM_JOURNALNOTIFY = $007c;
+       JRN_QUEUESTATUS = $00000001;
+       JRN_PHYSKEYSTATE = $00000002;
+
+       DID_OK = 1;
+       DID_CANCEL = 2;
+       DID_ERROR = $ffff;
+
+       WA_WARNING = 0;
+       WA_NOTE = 1;
+       WA_ERROR = 2;
+       WA_CWINALARMS = 3;
+
+       MB_OK = $0000;
+       MB_OKCANCEL = $0001;
+       MB_RETRYCANCEL = $0002;
+       MB_ABORTRETRYIGNORE = $0003;
+       MB_YESNO = $0004;
+       MB_YESNOCANCEL = $0005;
+       MB_CANCEL = $0006;
+       MB_ENTER = $0007;
+       MB_ENTERCANCEL = $0008;
+       MB_NOICON = $0000;
+       MB_CUANOTIFICATION = $0000;
+       MB_ICONQUESTION = $0010;
+       MB_ICONEXCLAMATION = $0020;
+       MB_CUAWARNING = $0020;
+       MB_ICONASTERISK = $0030;
+       MB_ICONHAND = $0040;
+       MB_CUACRITICAL = $0040;
+       MB_QUERY = MB_ICONQUESTION;
+       MB_WARNING = MB_CUAWARNING;
+       MB_INFORMATION = MB_ICONASTERISK;
+       MB_CRITICAL = MB_CUACRITICAL;
+       MB_ERROR = MB_CRITICAL;
+       MB_DEFBUTTON1 = $0000;
+       MB_DEFBUTTON2 = $0100;
+       MB_DEFBUTTON3 = $0200;
+       MB_APPLMODAL = $0000;
+       MB_SYSTEMMODAL = $1000;
+       MB_HELP = $2000;
+       MB_MOVEABLE = $4000;
+       MBID_OK = 1;
+       MBID_CANCEL = 2;
+       MBID_ABORT = 3;
+       MBID_RETRY = 4;
+       MBID_IGNORE = 5;
+       MBID_YES = 6;
+       MBID_NO = 7;
+       MBID_HELP = 8;
+       MBID_ENTER = 9;
+       MBID_ERROR = $ffff;
+       DLGC_ENTRYFIELD = $0001;
+       DLGC_BUTTON = $0002;
+       DLGC_RADIOBUTTON = $0004;
+       DLGC_STATIC = $0008;
+       DLGC_DEFAULT = $0010;
+       DLGC_PUSHBUTTON = $0020;
+       DLGC_CHECKBOX = $0040;
+       DLGC_SCROLLBAR = $0080;
+       DLGC_MENU = $0100;
+       DLGC_TABONCLICK = $0200;
+       DLGC_MLE = $0400;
+
+       EDI_FIRSTTABITEM = 0;
+       EDI_LASTTABITEM = 1;
+       EDI_NEXTTABITEM = 2;
+       EDI_PREVTABITEM = 3;
+       EDI_FIRSTGROUPITEM = 4;
+       EDI_LASTGROUPITEM = 5;
+       EDI_NEXTGROUPITEM = 6;
+       EDI_PREVGROUPITEM = 7;
+
+       SS_TEXT = $0001;
+       SS_GROUPBOX = $0002;
+       SS_ICON = $0003;
+       SS_BITMAP = $0004;
+       SS_FGNDRECT = $0005;
+       SS_HALFTONERECT = $0006;
+       SS_BKGNDRECT = $0007;
+       SS_FGNDFRAME = $0008;
+       SS_HALFTONEFRAME = $0009;
+       SS_BKGNDFRAME = $000a;
+       SS_SYSICON = $000b;
+       SS_AUTOSIZE = $0040;
+       SM_SETHANDLE = $0100;
+       SM_QUERYHANDLE = $0101;
+       BS_PUSHBUTTON = 0;
+       BS_CHECKBOX = 1;
+       BS_AUTOCHECKBOX = 2;
+       BS_RADIOBUTTON = 3;
+       BS_AUTORADIOBUTTON = 4;
+       BS_3STATE = 5;
+       BS_AUTO3STATE = 6;
+       BS_USERBUTTON = 7;
+       BS_PRIMARYSTYLES = $000f;
+       BS_BITMAP = $0040;
+       BS_ICON = $0080;
+       BS_HELP = $0100;
+       BS_SYSCOMMAND = $0200;
+       BS_DEFAULT = $0400;
+       BS_NOPOINTERFOCUS = $0800;
+       BS_NOBORDER = $1000;
+       BS_NOCURSORSELECT = $2000;
+       BS_AUTOSIZE = $4000;
+
+       BM_CLICK = $0120;
+       BM_QUERYCHECKINDEX = $0121;
+       BM_QUERYHILITE = $0122;
+       BM_SETHILITE = $0123;
+       BM_QUERYCHECK = $0124;
+       BM_SETCHECK = $0125;
+       BM_SETDEFAULT = $0126;
+       BN_CLICKED = 1;
+       BN_DBLCLICKED = 2;
+       BN_PAINT = 3;
+       BDS_HILITED = $0100;
+       BDS_DISABLED = $0200;
+       BDS_DEFAULT = $0400;
+       ES_LEFT = $00000000;
+       ES_CENTER = $00000001;
+       ES_RIGHT = $00000002;
+       ES_AUTOSCROLL = $00000004;
+       ES_MARGIN = $00000008;
+       ES_AUTOTAB = $00000010;
+       ES_READONLY = $00000020;
+       ES_COMMAND = $00000040;
+       ES_UNREADABLE = $00000080;
+       ES_AUTOSIZE = $00000200;
+       ES_ANY = $00000000;
+       ES_SBCS = $00001000;
+       ES_DBCS = $00002000;
+       ES_MIXED = $00003000;
+       CBS_SIMPLE = $0001;
+       CBS_DROPDOWN = $0002;
+       CBS_DROPDOWNLIST = $0004;
+       CBS_COMPATIBLE = $0008;
+       CBID_LIST = $029A;
+       CBID_EDIT = $029B;
+       CBM_SHOWLIST = $0170;
+       CBM_HILITE = $0171;
+       CBM_ISLISTSHOWING = $0172;
+       CBN_EFCHANGE = 1;
+       CBN_EFSCROLL = 2;
+       CBN_MEMERROR = 3;
+       CBN_LBSELECT = 4;
+       CBN_LBSCROLL = 5;
+       CBN_SHOWLIST = 6;
+       CBN_ENTER = 7;
+
+       EM_QUERYCHANGED = $0140;
+       EM_QUERYSEL = $0141;
+       EM_SETSEL = $0142;
+       EM_SETTEXTLIMIT = $0143;
+       EM_CUT = $0144;
+       EM_COPY = $0145;
+       EM_CLEAR = $0146;
+       EM_PASTE = $0147;
+       EM_QUERYFIRSTCHAR = $0148;
+       EM_SETFIRSTCHAR = $0149;
+       EM_QUERYREADONLY = $014a;
+       EM_SETREADONLY = $014b;
+       EM_SETINSERTMODE = $014c;
+       EN_SETFOCUS = $0001;
+       EN_KILLFOCUS = $0002;
+       EN_CHANGE = $0004;
+       EN_SCROLL = $0008;
+       EN_MEMERROR = $0010;
+       EN_OVERFLOW = $0020;
+       EN_INSERTMODETOGGLE = $0040;
+       LS_MULTIPLESEL = $00000001;
+       LS_OWNERDRAW = $00000002;
+       LS_NOADJUSTPOS = $00000004;
+       LS_HORZSCROLL = $00000008;
+       LS_EXTENDEDSEL = $00000010;
+       LN_SELECT = 1;
+       LN_SETFOCUS = 2;
+       LN_KILLFOCUS = 3;
+       LN_SCROLL = 4;
+       LN_ENTER = 5;
+       LM_QUERYITEMCOUNT = $0160;
+       LM_INSERTITEM = $0161;
+       LM_SETTOPINDEX = $0162;
+       LM_DELETEITEM = $0163;
+       LM_SELECTITEM = $0164;
+       LM_QUERYSELECTION = $0165;
+       LM_SETITEMTEXT = $0166;
+       LM_QUERYITEMTEXTLENGTH = $0167;
+       LM_QUERYITEMTEXT = $0168;
+       LM_SETITEMHANDLE = $0169;
+       LM_QUERYITEMHANDLE = $016a;
+       LM_SEARCHSTRING = $016b;
+       LM_SETITEMHEIGHT = $016c;
+       LM_QUERYTOPINDEX = $016d;
+       LM_DELETEALL = $016e;
+       LIT_CURSOR = (-4);
+       LIT_ERROR = (-3);
+       LIT_MEMERROR = (-2);
+       LIT_NONE = (-1);
+       LIT_FIRST = (-1);
+       LIT_END = (-1);
+       LIT_SORTASCENDING = (-2);
+       LIT_SORTDESCENDING = (-3);
+       LSS_SUBSTRING = $0001;
+       LSS_PREFIX = $0002;
+       LSS_CASESENSITIVE = $0004;
+       MS_ACTIONBAR = $00000001;
+       MS_TITLEBUTTON = $00000002;
+       MS_VERTICALFLIP = $00000004;
+       MS_CONDITIONALCASCADE = $00000040;
+
+       MM_INSERTITEM = $0180;
+       MM_DELETEITEM = $0181;
+       MM_QUERYITEM = $0182;
+       MM_SETITEM = $0183;
+       MM_QUERYITEMCOUNT = $0184;
+       MM_STARTMENUMODE = $0185;
+       MM_ENDMENUMODE = $0186;
+       MM_REMOVEITEM = $0188;
+       MM_SELECTITEM = $0189;
+       MM_QUERYSELITEMID = $018a;
+       MM_QUERYITEMTEXT = $018b;
+       MM_QUERYITEMTEXTLENGTH = $018c;
+       MM_SETITEMHANDLE = $018d;
+       MM_SETITEMTEXT = $018e;
+       MM_ITEMPOSITIONFROMID = $018f;
+       MM_ITEMIDFROMPOSITION = $0190;
+       MM_QUERYITEMATTR = $0191;
+       MM_SETITEMATTR = $0192;
+       MM_ISITEMVALID = $0193;
+       MM_QUERYITEMRECT = $0194;
+       MM_QUERYDEFAULTITEMID = $0431;
+       MM_SETDEFAULTITEMID = $0432;
+
+       MIT_END = (-1);
+       MIT_NONE = (-1);
+       MIT_MEMERROR = (-1);
+       MIT_ERROR = (-1);
+       MIT_FIRST = (-2);
+       MIT_LAST = (-3);
+       MID_NONE = MIT_NONE;
+       MID_ERROR = (-1);
+       MIS_TEXT = $0001;
+       MIS_BITMAP = $0002;
+       MIS_SEPARATOR = $0004;
+       MIS_OWNERDRAW = $0008;
+       MIS_SUBMENU = $0010;
+       MIS_MULTMENU = $0020;
+       MIS_SYSCOMMAND = $0040;
+       MIS_HELP = $0080;
+       MIS_STATIC = $0100;
+       MIS_BUTTONSEPARATOR = $0200;
+       MIS_BREAK = $0400;
+       MIS_BREAKSEPARATOR = $0800;
+       MIS_GROUP = $1000;
+       MIS_SINGLE = $2000;
+       MIA_NODISMISS = $0020;
+       MIA_FRAMED = $1000;
+       MIA_CHECKED = $2000;
+       MIA_DISABLED = $4000;
+       MIA_HILITED = $8000;
+
+       PU_POSITIONONITEM = $0001;
+       PU_HCONSTRAIN = $0002;
+       PU_VCONSTRAIN = $0004;
+       PU_NONE = $0000;
+       PU_MOUSEBUTTON1DOWN = $0008;
+       PU_MOUSEBUTTON2DOWN = $0010;
+       PU_MOUSEBUTTON3DOWN = $0018;
+       PU_SELECTITEM = $0020;
+       PU_MOUSEBUTTON1 = $0040;
+       PU_MOUSEBUTTON2 = $0080;
+       PU_MOUSEBUTTON3 = $0100;
+       PU_KEYBOARD = $0200;
+       SBS_HORZ = 0;
+       SBS_VERT = 1;
+       SBS_THUMBSIZE = 2;
+       SBS_AUTOTRACK = 4;
+       SBS_AUTOSIZE = $2000;
+       SBM_SETSCROLLBAR = $01a0;
+       SBM_SETPOS = $01a1;
+       SBM_QUERYPOS = $01a2;
+       SBM_QUERYRANGE = $01a3;
+       SBM_SETTHUMBSIZE = $01a6;
+       SB_LINEUP = 1;
+       SB_LINEDOWN = 2;
+       SB_LINELEFT = 1;
+       SB_LINERIGHT = 2;
+       SB_PAGEUP = 3;
+       SB_PAGEDOWN = 4;
+       SB_PAGELEFT = 3;
+       SB_PAGERIGHT = 4;
+       SB_SLIDERTRACK = 5;
+       SB_SLIDERPOSITION = 6;
+       SB_ENDSCROLL = 7;
+
+       FCF_TITLEBAR = $00000001;
+       FCF_SYSMENU = $00000002;
+       FCF_MENU = $00000004;
+       FCF_SIZEBORDER = $00000008;
+       FCF_MINBUTTON = $00000010;
+       FCF_MAXBUTTON = $00000020;
+       FCF_MINMAX = $00000030;
+       FCF_VERTSCROLL = $00000040;
+       FCF_HORZSCROLL = $00000080;
+       FCF_DLGBORDER = $00000100;
+       FCF_BORDER = $00000200;
+       FCF_SHELLPOSITION = $00000400;
+       FCF_TASKLIST = $00000800;
+       FCF_NOBYTEALIGN = $00001000;
+       FCF_NOMOVEWITHOWNER = $00002000;
+       FCF_ICON = $00004000;
+       FCF_ACCELTABLE = $00008000;
+       FCF_SYSMODAL = $00010000;
+       FCF_SCREENALIGN = $00020000;
+       FCF_MOUSEALIGN = $00040000;
+       FCF_HIDEBUTTON = $01000000;
+       FCF_HIDEMAX = $01000020;
+       FCF_DBE_APPSTAT = $80000000;
+       FCF_AUTOICON = $40000000;
+       FCF_STANDARD = $0000CC3F;
+       FS_ICON = $00000001;
+       FS_ACCELTABLE = $00000002;
+       FS_SHELLPOSITION = $00000004;
+       FS_TASKLIST = $00000008;
+       FS_NOBYTEALIGN = $00000010;
+       FS_NOMOVEWITHOWNER = $00000020;
+       FS_SYSMODAL = $00000040;
+       FS_DLGBORDER = $00000080;
+       FS_BORDER = $00000100;
+       FS_SCREENALIGN = $00000200;
+       FS_MOUSEALIGN = $00000400;
+       FS_SIZEBORDER = $00000800;
+       FS_AUTOICON = $00001000;
+       FS_DBE_APPSTAT = $00008000;
+       FS_STANDARD = $0000000F;
+       FF_FLASHWINDOW = $0001;
+       FF_ACTIVE = $0002;
+       FF_FLASHHILITE = $0004;
+       FF_OWNERHIDDEN = $0008;
+       FF_DLGDISMISSED = $0010;
+       FF_OWNERDISABLED = $0020;
+       FF_SELECTED = $0040;
+       FF_NOACTIVATESWP = $0080;
+
+       WM_FLASHWINDOW = $0040;
+       WM_FORMATFRAME = $0041;
+       WM_UPDATEFRAME = $0042;
+       WM_FOCUSCHANGE = $0043;
+       WM_SETBORDERSIZE = $0044;
+       WM_TRACKFRAME = $0045;
+       WM_MINMAXFRAME = $0046;
+       WM_SETICON = $0047;
+       WM_QUERYICON = $0048;
+       WM_SETACCELTABLE = $0049;
+       WM_QUERYACCELTABLE = $004a;
+       WM_TRANSLATEACCEL = $004b;
+       WM_QUERYTRACKINFO = $004c;
+       WM_QUERYBORDERSIZE = $004d;
+       WM_NEXTMENU = $004e;
+       WM_ERASEBACKGROUND = $004f;
+       WM_QUERYFRAMEINFO = $0050;
+       WM_QUERYFOCUSCHAIN = $0051;
+       WM_OWNERPOSCHANGE = $0052;
+       WM_CALCFRAMERECT = $0053;
+       WM_WINDOWPOSCHANGED = $0055;
+       WM_ADJUSTFRAMEPOS = $0056;
+       WM_QUERYFRAMECTLCOUNT = $0059;
+       WM_QUERYHELPINFO = $005B;
+       WM_SETHELPINFO = $005C;
+       WM_ERROR = $005D;
+       WM_REALIZEPALETTE = $005E;
+       FI_FRAME = $00000001;
+       FI_OWNERHIDE = $00000002;
+       FI_ACTIVATEOK = $00000004;
+       FI_NOMOVEWITHOWNER = $00000008;
+
+       FID_SYSMENU = $8002;
+       FID_TITLEBAR = $8003;
+       FID_MINMAX = $8004;
+       FID_MENU = $8005;
+       FID_VERTSCROLL = $8006;
+       FID_HORZSCROLL = $8007;
+       FID_CLIENT = $8008;
+       FID_DBE_APPSTAT = $8010;
+       FID_DBE_KBDSTAT = $8011;
+       FID_DBE_PECIC = $8012;
+       FID_DBE_KKPOPUP = $8013;
+       SC_SIZE = $8000;
+       SC_MOVE = $8001;
+       SC_MINIMIZE = $8002;
+       SC_MAXIMIZE = $8003;
+       SC_CLOSE = $8004;
+       SC_NEXT = $8005;
+       SC_APPMENU = $8006;
+       SC_SYSMENU = $8007;
+       SC_RESTORE = $8008;
+       SC_NEXTFRAME = $8009;
+       SC_NEXTWINDOW = $8010;
+       SC_TASKMANAGER = $8011;
+       SC_HELPKEYS = $8012;
+       SC_HELPINDEX = $8013;
+       SC_HELPEXTENDED = $8014;
+       SC_SWITCHPANELIDS = $8015;
+       SC_DBE_FIRST = $8018;
+       SC_DBE_LAST = $801F;
+       SC_BEGINDRAG = $8020;
+       SC_ENDDRAG = $8021;
+       SC_SELECT = $8022;
+       SC_OPEN = $8023;
+       SC_CONTEXTMENU = $8024;
+       SC_CONTEXTHELP = $8025;
+       SC_TEXTEDIT = $8026;
+       SC_BEGINSELECT = $8027;
+       SC_ENDSELECT = $8028;
+       SC_WINDOW = $8029;
+       SC_HIDE = $802a;
+       TBM_SETHILITE = $01e3;
+       TBM_QUERYHILITE = $01e4;
+
+       SV_SWAPBUTTON = 0;
+       SV_DBLCLKTIME = 1;
+       SV_CXDBLCLK = 2;
+       SV_CYDBLCLK = 3;
+       SV_CXSIZEBORDER = 4;
+       SV_CYSIZEBORDER = 5;
+       SV_ALARM = 6;
+       SV_RESERVEDFIRST1 = 7;
+       SV_RESERVEDLAST1 = 8;
+       SV_CURSORRATE = 9;
+       SV_FIRSTSCROLLRATE = 10;
+       SV_SCROLLRATE = 11;
+       SV_NUMBEREDLISTS = 12;
+       SV_WARNINGFREQ = 13;
+       SV_NOTEFREQ = 14;
+       SV_ERRORFREQ = 15;
+       SV_WARNINGDURATION = 16;
+       SV_NOTEDURATION = 17;
+       SV_ERRORDURATION = 18;
+       SV_RESERVEDFIRST = 19;
+       SV_RESERVEDLAST = 19;
+       SV_CXSCREEN = 20;
+       SV_CYSCREEN = 21;
+       SV_CXVSCROLL = 22;
+       SV_CYHSCROLL = 23;
+       SV_CYVSCROLLARROW = 24;
+       SV_CXHSCROLLARROW = 25;
+       SV_CXBORDER = 26;
+       SV_CYBORDER = 27;
+       SV_CXDLGFRAME = 28;
+       SV_CYDLGFRAME = 29;
+       SV_CYTITLEBAR = 30;
+       SV_CYVSLIDER = 31;
+       SV_CXHSLIDER = 32;
+       SV_CXMINMAXBUTTON = 33;
+       SV_CYMINMAXBUTTON = 34;
+       SV_CYMENU = 35;
+       SV_CXFULLSCREEN = 36;
+       SV_CYFULLSCREEN = 37;
+       SV_CXICON = 38;
+       SV_CYICON = 39;
+       SV_CXPOINTER = 40;
+       SV_CYPOINTER = 41;
+       SV_DEBUG = 42;
+       SV_CMOUSEBUTTONS = 43;
+       SV_CPOINTERBUTTONS = 43;
+       SV_POINTERLEVEL = 44;
+       SV_CURSORLEVEL = 45;
+       SV_TRACKRECTLEVEL = 46;
+       SV_CTIMERS = 47;
+       SV_MOUSEPRESENT = 48;
+       SV_CXBYTEALIGN = 49;
+       SV_CXALIGN = 49;
+       SV_CYBYTEALIGN = 50;
+       SV_CYALIGN = 50;
+       SV_NOTRESERVED = 56;
+       SV_EXTRAKEYBEEP = 57;
+       SV_SETLIGHTS = 58;
+       SV_INSERTMODE = 59;
+       SV_MENUROLLDOWNDELAY = 64;
+       SV_MENUROLLUPDELAY = 65;
+       SV_ALTMNEMONIC = 66;
+       SV_TASKLISTMOUSEACCESS = 67;
+       SV_CXICONTEXTWIDTH = 68;
+       SV_CICONTEXTLINES = 69;
+       SV_CHORDTIME = 70;
+       SV_CXCHORD = 71;
+       SV_CYCHORD = 72;
+       SV_CXMOTION = 73;
+       SV_CYMOTION = 74;
+       SV_BEGINDRAG = 75;
+       SV_ENDDRAG = 76;
+       SV_SINGLESELECT = 77;
+       SV_OPEN = 78;
+       SV_CONTEXTMENU = 79;
+       SV_CONTEXTHELP = 80;
+       SV_TEXTEDIT = 81;
+       SV_BEGINSELECT = 82;
+       SV_ENDSELECT = 83;
+       SV_BEGINDRAGKB = 84;
+       SV_ENDDRAGKB = 85;
+       SV_SELECTKB = 86;
+       SV_OPENKB = 87;
+       SV_CONTEXTMENUKB = 88;
+       SV_CONTEXTHELPKB = 89;
+       SV_TEXTEDITKB = 90;
+       SV_BEGINSELECTKB = 91;
+       SV_ENDSELECTKB = 92;
+       SV_ANIMATION = 93;
+       SV_ANIMATIONSPEED = 94;
+       SV_MONOICONS = 95;
+       SV_KBDALTERED = 96;
+       SV_PRINTSCREEN = 97;
+       SV_CSYSVALUES = 98;
+
+       PP_FOREGROUNDCOLOR = 1;
+       PP_FOREGROUNDCOLORINDEX = 2;
+       PP_BACKGROUNDCOLOR = 3;
+       PP_BACKGROUNDCOLORINDEX = 4;
+       PP_HILITEFOREGROUNDCOLOR = 5;
+       PP_HILITEFOREGROUNDCOLORINDEX = 6;
+       PP_HILITEBACKGROUNDCOLOR = 7;
+       PP_HILITEBACKGROUNDCOLORINDEX = 8;
+       PP_DISABLEDFOREGROUNDCOLOR = 9;
+       PP_DISABLEDFOREGROUNDCOLORINDEX = 10;
+       PP_DISABLEDBACKGROUNDCOLOR = 11;
+       PP_DISABLEDBACKGROUNDCOLORINDEX = 12;
+       PP_BORDERCOLOR = 13;
+       PP_BORDERCOLORINDEX = 14;
+       PP_FONTNAMESIZE = 15;
+       PP_FONTHANDLE = 16;
+       PP_RESERVED = 17;
+       PP_ACTIVECOLOR = 18;
+       PP_ACTIVECOLORINDEX = 19;
+       PP_INACTIVECOLOR = 20;
+       PP_INACTIVECOLORINDEX = 21;
+       PP_ACTIVETEXTFGNDCOLOR = 22;
+       PP_ACTIVETEXTFGNDCOLORINDEX = 23;
+       PP_ACTIVETEXTBGNDCOLOR = 24;
+       PP_ACTIVETEXTBGNDCOLORINDEX = 25;
+       PP_INACTIVETEXTFGNDCOLOR = 26;
+       PP_INACTIVETEXTFGNDCOLORINDEX = 27;
+       PP_INACTIVETEXTBGNDCOLOR = 28;
+       PP_INACTIVETEXTBGNDCOLORINDEX = 29;
+       PP_SHADOW = 30;
+       PP_MENUFOREGROUNDCOLOR = 31;
+       PP_MENUFOREGROUNDCOLORINDEX = 32;
+       PP_MENUBACKGROUNDCOLOR = 33;
+       PP_MENUBACKGROUNDCOLORINDEX = 34;
+       PP_MENUHILITEFGNDCOLOR = 35;
+       PP_MENUHILITEFGNDCOLORINDEX = 36;
+       PP_MENUHILITEBGNDCOLOR = 37;
+       PP_MENUHILITEBGNDCOLORINDEX = 38;
+       PP_MENUDISABLEDFGNDCOLOR = 39;
+       PP_MENUDISABLEDFGNDCOLORINDEX = 40;
+       PP_MENUDISABLEDBGNDCOLOR = 41;
+       PP_MENUDISABLEDBGNDCOLORINDEX = 42;
+       PP_USER = $8000;
+       QPF_NOINHERIT = $0001;
+       QPF_ID1COLORINDEX = $0002;
+       QPF_ID2COLORINDEX = $0004;
+       QPF_PURERGBCOLOR = $0008;
+       QPF_VALIDFLAGS = $000F;
+
+       SYSCLR_SHADOWHILITEBGND = (-50);
+       SYSCLR_SHADOWHILITEFGND = (-49);
+       SYSCLR_SHADOWTEXT = (-48);
+       SYSCLR_ENTRYFIELD = (-47);
+       SYSCLR_MENUDISABLEDTEXT = (-46);
+       SYSCLR_MENUHILITE = (-45);
+       SYSCLR_MENUHILITEBGND = (-44);
+       SYSCLR_PAGEBACKGROUND = (-43);
+       SYSCLR_FIELDBACKGROUND = (-42);
+       SYSCLR_BUTTONLIGHT = (-41);
+       SYSCLR_BUTTONMIDDLE = (-40);
+       SYSCLR_BUTTONDARK = (-39);
+       SYSCLR_BUTTONDEFAULT = (-38);
+       SYSCLR_TITLEBOTTOM = (-37);
+       SYSCLR_SHADOW = (-36);
+       SYSCLR_ICONTEXT = (-35);
+       SYSCLR_DIALOGBACKGROUND = (-34);
+       SYSCLR_HILITEFOREGROUND = (-33);
+       SYSCLR_HILITEBACKGROUND = (-32);
+       SYSCLR_INACTIVETITLETEXTBGND = (-31);
+       SYSCLR_ACTIVETITLETEXTBGND = (-30);
+       SYSCLR_INACTIVETITLETEXT = (-29);
+       SYSCLR_ACTIVETITLETEXT = (-28);
+       SYSCLR_OUTPUTTEXT = (-27);
+       SYSCLR_WINDOWSTATICTEXT = (-26);
+       SYSCLR_SCROLLBAR = (-25);
+       SYSCLR_BACKGROUND = (-24);
+       SYSCLR_ACTIVETITLE = (-23);
+       SYSCLR_INACTIVETITLE = (-22);
+       SYSCLR_MENU = (-21);
+       SYSCLR_WINDOW = (-20);
+       SYSCLR_WINDOWFRAME = (-19);
+       SYSCLR_MENUTEXT = (-18);
+       SYSCLR_WINDOWTEXT = (-17);
+       SYSCLR_TITLETEXT = (-16);
+       SYSCLR_ACTIVEBORDER = (-15);
+       SYSCLR_INACTIVEBORDER = (-14);
+       SYSCLR_APPWORKSPACE = (-13);
+       SYSCLR_HELPBACKGROUND = (-12);
+       SYSCLR_HELPTEXT = (-11);
+       SYSCLR_HELPHILITE = (-10);
+       SYSCLR_CSYSCOLORS = 41;
+
+       TID_CURSOR = $ffff;
+       TID_SCROLL = $fffe;
+       TID_FLASHWINDOW = $fffd;
+       TID_USERMAX = $7fff;
+
+       AF_CHAR = $0001;
+       AF_VIRTUALKEY = $0002;
+       AF_SCANCODE = $0004;
+       AF_SHIFT = $0008;
+       AF_CONTROL = $0010;
+       AF_ALT = $0020;
+       AF_LONEKEY = $0040;
+       AF_SYSCOMMAND = $0100;
+       AF_HELP = $0200;
+
+       EAF_DEFAULTOWNER = $0001;
+       EAF_UNCHANGEABLE = $0002;
+       EAF_REUSEICON = $0004;
+
+       TF_LEFT = $0001;
+       TF_TOP = $0002;
+       TF_RIGHT = $0004;
+       TF_BOTTOM = $0008;
+       TF_MOVE = $000F;
+       TF_SETPOINTERPOS = $0010;
+       TF_GRID = $0020;
+       TF_STANDARD = $0040;
+       TF_ALLINBOUNDARY = $0080;
+       TF_VALIDATETRACKRECT = $0100;
+       TF_PARTINBOUNDARY = $0200;
+       WM_RENDERFMT = $0060;
+       WM_RENDERALLFMTS = $0061;
+       WM_DESTROYCLIPBOARD = $0062;
+       WM_PAINTCLIPBOARD = $0063;
+       WM_SIZECLIPBOARD = $0064;
+       WM_HSCROLLCLIPBOARD = $0065;
+       WM_VSCROLLCLIPBOARD = $0066;
+       WM_DRAWCLIPBOARD = $0067;
+       CF_TEXT = 1;
+       CF_BITMAP = 2;
+       CF_DSPTEXT = 3;
+       CF_DSPBITMAP = 4;
+       CF_METAFILE = 5;
+       CF_DSPMETAFILE = 6;
+       CF_PALETTE = 9;
+       SZFMT_TEXT = '#1';
+       SZFMT_BITMAP = '#2';
+       SZFMT_DSPTEXT = '#3';
+       SZFMT_DSPBITMAP = '#4';
+       SZFMT_METAFILE = '#5';
+       SZFMT_DSPMETAFILE = '#6';
+       SZFMT_PALETTE = '#9';
+       SZFMT_SYLK = 'Sylk';
+       SZFMT_DIF = 'Dif';
+       SZFMT_TIFF = 'Tiff';
+       SZFMT_OEMTEXT = 'OemText';
+       SZFMT_DIB = 'Dib';
+       SZFMT_OWNERDISPLAY = 'OwnerDisplay';
+       SZFMT_LINK = 'Link';
+       SZFMT_METAFILEPICT = 'MetaFilePict';
+       SZFMT_DSPMETAFILEPICT = 'DspMetaFilePict';
+       SZFMT_CPTEXT = 'Codepage Text';
+       SZDDEFMT_RTF = 'Rich Text Format';
+       SZDDEFMT_PTRPICT = 'Printer_Picture';
+
+       CFI_OWNERFREE = $0001;
+       CFI_OWNERDISPLAY = $0002;
+       CFI_POINTER = $0400;
+       CFI_HANDLE = $0200;
+
+       CURSOR_SOLID = $0000;
+       CURSOR_HALFTONE = $0001;
+       CURSOR_FRAME = $0002;
+       CURSOR_FLASH = $0004;
+       CURSOR_SETPOS = $8000;
+
+       SPTR_ARROW = 1;
+       SPTR_TEXT = 2;
+       SPTR_WAIT = 3;
+       SPTR_SIZE = 4;
+       SPTR_MOVE = 5;
+       SPTR_SIZENWSE = 6;
+       SPTR_SIZENESW = 7;
+       SPTR_SIZEWE = 8;
+       SPTR_SIZENS = 9;
+       SPTR_APPICON = 10;
+       SPTR_ICONINFORMATION = 11;
+       SPTR_ICONQUESTION = 12;
+       SPTR_ICONERROR = 13;
+       SPTR_ICONWARNING = 14;
+       SPTR_CPTR = 14;
+       SPTR_ILLEGAL = 18;
+       SPTR_FILE = 19;
+       SPTR_FOLDER = 20;
+       SPTR_MULTFILE = 21;
+       SPTR_PROGRAM = 22;
+       SPTR_HANDICON = SPTR_ICONERROR;
+       SPTR_QUESICON = SPTR_ICONQUESTION;
+       SPTR_BANGICON = SPTR_ICONWARNING;
+       SPTR_NOTEICON = SPTR_ICONINFORMATION;
+
+       DP_NORMAL = $0000;
+       DP_HALFTONED = $0001;
+       DP_INVERTED = $0002;
+
+       SBMP_OLD_SYSMENU = 1;
+       SBMP_OLD_SBUPARROW = 2;
+       SBMP_OLD_SBDNARROW = 3;
+       SBMP_OLD_SBRGARROW = 4;
+       SBMP_OLD_SBLFARROW = 5;
+       SBMP_MENUCHECK = 6;
+       SBMP_OLD_CHECKBOXES = 7;
+       SBMP_BTNCORNERS = 8;
+       SBMP_OLD_MINBUTTON = 9;
+       SBMP_OLD_MAXBUTTON = 10;
+       SBMP_OLD_RESTOREBUTTON = 11;
+       SBMP_OLD_CHILDSYSMENU = 12;
+       SBMP_DRIVE = 15;
+       SBMP_FILE = 16;
+       SBMP_FOLDER = 17;
+       SBMP_TREEPLUS = 18;
+       SBMP_TREEMINUS = 19;
+       SBMP_PROGRAM = 22;
+       SBMP_MENUATTACHED = 23;
+       SBMP_SIZEBOX = 24;
+       SBMP_SYSMENU = 25;
+       SBMP_MINBUTTON = 26;
+       SBMP_MAXBUTTON = 27;
+       SBMP_RESTOREBUTTON = 28;
+       SBMP_CHILDSYSMENU = 29;
+       SBMP_SYSMENUDEP = 30;
+       SBMP_MINBUTTONDEP = 31;
+       SBMP_MAXBUTTONDEP = 32;
+       SBMP_RESTOREBUTTONDEP = 33;
+       SBMP_CHILDSYSMENUDEP = 34;
+       SBMP_SBUPARROW = 35;
+       SBMP_SBDNARROW = 36;
+       SBMP_SBLFARROW = 37;
+       SBMP_SBRGARROW = 38;
+       SBMP_SBUPARROWDEP = 39;
+       SBMP_SBDNARROWDEP = 40;
+       SBMP_SBLFARROWDEP = 41;
+       SBMP_SBRGARROWDEP = 42;
+       SBMP_SBUPARROWDIS = 43;
+       SBMP_SBDNARROWDIS = 44;
+       SBMP_SBLFARROWDIS = 45;
+       SBMP_SBRGARROWDIS = 46;
+       SBMP_COMBODOWN = 47;
+       SBMP_CHECKBOXES = 48;
+
+       HK_SENDMSG = 0;
+       HK_INPUT = 1;
+       HK_MSGFILTER = 2;
+       HK_JOURNALRECORD = 3;
+       HK_JOURNALPLAYBACK = 4;
+       HK_HELP = 5;
+       HK_LOADER = 6;
+       HK_REGISTERUSERMSG = 7;
+       HK_MSGCONTROL = 8;
+       HK_PLIST_ENTRY = 9;
+       HK_PLIST_EXIT = 10;
+       HK_FINDWORD = 11;
+       HK_CODEPAGECHANGED = 12;
+       HK_WINDOWDC = 15;
+       HK_DESTROYWINDOW = 16;
+       HK_CHECKMSGFILTER = 20;
+       HMQ_CURRENT = 1;
+       MSGF_DIALOGBOX = 1;
+       MSGF_MESSAGEBOX = 2;
+       MSGF_TRACK = 8;
+       MSGF_DDEPOSTMSG = 3;
+       HLPM_FRAME = (-1);
+       HLPM_WINDOW = (-2);
+       HLPM_MENU = (-3);
+       PM_MODEL_1X = 0;
+       PM_MODEL_2X = 1;
+
+       LHK_DELETEPROC = 1;
+       LHK_DELETELIB = 2;
+       LHK_LOADPROC = 3;
+       LHK_LOADLIB = 4;
+       MCHK_MSGINTEREST = 1;
+       MCHK_CLASSMSGINTEREST = 2;
+       MCHK_SYNCHRONISATION = 3;
+       MCHK_MSGMODE = 4;
+       RUMHK_DATATYPE = 1;
+       RUMHK_MSG = 2;
+
+       {WinCompareStrings}
+       WCS_ERROR = 0;
+       WCS_EQ = 1;
+       WCS_LT = 2;
+       WCS_GT = 3;
+
+       WINDBG_HWND_NOT_DESTROYED = $1022;
+       WINDBG_HPTR_NOT_DESTROYED = $1023;
+       WINDBG_HACCEL_NOT_DESTROYED = $1024;
+       WINDBG_HENUM_NOT_DESTROYED = $1025;
+       WINDBG_VISRGN_SEM_BUSY = $1026;
+       WINDBG_USER_SEM_BUSY = $1027;
+       WINDBG_DC_CACHE_BUSY = $1028;
+       WINDBG_HOOK_STILL_INSTALLED = $1029;
+       WINDBG_WINDOW_STILL_LOCKED = $102a;
+       WINDBG_UPDATEPS_ASSERTION_FAIL = $102b;
+       WINDBG_SENDMSG_WITHIN_USER_SEM = $102c;
+       WINDBG_USER_SEM_NOT_ENTERED = $102d;
+       WINDBG_PROC_NOT_EXPORTED = $102e;
+       WINDBG_BAD_SENDMSG_cardinal = $102f;
+       WINDBG_ABNORMAL_EXIT = $1030;
+       WINDBG_INTERNAL_REVISION = $1031;
+       WINDBG_INITSYSTEM_FAILED = $1032;
+       WINDBG_HATOMTBL_NOT_DESTROYED = $1033;
+       WINDBG_WINDOW_UNLOCK_WAIT = $1035;
+
+       SZDDESYS_TOPIC = 'System';
+       SZDDESYS_ITEM_TOPICS = 'Topics';
+       SZDDESYS_ITEM_SYSITEMS = 'SysItems';
+       SZDDESYS_ITEM_RTNMSG = 'ReturnMessage';
+       SZDDESYS_ITEM_STATUS = 'Status';
+       SZDDESYS_ITEM_FORMATS = 'Formats';
+       SZDDESYS_ITEM_SECURITY = 'Security';
+       SZDDESYS_ITEM_ITEMFORMATS = 'ItemFormats';
+       SZDDESYS_ITEM_HELP = 'Help';
+       SZDDESYS_ITEM_PROTOCOLS = 'Protocols';
+       SZDDESYS_ITEM_RESTART = 'Restart'; 
+       
+       DDECTXT_CASESENSITIVE = $0001;     
+
+       {DDE}
+       DDE_FACK = $0001;
+       DDE_FBUSY = $0002;
+       DDE_FNODATA = $0004;
+       DDE_FACKREQ = $0008;
+       DDE_FRESPONSE = $0010;
+       DDE_NOTPROCESSED = $0020;
+       DDE_FRESERVED = $00C0;
+       DDE_FAPPSTATUS = $FF00;
+       DDEFMT_TEXT = $0001;
+       DDEPM_RETRY = $00000001;
+       DDEPM_NOFREE = $00000002;
+       WM_DDE_FIRST = $00A0;
+       WM_DDE_INITIATE = $00A0;
+       WM_DDE_REQUEST = $00A1;
+       WM_DDE_ACK = $00A2;
+       WM_DDE_DATA = $00A3;
+       WM_DDE_ADVISE = $00A4;
+       WM_DDE_UNADVISE = $00A5;
+       WM_DDE_POKE = $00A6;
+       WM_DDE_EXECUTE = $00A7;
+       WM_DDE_TERMINATE = $00A8;
+       WM_DDE_INITIATEACK = $00A9;
+       WM_DDE_LAST = $00AF;
+       WM_QUERYCONVERTPOS = $00b0;
+       QCP_CONVERT = $0001;
+       QCP_NOCONVERT = $0000;
+
+       SDT_DESTROY = $0001;
+       SDT_NOBKGND = $0002;
+       SDT_TILE = $0004;
+       SDT_SCALE = $0008;
+       SDT_PATTERN = $0010;
+       SDT_CENTER = $0020;
+       SDT_RETAIN = $0040;
+       SDT_LOADFILE = $0080;
+
+       STR_DLLNAME = 'keyremap';
+       WM_DBCSFIRST = $00b0;
+       WM_DBCSLAST = $00cf;
+
+    function WinRegisterClass(hab : cardinal;pszClassName : pchar;pfnWndProc : proc;flStyle,cbWindowData : cardinal) : longbool; cdecl;
+    function WinDefWindowProc(hwnd,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;
+    function WinDestroyWindow(hwnd : cardinal) : longbool; cdecl;
+    function WinShowWindow(hwnd : cardinal;fShow : longbool) : longbool;  cdecl;
+    function WinQueryWindowRect(hwnd : cardinal;var prclDest : RECTL) : longbool; cdecl;
+    function WinGetPS(hwnd : cardinal) : cardinal;  cdecl;
+    function WinReleasePS(hps : cardinal) : longbool;  cdecl;
+    function WinEndPaint(hps : cardinal) : longbool; cdecl;
+    function WinGetClipPS(hwnd,hwndClip,fl : cardinal) : cardinal; cdecl;
+    function WinIsWindowShowing(hwnd : cardinal) : longbool; cdecl;
+    function WinBeginPaint(hwnd,hps : cardinal;var prclPaint : RECTL) : cardinal; cdecl;
+    function WinOpenWindowDC(hwnd : cardinal) : cardinal; cdecl;
+    function WinScrollWindow(hwnd : cardinal;dx,dy : longint;var prclScroll,prclClip : RECTL;hrgnUpdate : cardinal;var prclUpdate : RECTL;rgfsw : cardinal) : longint; cdecl;                                             
+    function WinFillRect(hps : cardinal;var prcl : RECTL;lColor : longint) : longbool; cdecl;
+    function WinQueryVersion(hab : cardinal) : cardinal; cdecl;
+    function WinInitialize(flOptions : cardinal) : cardinal; cdecl;
+    function WinTerminate(hab : cardinal) : longbool; cdecl;      
+    function WinQueryAnchorBlock(hwnd : cardinal) : cardinal; cdecl;
+    function WinCreateWindow(hwndParent : cardinal;pszClass,pszName : pchar;flStyle : cardinal;x,y,cx,cy : longint;hwndOwner,hwndInsertBehind,id : cardinal;var pCtlData,pPresParams : pointer) : cardinal; cdecl;
+    function WinEnableWindow(hwnd : cardinal;fEnable : longbool) : longbool; cdecl;
+    function WinIsWindowEnabled(hwnd : cardinal) : longbool; cdecl;
+    function WinEnableWindowUpdate(hwnd : cardinal;fEnable : longbool) : longbool; cdecl;
+    function WinIsWindowVisible(hwnd : cardinal) : longbool; cdecl;
+    function WinQueryWindowText(hwnd : cardinal;cchBufferMax : longint;pchBuffer : pchar) : longint; cdecl;                                                                 
+    function WinSetWindowText(hwnd : cardinal;pszText : pchar) : longbool; cdecl;
+    function WinQueryWindowTextLength(hwnd : cardinal) : longint; cdecl;
+    function WinWindowFromID(hwndParent,id : cardinal) : cardinal; cdecl;
+    function WinIsWindow(hab,hwnd : cardinal) : longbool; cdecl;
+    function WinQueryWindow(hwnd : cardinal;cmd : longint) : cardinal; cdecl;
+    function WinMultWindowFromIDs(hwndParent : cardinal;var prghwnd : cardinal;idFirst,idLast : cardinal) : longint; cdecl;
+    function WinSetParent(hwnd,hwndNewParent : cardinal;fRedraw : longbool) : longbool; cdecl;
+    function WinIsChild(hwnd,hwndParent : cardinal) : longbool; cdecl;
+    function WinSetOwner(hwnd,hwndNewOwner : cardinal) : longbool; cdecl;
+    function WinQueryWindowProcess(hwnd : cardinal;var ppid,ptid : cardinal) : longbool; cdecl;
+    function WinQueryObjectWindow(hwndDesktop : cardinal) : cardinal; cdecl;
+    function WinQueryDesktopWindow(hab,hdc : cardinal) : cardinal; cdecl;
+    function WinSetWindowPos(hwnd,hwndInsertBehind : cardinal;x,y,cx,cy : longint;fl : cardinal) : longbool; cdecl; 
+    function WinSetMultWindowPos(hab : cardinal;var pswp : SWP;cswp : cardinal) : longbool; cdecl;
+    function WinQueryWindowPos(hwnd : cardinal;var pswp : SWP) : longbool; cdecl;
+    function WinUpdateWindow(hwnd : cardinal) : longbool; cdecl;
+    function WinInvalidateRect(hwnd : cardinal;var pwrc : RECTL;fIncludeChildren : longbool) : longbool; cdecl;
+    function WinInvalidateRegion(hwnd,hrgn : cardinal;fIncludeChildren : longbool) : longbool; cdecl;
+    function WinInvertRect(hps : cardinal;var prcl : RECTL) : longbool; cdecl;
+    function WinDrawBitmap(hpsDst,hbm : cardinal;var pwrcSrc : RECTL;var pptlDst : POINTL;clrFore : longint;clrBack : longint;fl : cardinal) : longbool; cdecl;
+    function WinDrawText(hps : cardinal;cchText : longint;lpchText : pchar;var prcl : RECTL;clrFore,clrBack : longint;flCmd : cardinal) : longint; cdecl;
+    function WinDrawBorder(hps : cardinal;var prcl : RECTL;cx,cy : longint;clrFore,clrBack : longint;flCmd : cardinal) : longbool; cdecl;
+    function WinLoadString(hab,hmod,id : cardinal;cchMax : longint;pchBuffer : pchar) : longint; cdecl;
+    function WinLoadMessage(hab,hmod,id : cardinal;cchMax : longint;pchBuffer : pchar) : longint; cdecl;
+    function WinSetActiveWindow(hwndDesktop,hwnd : cardinal) : longbool; cdecl;
+    function WinSubclassWindow(hwnd : cardinal;pfnwp : proc) : proc; cdecl;
+    function WinQueryClassName(hwnd : cardinal;cchMax : longint;pch : pchar) : longint; cdecl;
+    function WinQueryClassInfo(hab : cardinal;pszClassName : pchar;var pClassInfo : CLASSINFO) : longbool; cdecl;
+    function WinQueryActiveWindow(hwndDesktop : cardinal) : cardinal; cdecl;
+    function WinIsThreadActive(hab : cardinal) : longbool; cdecl;
+    function WinQuerySysModalWindow(hwndDesktop : cardinal) : cardinal; cdecl;
+    function WinSetSysModalWindow(hwndDesktop,hwnd : cardinal) : longbool; cdecl; 
+    function WinQueryWindowUShort(hwnd : cardinal;index : longint) : word; cdecl;
+    function WinSetWindowUShort(hwnd : cardinal;index : longint;us : word) : longbool; cdecl;
+    function WinQueryWindowULong(hwnd : cardinal;index : longint) : cardinal; cdecl;
+    function WinSetWindowULong(hwnd : cardinal;index : longint;ul : cardinal) : longbool; cdecl;
+    function WinQueryWindowPtr(hwnd : cardinal;index : longint) : pointer; cdecl;    
+    function WinSetWindowPtr(hwnd : cardinal;index : longint;p : pointer) : longbool; cdecl;
+    function WinSetWindowBits(hwnd : cardinal;index : longint;flData,flMask : cardinal) : longbool; cdecl;
+    function WinBeginEnumWindows(hwnd : cardinal) : cardinal; cdecl;                                             
+    function WinGetNextWindow(henum : cardinal) : cardinal; cdecl;                                               
+    function WinEndEnumWindows(henum : cardinal) : longbool; cdecl;                                                  
+    function WinWindowFromPoint(hwnd : cardinal;var pptl : POINTL;fChildren : longbool) : cardinal; cdecl;              
+    function WinMapWindowPoints(hwndFrom,hwndTo : cardinal;var prgptl : POINTL;cwpt : longint) : longbool; cdecl;
+    function WinValidateRect(hwnd : cardinal;var prcl : RECTL;fIncludeChildren : longbool) : longbool; cdecl;                   
+    function WinValidateRegion(hwnd,hrgn : cardinal;fIncludeChildren : longbool) : longbool; cdecl;                   
+    function WinWindowFromDC(hdc : cardinal) : cardinal; cdecl;                                                      
+    function WinQueryWindowDC(hwnd : cardinal) : cardinal; cdecl;                                                    
+    function WinGetScreenPS(hwndDesktop : cardinal) : cardinal; cdecl;                                               
+    function WinLockWindowUpdate(hwndDesktop,hwndLockUpdate : cardinal) : longbool; cdecl;                    
+    function WinLockVisRegions(hwndDesktop : cardinal;fLock : longbool) : longbool; cdecl;                                   
+    function WinQueryUpdateRect(hwnd : cardinal;var prcl : RECTL) : longbool; cdecl;                                        
+    function WinQueryUpdateRegion(hwnd,hrgn : cardinal) : longint; cdecl;                                     
+    function WinExcludeUpdateRegion(hps,hwnd : cardinal) : longint; cdecl;
+    function WinSendMsg(hwnd,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;
+    function WinCreateMsgQueue(hab : cardinal;cmsg : longint) : cardinal; cdecl;                        
+    function WinDestroyMsgQueue(hmq : cardinal) : longbool; cdecl;                                          
+    function WinQueryQueueInfo(hmq : cardinal;var pmqi : MQINFO;cbCopy : cardinal) : longbool; cdecl;          
+    function WinCancelShutdown(hmq : cardinal;fCancelAlways : longbool) : longbool; cdecl;                      
+    function WinGetMsg(hab : cardinal;var pqmsg : QMSG;hwndFilter,msgFilterFirst,msgFilterLast : cardinal) : longbool; cdecl;
+    function WinPeekMsg(hab : cardinal;var pqmsg : QMSG;hwndFilter,msgFilterFirst,msgFilterLast,fl : cardinal) : longbool; cdecl; 
+    function WinDispatchMsg(hab : cardinal;var pqmsg : QMSG) : pointer; cdecl;
+    function WinPostMsg(hwnd,msg : cardinal;mp1,mp2 : pointer) : longbool; cdecl;
+    function WinRegisterUserMsg(hab,msgid : cardinal;datatype1,dir1,datatype2,dir2,datatyper : longint) : longbool; cdecl;
+    function WinRegisterUserDatatype(hab : cardinal;datatype,count : longint;var types : longint) : longbool; cdecl;
+    function WinSetMsgMode(hab : cardinal;classname : pchar;control : longint) : longbool; cdecl;                      
+    function WinSetSynchroMode(hab : cardinal;mode : longint) : longbool;  cdecl;                        
+    function WinInSendMsg(hab : cardinal) : longbool; cdecl; 
+    function WinBroadcastMsg(hwnd,msg : cardinal;mp1,mp2 : pointer;rgf : cardinal) : longbool; cdecl;
+    function WinWaitMsg(hab,msgFirst,msgLast : cardinal) : longbool; cdecl;                       
+    function WinQueryQueueStatus(hwndDesktop : cardinal) : cardinal; cdecl;
+    function WinQueryMsgPos(hab : cardinal;var pptl : POINTL) : longbool; cdecl;  
+    function WinQueryMsgTime(hab : cardinal) : cardinal; cdecl;            
+    function WinWaitEventSem(hev,ulTimeout : cardinal) : cardinal; cdecl;   
+    function WinRequestMutexSem(hmtx,ulTimeout : cardinal) : cardinal; cdecl;
+    function WinWaitMuxWaitSem(hmux,ulTimeout:cardinal;var pulUser : cardinal) : cardinal; cdecl;   
+    function WinPostQueueMsg(hmq,msg : cardinal;mp1,mp2 : pointer) : longbool; cdecl;  
+    function WinSetMsgInterest(hwnd,msg_class : cardinal;control : longint) : longbool; cdecl;
+    function WinSetClassMsgInterest(hab : cardinal;pszClassName : pchar;msg_class : cardinal;control : longint) : longbool; cdecl;     
+    function WinSetFocus(hwndDesktop,hwndSetFocus : cardinal) : longbool; cdecl;                                                
+    function WinFocusChange(hwndDesktop,hwndSetFocus,flFocusChange : cardinal) : longbool; cdecl;                    
+    function WinSetCapture(hwndDesktop,hwnd : cardinal) : longbool; cdecl; 
+    function WinQueryCapture(hwndDesktop : cardinal) : cardinal; cdecl;
+    function WinQueryFocus(hwndDesktop : cardinal) : cardinal; cdecl;   
+    function WinGetKeyState(hwndDesktop : cardinal;vkey : longint) : longint; cdecl;     
+    function WinGetPhysKeyState(hwndDesktop : cardinal;sc : longint) : longint; cdecl;   
+    function WinEnablePhysInput(hwndDesktop : cardinal;fEnable : longbool) : longbool; cdecl;    
+    function WinIsPhysInputEnabled(hwndDesktop : cardinal) : longbool; cdecl;                
+    function WinSetKeyboardStateTable(hwndDesktop : cardinal;var pKeyStateTable : BYTE;fSet : longbool) : longbool; cdecl;
+    function WinGetDlgMsg(hwndDlg : cardinal;var pqmsg : QMSG) : longbool; cdecl;             
+    function WinLoadDlg(hwndParent,hwndOwner : cardinal;pfnDlgProc : proc;hmod,idDlg : cardinal;pCreateParams : pointer) : cardinal; cdecl;  
+    function WinDlgBox(hwndParent,hwndOwner : cardinal;pfnDlgProc : proc;hmod,idDlg : cardinal;pCreateParams : pointer) : cardinal; cdecl;   
+    function WinDismissDlg(hwndDlg,usResult : cardinal) : longbool; cdecl;  
+    function WinQueryDlgItemShort(hwndDlg,idItem : cardinal;var pResult : integer;fSigned : longbool) : longbool; cdecl;  
+    function WinSetDlgItemShort(hwndDlg,idItem : cardinal;usValue : word;fSigned : longbool) : longbool; cdecl;        
+    function WinSetDlgItemText(hwndDlg,idItem : cardinal;pszText : pchar) : longbool; cdecl;
+    function WinQueryDlgItemText(hwndDlg,idItem : cardinal;cchBufferMax : longint;pchBuffer : pchar) : cardinal; cdecl;       
+    function WinQueryDlgItemTextLength(hwndDlg,idItem : cardinal) : longint; cdecl;                                               
+    function WinDefDlgProc(hwndDlg,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;                              
+    function WinAlarm(hwndDesktop,rgfType : cardinal) : longbool; cdecl;
+    function WinMessageBox(hwndParent,hwndOwner : cardinal;pszText,pszCaption : pchar;idWindow,flStyle : cardinal) : cardinal; cdecl;
+    function WinProcessDlg(hwndDlg : cardinal) : cardinal; cdecl;
+    function WinSendDlgItemMsg(hwndDlg,idItem,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;
+    function WinMapDlgPoints(hwndDlg : cardinal;var prgwptl : POINTL;cwpt : cardinal;fCalcWindowCoords : longbool) : longbool; cdecl;     
+    function WinEnumDlgItem(hwndDlg,hwnd,code : cardinal) : cardinal; cdecl;                             
+    function WinSubstituteStrings(hwnd : cardinal;pszSrc : pchar;cchDstMax : longint;pszDst : pchar) : longint; cdecl;     
+    function WinCreateDlg(hwndParent,hwndOwner : cardinal;pfnDlgProc : proc;var pdlgt : DLGTEMPLATE;pCreateParams : pointer) : cardinal; cdecl;
+    function WinLoadMenu(hwndFrame,hmod,idMenu : cardinal) : cardinal; cdecl;
+    function WinCreateMenu(hwndParent : cardinal;lpmt : pointer) : cardinal; cdecl; 
+    function WinPopupMenu(hwndParent,hwndOwner,hwndMenu : cardinal;x,y,idItem : longint;fs : cardinal) : longbool; cdecl;
+    function WinCreateStdWindow(hwndParent,flStyle : cardinal;var pflCreateFlags : cardinal;pszClientClass,pszTitle : pchar;styleClient,hmod,idResources : cardinal;var phwndClient : cardinal) : cardinal; cdecl;
+    function WinFlashWindow(hwndFrame : cardinal;fFlash : longbool) : longbool; cdecl; 
+    function WinCreateFrameControls(hwndFrame : cardinal;var pfcdata : FRAMECDATA;pszTitle : pchar) : longbool;  cdecl;    
+    function WinCalcFrameRect(hwndFrame : cardinal;var prcl : RECTL;fClient : longbool) : longbool; cdecl;                         
+    function WinGetMinPosition(hwnd : cardinal;var pswp : SWP;var pptl : POINTL) : longbool; cdecl;                               
+    function WinGetMaxPosition(hwnd : cardinal;var pswp : SWP) : longbool; cdecl;                                              
+    function WinSaveWindowPos(hsvwp : cardinal;var pswp : SWP;cswp : cardinal) : longbool; cdecl;        
+    function WinCopyRect(hab : cardinal;var prclDst, prclSrc : RECTL) : longbool; cdecl;         
+    function WinSetRect(hab : cardinal;var prcl : RECTL;xLeft,yBottom,xRight,yTop : longint) : longbool; cdecl; 
+    function WinIsRectEmpty(hab : cardinal;var prcl : RECTL) : longbool; cdecl;                                                              
+    function WinEqualRect(hab : cardinal;var prcl1,prcl2 : RECTL) : longbool; cdecl;                                                
+    function WinSetRectEmpty(hab : cardinal;var prcl : RECTL) : longbool; cdecl;                                                             
+    function WinOffsetRect(hab : cardinal;var prcl : RECTL;cx,cy : longint) : longbool; cdecl;                                     
+    function WinInflateRect(hab : cardinal;var prcl : RECTL;cx,cy : longint) : longbool; cdecl;                                    
+    function WinPtInRect(hab : cardinal;var prcl : RECTL;var pptl : POINTL) : longbool; cdecl;                                                  
+    function WinIntersectRect(hab : cardinal;var prclDst,prclSrc1,prclSrc2 : RECTL) : longbool; cdecl;                     
+    function WinUnionRect(hab : cardinal;var prclDst,prclSrc1,prclSrc2 : RECTL) : longbool; cdecl;                         
+    function WinSubtractRect(hab : cardinal;var prclDst,prclSrc1,prclSrc2 : RECTL) : longbool; cdecl;                      
+    function WinMakeRect(hab : cardinal;var pwrc : RECTL) : longbool; cdecl;                                                                 
+    function WinMakePoints(hab : cardinal;var pwpt : POINTL;cwpt : cardinal) : longbool; cdecl;                                              
+    function WinQuerySysValue(hwndDesktop : cardinal;iSysValue : longint) : longint; cdecl;                                           
+    function WinSetSysValue(hwndDesktop : cardinal;iSysValue,lValue : longint) : longbool; cdecl;                               
+    function WinSetPresParam(hwnd,id,cbParam : cardinal;pbParam : pointer) : longbool;  cdecl; 
+    function WinQueryPresParam(hwnd,id1,id2 : cardinal;var pulId : cardinal;cbBuf : cardinal;pbBuf : pointer;fs : cardinal) : cardinal; cdecl;    
+    function WinRemovePresParam(hwnd,id : cardinal) : longbool; cdecl; 
+    function WinQuerySysColor(hwndDesktop : cardinal;clr,lReserved : longint) : longint; cdecl; 
+    function WinSetSysColors(hwndDesktop,flOptions,flFormat : cardinal;clrFirst : longint;cclr : cardinal;var pclr : longint) : longbool; cdecl;        
+    function WinStartTimer(hab,hwnd,idTimer,dtTimeout : cardinal) : cardinal; cdecl; 
+    function WinStopTimer(hab,hwnd,idTimer : cardinal) : longbool; cdecl; 
+    function WinGetCurrentTime(hab : cardinal) : cardinal; cdecl;                           
+    function WinLoadAccelTable(hab,hmod,idAccelTable : cardinal) : cardinal; cdecl;    
+    function WinCopyAccelTable(haccel : cardinal;var pAccelTable : ACCELTABLE;cbCopyMax : cardinal) : cardinal; cdecl;
+    function WinCreateAccelTable(hab : cardinal;var pAccelTable : ACCELTABLE) : cardinal; cdecl;                      
+    function WinDestroyAccelTable(haccel : cardinal) : longbool; cdecl;                                                
+    function WinTranslateAccel(hab,hwnd,haccel : cardinal;var pqmsg : QMSG) : longbool; cdecl;      
+    function WinSetAccelTable(hab,haccel,hwndFrame : cardinal) : longbool; cdecl;                
+    function WinQueryAccelTable(hab,hwndFrame : cardinal) : cardinal; cdecl;                            
+    function WinTrackRect(hwnd,hps : cardinal;var pti : TRACKINFO) : longbool; cdecl;        
+    function WinShowTrackRect(hwnd : cardinal;fShow : longbool) : longbool; cdecl;
+    function WinSetClipbrdOwner(hab,hwnd : cardinal) : longbool; cdecl;  
+    function WinSetClipbrdData(hab,ulData,fmt,rgfFmtInfo : cardinal) : longbool;  cdecl;  
+    function WinQueryClipbrdData(hab,fmt : cardinal) : cardinal;  cdecl;                                    
+    function WinQueryClipbrdFmtInfo(hab,fmt : cardinal;var prgfFmtInfo : cardinal) : longbool; cdecl;              
+    function WinSetClipbrdViewer(hab,hwndNewClipViewer : cardinal) : longbool;  cdecl;                      
+    function WinEnumClipbrdFmts(hab,fmt : cardinal) : cardinal; cdecl;   
+    function WinEmptyClipbrd(hab : cardinal) : longbool; cdecl;                         
+    function WinOpenClipbrd(hab : cardinal) : longbool;  cdecl;                         
+    function WinCloseClipbrd(hab : cardinal) : longbool; cdecl;                         
+    function WinQueryClipbrdOwner(hab : cardinal) : cardinal; cdecl;                
+    function WinQueryClipbrdViewer(hab : cardinal) : cardinal; cdecl;               
+    function WinDestroyCursor(hwnd : cardinal) : longbool; cdecl;                       
+    function WinShowCursor(hwnd : cardinal;fShow : longbool) : longbool; cdecl;             
+    function WinCreateCursor(hwnd : cardinal;x,y,cx,cy : longint;fs : cardinal;var prclClip : RECTL) : longbool; cdecl; 
+    function WinQueryCursorInfo(hwndDesktop : cardinal;var pCursorInfo : CURSORINFO) : longbool; cdecl;
+    function WinSetPointer(hwndDesktop,hptrNew : cardinal) : longbool; cdecl;       
+    function WinSetPointerOwner(hptr,pid : cardinal;fDestroy : longbool) : longbool; cdecl;  
+    function WinShowPointer(hwndDesktop : cardinal;fShow : longbool) : longbool; cdecl;            
+    function WinQuerySysPointer(hwndDesktop : cardinal;iptr : longint;fLoad : longbool) : cardinal; cdecl;
+    function WinLoadPointer(hwndDesktop,hmod,idres : cardinal) : cardinal; cdecl;           
+    function WinCreatePointer(hwndDesktop,hbmPointer : cardinal;fPointer : longbool;xHotspot,yHotspot : longint) : cardinal; cdecl; 
+    function WinSetPointerPos(hwndDesktop : cardinal;x,y : longint) : longbool; cdecl;                                                        
+    function WinDestroyPointer(hptr : cardinal) : longbool; cdecl;        
+    function WinQueryPointer(hwndDesktop : cardinal) : cardinal; cdecl;
+    function WinQueryPointerPos(hwndDesktop : cardinal;var pptl : POINTL) : longbool; cdecl;
+    function WinCreatePointerIndirect(hwndDesktop : cardinal;var pptri : POINTERINFO) : cardinal; cdecl;        
+    function WinQueryPointerInfo(hptr : cardinal;var pPointerInfo : POINTERINFO) : longbool; cdecl;                 
+    function WinDrawPointer(hps : cardinal;x,y : longint;hptr,fs : cardinal) : longbool; cdecl;  
+    function WinGetSysBitmap(hwndDesktop,ibm : cardinal) : cardinal; cdecl;
+    function WinSetHook(hab : cardinal;hmq : cardinal;iHook : longint;pfnHook : pointer;hmod : cardinal) : longbool; cdecl;
+    function WinReleaseHook(hab,hmq : cardinal;iHook : longint;pfnHook : pointer;hmod : cardinal) : longbool; cdecl; 
+    function WinCallMsgFilter(hab : cardinal;var pqmsg : QMSG;msgf : cardinal) : longbool; cdecl;         
+    function WinSetClassThunkProc(pszClassname : pchar;pfnThunkProc : pointer) : longbool; cdecl;      
+    function WinQueryClassThunkProc(pszClassname : pchar) : pointer; cdecl;                        
+    function WinSetWindowThunkProc(hwnd : cardinal;pfnThunkProc : pointer) : longbool; cdecl;              
+    function WinQueryWindowThunkProc(hwnd : cardinal) : pointer; cdecl;                                
+    function WinQueryWindowModel(hwnd : cardinal) : longint; cdecl;                                
+    function WinQueryCp(hmq : cardinal) : cardinal; cdecl;                                         
+    function WinSetCp(hmq,idCodePage : cardinal) : longbool; cdecl;                         
+    function WinQueryCpList(hab,ccpMax : cardinal;var prgcp : cardinal) : cardinal; cdecl; 
+    function WinCpTranslateString(hab,cpSrc : cardinal;pszSrc : pchar;cpDst,cchDestMax : cardinal;pchDest : pchar) : longbool; cdecl; 
+    function WinCpTranslateChar(hab,cpSrc : cardinal;chSrc : byte;cpDst : cardinal) : byte; cdecl;                                                   
+    function WinUpper(hab,idcp,idcc : cardinal;psz : pchar) : cardinal; cdecl;                                                        
+    function WinUpperChar(hab,idcp,idcc,c : cardinal) : cardinal; cdecl;                                                       
+    function WinNextChar(hab,idcp,idcc : cardinal;psz : pchar) : pchar; cdecl;                                                    
+    function WinPrevChar(hab,idcp,idcc : cardinal;pszStart,psz : pchar) : pchar; cdecl;                               
+    function WinCompareStrings(hab,idcp,idcc : cardinal;psz1,psz2 : pchar;reserved : cardinal) : cardinal; cdecl;         
+    function WinCreateAtomTable(cbInitial,cBuckets : cardinal) : cardinal; cdecl;         
+    function WinDestroyAtomTable(hAtomTbl : cardinal) : cardinal; cdecl;                             
+    function WinAddAtom(hAtomTbl : cardinal;pszAtomName : pchar) : cardinal; cdecl;              
+    function WinFindAtom(hAtomTbl : cardinal;pszAtomName : pchar) : cardinal; cdecl;             
+    function WinDeleteAtom(hAtomTbl,atom : cardinal) : cardinal; cdecl;                   
+    function WinQueryAtomUsage(hAtomTbl,atom : cardinal) : cardinal; cdecl;               
+    function WinQueryAtomLength(hAtomTbl,atom : cardinal) : cardinal; cdecl;              
+    function WinQueryAtomName(hAtomTbl,atom : cardinal;pchBuffer : pchar;cchBufferMax : cardinal) : cardinal; cdecl;
+    function WinGetLastError(hab : cardinal) : cardinal; cdecl;
+    function WinGetErrorInfo(hab : cardinal) : PERRINFO; cdecl;
+    function WinFreeErrorInfo(var perrinfo : ERRINFO) : longbool; cdecl;
+    {DDE Functions}
+    function WinDdeInitiate(hwndClient : cardinal;pszAppName,pszTopicName : pchar;var pcctxt : CONVCONTEXT) : longbool; cdecl;
+    function WinDdeRespond(hwndClient,hwndServer : cardinal;pszAppName,pszTopicName : pchar;var pcctxt : CONVCONTEXT) : pointer; cdecl;
+    function WinDdePostMsg(hwndTo,hwndFrom,wm : cardinal;var pddest : DDESTRUCT;flOptions : cardinal) : longbool; cdecl;                        
+    {Library related functions}
+    function WinDeleteProcedure(hab : cardinal;wndproc : proc) : longbool; cdecl;
+    function WinDeleteLibrary(hab,libhandle : cardinal) : longbool; cdecl;
+    function WinLoadProcedure(hab,libhandle : cardinal;procname : pchar) : proc; cdecl; 
+    function WinLoadLibrary(hab : cardinal;libname : pchar) : cardinal; cdecl;                      
+    function WinSetDesktopBkgnd(hwndDesktop : cardinal;var pdskNew : DESKTOP) : cardinal; cdecl;
+    function WinQueryDesktopBkgnd(hwndDesktop : cardinal;var pdsk : DESKTOP) : longbool; cdecl;    
+    function WinRealizePalette(hwnd,hps : cardinal;var pcclr : cardinal) : longint; cdecl;
+    function cardinalFROMMP(mp : pointer) : cardinal; cdecl;
+    function integer1FROMMP(mp : pointer) : word; cdecl;
+    function integer2FROMMP(mp : pointer) : word; cdecl;
+
+  implementation
+
+    function WinRegisterClass(hab : cardinal;pszClassName : pchar;pfnWndProc : proc;flStyle,cbWindowData : cardinal) : longbool; cdecl;external 'pmwin.dll' index 926;
+    function WinDefWindowProc(hwnd,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;external 'pmwin.dll' index 911;
+    function WinDestroyWindow(hwnd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 728;
+    function WinShowWindow(hwnd : cardinal;fShow : longbool) : longbool; cdecl;external 'pmwin.dll' index 883;
+    function WinQueryWindowRect(hwnd : cardinal;var prclDest : RECTL) : longbool; cdecl;external 'pmwin.dll' index 840;
+    function WinGetPS(hwnd : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 757;
+    function WinReleasePS(hps : cardinal) : longbool; cdecl;external 'pmwin.dll' index 848;
+    function WinEndPaint(hps : cardinal) : longbool; cdecl;external 'pmwin.dll' index 738;
+    function WinGetClipPS(hwnd,hwndClip,fl : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 749;
+    function WinIsWindowShowing(hwnd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 774;
+    function WinBeginPaint(hwnd,hps : cardinal; var prclPaint : RECTL) : cardinal; cdecl;external 'pmwin.dll' index 703;
+    function WinOpenWindowDC(hwnd : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 794;
+    function WinScrollWindow(hwnd : cardinal;dx,dy : longint;var prclScroll,prclClip : RECTL;hrgnUpdate : cardinal;var prclUpdate : RECTL;rgfsw : cardinal) : longint; cdecl;external 'pmwin.dll' index 849;
+    function WinFillRect(hps : cardinal;var prcl : RECTL;lColor : longint) : longbool; cdecl;external 'pmwin.dll' index 743;
+    function WinQueryVersion(hab : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 833;
+    function WinInitialize(flOptions : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 763;
+    function WinTerminate(hab : cardinal) : longbool; cdecl;external 'pmwin.dll' index 888;
+    function WinQueryAnchorBlock(hwnd : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 800;
+    function WinCreateWindow(hwndParent : cardinal;pszClass,pszName : pchar;flStyle : cardinal;x,y,cx,cy : longint;hwndOwner,hwndInsertBehind,id : cardinal;var pCtlData,PresParams : pointer) : cardinal; cdecl;external 'pmwin.dll' index 909;
+    function WinEnableWindow(hwnd : cardinal;fEnable : longbool) : longbool; cdecl;external 'pmwin.dll' index 735;     
+    function WinIsWindowEnabled(hwnd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 773;
+    function WinEnableWindowUpdate(hwnd : cardinal;fEnable : longbool) : longbool; cdecl;external 'pmwin.dll' index 736;
+    function WinIsWindowVisible(hwnd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 775;
+    function WinQueryWindowText(hwnd : cardinal;cchBufferMax : longint; pchBuffer : pchar) : longint; cdecl;external 'pmwin.dll' index 841;
+    function WinSetWindowText(hwnd : cardinal;pszText : pchar) : longbool; cdecl;external 'pmwin.dll' index 877;
+    function WinQueryWindowTextLength(hwnd : cardinal) : longint; cdecl;external 'pmwin.dll' index 842;
+    function WinWindowFromID(hwndParent,id : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 899;
+    function WinIsWindow(hab,hwnd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 772;
+    function WinQueryWindow(hwnd : cardinal;cmd : longint) : cardinal; cdecl;external 'pmwin.dll' index 834;
+    function WinMultWindowFromIDs(hwndParent : cardinal;var prghwnd : cardinal;idFirst,idLast : cardinal) : longint; cdecl;external 'pmwin.dll' index 917;
+    function WinSetParent(hwnd,hwndNewParent : cardinal;fRedraw : longbool) : longbool; cdecl;external 'pmwin.dll' index 865;
+    function WinIsChild(hwnd,hwndParent : cardinal) : longbool; cdecl;external 'pmwin.dll' index 768;
+    function WinSetOwner(hwnd,hwndNewOwner : cardinal) : longbool; cdecl;external 'pmwin.dll' index 864;
+    function WinQueryWindowProcess(hwnd : cardinal;var ppid,ptid : cardinal) : longbool; cdecl;external 'pmwin.dll' index 838;
+    function WinQueryObjectWindow(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 820;
+    function WinQueryDesktopWindow(hab,hdc : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 813;
+    function WinSetWindowPos(hwnd,hwndInsertBehind : cardinal;x,y,cx,cy : longint;fl : cardinal) : longbool; cdecl;external 'pmwin.dll' index 875;
+    function WinSetMultWindowPos(hab : cardinal;var pswp : SWP;cswp : cardinal) : longbool; cdecl;external 'pmwin.dll' index 863;
+    function WinQueryWindowPos(hwnd : cardinal;var pswp : SWP) : longbool; cdecl;external 'pmwin.dll' index 837;
+    function WinUpdateWindow(hwnd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 892;
+    function WinInvalidateRect(hwnd : cardinal;var pwrc : RECTL;fIncludeChildren : longbool) : longbool; cdecl;external 'pmwin.dll' index 765;
+    function WinInvalidateRegion(hwnd,hrgn : cardinal;fIncludeChildren : longbool) : longbool; cdecl;external 'pmwin.dll' index 766;
+    function WinInvertRect(hps : cardinal;var prcl : RECTL) : longbool; cdecl;external 'pmwin.dll' index 767;
+    function WinDrawBitmap(hpsDst,hbm : cardinal;var pwrcSrc : RECTL;var pptlDst : POINTL;clrFore,clrBack : longint;fl : cardinal) : longbool; cdecl;external 'pmwin.dll' index 730;
+    function WinDrawText(hps : cardinal;cchText : longint;lpchText : pchar;var prcl : RECTL;clrFore,clrBack : longint;flCmd : cardinal) : longint; cdecl;external 'pmwin.dll' index 913;
+    function WinDrawBorder(hps : cardinal;var prcl : RECTL;cx,cy,clrFore,clrBack : longint;flCmd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 731; 
+    function WinLoadString(hab,hmod,id : cardinal;cchMax : longint;pchBuffer : pchar) : longint; cdecl;external 'pmwin.dll' index 781;
+    function WinLoadMessage(hab,hmod,id : cardinal;cchMax : longint;pchBuffer : pchar) : longint; cdecl;external 'pmwin.dll' index 779;
+    function WinSetActiveWindow(hwndDesktop,hwnd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 851;
+    function WinSubclassWindow(hwnd : cardinal;pfnwp : proc) : proc; cdecl;external 'pmwin.dll' index 929;
+    function WinQueryClassName(hwnd : cardinal;cchMax : longint; pch : pchar) : longint; cdecl;external 'pmwin.dll' index 805;
+    function WinQueryClassInfo(hab : cardinal;pszClassName : pchar;var pClassInfo : CLASSINFO) : longbool; cdecl;external 'pmwin.dll' index 925;
+    function WinQueryActiveWindow(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 799;
+    function WinIsThreadActive(hab : cardinal) : longbool; cdecl;external 'pmwin.dll' index 771;
+    function WinQuerySysModalWindow(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 827;
+    function WinSetSysModalWindow(hwndDesktop,hwnd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 872;
+    function WinQueryWindowUShort(hwnd : cardinal;index : longint) : word; cdecl;external 'pmwin.dll' index 844;
+    function WinSetWindowUShort(hwnd : cardinal;index : longint;us : word) : longbool; cdecl;external 'pmwin.dll' index 879;
+    function WinQueryWindowULong(hwnd : cardinal;index : longint) : cardinal; cdecl;external 'pmwin.dll' index 843;
+    function WinSetWindowULong(hwnd : cardinal;index : longint;ul : cardinal) : longbool; cdecl;external 'pmwin.dll' index 878;
+    function WinQueryWindowPtr(hwnd : cardinal;index : longint) : pointer; cdecl;external 'pmwin.dll' index 839;
+    function WinSetWindowPtr(hwnd : cardinal;index : longint;p : pointer) : longbool; cdecl;external 'pmwin.dll' index 876;
+    function WinSetWindowBits(hwnd : cardinal;index : longint;flData,flMask : cardinal) : longbool; cdecl;external 'pmwin.dll' index 874;  
+    function WinBeginEnumWindows(hwnd : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 702;
+    function WinGetNextWindow(henum : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 756;
+    function WinEndEnumWindows(henum : cardinal) : longbool; cdecl;external 'pmwin.dll' index 737;
+    function WinWindowFromPoint(hwnd : cardinal;var pptl : POINTL;fChildren : longbool) : cardinal; cdecl;external 'pmwin.dll' index 900;
+    function WinMapWindowPoints(hwndFrom,hwndTo : cardinal;var prgptl : POINTL;cwpt : longint) : longbool; cdecl;external 'pmwin.dll' index 788;
+    function WinValidateRect(hwnd : cardinal;var prcl : RECTL;fIncludeChildren : longbool) : longbool; cdecl;external 'pmwin.dll' index 895;
+    function WinValidateRegion(hwnd,hrgn : cardinal;fIncludeChildren : longbool) : longbool; cdecl;external 'pmwin.dll' index 896;
+    function WinWindowFromDC(hdc : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 898;
+    function WinQueryWindowDC(hwnd : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 835;
+    function WinGetScreenPS(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 759;
+    function WinLockWindowUpdate(hwndDesktop,hwndLockUpdate : cardinal) : longbool; cdecl;external 'pmwin.dll' index 784;
+    function WinLockVisRegions(hwndDesktop : cardinal;fLock : longbool) : longbool; cdecl;external 'pmwin.dll' index 782;
+    function WinQueryUpdateRect(hwnd : cardinal;var prcl : RECTL) : longbool; cdecl;external 'pmwin.dll' index 831;
+    function WinQueryUpdateRegion(hwnd,hrgn : cardinal) : longint; cdecl;external 'pmwin.dll' index 832;
+    function WinExcludeUpdateRegion(hps,hwnd : cardinal) : longint; cdecl;external 'pmwin.dll' index 742;
+    function WinSendMsg(hwnd,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;external 'pmwin.dll' index 920;
+    function WinCreateMsgQueue(hab : cardinal;cmsg : longint) : cardinal; cdecl;external 'pmwin.dll' index 716;
+    function WinDestroyMsgQueue(hmq : cardinal) : longbool; cdecl;external 'pmwin.dll' index 726;
+    function WinQueryQueueInfo(hmq : cardinal;var pmqi : MQINFO;cbCopy : cardinal) : longbool; cdecl;external 'pmwin.dll' index 824;
+    function WinCancelShutdown(hmq : cardinal;fCancelAlways : longbool) : longbool; cdecl;external 'pmwin.dll' index 705;
+    function WinGetMsg(hab : cardinal;var pqmsg : QMSG;hwndFilter,msgFilterFirst,msgFilterLast : cardinal) : longbool; cdecl;external 'pmwin.dll' index 915; 
+    function WinPeekMsg(hab : cardinal;var pqmsg : QMSG;hwndFilter,msgFilterFirst,msgFilterLast,fl : cardinal) : longbool; cdecl;external 'pmwin.dll' index 918;
+    function WinDispatchMsg(hab : cardinal;var pqmsg : QMSG) : pointer; cdecl;external 'pmwin.dll' index 912;
+    function WinPostMsg(hwnd,msg : cardinal;mp1,mp2 : pointer) : longbool; cdecl;external 'pmwin.dll' index 919;
+    function WinRegisterUserMsg(hab,msgid : cardinal;datatype1,dir1,datatype2,dir2,datatyper : longint) : longbool; cdecl;external 'pmwin.dll' index 846;
+    function WinRegisterUserDatatype(hab : cardinal;datatype,count : longint;var types : longint) : longbool; cdecl;external 'pmwin.dll' index 845;
+    function WinSetMsgMode(hab : cardinal;classname :pchar;control : longint) : longbool; cdecl;external 'pmwin.dll' index 862;
+    function WinSetSynchroMode(hab : cardinal;mode : longint) : longbool; cdecl;external 'pmwin.dll' index 870;
+    function WinInSendMsg(hab : cardinal) : longbool; cdecl;external 'pmwin.dll' index 761;
+    function WinBroadcastMsg(hwnd,msg : cardinal;mp1,mp2 : pointer;rgf : cardinal) : longbool; cdecl;external 'pmwin.dll' index 901;
+    function WinWaitMsg(hab,msgFirst,msgLast : cardinal) : longbool; cdecl;external 'pmwin.dll' index 897;
+    function WinQueryQueueStatus(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 825;
+    function WinQueryMsgPos(hab : cardinal;var pptl : POINTL) : longbool; cdecl;external 'pmwin.dll' index 818;
+    function WinQueryMsgTime(hab : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 819;
+    function WinWaitEventSem(hev,ulTimeout : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 978;
+    function WinRequestMutexSem(hmtx,ulTimeout : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 979;
+    function WinWaitMuxWaitSem(hmux,ulTimeout : cardinal;var pulUser : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 980;
+    function WinPostQueueMsg(hmq,msg : cardinal;mp1,mp2 : pointer) : longbool; cdecl;external 'pmwin.dll' index 902;
+    function WinSetMsgInterest(hwnd,msg_class : cardinal;control : longint) : longbool; cdecl;external 'pmwin.dll' index 861;
+    function WinSetClassMsgInterest(hab : cardinal;pszClassName : pchar;msg_class : cardinal;control : longint) : longbool; cdecl;external 'pmwin.dll' index 853;
+    function WinSetFocus(hwndDesktop,hwndSetFocus : cardinal) : longbool; cdecl;external 'pmwin.dll' index 860;
+    function WinFocusChange(hwndDesktop,hwndSetFocus,flFocusChange : cardinal) : longbool; cdecl;external 'pmwin.dll' index 746;
+    function WinSetCapture(hwndDesktop,hwnd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 852;
+    function WinQueryCapture(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 804;
+    function WinQueryFocus(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 817;
+    function WinGetKeyState(hwndDesktop : cardinal;vkey : longint) : longint; cdecl;external 'pmwin.dll' index 752;
+    function WinGetPhysKeyState(hwndDesktop : cardinal;sc : longint) : longint; cdecl;external 'pmwin.dll' index 758;
+    function WinEnablePhysInput(hwndDesktop : cardinal;fEnable : longbool) : longbool; cdecl;external 'pmwin.dll' index 734;
+    function WinIsPhysInputEnabled(hwndDesktop : cardinal) : longbool; cdecl;external 'pmwin.dll' index 769;
+    function WinSetKeyboardStateTable(hwndDesktop : cardinal;var pKeyStateTable : BYTE;fSet : longbool) : longbool; cdecl;external 'pmwin.dll' index 921;
+    function WinGetDlgMsg(hwndDlg : cardinal;var pqmsg : QMSG) : longbool; cdecl;external 'pmwin.dll' index 914;
+    function WinLoadDlg(hwndParent,hwndOwner : cardinal;pfnDlgProc : proc;hmod,idDlg : cardinal;pCreateParams : pointer) : cardinal; cdecl;external 'pmwin.dll' index 924;
+    function WinDlgBox(hwndParent,hwndOwner : cardinal;pfnDlgProc : proc;hmod,idDlg : cardinal;pCreateParams : pointer) : cardinal; cdecl;external 'pmwin.dll' index 923;
+    function WinDismissDlg(hwndDlg,usResult : cardinal) : longbool; cdecl;external 'pmwin.dll' index 729;
+    function WinQueryDlgItemShort(hwndDlg,idItem : cardinal;var pResult : integer;fSigned : longbool) : longbool; cdecl;external 'pmwin.dll' index 814;
+    function WinSetDlgItemShort(hwndDlg,idItem : cardinal;usValue : word;fSigned : longbool) : longbool; cdecl;external 'pmwin.dll' index 858;
+    function WinSetDlgItemText(hwndDlg,idItem : cardinal;pszText : pchar) : longbool; cdecl;external 'pmwin.dll' index 859;
+    function WinQueryDlgItemText(hwndDlg,idItem : cardinal;cchBufferMax : longint;pchBuffer : pchar) : cardinal; cdecl;external 'pmwin.dll' index 815;
+    function WinQueryDlgItemTextLength(hwndDlg,idItem : cardinal) : longint; cdecl;external 'pmwin.dll' index 816;
+    function WinDefDlgProc(hwndDlg,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;external 'pmwin.dll' index 910;
+    function WinAlarm(hwndDesktop,rgfType : cardinal) : longbool; cdecl;external 'pmwin.dll' index 701;
+    function WinMessageBox(hwndParent,hwndOwner : cardinal;pszText,pszCaption : pchar;idWindow,flStyle : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 789;
+    function WinProcessDlg(hwndDlg : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 796;
+    function WinSendDlgItemMsg(hwndDlg,idItem,msg : cardinal;mp1,mp2 : pointer) : pointer; cdecl;external 'pmwin.dll' index 903;
+    function WinMapDlgPoints(hwndDlg : cardinal;var prgwptl : POINTL;cwpt : cardinal;fCalcWindowCoords : longbool) : longbool; cdecl;external 'pmwin.dll' index 787;
+    function WinEnumDlgItem(hwndDlg,hwnd,code : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 740;
+    function WinSubstituteStrings(hwnd : cardinal;pszSrc : pchar;cchDstMax : longint;pszDst : pchar) : longint; cdecl;external 'pmwin.dll' index 886;
+    function WinCreateDlg(hwndParent,hwndOwner : cardinal;pfnDlgProc : proc;var pdlgt : DLGTEMPLATE;pCreateParams : pointer) : cardinal; cdecl;external 'pmwin.dll' index 922;
+    function WinLoadMenu(hwndFrame,hmod,idMenu : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 778;
+    function WinCreateMenu(hwndParent : cardinal;lpmt : pointer) : cardinal; cdecl;external 'pmwin.dll' index 907;
+    function WinPopupMenu(hwndParent,hwndOwner,hwndMenu : cardinal;x,y,idItem : longint;fs : cardinal) : longbool; cdecl;external 'pmwin.dll' index 937;
+    function WinCreateStdWindow(hwndParent,flStyle : cardinal;var pflCreateFlags : cardinal;pszClientClass,pszTitle : pchar;styleClient,hmod,idResources : cardinal;var phwndClient : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 908;
+    function WinFlashWindow(hwndFrame : cardinal;fFlash : longbool) : longbool; cdecl;external 'pmwin.dll' index 745;
+    function WinCreateFrameControls(hwndFrame : cardinal;var pfcdata : FRAMECDATA;pszTitle : pchar) : longbool; cdecl;external 'pmwin.dll' index 906;
+    function WinCalcFrameRect(hwndFrame : cardinal;var prcl : RECTL;fClient : longbool) : longbool; cdecl;external 'pmwin.dll' index 704;
+    function WinGetMinPosition(hwnd : cardinal;var pswp : SWP;var pptl : POINTL) : longbool; cdecl;external 'pmwin.dll' index 755;
+    function WinGetMaxPosition(hwnd : cardinal;var pswp : SWP) : longbool; cdecl;external 'pmwin.dll' index 754;
+    function WinSaveWindowPos(hsvwp : cardinal;var pswp : SWP;cswp : cardinal) : longbool; cdecl;external 'pmwin.dll' index 943;
+    function WinCopyRect(hab : cardinal;var prclDst,prclSrc : RECTL) : longbool; cdecl;external 'pmwin.dll' index 710;
+    function WinSetRect(hab : cardinal;var prcl : RECTL;xLeft,yBottom,xRight,yTop : longint) : longbool; cdecl;external 'pmwin.dll' index 868;
+    function WinIsRectEmpty(hab : cardinal;var prcl : RECTL) : longbool; cdecl;external 'pmwin.dll' index 770;
+    function WinEqualRect(hab : cardinal;var prcl1,prcl2 : RECTL) : longbool; cdecl;external 'pmwin.dll' index 741;
+    function WinSetRectEmpty(hab : cardinal;var prcl : RECTL) : longbool; cdecl;external 'pmwin.dll' index 869;
+    function WinOffsetRect(hab : cardinal;var prcl : RECTL;cx,cy : longint) : longbool; cdecl;external 'pmwin.dll' index 792;
+    function WinInflateRect(hab : cardinal;var prcl : RECTL;cx,cy : longint) : longbool; cdecl;external 'pmwin.dll' index 762;
+    function WinPtInRect(hab : cardinal;var prcl : RECTL;var pptl : POINTL) : longbool; cdecl;external 'pmwin.dll' index 797;
+    function WinIntersectRect(hab : cardinal;var prclDst,prclSrc1,prclSrc2 : RECTL) : longbool; cdecl;external 'pmwin.dll' index 764;
+    function WinUnionRect(hab : cardinal;var prclDst,prclSrc1,prclSrc2 : RECTL) : longbool; cdecl;external 'pmwin.dll' index 891;
+    function WinSubtractRect(hab : cardinal;var prclDst,prclSrc1,prclSrc2 : RECTL) : longbool; cdecl;external 'pmwin.dll' index 887;
+    function WinMakeRect(hab : cardinal;var pwrc : RECTL) : longbool; cdecl;external 'pmwin.dll' index 786;
+    function WinMakePoints(hab : cardinal;var pwpt : POINTL;cwpt : cardinal) : longbool; cdecl;external 'pmwin.dll' index 785;
+    function WinQuerySysValue(hwndDesktop : cardinal;iSysValue : longint) : longint; cdecl;external 'pmwin.dll' index 829;
+    function WinSetSysValue(hwndDesktop : cardinal;iSysValue,lValue : longint) : longbool; cdecl;external 'pmwin.dll' index 873;
+    function WinSetPresParam(hwnd,id,cbParam : cardinal;pbParam : pointer) : longbool; cdecl;external 'pmwin.dll' index 938;
+    function WinQueryPresParam(hwnd,id1,id2 : cardinal;var pulId : cardinal;cbBuf : cardinal;pbBuf : pointer;fs : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 939;
+    function WinRemovePresParam(hwnd,id : cardinal) : longbool; cdecl;external 'pmwin.dll' index 940;
+    function WinQuerySysColor(hwndDesktop : cardinal;clr,lReserved : longint) : longint; cdecl;external 'pmwin.dll' index 826;
+    function WinSetSysColors(hwndDesktop,flOptions,flFormat : cardinal;clrFirst : longint;cclr : cardinal;var pclr : longint) : longbool; cdecl;external 'pmwin.dll' index 871;
+    function WinStartTimer(hab,hwnd,idTimer,dtTimeout : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 884;
+    function WinStopTimer(hab,hwnd,idTimer : cardinal) : longbool; cdecl;external 'pmwin.dll' index 885;
+    function WinGetCurrentTime(hab : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 750;
+    function WinLoadAccelTable(hab,hmod,idAccelTable : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 776;
+    function WinCopyAccelTable(haccel : cardinal;var pAccelTable : ACCELTABLE;cbCopyMax : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 709;
+    function WinCreateAccelTable(hab : cardinal;var pAccelTable : ACCELTABLE) : cardinal; cdecl;external 'pmwin.dll' index 713;
+    function WinDestroyAccelTable(haccel : cardinal) : longbool; cdecl;external 'pmwin.dll' index 723;
+    function WinTranslateAccel(hab,hwnd,haccel : cardinal;var pqmsg : QMSG) : longbool; cdecl;external 'pmwin.dll' index 904;
+    function WinSetAccelTable(hab,haccel,hwndFrame : cardinal) : longbool; cdecl;external 'pmwin.dll' index 850;
+    function WinQueryAccelTable(hab,hwndFrame : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 798;
+    function WinTrackRect(hwnd,hps : cardinal;var pti : TRACKINFO) : longbool; cdecl;external 'pmwin.dll' index 890;
+    function WinShowTrackRect(hwnd : cardinal;fShow : longbool) : longbool; cdecl;external 'pmwin.dll' index 882;
+    function WinSetClipbrdOwner(hab,hwnd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 855;
+    function WinSetClipbrdData(hab,ulData,fmt,rgfFmtInfo : cardinal) : longbool; cdecl;external 'pmwin.dll' index 854;
+    function WinQueryClipbrdData(hab,fmt : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 806;
+    function WinQueryClipbrdFmtInfo(hab,fmt : cardinal;var prgfFmtInfo : cardinal) : longbool; cdecl;external 'pmwin.dll' index 807;
+    function WinSetClipbrdViewer(hab,hwndNewClipViewer : cardinal) : longbool; cdecl;external 'pmwin.dll' index 856;
+    function WinEnumClipbrdFmts(hab,fmt : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 739;
+    function WinEmptyClipbrd(hab : cardinal) : longbool; cdecl;external 'pmwin.dll' index 733;
+    function WinOpenClipbrd(hab : cardinal) : longbool; cdecl;external 'pmwin.dll' index 793;
+    function WinCloseClipbrd(hab : cardinal) : longbool; cdecl;external 'pmwin.dll' index 707;
+    function WinQueryClipbrdOwner(hab : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 808;
+    function WinQueryClipbrdViewer(hab : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 809;
+    function WinDestroyCursor(hwnd : cardinal) : longbool; cdecl;external 'pmwin.dll' index 725;
+    function WinShowCursor(hwnd : cardinal;fShow : longbool) : longbool; cdecl;external 'pmwin.dll' index 880;
+    function WinCreateCursor(hwnd : cardinal;x,y,cx,cy : longint;fs : cardinal;var prclClip : RECTL) : longbool; cdecl;external 'pmwin.dll' index 715;
+    function WinQueryCursorInfo(hwndDesktop : cardinal;var pCursorInfo : CURSORINFO) : longbool; cdecl;external 'pmwin.dll' index 812;
+    function WinSetPointer(hwndDesktop,hptrNew : cardinal) : longbool; cdecl;external 'pmwin.dll' index 866;
+    function WinSetPointerOwner(hptr,pid : cardinal;fDestroy : longbool) : longbool; cdecl;external 'pmwin.dll' index 971;
+    function WinShowPointer(hwndDesktop : cardinal;fShow : longbool) : longbool; cdecl;external 'pmwin.dll' index 881;
+    function WinQuerySysPointer(hwndDesktop : cardinal;iptr : longint;fLoad : longbool) : cardinal; cdecl;external 'pmwin.dll' index 828;
+    function WinLoadPointer(hwndDesktop,hmod,idres : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 780;
+    function WinCreatePointer(hwndDesktop,hbmPointer : cardinal;fPointer : longbool;xHotspot,yHotspot : longint) : cardinal; cdecl;external 'pmwin.dll' index 717;
+    function WinSetPointerPos(hwndDesktop : cardinal;x,y : longint) : longbool; cdecl;external 'pmwin.dll' index 867;
+    function WinDestroyPointer(hptr : cardinal) : longbool; cdecl;external 'pmwin.dll' index 727;
+    function WinQueryPointer(hwndDesktop : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 821;
+    function WinQueryPointerPos(hwndDesktop : cardinal;var pptl : POINTL) : longbool; cdecl;external 'pmwin.dll' index 823;
+    function WinCreatePointerIndirect(hwndDesktop : cardinal;var pptri : POINTERINFO) : cardinal; cdecl;external 'pmwin.dll' index 942;
+    function WinQueryPointerInfo(hptr : cardinal;var pPointerInfo : POINTERINFO) : longbool; cdecl;external 'pmwin.dll' index 822;
+    function WinDrawPointer(hps : cardinal;x,y : longint;hptr,fs : cardinal) : longbool; cdecl;external 'pmwin.dll' index 732;
+    function WinGetSysBitmap(hwndDesktop,ibm : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 760;
+    function WinSetHook(hab,hmq : cardinal;iHook : longint;pfnHook : pointer;hmod : cardinal) : longbool; cdecl;external 'pmwin.dll' index 928;
+    function WinReleaseHook(hab,hmq : cardinal;iHook : longint;pfnHook : pointer;hmod : cardinal) : longbool; cdecl;external 'pmwin.dll' index 927;
+    function WinCallMsgFilter(hab : cardinal;var pqmsg : QMSG;msgf : cardinal) : longbool; cdecl;external 'pmwin.dll' index 905;
+    function WinSetClassThunkProc(pszClassname : pchar;pfnThunkProc : pointer) : longbool; cdecl;external 'pmwin.dll' index 959;
+    function WinQueryClassThunkProc(pszClassname : pchar) : pointer; cdecl;external 'pmwin.dll' index 960;
+    function WinSetWindowThunkProc(hwnd : cardinal;pfnThunkProc : pointer) : longbool; cdecl;external 'pmwin.dll' index 961;
+    function WinQueryWindowThunkProc(hwnd : cardinal) : pointer; cdecl;external 'pmwin.dll' index 962;
+    function WinQueryWindowModel(hwnd : cardinal) : longint; cdecl;external 'pmwin.dll' index 934;
+    function WinQueryCp(hmq : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 810;
+    function WinSetCp(hmq,idCodePage : cardinal) : longbool; cdecl;external 'pmwin.dll' index 857;
+    function WinQueryCpList(hab,ccpMax : cardinal;var prgcp : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 811;
+    function WinCpTranslateString(hab,cpSrc : cardinal;pszSrc : pchar;cpDst,cchDestMax : cardinal;pchDest : pchar) : longbool; cdecl;external 'pmwin.dll' index 712;
+    function WinCpTranslateChar(hab,cpSrc : cardinal;chSrc : byte;cpDst : cardinal) : byte; cdecl;external 'pmwin.dll' index 711;
+    function WinUpper(hab,idcp,idcc : cardinal;psz : pchar) : cardinal; cdecl;external 'pmwin.dll' index 893;
+    function WinUpperChar(hab,idcp,idcc,c : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 894;
+    function WinNextChar(hab,idcp,idcc : cardinal;psz : pchar) : pchar; cdecl;external 'pmwin.dll' index 791;
+    function WinPrevChar(hab,idcp,idcc : cardinal;pszStart,psz : pchar) : pchar; cdecl;external 'pmwin.dll' index 795;
+    function WinCompareStrings(hab,idcp,idcc : cardinal;psz1,psz2 : pchar;reserved : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 708;
+    function WinCreateAtomTable(cbInitial,cBuckets : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 714;
+    function WinDestroyAtomTable(hAtomTbl : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 724;
+    function WinAddAtom(hAtomTbl : cardinal;pszAtomName : pchar) : cardinal; cdecl;external 'pmwin.dll' index 700;
+    function WinFindAtom(hAtomTbl : cardinal;pszAtomName : pchar) : cardinal; cdecl;external 'pmwin.dll' index 744;
+    function WinDeleteAtom(hAtomTbl,atom : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 721;
+    function WinQueryAtomUsage(hAtomTbl,atom : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 803;
+    function WinQueryAtomLength(hAtomTbl,atom : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 801;
+    function WinQueryAtomName(hAtomTbl,atom : cardinal;pchBuffer : pchar;cchBufferMax : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 802;
+    function WinGetLastError(hab : cardinal) : cardinal; cdecl;external 'pmwin.dll' index 753;
+    function WinGetErrorInfo(hab : cardinal) : PERRINFO; cdecl;external 'pmwin.dll' index 751;
+    function WinFreeErrorInfo(var perrinfo : ERRINFO) : longbool; cdecl;external 'pmwin.dll' index 748;
+    function WinDdeInitiate(hwndClient : cardinal;pszAppName,pszTopicName : pchar;var pcctxt : CONVCONTEXT) : longbool; cdecl;external 'pmwin.dll' index 718;
+    function WinDdeRespond(hwndClient,hwndServer : cardinal;pszAppName,pszTopicName : pchar;var pcctxt : CONVCONTEXT) : pointer; cdecl;external 'pmwin.dll' index 720;
+    function WinDdePostMsg(hwndTo,hwndFrom,wm : cardinal;var pddest : DDESTRUCT;flOptions : cardinal) : longbool; cdecl;external 'pmwin.dll' index 719;
+    function WinDeleteProcedure(hab : cardinal;wndproc : proc) : longbool; cdecl;external 'pmwin.dll' index 987;
+    function WinDeleteLibrary(hab,libhandle : cardinal) : longbool; cdecl;external 'pmwin.dll' index 722;
+    function WinLoadProcedure(hab,libhandle : cardinal;procname : pchar) : proc; cdecl;external 'pmwin.dll' index 986;
+    function WinLoadLibrary(hab : cardinal;libname : pchar) : cardinal; cdecl;external 'pmwin.dll' index 777;
+    function WinSetDesktopBkgnd(hwndDesktop : cardinal;var pdskNew : DESKTOP) : cardinal; cdecl;external 'pmwin.dll' index 935;
+    function WinQueryDesktopBkgnd(hwndDesktop : cardinal;var pdsk : DESKTOP) : longbool; cdecl;external 'pmwin.dll' index 936;
+    function WinRealizePalette(hwnd,hps : cardinal;var pcclr : cardinal) : longint; cdecl;external 'pmwin.dll' index 941;          
+    function cardinalFROMMP(mp : pointer) : cardinal;cdecl;
+      begin
+	 cardinalFROMMP:=cardinal(mp);
+      end;                                         
+    function integer1FROMMP(mp : pointer) : word;cdecl;
+      begin
+	 integer1FROMMP:=lo(cardinal(mp));
+      end;                                             
+    function integer2FROMMP(mp : pointer) : word;cdecl; 
+      begin
+	 integer2FROMMP:=hi(cardinal(mp))
+      end;                                             
+end.
+{
+  $Log$
+  Revision 1.5  1999-06-02 16:01:29  hajny
+    * changes by Ramon Bosque
+
+}

+ 12 - 0
rtl/os2/tests/PMDEMO1.DEF

@@ -0,0 +1,12 @@
+NAME PMDEMO1 WINDOWAPI
+
+PROTMODE
+
+DESCRIPTION 'Compiled by FPKPascal'
+
+DATA	MULTIPLE
+
+STACKSIZE	8096
+HEAPSIZE	8096
+
+EXPORTS	_CLIENTWNDPROC$HWND$LONGINT$MPARAM$MPARAM

+ 13 - 0
rtl/os2/tests/PMDEMO1.H

@@ -0,0 +1,13 @@
+/*******************************************
+
+  Header f�r den Ressourcecompiler
+
+********************************************/
+#define ID_ClientWindow	1
+
+/*
+  $Log$
+  Revision 1.1  1999-06-02 16:01:35  hajny
+    * changes by Ramon Bosque
+
+*/

+ 6 - 0
rtl/os2/tests/PMDEMO1.MAK

@@ -0,0 +1,6 @@
+pmdemo1.exe: pmdemo1.pp pmdemo1.res
+	ppc -Dow -Ch8096 -Cs8096 pmdemo1.pp
+	rc pmdemo1.res
+
+pmdemo1.res: pmdemo1.rc
+	rc -r pmdemo1

+ 75 - 0
rtl/os2/tests/PMDEMO1.PP

@@ -0,0 +1,75 @@
+{****************************************************************************
+
+                   Copyright (c) 1993,94 by Florian Kl„mpfl
+
+ ****************************************************************************}
+
+{ Demonstrationsprogramm zu FPKPascal unter OS/2  }
+{ traditionelles Hello world-Porgamm (PM-Version) }
+
+program pmdemo1;
+
+  uses
+     os2def,pmwin;
+
+  var
+     frame,client : cardinal;
+     ab : cardinal;
+     mq : cardinal;
+     msg : QMSG;
+     
+  const
+     frameflags : longint = FCF_TITLEBAR+FCF_SYSMENU+FCF_SIZEBORDER+
+                            FCF_MINBUTTON+FCF_MAXBUTTON+FCF_SHELLPOSITION+
+                            FCF_TASKLIST+FCF_MENU;
+
+  function clientwndproc(window : cardinal;msg : longint;mp1,mp2 : cardinal) :
+    cardinal;export;
+  
+    const
+       text = 'Hello world by OS/2 and FPKPascal';
+       
+    var
+       ps : cardinal;
+       rcl : RECTL;
+
+    begin
+       {clientwndproc:=nil;      }
+       case msg of
+         {WM_CREATE : DosBeep(200,500);}
+          WM_PAINT : begin
+                        ps:=WinBeginPaint(window,0,nil);
+                        WinQueryWindowRect(window,@rcl);
+                        WinDrawText(ps,-1,text,@rcl,0,7,$8500); 
+                        WinEndPaint(ps);
+                     end;
+          WM_COMMAND : case lo(longint(mp1)) of
+                          {101 : DosBeep(4500,1000);}
+                          109 : WinPostMsg(0,WM_QUIT,nil,nil);
+                          201 : WinMessageBox(cardinal(1),cardinal(1),
+                             'HelloPM von FPKPascal',
+                             'šber',0,MB_ICONEXCLAMATION+MB_MOVEABLE);
+                       end;
+       else
+          clientwndproc:=WinDefWindowProc(window,msg,mp1,mp2);    
+       end;                                                        
+    end;
+
+ begin
+    ab:=WinInitialize(0);
+    mq:=WinCreateMsgQueue(ab,0);
+    WinRegisterClass(ab,'HELLOPM',@clientwndproc,4,0);    
+    frame:=WinCreateStdWindow(cardinal(1),WS_VISIBLE,@frameflags,'HELLOPM',
+      'PMDemo 1',WS_VISIBLE,0,1,@client);
+    while (WinGetMsg(ab,@msg,0,0,0)<>0) do
+      WinDispatchMsg(ab,@msg);
+    WinDestroyWindow(frame);
+    WinDestroyMsgQueue(mq);
+    WinTerminate(ab);
+ end.
+{
+  $Log$
+  Revision 1.1  1999-06-02 16:01:35  hajny
+    * changes by Ramon Bosque
+
+}

+ 24 - 0
rtl/os2/tests/PMDEMO1.RC

@@ -0,0 +1,24 @@
+/******************
+ * Name : TEXT.RC *
+ ******************/
+
+#include "PMDEMO1.H"
+
+MENU    ID_ClientWindow
+  BEGIN
+     SUBMENU "~File",100
+       BEGIN
+          MENUITEM "~Open...",101
+          MENUITEM "~Exit",109
+       END
+     SUBMENU "~Help",200
+       BEGIN
+          MENUITEM "~About...",201
+       END
+  END
+/*
+  $Log$
+  Revision 1.1  1999-06-02 16:01:35  hajny
+    * changes by Ramon Bosque
+
+*/