home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / modu1096.zip / GPMsym / os2.def < prev    next >
Text File  |  1996-08-29  |  19KB  |  632 lines

  1. (****************************************************************)
  2. (*                                                              *)
  3. (*         Gardens Point Modula-2 Library Definition            *)
  4. (*                                                              *)
  5. (*                                                              *)
  6. (*     (c) Copyright 1996 Faculty of Information Technology     *)
  7. (*              Queensland University of Technology             *)
  8. (*                                                              *)
  9. (*     Permission is granted to use, copy and change this       *)
  10. (*     program as long as the copyright message is left intact  *)
  11. (*                                                              *)
  12. (****************************************************************)
  13.  
  14. (****************************************************************)
  15. (*                                                              *)
  16. (*            Sample OS/2 API interface definitions        *)
  17. (*                                                              *)
  18. (*      original module : jl Feb 1995                *)
  19. (*      modifications   :                    *)
  20. (*                                                              *)
  21. (****************************************************************)
  22.  
  23. INTERFACE DEFINITION MODULE OS2;
  24.  
  25. FROM SYSTEM IMPORT ADDRESS, WORD, BYTE;
  26. FROM Types  IMPORT SHORTINT, SHORTCARD;
  27.  
  28.  
  29.   CONST
  30.     NULL = NIL;
  31.  
  32.     WM_CREATE        = 00001H;
  33.     WM_DESTROY       = 00002H;
  34.     WM_SIZE          = 00007H;
  35.     WM_COMMAND       = 00020H;
  36.     WM_PAINT         = 00023H;
  37.     WM_TIMER         = 00024H;
  38.     WM_INITDLG       = 0003BH;
  39.     WM_BUTTON1DBLCLK = 00073H;
  40.     WM_BUTTON2DBLCLK = 00076H;
  41.  
  42.     FID_SYSMENU      = 08002H;
  43.     FID_TITLEBAR     = 08003H;
  44.     FID_MINMAX       = 08004H;
  45.     FID_MENU         = 08005H;
  46.     FID_VERTSCROLL   = 08006H;
  47.     FID_HORZSCROLL   = 08007H;
  48.     FID_CLIENT       = 08008H;
  49.  
  50.     SC_SIZE          = 08000H;
  51.     SC_MOVE          = 08001H;
  52.     SC_MINIMIZE      = 08002H;
  53.     SC_MAXIMIZE      = 08003H;
  54.     SC_CLOSE         = 08004H;
  55.     SC_NEXT          = 08005H;
  56.     SC_APPMENU       = 08006H;
  57.     SC_SYSMENU       = 08007H;
  58.     SC_RESTORE       = 08008H;
  59.     SC_NEXTFRAME     = 08009H;
  60.     SC_NEXTWINDOW    = 08010H;
  61.  
  62.     MM_DELETEITEM    = 00181H;
  63.  
  64.     WS_VISIBLE       = 80000000H;
  65.     WS_DISABLED      = 40000000H;
  66.     WS_CLIPCHILDREN  = 20000000H;
  67.     WS_CLIPSIBLINGS  = 10000000H;
  68.     WS_PARENTCLIP    = 08000000H;
  69.     WS_SAVEBITS      = 04000000H;
  70.     WS_SYNCPAINT     = 02000000H;
  71.     WS_MINIMIZED     = 01000000H;
  72.     WS_MAXIMIZED     = 00800000H;
  73.     WS_ANIMATE       = 00400000H;
  74.  
  75.     CS_MOVENOTIFY    = 00000001H;
  76.     CS_SIZEREDRAW    = 00000004H;
  77.     CS_HITTEST       = 00000008H;
  78.     CS_PUBLIC        = 00000010H;
  79.     CS_FRAME         = 00000020H;
  80.     CS_CLIPCHILDREN  = 20000000H;
  81.     CS_CLIPSIBLINGS  = 10000000H;
  82.     CS_PARENTCLIP    = 08000000H;
  83.     CS_SAVEBITS      = 04000000H;
  84.     CS_SYNCPAINT     = 02000000H;
  85.  
  86.     DID_OK           =  1;
  87.     DID_CANCEL       =  2;
  88.     DID_ERROR        =  0FFFFH;
  89.  
  90.     SWP_SIZE            = 00001H;
  91.     SWP_MOVE            = 00002H;
  92.     SWP_ZORDER          = 00004H;
  93.     SWP_SHOW            = 00008H;
  94.     SWP_HIDE            = 00010H;
  95.     SWP_NOREDRAW        = 00020H;
  96.     SWP_NOADJUST        = 00040H;
  97.     SWP_ACTIVATE        = 00080H;
  98.     SWP_DEACTIVATE      = 00100H;
  99.     SWP_EXTSTATECHANGE  = 00200H;
  100.     SWP_MINIMIZE        = 00400H;
  101.     SWP_MAXIMIZE        = 00800H;
  102.     SWP_RESTORE         = 01000H;
  103.     SWP_FOCUSACTIVATE   = 02000H;
  104.     SWP_FOCUSDEACTIVATE = 04000H;
  105.     SWP_NOAUTOCLOSE     = 08000H;
  106.  
  107.     FCF_TITLEBAR        = 00000001H;
  108.     FCF_SYSMENU         = 00000002H;
  109.     FCF_MENU            = 00000004H;
  110.     FCF_SIZEBORDER      = 00000008H;
  111.     FCF_MINBUTTON       = 00000010H;
  112.     FCF_MAXBUTTON       = 00000020H;
  113.     FCF_MINMAX          = 00000030H;
  114.     FCF_VERTSCROLL      = 00000040H;
  115.     FCF_HORZSCROLL      = 00000080H;
  116.     FCF_DLGBORDER       = 00000100H;
  117.     FCF_BORDER          = 00000200H;
  118.     FCF_SHELLPOSITION   = 00000400H;
  119.     FCF_TASKLIST        = 00000800H;
  120.     FCF_NOBYTEALIGN     = 00001000H;
  121.     FCF_NOMOVEWITHOWNER = 00002000H;
  122.     FCF_ICON            = 00004000H;
  123.     FCF_ACCELTABLE      = 00008000H;
  124.     FCF_SYSMODAL        = 00010000H;
  125.     FCF_SCREENALIGN     = 00020000H;
  126.     FCF_MOUSEALIGN      = 00040000H;
  127.     FCF_HIDEBUTTON      = 01000000H;
  128.     FCF_HIDEMAX         = 01000020H;
  129.     FCF_AUTOICON        = 40000000H;
  130.     FCF_STANDARD        = 0000CC3FH;
  131.  
  132.     QWL_USER         =  0;
  133.     QWL_STYLE        = -2;
  134.  
  135.     PU_ARBITRARY     = 00004H;
  136.     PU_PELS          = 00008H;
  137.     PU_LOMETRIC      = 0000CH;
  138.     PU_HIMETRIC      = 00010H;
  139.     PU_LOENGLISH     = 00014H;
  140.     PU_HIENGLISH     = 00018H;
  141.     PU_TWIPS         = 0001CH;
  142.     GPIF_DEFAULT     = 0;
  143.     GPIF_SHORT       = 00100H;
  144.     GPIF_LONG        = 00200H;
  145.     GPIT_NORMAL      = 0;
  146.     GPIT_MICRO       = 01000H;
  147.     GPIA_NOASSOC     = 0;
  148.     GPIA_ASSOC       = 04000H;
  149.  
  150.     CLR_WHITE        = -2;
  151.     CLR_BLACK        = -1;
  152.     CLR_BACKGROUND   =  0;
  153.     CLR_BLUE         =  1;
  154.     CLR_RED          =  2;
  155.     CLR_PINK         =  3;
  156.     CLR_GREEN        =  4;
  157.     CLR_CYAN         =  5;
  158.     CLR_YELLOW       =  6;
  159.     CLR_NEUTRAL      =  7;
  160.     CLR_DARKGRAY     =  8;
  161.     CLR_DARKBLUE     =  9;
  162.     CLR_DARKRED      = 10;
  163.     CLR_DARKPINK     = 11;
  164.     CLR_DARKGREEN    = 12;
  165.     CLR_DARKCYAN     = 13;
  166.     CLR_BROWN        = 14;
  167.     CLR_PALEGRAY     = 15;
  168.  
  169.     SYSCLR_WINDOW    = -20;
  170.  
  171.  
  172.   TYPE
  173.     LHANDLE   = CARDINAL;
  174.  
  175.     HWND      = LHANDLE;
  176.     HBITMAP   = LHANDLE;
  177.     HMQ       = LHANDLE;
  178.     HRGN      = LHANDLE;
  179.     HDC       = LHANDLE;
  180.     HPS       = LHANDLE;
  181.     HAB       = LHANDLE;
  182.     HMODULE   = LHANDLE;
  183.     HLIB      = LHANDLE;
  184.     HMF       = LHANDLE;
  185.  
  186.     LONG      = INTEGER;
  187.     SHORT     = SHORTINT;
  188.     ULONG     = CARDINAL;
  189.     USHORT    = SHORTCARD;
  190.  
  191.     BOOL      = BOOLEAN;  (* Be careful with alignment *)
  192.  
  193.     MPARAM    = ADDRESS;
  194.     MRESULT   = ADDRESS;
  195.     APIRET    = CARDINAL;
  196.     PSZ       = ADDRESS;
  197.  
  198.     PFNWP     = PROCEDURE(HWND, ULONG, MPARAM, MPARAM) : MRESULT;
  199.  
  200.  
  201.     POINTL  = RECORD
  202.       x        : LONG;
  203.       y        : LONG;
  204.     END;
  205.     PPOINTL = POINTER TO POINTL;
  206.  
  207.     POLYGON = RECORD
  208.       ulPoints : ULONG;
  209.       aPointl  : PPOINTL;
  210.     END;
  211.    
  212.     RECTL   = RECORD
  213.       xLeft    : LONG;
  214.       yBottom  : LONG;
  215.       xRight   : LONG;
  216.       yTop     : LONG;
  217.     END;
  218.  
  219.     QMSG    = RECORD
  220.       hwnd     : HWND;
  221.       msg      : ULONG;
  222.       mp1      : MPARAM;
  223.       mp2      : MPARAM;
  224.       time     : ULONG;
  225.       ptl      : POINTL;
  226.       reserved : ULONG;
  227.     END;
  228.  
  229.     SIZEL   = RECORD
  230.       cx       : LONG;
  231.       cy       : LONG;
  232.     END;
  233.  
  234.     CREATESTRUCT  = RECORD
  235.       pPresParams        : ADDRESS;
  236.       pCtlData           : ADDRESS;
  237.       id                 : ULONG;
  238.       hwndInsertBehind   : HWND;
  239.       hwndOwner          : HWND;
  240.       cy                 : LONG;
  241.       cx                 : LONG;
  242.       y                  : LONG;
  243.       x                  : LONG;
  244.       flStyle            : ULONG;
  245.       pszText            : PSZ;
  246.       pszClass           : PSZ;
  247.       hwndParent         : HWND;
  248.     END;
  249.     PCREATESTRUCT = POINTER TO CREATESTRUCT;
  250.  
  251.     BITMAPINFOHEADER = RECORD
  252.       cbFix      : ULONG;
  253.       cx         : USHORT;
  254.       cy         : USHORT;
  255.       cPlanes    : USHORT;
  256.       cBitCount  : USHORT;
  257.     END;
  258.  
  259.     RGB = RECORD
  260.       bBlue  : BYTE;
  261.       bGreen : BYTE;
  262.       bRed   : BYTE;
  263.     END;
  264.     PRGB = POINTER TO RGB;
  265.  
  266.     BITMAPINFO = RECORD
  267.       cbFix     : ULONG;
  268.       cx        : USHORT;
  269.       cy        : USHORT;
  270.       cPlanes   : USHORT;
  271.       cBitCount : USHORT;
  272.       argbColor : PRGB
  273.     END;
  274.    PBITMAPINFO = POINTER TO BITMAPINFO;
  275.  
  276.   CONST
  277.     HWND_DESKTOP  = VAL(HWND, 1);
  278.     HWND_OBJECT   = VAL(HWND, 2);
  279.     HWND_TOP      = VAL(HWND, 3);
  280.     HWND_BOTTOM   = VAL(HWND, 4);
  281.  
  282.     NULLHANDLE    = VAL(LHANDLE,0);
  283.  
  284.  
  285.            (* These are defined in gprts.c *)
  286.   PROCEDURE MPFROM2SHORT ["MakeMPARAM"](a : WORD; b : WORD) : MPARAM;
  287.   PROCEDURE MakePSTR                   (a : ARRAY OF CHAR)  : ADDRESS;
  288.   PROCEDURE SHORT1FROMMP ["MakeSHORT1"](a : WORD)           : USHORT;
  289.   PROCEDURE SHORT2FROMMP ["MakeSHORT2"](a : WORD)           : USHORT;
  290.  
  291.  
  292.   TYPE SWP = RECORD
  293.     fl : ULONG;
  294.     cy : LONG;
  295.     cx : LONG;
  296.     y  : LONG;
  297.     x  : LONG;
  298.     hwndInsertBehind : HWND;
  299.     hwnd             : HWND;
  300.     ulReserved1      : ULONG;
  301.     ulReserved2      : ULONG;
  302.   END;
  303.  
  304.   PROCEDURE WinQueryWindowPos (hwnd : HWND; VAR pswp : SWP) : BOOL;
  305.  
  306.   PROCEDURE WinSetWindowPos (hwnd : HWND;
  307.                              hwndInsertBehind : HWND;
  308.                              x    : LONG;
  309.                              y    : LONG;
  310.                              cx   : LONG;
  311.                              cy   : LONG;
  312.                              fl   : ULONG) : BOOL;
  313.  
  314.   PROCEDURE WinIsWindow     (hab : HAB; hwnd : HWND) : BOOL;
  315.  
  316.   PROCEDURE WinWindowFromID (hwndParent : HWND; id : ULONG) : HWND;
  317.  
  318.  
  319.   PROCEDURE WinRegisterClass(hab          : HAB;
  320.                              pszClassName : PSZ;
  321.                              pfnWndProc   : PFNWP;
  322.                              flStyle      : ULONG;
  323.                              cbWindowData : ULONG) : BOOL;
  324.  
  325.   PROCEDURE WinDefWindowProc(hwnd : HWND;
  326.                              msg  : ULONG;
  327.                              mp1  : MPARAM;
  328.                              mp2  : MPARAM) : MRESULT;
  329.  
  330.   PROCEDURE WinDestroyWindow(hwnd : HWND) : BOOL;
  331.  
  332.   PROCEDURE WinShowWindow   (hwnd : HWND; fShow : BOOL) : BOOL;
  333.  
  334.   PROCEDURE WinQueryWindowRect(hwnd : HWND; VAR prclDest : RECTL) : BOOL;
  335.  
  336.   PROCEDURE WinQuerySysValue(hwndDesktop : HWND; iSysValue : LONG) : LONG;
  337.   CONST
  338.     SV_CXSCREEN  = 20;
  339.     SV_CYSCREEN  = 21;
  340.  
  341.  
  342.   PROCEDURE WinGetPS        (hwnd : HWND) : HPS;
  343.  
  344.   PROCEDURE WinReleasePS    (hps : HPS) : BOOL;
  345.  
  346.   PROCEDURE WinBeginPaint   (hwnd      : HWND;
  347.                              hps       : HPS;
  348.                          VAR prclPaint : RECTL) : HPS;
  349.  
  350.   PROCEDURE WinEndPaint     (hps : HPS) : BOOL;
  351.  
  352.   PROCEDURE WinMessageBox   (hwndParent    : HWND;
  353.                              hwndOwner     : HWND;
  354.                              pszText       : PSZ;
  355.                              pszCaption    : PSZ;
  356.                              idWindow      : ULONG;
  357.                              flStyle       : ULONG) : ULONG;
  358.    (* Message box types *)
  359.   CONST
  360.     MB_OK                = 0000H;
  361.     MB_OKCANCEL          = 0001H;
  362.     MB_RETRYCANCEL       = 0002H;
  363.     MB_ABORTRETRYIGNORE  = 0003H;
  364.     MB_YESNO             = 0004H;
  365.     MB_YESNOCANCEL       = 0005H;
  366.     MB_CANCEL            = 0006H;
  367.     MB_ENTER             = 0007H;
  368.     MB_ENTERCANCEL       = 0008H;
  369.  
  370.     MB_NOICON            = 0000H;
  371.     MB_ICONQUESTION      = 0010H;
  372.     MB_ICONEXCLAMATION   = 0020H;
  373.     MB_ICONASTERISK      = 0030H;
  374.     MB_ICONHAND          = 0040H;
  375.  
  376.  
  377.   PROCEDURE WinDlgBox       (hwndParent    : HWND;
  378.                              hwndOwner     : HWND;
  379.                              pfnDlgProc    : PFNWP;
  380.                              hmod          : HMODULE;
  381.                              idDlg         : ULONG;
  382.                              pCreateParams : ADDRESS) : ULONG;
  383.  
  384.   PROCEDURE WinDismissDlg   (hwndDlg : HWND; usResult : ULONG) : BOOL;
  385.  
  386.   PROCEDURE WinQueryDlgItemShort
  387.                 (hwndDlg : HWND;
  388.                              idItem  : ULONG;
  389.                          VAR pResult : SHORT;
  390.                              fSigned : BOOL) : BOOL;
  391.  
  392.   PROCEDURE WinSetDlgItemShort
  393.                 (hwndDlg : HWND;
  394.                              idItem  : ULONG;
  395.                              usValue : USHORT;
  396.                              fSigned : BOOL) : BOOL;
  397.  
  398.   PROCEDURE WinDefDlgProc   (hwndDlg : HWND;
  399.                              msg     : ULONG;
  400.                              mp1     : MPARAM;
  401.                              mp2     : MPARAM) : MRESULT;
  402.  
  403.   PROCEDURE WinInitialize   (flOptions : ULONG) : HAB;
  404.  
  405.   PROCEDURE WinTerminate    (hab : HAB) : BOOL;
  406.  
  407.   PROCEDURE WinQueryAnchorBlock(hwnd : HWND) : HAB;
  408.  
  409.   PROCEDURE WinGetLastError (hab : HAB) : ULONG;
  410.  
  411.   PROCEDURE WinSendMsg      (hwnd  : HWND;
  412.                              msg   : ULONG;
  413.                              mp1   : MPARAM;
  414.                              mp2   : MPARAM) : MRESULT;
  415.  
  416.   PROCEDURE WinCreateMsgQueue(hab : HAB; cmsg : LONG) : HMQ;
  417.  
  418.   PROCEDURE WinDestroyMsgQueue(hmq : HMQ) : BOOL;
  419.  
  420.   PROCEDURE WinGetMsg       (hab        : HAB;
  421.                          VAR pqmsg      : QMSG;
  422.                              hwndFilter : HWND;
  423.                          msgFilterFirst : ULONG;
  424.                          msgFilterLast  : ULONG) : BOOL;
  425.  
  426.   PROCEDURE WinDispatchMsg  (hab : HAB; VAR pqmsg : QMSG) : MRESULT;
  427.  
  428.   PROCEDURE WinCreateStdWindow
  429.                 (hwndParent     : HWND;
  430.                              flStyle        : ULONG;
  431.                          VAR pflCreateFlags : ULONG;
  432.                              pszClientClass : PSZ;
  433.                              pszTitle       : PSZ;
  434.                              styleClient    : ULONG;
  435.                              hmod           : HMODULE;
  436.                              idResources    : ULONG;
  437.                          VAR phwndClient    : HWND) : HWND;
  438.  
  439.   PROCEDURE WinCreateWindow  (hwndParent        : HWND;
  440.                               pszClass          : PSZ;
  441.                               pszName           : PSZ;
  442.                               flStyle           : ULONG;
  443.                               x                 : LONG;
  444.                               y                 : LONG;
  445.                               cx                : LONG;
  446.                               cy                : LONG;
  447.                               hwndOwner         : HWND;
  448.                               hwndInsertBehind  : HWND;
  449.                               id                : ULONG;
  450.                               pCtlData          : ADDRESS;
  451.                               pPresParams       : ADDRESS) : HWND;
  452.  
  453.   PROCEDURE WinLoadLibrary  (hab : HAB; libname : PSZ) : HLIB;
  454.  
  455.   PROCEDURE WinLoadProcedure(hab       : HAB;
  456.                              libhandle : HLIB;
  457.                              procname  : PSZ) : PFNWP;
  458.  
  459.   PROCEDURE WinQueryWindowULong(hwnd : HWND; index : LONG) : ULONG;
  460.  
  461.   PROCEDURE WinSetWindowULong(hwnd : HWND; index : LONG; ul : ULONG) : BOOL;
  462.  
  463.   PROCEDURE WinUpdateWindow  (hwnd : HWND) : BOOL;
  464.  
  465.   PROCEDURE WinInvalidateRect
  466.                 (hwnd : HWND;
  467.                          VAR pwrc : RECTL;
  468.                  fIncludeChildren : BOOL) : BOOL;
  469.  
  470.   PROCEDURE WinEqualRect    (hab   : HAB;
  471.                          VAR prcl1 : RECTL;
  472.                          VAR prcl2 : RECTL) : BOOL;
  473.  
  474.   PROCEDURE WinFillRect     (hps    : HPS;
  475.                          VAR prcl   : RECTL;
  476.                              lColor : LONG) : BOOL;
  477.  
  478.   PROCEDURE WinStartTimer   (hab       : HAB;
  479.                              hwnd      : HWND;
  480.                              idTimer   : ULONG;
  481.                              dtTimeout : ULONG) : ULONG;
  482.  
  483.   PROCEDURE WinStopTimer    (hab     : HAB;
  484.                              hwnd    : HWND;
  485.                              idTimer : ULONG) : BOOL;
  486.  
  487.   PROCEDURE GpiCreatePS     (hab       : HAB;
  488.                              hdc       : HDC;
  489.                          VAR psizlSize : SIZEL;
  490.                              flOptions : ULONG) : HPS;
  491.  
  492.   PROCEDURE GpiDestroyPS    (hps : HPS) : BOOL;
  493.  
  494.   PROCEDURE GpiCreateBitmap (hps           : HPS;
  495.                          VAR pbmpNew       : BITMAPINFOHEADER;
  496.                              flOptions     : ULONG;
  497.                              pbInitData    : ADDRESS;
  498.                              pbmiInfoTable : PBITMAPINFO) : HBITMAP;
  499.  
  500.   PROCEDURE GpiQueryDeviceBitmapFormats 
  501.                             (hps     : HPS;
  502.                              lCount  : LONG;
  503.                              alArray : ARRAY OF LONG) : BOOL;
  504.  
  505.   PROCEDURE GpiSetBitmap    (hps : HPS;
  506.                              hbm : HBITMAP) : HBITMAP;
  507.  
  508.   PROCEDURE GpiDeleteBitmap (hbm : HBITMAP) : BOOL;
  509.  
  510.   PROCEDURE GpiCreateRegion (hps    : HPS;
  511.                              lCount : LONG;
  512.                      arclRectangles : ARRAY OF RECTL) : HRGN;
  513.  
  514.   PROCEDURE GpiDestroyRegion(hps  : HPS; hrgn : HRGN) : BOOL;
  515.  
  516.   PROCEDURE GpiSetClipRegion(hps  : HPS;
  517.                              hrgn : HRGN;
  518.                      VAR phrgnOld : HRGN) : LONG;
  519.  
  520.   PROCEDURE GpiMove         (hps  : HPS;
  521.                     VAR pptlPoint : POINTL) : BOOL;
  522.  
  523.   PROCEDURE GpiLine         (hps  : HPS;
  524.                  VAR pptlEndPoint : POINTL) : LONG;
  525.  
  526.   PROCEDURE GpiSetColor     (hps : HPS; lColor : LONG) : BOOL;
  527.  
  528.   PROCEDURE GpiSetBackColor (hps : HPS; lColor : LONG) : BOOL;
  529.  
  530.   PROCEDURE GpiSetMix       (hps : HPS; lMixMode : LONG) : BOOL;
  531.  
  532.   PROCEDURE GpiSetBackMix   (hps : HPS; lMixMode : LONG) : BOOL;
  533.   CONST
  534.     FM_DEFAULT    = 0;
  535.     FM_OR         = 1;
  536.     FM_OVERPAINT  = 2;
  537.     FM_LEAVEALONE = 5;
  538.  
  539.     BM_DEFAULT    = 0;
  540.     BM_OR         = 1;
  541.     BM_OVERPAINT  = 2;
  542.     BM_LEAVEALONE = 5;
  543.  
  544.  
  545.   PROCEDURE GpiPolygons     (hps       : HPS;
  546.                              ulCount   : ULONG;
  547.                              paplgn    : ARRAY OF POLYGON;
  548.                              flOptions : ULONG;
  549.                              flModel   : ULONG) : LONG;
  550.  
  551.   PROCEDURE GpiPolyLine     (hps       : HPS;
  552.                              lCount    : LONG;
  553.                              aptlPoints: ARRAY OF POINTL) : LONG;
  554.  
  555.   PROCEDURE GpiBox          (hps       : HPS;
  556.                              lControl  : LONG;
  557.                          VAR pptlPoint : POINTL;
  558.                              lHRound   : LONG;
  559.                              lVRound   : LONG) : LONG;
  560.   CONST
  561.     DRO_FILL        = 1;
  562.     DRO_OUTLINE     = 2;
  563.     DRO_OUTLINEFILL = 3;
  564.  
  565.     BA_NOBOUNDARY   = 0;
  566.     BA_BOUNDARY     = 1;
  567.     BA_ALTERNATE    = 0;
  568.     BA_WINDING      = 2;
  569.     BA_EXCL         = 0;
  570.     BA_INCL         = 8;
  571.  
  572.   PROCEDURE GpiBeginArea    (hps : HPS; flOptions : ULONG) : BOOL;
  573.  
  574.   PROCEDURE GpiEndArea      (hps : HPS) : LONG;
  575.  
  576.   PROCEDURE GpiBitBlt       (hpsTarget  : HPS;
  577.                              hpsSource  : HPS;
  578.                              lCount     : LONG;
  579.                              aptlPoints : ARRAY OF POINTL;
  580.                              lRop       : LONG;
  581.                              flOptions  : ULONG) : LONG;
  582.   CONST
  583.     ROP_SRCCOPY  = 000CCH;
  584.     BBO_IGNORE   = 2;
  585.  
  586.  
  587.   TYPE
  588.     PFNEXITLIST  = PROCEDURE(ULONG);
  589.  
  590.   CONST
  591.     EXLST_ADD    =  1;
  592.     EXLST_REMOVE =  2;
  593.     EXLST_EXIT   =  3;
  594.  
  595.   PROCEDURE DosExitList     (ordercode : ULONG; pfn : PFNEXITLIST) : APIRET;
  596.  
  597.  
  598.   TYPE
  599.     DRIVDATA = RECORD
  600.       cb            : LONG;
  601.       lVersion      : LONG;
  602.       szDeviceName  : ARRAY [0 .. 31] OF CHAR;
  603.       abGeneralData : PSZ;
  604.     END;
  605.     PDRIVDATA = POINTER TO DRIVDATA;
  606.  
  607.     DEVOPENSTRUC = RECORD
  608.       pszLogAddress      : PSZ;
  609.       pszDriverName      : PSZ;
  610.       pdriv              : PDRIVDATA;
  611.       pszDataType        : PSZ;
  612.       pszComment         : PSZ;
  613.       pszQueueProcName   : PSZ;
  614.       pszQueueProcParams : PSZ;
  615.       pszSpoolerParams   : PSZ;
  616.       pszNetworkParams   : PSZ;
  617.     END;
  618.  
  619.   CONST
  620.     OD_MEMORY    = 8;
  621.  
  622.   PROCEDURE DevOpenDC       (hab      : HAB;
  623.                              lType    : LONG;
  624.                              pszToken : PSZ;
  625.                              lCount   : LONG;
  626.                          VAR pdopData : DEVOPENSTRUC;
  627.                              hdcComp  : HDC) : HDC;
  628.  
  629.   PROCEDURE DevCloseDC      (hdc : HDC) : HMF;
  630.  
  631. END OS2.
  632.