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

  1. (* ====================================================== *)
  2. (*                         PMWIN.PAS                      *)
  3. (*     Implementation of the functions of PMWIN.DLL       *)
  4. (* ====================================================== *)
  5. {$IFNDef OS2}
  6.   Error: Wrong target/Compiler not patched
  7. {$EndIF}
  8.  
  9. UNIT PMWin;
  10.  
  11. INTERFACE
  12.  
  13. USES Os2Def;
  14.  
  15. TYPE
  16.   hMQ = LHandle;    (* hmq *)
  17.  
  18.   pFnWp = FUNCTION(aHwnd : hWnd;
  19.                    Msg   : WORD;
  20.                    Mp1   : mParam;
  21.                    Mp2   : mParam) : mResult;
  22.  
  23. CONST
  24.   HWND_DESKTOP       = hWnd(1);
  25.   HWND_OBJECT        = hWnd(2);
  26.   HWND_TOP           = hWnd(3);
  27.   HWND_BOTTOM        = hWnd(4);
  28.   HWND_THREADCAPTURE = hWnd(5);
  29.  
  30.  
  31. (* Standard Window Styles *)
  32.   WS_VISIBLE         = $080000000;
  33.   WS_DISABLED        = $040000000;
  34.   WS_CLIPCHILDREN    = $020000000;
  35.   WS_CLIPSIBLINGS    = $010000000;
  36.   WS_PARENTCLIP      = $008000000;
  37.   WS_SAVEBITS        = $004000000;
  38.   WS_SYNCPAINT       = $002000000;
  39.   WS_MINIMIZED       = $001000000;
  40.   WS_MAXIMIZED       = $000800000;
  41.  
  42. (* Dialog manager styles *)
  43.   WS_GROUP           = $000010000;
  44.   WS_TABSTOP         = $000020000;
  45.   WS_MULTISELECT     = $40000;
  46.  
  47.  
  48. (* Class styles *)
  49.   CS_MOVENOTIFY      = $000000001;
  50.   CS_SIZEREDRAW      = $000000004;
  51.   CS_HITTEST         = $000000008;
  52.   CS_PUBLIC          = $000000010;
  53.   CS_FRAME           = $000000020;
  54.   CS_CLIPCHILDREN    = $020000000;
  55.   CS_CLIPSIBLINGS    = $010000000;
  56.   CS_PARENTCLIP      = $008000000;
  57.   CS_SAVEBITS        = $004000000;
  58.   CS_SYNCPAINT       = $002000000;
  59.  
  60. (***************************************************************************)
  61. (****       Window Manager Subsection part 1 - was INCL_WINCOMMON       ****)
  62.  
  63.   FUNCTION WinRegisterClass(ahab         : HAB;
  64.                             pszClassName : pChar;
  65.                             pfnWndProc   : {PFNWP}Pointer;
  66.                             flStyle      : LongInt;
  67.                             cbWindowData : WORD) : BOOLEAN;
  68.   FUNCTION Win16RegisterClass(ahab         : HAB;
  69.                              pszClassName : pChar;
  70.                              pfnWndProc   : {PFNWP}Pointer;
  71.                              flStyle      : LongInt;
  72.                              cbWindowData : WORD) : BOOLEAN;
  73.  
  74.   FUNCTION WinDefWindowProc(aHwnd : hWnd;
  75.                              Msg   : WORD;
  76.                              Mp1   : mParam;
  77.                              Mp2   : mParam) : mResult;
  78.   FUNCTION Win16DefWindowProc(aHwnd : hWnd;
  79.                              Msg   : WORD;
  80.                              Mp1   : mParam;
  81.                              Mp2   : mParam) : mResult;
  82.  
  83.   FUNCTION WinDestroyWindow(aHwnd : hWnd) : BOOLEAN;
  84.   FUNCTION Win16DestroyWindow(aHwnd : hWnd) : BOOLEAN;
  85.  
  86.   FUNCTION WinShowWindow(aHwnd : hWnd; fShow : BOOLEAN) : BOOLEAN;
  87.   FUNCTION Win16ShowWindow(aHwnd : hWnd; fShow : BOOLEAN) : BOOLEAN;
  88.  
  89.   FUNCTION WinQueryWindowRect(  aHwnd : hWnd;
  90.                                 prcl  : { LONG } pRectL) : BOOLEAN;
  91.   FUNCTION Win16QueryWindowRect( aHwnd : hWnd;
  92.                                 prcl   : { LONG } pRectL) : BOOLEAN;
  93.  
  94.   FUNCTION WinGetPS(aHwnd : hWnd) : hPs;
  95.   FUNCTION Win16GetPS(aHwnd : hWnd) : hPs;
  96.  
  97.   FUNCTION WinReleasePS(ahps : hPs) : BOOLEAN;
  98.   FUNCTION Win16ReleasePS(ahps : hPs) : BOOLEAN;
  99.  
  100.   FUNCTION WinEndPaint(ahps : hPs) : BOOLEAN;
  101.   FUNCTION Win16EndPaint(ahps : hPs) : BOOLEAN;
  102.  
  103.   FUNCTION WinGetClipPS(aHwnd    : hWnd;
  104.                         hWndClip : hWnd;
  105.                         fs       : WORD) : hPs;
  106.   FUNCTION Win16GetClipPS(aHwnd    : hWnd;
  107.                         hWndClip : hWnd;
  108.                         fs       : WORD) : hPs;
  109.  
  110.   FUNCTION WinIsWindowShowing(a : hWnd) : BOOLEAN;
  111.   FUNCTION Win16IsWindowShowing(a : hWnd) : BOOLEAN;
  112.  
  113.   FUNCTION WinBeginPaint(aHwnd     : hWnd;
  114.                          ahps      : hPs;
  115.                          prclPaint : { LONG } pRectL) : hPs;
  116.   FUNCTION Win16BeginPaint(aHwnd     : hWnd;
  117.                          ahps      : hPs;
  118.                          prclPaint : { LONG } pRectL) : hPs;
  119.  
  120.   FUNCTION WinOpenWindowDC(aHwnd : hWnd) : hDC;
  121.   FUNCTION Win16OpenWindowDC(aHwnd : hWnd) : hDC;
  122.  
  123.   FUNCTION WinScrollWindow(    aHwnd      : hWnd;
  124.                                dx, dy     : INTEGER;
  125.                                prclScroll : { LONG } pRectL;
  126.                                prclClip   : { LONG } pRectL;
  127.                                hrgnUpdate : HRGN;
  128.                            VAR prclUpdate : { LONG } pRectL;
  129.                                fs         : WORD) : INTEGER;
  130.   FUNCTION Win16ScrollWindow(    aHwnd      : hWnd;
  131.                                dx, dy     : INTEGER;
  132.                                prclScroll : { LONG } pRectL;
  133.                                prclClip   : { LONG } pRectL;
  134.                                hrgnUpdate : HRGN;
  135.                            VAR prclUpdate : { LONG } pRectL;
  136.                                fs         : WORD) : INTEGER;
  137.  
  138. (* WinGetClipPS() flags *)
  139. CONST
  140.   PSF_LOCKWINDOWUPDATE = $00001;
  141.   PSF_CLIPUPWARDS      = $00002;
  142.   PSF_CLIPDOWNWARDS    = $00004;
  143.   PSF_CLIPSIBLINGS     = $00008;
  144.   PSF_CLIPCHILDREN     = $00010;
  145.   PSF_PARENTCLIP       = $00020;
  146.  
  147. (* WinScrollWindow() flags *)
  148.   SW_SCROLLCHILDREN    = $00001;
  149.   SW_INVALIDATERGN     = $00002;
  150.  
  151.   FUNCTION WinFillRect(ahps : hPs;
  152.                        rcl  : { LONG } pRectL;
  153.                        clr  : Color) : BOOLEAN;
  154.   FUNCTION Win16FillRect(ahps : hPs;
  155.                        rcl  : { LONG } pRectL;
  156.                        clr  : Color) : BOOLEAN;
  157.  
  158. (* WinInitialize/WinTerminate Interface declarations *)
  159.  
  160. TYPE
  161.   QVersData = RECORD    (* qver *)
  162.     Environment : WORD;
  163.     Version     : WORD;
  164.   END;
  165.  
  166. CONST
  167.   QV_OS2      = $00000;
  168.   QV_CMS      = $00001;
  169.   QV_TSO      = $00002;
  170.   QV_TSOBATCH = $00003;
  171.   QV_OS400    = 4;
  172.  
  173.  
  174.   FUNCTION WinQueryVersion(ahab : HAB) : LongInt;
  175.   FUNCTION Win16QueryVersion(ahab : HAB) : LongInt;
  176.  
  177.   FUNCTION WinInitialize(fsOptions : WORD) : HAB;
  178.   FUNCTION Win16Initialize(fsOptions : WORD) : HAB;
  179.  
  180.   FUNCTION WinTerminate(ahab : HAB) : BOOLEAN;
  181.   FUNCTION Win16Terminate(ahab : HAB) : BOOLEAN;
  182.  
  183.   FUNCTION WinQueryAnchorBlock(a : hWnd) : HAB;
  184.   FUNCTION Win16QueryAnchorBlock(a : hWnd) : HAB;
  185.  
  186. (******************  End of Window Manager COMMON section ******************)
  187.  
  188.   FUNCTION WinCreateWindow(hWndParent       : hWnd;
  189.                            pszClass         : pChar;
  190.                            pszName          : pChar;
  191.                            flStyle          : LongInt;
  192.                            x, y             : INTEGER;
  193.                            cx, cy           : INTEGER;
  194.                            hWndOwner        : hWnd;
  195.                            hWndInsertBehind : hWnd;
  196.                            id               : WORD;
  197.                            pCtlData         : pVoid;
  198.                            pPresParams      : pVoid) : hWnd;
  199.   FUNCTION Win16CreateWindow(hWndParent       : hWnd;
  200.                            pszClass         : pChar;
  201.                            pszName          : pChar;
  202.                            flStyle          : LongInt;
  203.                            x, y             : INTEGER;
  204.                            cx, cy           : INTEGER;
  205.                            hWndOwner        : hWnd;
  206.                            hWndInsertBehind : hWnd;
  207.                            id               : WORD;
  208.                            pCtlData         : pVoid;
  209.                            pPresParams      : pVoid) : hWnd;
  210.  
  211.   FUNCTION WinEnableWindow(aHwnd : hWnd; fEnable : BOOLEAN) : BOOLEAN;
  212.   FUNCTION Win16EnableWindow(aHwnd : hWnd; fEnable : BOOLEAN) : BOOLEAN;
  213.  
  214.   FUNCTION WinIsWindowEnabled(aHwnd : hWnd) : BOOLEAN;
  215.   FUNCTION Win16IsWindowEnabled(aHwnd : hWnd) : BOOLEAN;
  216.  
  217.   FUNCTION WinEnableWindowUpdate(aHwnd : hWnd; fEnable : BOOLEAN) : BOOLEAN;
  218.   FUNCTION Win16EnableWindowUpdate(aHwnd : hWnd; fEnable : BOOLEAN) : BOOLEAN;
  219.  
  220.   FUNCTION WinIsWindowVisible(aHwnd : hWnd) : BOOLEAN;
  221.   FUNCTION Win16IsWindowVisible(aHwnd : hWnd) : BOOLEAN;
  222.  
  223.   FUNCTION WinQueryWindowText(aHwnd  : hWnd;
  224.                               cbBuf  : INTEGER;
  225.                               pszBuf : pChar) : INTEGER;
  226.   FUNCTION Win16QueryWindowText(aHwnd  : hWnd;
  227.                               cbBuf  : INTEGER;
  228.                               pszBuf : pChar) : INTEGER;
  229.  
  230.   FUNCTION WinSetWindowText(aHwnd : hWnd; pszText : pChar) : BOOLEAN;
  231.   FUNCTION Win16SetWindowText(aHwnd : hWnd; pszText : pChar) : BOOLEAN;
  232.  
  233.   FUNCTION WinQueryWindowTextLength(aHwnd : hWnd) : INTEGER;
  234.   FUNCTION Win16QueryWindowTextLength(aHwnd : hWnd) : INTEGER;
  235.  
  236.   FUNCTION WinWindowFromID(hWndParent : hWnd; id : WORD) : hWnd;
  237.   FUNCTION Win16WindowFromID(hWndParent : hWnd; id : WORD) : hWnd;
  238.  
  239.   FUNCTION WinIsWindow(ahab : HAB; aHwnd : hWnd) : BOOLEAN;
  240.   FUNCTION Win16IsWindow(ahab : HAB; aHwnd : hWnd) : BOOLEAN;
  241.  
  242.   FUNCTION WinQueryWindow(aHwnd : hWnd;
  243.                           cmd   : INTEGER;
  244.                           fLock : BOOLEAN) : hWnd;
  245.   FUNCTION Win16QueryWindow(aHwnd : hWnd;
  246.                           cmd   : INTEGER;
  247.                           fLock : BOOLEAN) : hWnd;
  248.  
  249.   FUNCTION WinMultWindowFromIDs(    hWndParent : hWnd;
  250.                                 VAR pHWnd      : hWnd;
  251.                                     idFirst    : WORD;
  252.                                     idLast     : WORD) : INTEGER;
  253.   FUNCTION Win16MultWindowFromIDs(    hWndParent : hWnd;
  254.                                 VAR pHWnd      : hWnd;
  255.                                     idFirst    : WORD;
  256.                                     idLast     : WORD) : INTEGER;
  257.  
  258. (* WinQueryWindow() codes *)
  259.  
  260. CONST
  261.   QW_NEXT       = 0;
  262.   QW_PREV       = 1;
  263.   QW_TOP        = 2;
  264.   QW_BOTTOM     = 3;
  265.   QW_OWNER      = 4;
  266.   QW_PARENT     = 5;
  267.   QW_NEXTTOP    = 6;
  268.   QW_PREVTOP    = 7;
  269.   QW_FRAMEOWNER = 8;
  270.  
  271.   FUNCTION WinSetParent(aHwnd         : hWnd;
  272.                         hWndNewParent : hWnd;
  273.                         fRedraw       : BOOLEAN) : BOOLEAN;
  274.   FUNCTION Win16SetParent(aHwnd         : hWnd;
  275.                         hWndNewParent : hWnd;
  276.                         fRedraw       : BOOLEAN) : BOOLEAN;
  277.  
  278.   FUNCTION WinIsChild(aHwnd : hWnd; hWndParent : hWnd) : BOOLEAN;
  279.   FUNCTION Win16IsChild(aHwnd : hWnd; hWndParent : hWnd) : BOOLEAN;
  280.  
  281.   FUNCTION WinSetOwner(aHwnd : hWnd; hWndNewOwner : hWnd) : BOOLEAN;
  282.   FUNCTION Win16SetOwner(aHwnd : hWnd; hWndNewOwner : hWnd) : BOOLEAN;
  283.  
  284.   FUNCTION WinQueryWindowProcess(    aHwnd : hWnd;
  285.                                  VAR pPID  : { LONG } pID;
  286.                                  VAR pTID  : { LONG } tId) : BOOLEAN;
  287.   FUNCTION Win16QueryWindowProcess(    aHwnd : hWnd;
  288.                                  VAR pPID  : { LONG } pID;
  289.                                  VAR pTID  : { LONG } tId) : BOOLEAN;
  290.  
  291.   FUNCTION WinQueryObjectWindow(hWndDesktop : hWnd) : hWnd;
  292.   FUNCTION Win16QueryObjectWindow(hWndDesktop : hWnd) : hWnd;
  293.  
  294.   FUNCTION WinQueryDesktopWindow(ahab : HAB; ahdc : hDC) : hWnd;
  295.   FUNCTION Win16QueryDesktopWindow(ahab : HAB; ahdc : hDC) : hWnd;
  296.  
  297. (*** Window positioning functions *)
  298.  
  299. (* WinSetMultWindowPos() structure *)
  300.  
  301. TYPE
  302.   Swp = RECORD      (* swp *)
  303.     fs               : WORD;
  304.     cx, cy           :  INTEGER;
  305.     y, x             :  INTEGER;
  306.     hWndInsertBehind :   hWnd;
  307.     aHwnd            :   hWnd;
  308.   END;
  309.   pSwp = ^Swp;
  310.  
  311.   FUNCTION WinSetWindowPos(aHwnd            : hWnd;
  312.                            hWndInsertBehind : hWnd;
  313.                            x, y, cx, cy     : INTEGER;
  314.                            fs               : WORD) : BOOLEAN;
  315.   FUNCTION Win16SetWindowPos(aHwnd            : hWnd;
  316.                            hWndInsertBehind : hWnd;
  317.                            x, y, cx, cy     : INTEGER;
  318.                            fs               : WORD) : BOOLEAN;
  319.  
  320.   FUNCTION WinQueryWindowPos(    aHwnd : hWnd;
  321.                              VAR pSwp  : { LONG } Swp) : BOOLEAN;
  322.   FUNCTION Win16QueryWindowPos(    aHwnd : hWnd;
  323.                              VAR pSwp  : { LONG } Swp) : BOOLEAN;
  324.  
  325.   FUNCTION WinSetMultWindowPos(ahab : HAB;
  326.                                pSwp : { LONG } Swp;
  327.                                cswp : WORD) : BOOLEAN;
  328.   FUNCTION Win16SetMultWindowPos(ahab : HAB;
  329.                                pSwp : { LONG } Swp;
  330.                                cswp : WORD) : BOOLEAN;
  331.  
  332. CONST
  333.   AWP_MINIMIZED   = $10000;
  334.   AWP_MAXIMIZED   = $20000;
  335.   AWP_RESTORED   = $40000;
  336.   AWP_ACTIVATE   = $80000;
  337.   AWP_DEACTIVATE = $100000;
  338.  
  339. (* WinSetWindowPos() flags *)
  340.  
  341.   SWP_SIZE            = $00001;
  342.   SWP_MOVE            = $00002;
  343.   SWP_ZORDER          = $00004;
  344.   SWP_SHOW            = $00008;
  345.   SWP_HIDE            = $00010;
  346.   SWP_NOREDRAW        = $00020;
  347.   SWP_NOADJUST        = $00040;
  348.   SWP_ACTIVATE        = $00080;
  349.   SWP_DEACTIVATE      = $00100;
  350.   SWP_EXTSTATECHANGE  = $00200;
  351.   SWP_MINIMIZE        = $00400;
  352.   SWP_MAXIMIZE        = $00800;
  353.   SWP_RESTORE         = $01000;
  354.   SWP_FOCUSACTIVATE   = $02000;
  355.   SWP_FOCUSDEACTIVATE = $04000;
  356.  
  357. (* Window painting *)
  358.  
  359.   FUNCTION WinUpdateWindow(aHwnd : hWnd) : BOOLEAN;
  360.   FUNCTION Win16UpdateWindow(aHwnd : hWnd) : BOOLEAN;
  361.  
  362.   FUNCTION WinInvalidateRect(aHwnd            : hWnd;
  363.                              VAR prcl         : { LONG } pRectL;
  364.                              fIncludeChildren : BOOLEAN) : BOOLEAN;
  365.   FUNCTION Win16InvalidateRect(aHwnd            : hWnd;
  366.                              VAR prcl         : { LONG } pRectL;
  367.                              fIncludeChildren : BOOLEAN) : BOOLEAN;
  368.  
  369.   FUNCTION WinInvalidateRegion(aHwnd            : hWnd;
  370.                                ahRGN            : HRGN;
  371.                                fIncludeChildren : BOOLEAN) : BOOLEAN;
  372.   FUNCTION Win16InvalidateRegion(aHwnd            : hWnd;
  373.                                ahRGN            : HRGN;
  374.                                fIncludeChildren : BOOLEAN) : BOOLEAN;
  375.  
  376. (* Drawing helpers *)
  377.  
  378.   FUNCTION WinInvertRect(ahps : hPs;
  379.                          prcl : { LONG } pRectL) : BOOLEAN;
  380.   FUNCTION Win16InvertRect(ahps : hPs;
  381.                          prcl : { LONG } pRectL) : BOOLEAN;
  382.  
  383.   FUNCTION WinDrawBitmap(hpsDst  : hPs;
  384.                          hbm     : hBitmap;
  385.                          prclSrc : { LONG } pRectL;
  386.                          pptlDst : { LONG } PointL;
  387.                          clrFore : LongInt;
  388.                          clrBack : LongInt;
  389.                          fs      : WORD) : BOOLEAN;
  390.   FUNCTION Win16DrawBitmap(hpsDst  : hPs;
  391.                          hbm     : hBitmap;
  392.                          prclSrc : { LONG } pRectL;
  393.                          pptlDst : { LONG } PointL;
  394.                          clrFore : LongInt;
  395.                          clrBack : LongInt;
  396.                          fs      : WORD) : BOOLEAN;
  397.  
  398. (* WinDrawBitmap() flags *)
  399.  
  400. CONST
  401.   DBM_NORMAL     = $00000;
  402.   DBM_INVERT     = $00001;
  403.   DBM_HALFTONE   = $00002;
  404.   DBM_STRETCH    = $00004;
  405.   DBM_IMAGEATTRS = $00008;
  406.  
  407.   FUNCTION WinDrawText(ahps    : hPs;
  408.                        StrLen  : INTEGER;
  409.                        pszText : pChar;
  410.                        prcl    : { LONG } pRectL;
  411.                        clrFore : LongInt;
  412.                        clrBack : LongInt;
  413.                        fsCmd   : WORD) : HPS; {Integer}
  414.   FUNCTION Win16DrawText(ahps    : hPs;
  415.                        cchText : INTEGER;
  416.                        pszText : pChar;
  417.                        prcl    : { LONG } pRectL;
  418.                        clrFore : LongInt;
  419.                        clrBack : LongInt;
  420.                        fsCmd   : WORD) : INTEGER;
  421.  
  422. (*
  423.  * WinDrawText() codes:
  424.  * From DT_LEFT to DT_EXTERNALLEADING, the codes are designed to be OR'ed with
  425.  * SS_TEXT to create variations of the basic text static item.
  426.  *)
  427. CONST
  428.   DT_LEFT =             $00000;
  429.   DT_EXTERNALLEADING =  $00080;
  430.   DT_CENTER =           $00100;
  431.   DT_RIGHT =            $00200;
  432.   DT_TOP =              $00000;
  433.   DT_VCENTER =          $00400;
  434.   DT_BOTTOM =           $00800;
  435.   DT_HALFTONE =         $01000;
  436.   DT_MNEMONIC =         $02000;
  437.   DT_WORDBREAK =        $04000;
  438.   DT_ERASERECT =        $08000;
  439.   DT_QUERYEXTENT =      $00002;
  440.   DT_TEXTATTRS =        $00040;
  441.  
  442.  
  443.   FUNCTION WinDrawBorder(ahps    : hPs;
  444.                          prcl    : { LONG } pRectL;
  445.                          cx, cy  : INTEGER;
  446.                          clrFore : LongInt;
  447.                          clrBack : LongInt;
  448.                          fsCmd   : WORD) : BOOLEAN;
  449.   FUNCTION Win16DrawBorder(ahps    : hPs;
  450.                          prcl    : { LONG } pRectL;
  451.                          cx, cy  : INTEGER;
  452.                          clrFore : LongInt;
  453.                          clrBack : LongInt;
  454.                          fsCmd   : WORD) : BOOLEAN;
  455.  
  456. (* WinDrawBorder() flags *)
  457.  
  458. CONST
  459.   DB_PATCOPY =          $00000;
  460.   DB_PATINVERT =        $00001;
  461.   DB_DESTINVERT =       $00002;
  462.   DB_AREAMIXMODE =      $00003;
  463.  
  464.   DB_ROP =              $00007;
  465.   DB_INTERIOR =         $00008;
  466.   DB_AREAATTRS =        $00010;
  467.   DB_STANDARD =         $00100;
  468.   DB_DLGBORDER =        $00200;
  469.  
  470. (** Resource loading functions *)
  471.  
  472.   FUNCTION WinLoadString(ahab      : HAB;
  473.                          hMod      : hModule;
  474.                          id        : WORD;
  475.                          cchMax    : INTEGER;
  476.                          pszBuffer : pChar) : INTEGER;
  477.   FUNCTION Win16LoadString(ahab      : HAB;
  478.                          hMod      : hModule;
  479.                          id        : WORD;
  480.                          cchMax    : INTEGER;
  481.                          pszBuffer : pChar) : INTEGER;
  482.  
  483.   FUNCTION WinLoadMessage(ahab      : HAB;
  484.                           hMod      : hModule;
  485.                           id        : WORD;
  486.                           cchMax    : INTEGER;
  487.                           pszBuffer : pChar) : INTEGER;
  488.   FUNCTION Win16LoadMessage(ahab      : HAB;
  489.                           hMod      : hModule;
  490.                           id        : WORD;
  491.                           cchMax    : INTEGER;
  492.                           pszBuffer : pChar) : INTEGER;
  493.  
  494.  
  495. (***************************************************************************)
  496. (****                 Window Manager Subsection part 2                  ****)
  497.  
  498.   FUNCTION WinSetActiveWindow(hWndDesktop : hWnd; aHwnd : hWnd) : BOOLEAN;
  499.   FUNCTION Win16SetActiveWindow(hWndDesktop : hWnd; aHwnd : hWnd) : BOOLEAN;
  500.  
  501. (* WM_CREATE structure *)
  502. TYPE
  503.   CreateStruct = RECORD     (* crst *)
  504.     pPresParams      : pVoid;
  505.     pCtlData         : pVoid;
  506.     id               : WORD;
  507.     hWndInsertBehind : hWnd;
  508.     hWndOwner        : hWnd;
  509.     cy, cx, y, x     : INTEGER;
  510.     flStyle          : LongInt;
  511.     pszText          : pChar;
  512.     pszClass         : pChar;
  513.     hWndParent       : hWnd;
  514.   END;
  515.   pCreateStruct = ^CreateStruct;
  516.  
  517. (* WinQueryClassInfo() structure *)
  518.  
  519. TYPE
  520.   ClassInfo = RECORD      (* clsi *)
  521.     flClassStyle  : LongInt;
  522.     pfnWindowProc : pFnWp;
  523.     cbWindowData  : WORD;
  524.   END;
  525.   pClassInfo = ^ClassInfo;
  526.  
  527.   FUNCTION WinSubclassWindow(aHwnd : hWnd; pFnWp : pFnWp) : { PFNWP } Pointer;
  528.   FUNCTION Win16SubclassWindow(aHwnd : hWnd; pFnWp : pFnWp) : { PFNWP } Pointer;
  529.  
  530.   FUNCTION WinQueryClassName(aHwnd   : hWnd;
  531.                              cchMax  : INTEGER;
  532.                              pChar     : pChar) : INTEGER;
  533.   FUNCTION Win16QueryClassName(aHwnd   : hWnd;
  534.                              cchMax  : INTEGER;
  535.                              pChar     : pChar) : INTEGER;
  536.  
  537.   FUNCTION WinQueryClassInfo(    ahab         : HAB;
  538.                                  pszClassName : pChar;
  539.                              VAR pclsi        : { LONG } ClassInfo) : BOOLEAN;
  540.   FUNCTION Win16QueryClassInfo(    ahab         : HAB;
  541.                                  pszClassName : pChar;
  542.                              VAR pclsi        : { LONG } ClassInfo) : BOOLEAN;
  543.  
  544.   FUNCTION WinQueryActiveWindow(hWndDesktop : hWnd;
  545.                                 fLock       : BOOLEAN) : hWnd;
  546.   FUNCTION Win16QueryActiveWindow(hWndDesktop : hWnd;
  547.                                 fLock       : BOOLEAN) : hWnd;
  548.  
  549.   FUNCTION WinIsThreadActive(ahab : HAB) : BOOLEAN;
  550.   FUNCTION Win16IsThreadActive(ahab : HAB) : BOOLEAN;
  551.  
  552.   FUNCTION WinQuerySysModalWindow(hWndDesktop : hWnd;
  553.                                   fLock       : BOOLEAN) : hWnd;
  554.   FUNCTION Win16QuerySysModalWindow(hWndDesktop : hWnd;
  555.                                   fLock       : BOOLEAN) : hWnd;
  556.  
  557.   FUNCTION WinLockWindow(aHwnd : hWnd; fLock : BOOLEAN) : hWnd;
  558.   FUNCTION Win16LockWindow(aHwnd : hWnd; fLock : BOOLEAN) : hWnd;
  559.  
  560.   FUNCTION WinRegisterWindowDestroy(aHwnd     : hWnd;
  561.                                     fRegister : BOOLEAN) : BOOLEAN;
  562.   FUNCTION Win16RegisterWindowDestroy(aHwnd     : hWnd;
  563.                                     fRegister : BOOLEAN) : BOOLEAN;
  564.  
  565.   FUNCTION WinSetSysModalWindow(hWndDesktop : hWnd; aHwnd : hWnd) : BOOLEAN;
  566.   FUNCTION Win16SetSysModalWindow(hWndDesktop : hWnd; aHwnd : hWnd) : BOOLEAN;
  567.  
  568.   FUNCTION WinQueryWindowLockCount(aHwnd : hWnd) : INTEGER;
  569.   FUNCTION Win16QueryWindowLockCount(aHwnd : hWnd) : INTEGER;
  570.  
  571.   FUNCTION WinQueryWindowUShort(aHwnd : hWnd; INDEX : INTEGER) : WORD;
  572.   FUNCTION Win16QueryWindowUShort(aHwnd : hWnd; INDEX : INTEGER) : WORD;
  573.  
  574.   FUNCTION WinSetWindowUShort(aHwnd : hWnd;
  575.                               INDEX : INTEGER;
  576.                               us    : WORD) : BOOLEAN;
  577.   FUNCTION Win16SetWindowUShort(aHwnd : hWnd;
  578.                               INDEX : INTEGER;
  579.                               us    : WORD) : BOOLEAN;
  580.  
  581.   FUNCTION WinQueryWindowULong(aHwnd : hWnd; INDEX : INTEGER) : LongInt;
  582.   FUNCTION Win16QueryWindowULong(aHwnd : hWnd; INDEX : INTEGER) : LongInt;
  583.  
  584.   FUNCTION WinSetWindowULong(aHwnd : hWnd;
  585.                              INDEX : INTEGER;
  586.                              ul    : LongInt) : BOOLEAN;
  587.   FUNCTION Win16SetWindowULong(aHwnd : hWnd;
  588.                              INDEX : INTEGER;
  589.                              ul    : LongInt) : BOOLEAN;
  590.  
  591.   FUNCTION WinQueryWindowPtr(aHwnd : hWnd; INDEX : INTEGER) : pVoid;
  592.   FUNCTION Win16QueryWindowPtr(aHwnd : hWnd; INDEX : INTEGER) : pVoid;
  593.  
  594.   FUNCTION WinSetWindowPtr(aHwnd : hWnd;
  595.                            INDEX : INTEGER;
  596.                            P     : pVoid) : BOOLEAN;
  597.   FUNCTION Win16SetWindowPtr(aHwnd : hWnd;
  598.                            INDEX : INTEGER;
  599.                            P     : pVoid) : BOOLEAN;
  600.  
  601.   FUNCTION WinSetWindowBits(aHwnd  : hWnd;
  602.                             INDEX  : INTEGER;
  603.                             flData : LongInt;
  604.                             flMask : LongInt) : BOOLEAN;
  605.   FUNCTION Win16SetWindowBits(aHwnd  : hWnd;
  606.                             INDEX  : INTEGER;
  607.                             flData : LongInt;
  608.                             flMask : LongInt) : BOOLEAN;
  609.  
  610. (* Standard WinQueryWindowUShort/ULong() indexes *)
  611.  
  612. CONST
  613.   QWS_USER =    0;
  614.   QWS_ID   =  (-1);
  615.   QWS_MIN  =  (-1);
  616.  
  617.   QWL_USER =    0;
  618.   QWL_STYLE =  (-2);
  619.   QWP_PFNWP =  (-3);
  620.   QWL_HMQ   =  (-4);
  621.   QWL_MIN   =  (-4);
  622.  
  623. (* WC_FRAME WinQueryWindowUShort/ULong() indexes *)
  624.  
  625. CONST
  626.   QWL_HHEAP         = $00004;
  627.   QWL_HWNDFOCUSSAVE = $00018;
  628.  
  629.   QWS_FLAGS         = $00008;
  630.   QWS_RESULT        = $0000A;
  631.   QWS_XRESTORE      = $0000C;
  632.   QWS_YRESTORE      = $0000E;
  633.   QWS_CXRESTORE     = $00010;
  634.   QWS_CYRESTORE     = $00012;
  635.   QWS_XMINIMIZE     = $00014;
  636.   QWS_YMINIMIZE     = $00016;
  637.  
  638. (* Window enumeration *)
  639. TYPE
  640.   hEnum = LHandle;  (* henum *)
  641.  
  642.   FUNCTION WinBeginEnumWindows(aHwnd : hWnd) : hEnum;
  643.   FUNCTION Win16BeginEnumWindows(aHwnd : hWnd) : hEnum;
  644.  
  645.   FUNCTION WinGetNextWindow(ahEnum : hEnum) : hWnd;
  646.   FUNCTION Win16GetNextWindow(ahEnum : hEnum) : hWnd;
  647.  
  648.   FUNCTION WinEndEnumWindows(ahEnum : hEnum) : BOOLEAN;
  649.   FUNCTION Win16EndEnumWindows(ahEnum : hEnum) : BOOLEAN;
  650.  
  651.   FUNCTION WinWindowFromPoint(aHwnd     : hWnd;
  652.                               pptl      : { LONG } PointL;
  653.                               fChildren : BOOLEAN;
  654.                               fLock     : BOOLEAN) : hWnd;
  655.   FUNCTION Win16WindowFromPoint(aHwnd     : hWnd;
  656.                               pptl      : { LONG } PointL;
  657.                               fChildren : BOOLEAN;
  658.                               fLock     : BOOLEAN) : hWnd;
  659.  
  660.   FUNCTION WinMapWindowPoints(hWndFrom : hWnd;
  661.                               hWndTo   : hWnd;
  662.                               pptl     : { LONG } PointL;
  663.                               cwpt     : INTEGER) : BOOLEAN;
  664.   FUNCTION Win16MapWindowPoints(hWndFrom : hWnd;
  665.                               hWndTo   : hWnd;
  666.                               pptl     : { LONG } PointL;
  667.                               cwpt     : INTEGER) : BOOLEAN;
  668.  
  669. (* WinExcludeUpdateRegion return values *)
  670.  
  671. CONST
  672.   EXRGN_ERROR   = $00000;
  673.   EXRGN_NULL    = $00001;
  674.   EXRGN_RECT    = $00002;
  675.   EXRGN_COMPLEX = $00003;
  676.  
  677. (* More window painting stuff *)
  678.  
  679.   FUNCTION WinValidateRect(aHwnd            : hWnd;
  680.                            prcl             : { LONG } pRectL;
  681.                            fIncludeChildren : BOOLEAN) : BOOLEAN;
  682.   FUNCTION Win16ValidateRect(aHwnd            : hWnd;
  683.                            prcl             : { LONG } pRectL;
  684.                            fIncludeChildren : BOOLEAN) : BOOLEAN;
  685.  
  686.   FUNCTION WinValidateRegion(aHwnd            : hWnd;
  687.                              ahRGN            : HRGN;
  688.                              fIncludeChildren : BOOLEAN) : BOOLEAN;
  689.   FUNCTION Win16ValidateRegion(aHwnd            : hWnd;
  690.                              ahRGN            : HRGN;
  691.                              fIncludeChildren : BOOLEAN) : BOOLEAN;
  692.  
  693.   FUNCTION WinWindowFromDC(ahdc : hDC) : hWnd;
  694.   FUNCTION Win16WindowFromDC(ahdc : hDC) : hWnd;
  695.  
  696.   FUNCTION WinQueryWindowDC(aHwnd : hWnd) : hDC;
  697.   FUNCTION Win16QueryWindowDC(aHwnd : hWnd) : hDC;
  698.  
  699.   FUNCTION WinGetScreenPS(hWndDesktop : hWnd) : hPs;
  700.   FUNCTION Win16GetScreenPS(hWndDesktop : hWnd) : hPs;
  701.  
  702.   FUNCTION WinLockWindowUpdate(hWndDesktop    : hWnd;
  703.                                hWndLockUpdate : hWnd) : BOOLEAN;
  704.   FUNCTION Win16LockWindowUpdate(hWndDesktop    : hWnd;
  705.                                hWndLockUpdate : hWnd) : BOOLEAN;
  706.  
  707.   FUNCTION WinLockVisRegions(hWndDesktop : hWnd; fLock : BOOLEAN) : BOOLEAN;
  708.   FUNCTION Win16LockVisRegions(hWndDesktop : hWnd; fLock : BOOLEAN) : BOOLEAN;
  709.  
  710.   FUNCTION WinQueryUpdateRect(aHwnd : hWnd; VAR prcl : { LONG } pRectL) : BOOLEAN;
  711.   FUNCTION Win16QueryUpdateRect(aHwnd : hWnd; VAR prcl : { LONG } pRectL) : BOOLEAN;
  712.  
  713.   FUNCTION WinQueryUpdateRegion(aHwnd : hWnd; ahRGN : HRGN) : INTEGER;
  714.   FUNCTION Win16QueryUpdateRegion(aHwnd : hWnd; ahRGN : HRGN) : INTEGER;
  715.  
  716.   FUNCTION WinExcludeUpdateRegion(ahps : hPs; aHwnd : hWnd) : INTEGER;
  717.   FUNCTION Win16ExcludeUpdateRegion(ahps : hPs; aHwnd : hWnd) : INTEGER;
  718.  
  719. (* QMSG structure *)
  720. TYPE
  721.   QMsg = RECORD   (* qmsg *)
  722.     hWnd : hWnd;
  723.     Msg  : WORD;
  724.     Mp1  : mParam;
  725.     Mp2  : mParam;
  726.     time : LongInt;
  727.     ptl  : PointL;
  728.   END;
  729.   pQMsg = ^QMsg;
  730.  
  731. (* Standard Window Messages *)
  732.  
  733. CONST
  734.   WM_NULL     = 0000;
  735.   WM_CREATE    = 0001;
  736.   WM_DESTROY    = 0002;
  737.  
  738.   WM_OTHERWINDOWDESTROYED = 0003;
  739.  
  740.   WM_ENABLE    = 0004;
  741.   WM_SHOW     = 0005;
  742.   WM_MOVE     = 0006;
  743.   WM_SIZE     = 0007;
  744.   WM_ADJUSTWINDOWPOS  = 0008;
  745.  
  746.   WM_CALCVALIDRECTS  = 0009;
  747.  
  748.   WM_SETWINDOWPARAMS  = $000A;
  749.   WM_QUERYWINDOWPARAMS  = $000B;
  750.   WM_HITTEST    = $000C;
  751.   WM_ACTIVATE    = $000D;
  752.   WM_SETFOCUS    = $000F;
  753.   WM_SETSELECTION   = $0010;
  754.  
  755. (* language support Winproc *)
  756.   WM_PPAINT    = $0011;
  757.   WM_PSETFOCUS    = $0012;
  758.   WM_PSYSCOLORCHANGE  = $0013;
  759.   WM_PSIZE    = $0014;
  760.   WM_PACTIVATE    = $0015;
  761.   WM_PCONTROL    = $0016;
  762.  
  763.   WM_COMMAND    = $0020;
  764.   WM_SYSCOMMAND    = $0021;
  765.   WM_HELP     = $0022;
  766.   WM_PAINT    = $0023;
  767.  
  768.   WM_TIMER    = $0024;
  769.   WM_SEM1     = $0025;
  770.   WM_SEM2     = $0026;
  771.   WM_SEM3     = $0027;
  772.   WM_SEM4     = $0028;
  773.  
  774.   WM_CLOSE    = $0029;
  775.   WM_QUIT     = $002A;
  776.   WM_SYSCOLORCHANGE  = $002B;
  777.   WM_SYSVALUECHANGED  = $002D;
  778.   WM_APPTERMINATENOTIFY  = $002E;
  779.   WM_PRESPARAMCHANGED  = $002F;
  780.  
  781. (* Control notification messages *)
  782.  
  783.   WM_CONTROL    = $0030;
  784.   WM_VSCROLL    = $0031;
  785.   WM_HSCROLL    = $0032;
  786.   WM_INITMENU    = $0033;
  787.   WM_MENUSELECT    = $0034;
  788.   WM_MENUEND    = $0035;
  789.   WM_DRAWITEM    = $0036;
  790.   WM_MEASUREITEM  = $0037;
  791.   WM_CONTROLPOINTER  = $0038;
  792.   WM_CONTROLHEAP  = $0039;
  793.   WM_QUERYDLGCODE   = $003A;
  794.   WM_INITDLG    = $003B;
  795.   WM_SUBSTITUTESTRING  = $003C;
  796.   WM_MATCHMNEMONIC  = $003D;
  797.   WM_SAVEAPPLICATION  = $003E;
  798.  
  799. (* Reserve a range of messages for help manager.  This range includes  *)
  800. (* public messages, defined below, and private ones, which need to be  *)
  801. (* reserved here to prevent clashing with application messages         *)
  802. CONST
  803.   WM_HELPBASE    = $0F00; (* Start of msgs for help manager *)
  804.   WM_HELPTOP    = $0FFF; (* End of msgs for help manager   *)
  805.  
  806.   WM_USER     = $1000;
  807.  
  808. (* WM_COMMAND msg source codes *)
  809.  
  810.   CMDSRC_PUSHBUTTON  = 1;
  811.   CMDSRC_MENU    = 2;
  812.   CMDSRC_ACCELERATOR  = 3;
  813.   CMDSRC_OTHER    = 0;
  814.  
  815. TYPE
  816.   CommandMsg = RECORD
  817.     Source  : WORD;          (* mp2 *)
  818.     fMouse  : BOOLEAN;
  819.     cmd    : WORD;          (* mp1 *)
  820.     unused  : WORD;
  821.   END;
  822.  
  823. (* The following structure is used by the WinQueryQueueInfo() routine *)
  824.  
  825.   MQInfo = RECORD
  826.     cb    : WORD;
  827.     pID    : pID;
  828.     tId    : tId;
  829.     cmsgs  : WORD;
  830.     pReserved  : pVoid;
  831.   END;
  832.   pMQInfo = ^MQInfo;
  833.  
  834. (* WinCreateMsgQueue default size *)
  835.  
  836. CONST
  837.   DEFAULT_QUEUE_SIZE =  0;
  838.  
  839.   FUNCTION WinSendMsg(aHwnd : hWnd;
  840.                       Msg   : WORD;
  841.                       Mp1   : mParam;
  842.                       Mp2   : mParam) : mResult;
  843.   FUNCTION Win16SendMsg(aHwnd : hWnd;
  844.                       Msg   : WORD;
  845.                       Mp1   : mParam;
  846.                       Mp2   : mParam) : mResult;
  847.  
  848.   FUNCTION WinCreateMsgQueue(ahab : HAB; cMsg : INTEGER) : hMQ;
  849.   FUNCTION Win16CreateMsgQueue(ahab : HAB; cMsg : INTEGER) : hMQ;
  850.  
  851.   FUNCTION WinDestroyMsgQueue(aHmq : hMQ) : BOOLEAN;
  852.   FUNCTION Win16DestroyMsgQueue(aHmq : hMQ) : BOOLEAN;
  853.  
  854.   FUNCTION WinQueryQueueInfo(    hMQ    : hMQ;
  855.                              VAR pmqi   : { LONG } MQInfo;
  856.                                  cbCopy : WORD) : BOOLEAN;
  857.   FUNCTION Win16QueryQueueInfo(    hMQ    : hMQ;
  858.                              VAR pmqi   : { LONG } MQInfo;
  859.                                  cbCopy : WORD) : BOOLEAN;
  860.  
  861.   FUNCTION WinCancelShutdown(aHmq : hMQ; fCancelAlways : BOOLEAN) : BOOLEAN;
  862.   FUNCTION Win16CancelShutdown(aHmq : hMQ; fCancelAlways : BOOLEAN) : BOOLEAN;
  863.  
  864.   FUNCTION WinGetMsg(    ahab           : HAB;
  865.                      VAR QMsg           : { LONG } QMsg;
  866.                          hWndFilter     : hWnd;
  867.                          MsgFilterFirst : WORD;
  868.                          MsgFilterLast  : WORD) : BOOLEAN;
  869.   FUNCTION Win16GetMsg(  ahab           : HAB;
  870.                      VAR QMsg           : { LONG } QMsg;
  871.                          hWndFilter     : hWnd;
  872.                          MsgFilterFirst : WORD;
  873.                          MsgFilterLast  : WORD) : BOOLEAN;
  874.  
  875.   FUNCTION WinPeekMsg(    ahab           : HAB;
  876.                       VAR QMsg           : { LONG } QMsg;
  877.                           hWndFilter     : hWnd;
  878.                           MsgFilterFirst : WORD;
  879.                           MsgFilterLast  : WORD;
  880.                           fs             : WORD) : BOOLEAN;
  881.   FUNCTION Win16PeekMsg(  ahab           : HAB;
  882.                       VAR QMsg           : { LONG } QMsg;
  883.                           hWndFilter     : hWnd;
  884.                           MsgFilterFirst : WORD;
  885.                           MsgFilterLast  : WORD;
  886.                           fs             : WORD) : BOOLEAN;
  887.  
  888.   FUNCTION WinDispatchMsg(ahab : HAB;
  889.                           QMsg : { LONG } QMsg) : LongInt;
  890.   FUNCTION Win16DispatchMsg(ahab : HAB;
  891.                             QMsg : { LONG } QMsg) : LongInt;
  892.  
  893.   FUNCTION WinPostMsg(aHwnd : hWnd;
  894.                       Msg   : WORD;
  895.                       Mp1   : pmParam;
  896.                       Mp2   : pmParam) : WORD; {BOOLEAN; }
  897.   FUNCTION Win16PostMsg(aHwnd : hWnd;
  898.                       Msg   : WORD;
  899.                       Mp1   : pmParam;
  900.                       Mp2   : pmParam) : BOOLEAN;
  901.  
  902.   FUNCTION WinRegisterUserMsg(a : HAB;
  903.                               b : WORD;
  904.                               c : INTEGER;
  905.                               d : INTEGER;
  906.                               e : INTEGER;
  907.                               f : INTEGER;
  908.                               g : INTEGER) : BOOLEAN;
  909.   FUNCTION Win16RegisterUserMsg(a : HAB;
  910.                               b : WORD;
  911.                               c : INTEGER;
  912.                               d : INTEGER;
  913.                               e : INTEGER;
  914.                               f : INTEGER;
  915.                               g : INTEGER) : BOOLEAN;
  916.  
  917.   FUNCTION WinRegisterUserDatatype(    a : HAB;
  918.                                        b : INTEGER;
  919.                                        c : INTEGER;
  920.                                    VAR d : INTEGER) : BOOLEAN;
  921.   FUNCTION Win16RegisterUserDatatype(    a : HAB;
  922.                                        b : INTEGER;
  923.                                        c : INTEGER;
  924.                                    VAR d : INTEGER) : BOOLEAN;
  925.  
  926.   FUNCTION WinSetMsgMode(a : HAB; b : pChar; c : INTEGER) : BOOLEAN;
  927.   FUNCTION Win16SetMsgMode(a : HAB; b : pChar; c : INTEGER) : BOOLEAN;
  928.  
  929.   FUNCTION WinSetSynchroMode(a : HAB; b : INTEGER) : BOOLEAN;
  930.   FUNCTION Win16SetSynchroMode(a : HAB; b : INTEGER) : BOOLEAN;
  931.  
  932. (* WinPeekMsg() constants *)
  933.  
  934. CONST
  935.   PM_REMOVE =       00001;
  936.   PM_NOREMOVE =     00000;
  937.  
  938.   RUM_IN  = 1;
  939.   RUM_OUT  = 2;
  940.   RUM_INOUT  = 3;
  941.  
  942.   SMD_DELAYED    = 1;
  943.   SMD_IMMEDIATE  = 2;
  944.  
  945.   SSM_SYNCHRONOUS  = 1;
  946.   SSM_AYSYNCHRONOUS  = 2;
  947.   SSM_MIXED    = 3;
  948.  
  949. (* WM_CALCVALIDRECTS return flags *)
  950.  
  951. CONST
  952.   CVR_ALIGNLEFT =       $00001;
  953.   CVR_ALIGNBOTTOM =     $00002;
  954.   CVR_ALIGNRIGHT =      $00004;
  955.   CVR_ALIGNTOP =        $00008;
  956.   CVR_REDRAW =          $00010;
  957.  
  958.  
  959. (* WM_HITTEST return codes *)
  960.  
  961. CONST
  962.   HT_NORMAL =       0;
  963.   HT_TRANSPARENT =  (-1);
  964.   HT_DISCARD =      (-2);
  965.   HT_ERROR =        (-3);
  966.  
  967. (* WM_SET/QUERYWINDOWPARAMS structures and flags *)
  968.  
  969. TYPE
  970.   WndParams = RECORD    (* wprm *)
  971.     fsStatus     : WORD;
  972.     cchText      : WORD;
  973.     pszText      : pChar;
  974.     cbPresParams : WORD;
  975.     pPresParams  : pVoid;
  976.     cbCtlData    : WORD;
  977.     pCtlData     : pVoid;
  978.   END;
  979.   pWndParams = ^WndParams;
  980.  
  981. (* Flags used by WM_SET/QUERYWINDOWPARAMS *)
  982.  
  983. CONST
  984.   WPM_TEXT         = $00001;
  985.   WPM_CTLDATA      = $00002;
  986.   WPM_PRESPARAMS   = $00004;
  987.   WPM_CCHTEXT      = $00008;
  988.   WPM_CBCTLDATA    = $00010;
  989.   WPM_CBPRESPARAMS = $00020;
  990.  
  991.   FUNCTION WinInSendMsg(ahab : HAB) : BOOLEAN;
  992.   FUNCTION Win16InSendMsg(ahab : HAB) : BOOLEAN;
  993.  
  994.   FUNCTION WinBroadcastMsg(aHwnd : hWnd;
  995.                            Msg   : WORD;
  996.                            Mp1   : mParam;
  997.                            Mp2   : mParam;
  998.                            fs    : WORD) : BOOLEAN;
  999.   FUNCTION Win16BroadcastMsg(aHwnd : hWnd;
  1000.                            Msg   : WORD;
  1001.                            Mp1   : mParam;
  1002.                            Mp2   : mParam;
  1003.                            fs    : WORD) : BOOLEAN;
  1004.  
  1005. (* WinBroadcastMsg codes *)
  1006. CONST
  1007.   BMSG_POST        = $00000;
  1008.   BMSG_SEND        = $00001;
  1009.   BMSG_POSTQUEUE   = $00002;
  1010.   BMSG_DESCENDANTS = $00004;
  1011.   BMSG_FRAMEONLY   = $00008;
  1012.  
  1013.   FUNCTION WinWaitMsg(ahab     : HAB;
  1014.                       msgFirst : WORD;
  1015.                       msgLast  : WORD) : BOOLEAN;
  1016.   FUNCTION Win16WaitMsg(ahab     : HAB;
  1017.                       msgFirst : WORD;
  1018.                       msgLast  : WORD) : BOOLEAN;
  1019.  
  1020.   FUNCTION WinQueryQueueStatus(hWndDesktop : hWnd) : LongInt;
  1021.   FUNCTION Win16QueryQueueStatus(hWndDesktop : hWnd) : LongInt;
  1022.  
  1023. (* WinQueryQueueStatus() constants *)
  1024.  
  1025. CONST
  1026.   QS_KEY =          $00001;
  1027.   QS_MOUSEBUTTON =  $00002;
  1028.   QS_MOUSEMOVE =    $00004;
  1029.   QS_MOUSE =        $00006;      (* QS_MOUSEMOVE|QS_MOUSEBUTTON *)
  1030.   QS_TIMER =        $00008;
  1031.   QS_PAINT =        $00010;
  1032.   QS_POSTMSG =      $00020;
  1033.   QS_SEM1 =         $00040;
  1034.   QS_SEM2 =         $00080;
  1035.   QS_SEM3 =         $00100;
  1036.   QS_SEM4 =         $00200;
  1037.   QS_SENDMSG =      $00400;
  1038.  
  1039.  
  1040.   FUNCTION WinQueryMsgPos(    ahab : HAB;
  1041.                           VAR pptl : { LONG } PointL) : BOOLEAN;
  1042.   FUNCTION Win16QueryMsgPos(    ahab : HAB;
  1043.                           VAR pptl : { LONG } PointL) : BOOLEAN;
  1044.  
  1045.   FUNCTION WinQueryMsgTime(ahab : HAB) : LongInt;
  1046.   FUNCTION Win16QueryMsgTime(ahab : HAB) : LongInt;
  1047.  
  1048.   FUNCTION WinMsgSemWait(hSEM : hSEM; lTimeout : LongInt) : WORD;
  1049.   FUNCTION Win16MsgSemWait(hSEM : hSEM; lTimeout : LongInt) : WORD;
  1050.  
  1051.   FUNCTION WinMsgMuxSemWait(VAR pisemCleared : WORD;
  1052.                                 pmxsl        : pVoid;
  1053.                                 lTimeout     : LongInt) : WORD;
  1054.   FUNCTION Win16MsgMuxSemWait(VAR pisemCleared : WORD;
  1055.                                 pmxsl        : pVoid;
  1056.                                 lTimeout     : LongInt) : WORD;
  1057.  
  1058.   FUNCTION WinPostQueueMsg(aHmq : hMQ;
  1059.                            Msg  : WORD;
  1060.                            Mp1  : mParam;
  1061.                            Mp2  : mParam) : BOOLEAN;
  1062.   FUNCTION Win16PostQueueMsg(aHmq : hMQ;
  1063.                            Msg  : WORD;
  1064.                            Mp1  : mParam;
  1065.                            Mp2  : mParam) : BOOLEAN;
  1066.  
  1067. (*** Keyboard and mouse input stuff *)
  1068.  
  1069. (*** Keyboard and mouse input COMMON subsection *)
  1070.  
  1071.   FUNCTION WinSetFocus(hWndDesktop : hWnd; hWndSetFocus : hWnd) : BOOLEAN;
  1072.   FUNCTION Win16SetFocus(hWndDesktop : hWnd; hWndSetFocus : hWnd) : BOOLEAN;
  1073.  
  1074.   FUNCTION WinFocusChange(hWndDesktop   : hWnd;
  1075.                           hWndSetFocus  : hWnd;
  1076.                           fsFocusChange : WORD) : BOOLEAN;
  1077.   FUNCTION Win16FocusChange(hWndDesktop   : hWnd;
  1078.                           hWndSetFocus  : hWnd;
  1079.                           fsFocusChange : WORD) : BOOLEAN;
  1080.  
  1081. CONST
  1082.   FC_NOSETFOCUS =              $00001;
  1083.   FC_NOLOSEFOCUS =             $00002;
  1084.   FC_NOSETACTIVE =             $00004;
  1085.   FC_NOLOSEACTIVE =            $00008;
  1086.   FC_NOSETSELECTION =          $00010;
  1087.   FC_NOLOSESELECTION =         $00020;
  1088.  
  1089.   QFC_NEXTINCHAIN =             $00001;
  1090.   QFC_ACTIVE =                  $00002;
  1091.   QFC_FRAME =                   $00003;
  1092.   QFC_SELECTACTIVE =            $00004;
  1093.  
  1094.   FUNCTION WinSetCapture(hWndDesktop : hWnd;
  1095.                          aHwnd       : hWnd) : BOOLEAN;
  1096.   FUNCTION Win16SetCapture(hWndDesktop : hWnd;
  1097.                          aHwnd       : hWnd) : BOOLEAN;
  1098.  
  1099.   FUNCTION WinQueryCapture(hWndDesktop : hWnd;
  1100.                            fLock       : BOOLEAN) : hWnd;
  1101.   FUNCTION Win16QueryCapture(hWndDesktop : hWnd;
  1102.                            fLock       : BOOLEAN) : hWnd;
  1103.  
  1104. (* Mouse input messages *)
  1105.  
  1106. CONST
  1107.   WM_MOUSEFIRST =       $00070;
  1108.   WM_MOUSELAST =        $00079;
  1109.   WM_BUTTONCLICKFIRST = $00071;
  1110.   WM_BUTTONCLICKLAST =  $00079;
  1111.  
  1112.   WM_MOUSEMOVE =        $00070;
  1113.  
  1114.   WM_BUTTON1DOWN =      $00071;
  1115.  
  1116.   WM_BUTTON1UP =        $00072;
  1117.   WM_BUTTON1DBLCLK =    $00073;
  1118.   WM_BUTTON2DOWN =      $00074;
  1119.   WM_BUTTON2UP =        $00075;
  1120.   WM_BUTTON2DBLCLK =    $00076;
  1121.   WM_BUTTON3DOWN =      $00077;
  1122.   WM_BUTTON3UP =        $00078;
  1123.   WM_BUTTON3DBLCLK =    $00079;
  1124.  
  1125.   FUNCTION WinQueryFocus(hWndDesktop : hWnd; fLock : BOOLEAN) : hWnd;
  1126.   FUNCTION Win16QueryFocus(hWndDesktop : hWnd; fLock : BOOLEAN) : hWnd;
  1127.  
  1128. (* Key/Character input msg     *)
  1129.  
  1130. CONST
  1131.   WM_CHAR =             $0007A;
  1132.   WM_VIOCHAR =          $0007B;
  1133.  
  1134. (* WM_CHAR fs field bits *)
  1135.  
  1136. CONST
  1137.   KC_CHAR =             $00001;
  1138.   KC_VIRTUALKEY =       $00002;
  1139.   KC_SCANCODE =         $00004;
  1140.  
  1141.   KC_SHIFT =            $00008;
  1142.   KC_CTRL =             $00010;
  1143.   KC_ALT =              $00020;
  1144.   KC_KEYUP =            $00040;
  1145.   KC_PREVDOWN =         $00080;
  1146.   KC_LONEKEY =          $00100;
  1147.   KC_DEADKEY =          $00200;
  1148.   KC_COMPOSITE =        $00400;
  1149.   KC_INVALIDCOMP =      $00800;
  1150.  
  1151.   KC_TOGGLE =           $01000;
  1152.   KC_INVALIDCHAR =      $02000;
  1153.   KC_DBCSRSRVD1 =       $04000;
  1154.   KC_DBCSRSRVD2 =       $08000;
  1155.  
  1156. TYPE
  1157.   MouseMsg = RECORD
  1158.     codeHitTest : WORD;
  1159.     unused      : WORD;
  1160.     x, y        : INTEGER;
  1161.   END;
  1162.  
  1163.   CharMsg = RECORD
  1164.     chr      : WORD;
  1165.     vKey     : WORD;
  1166.     fs       : WORD;
  1167.     cRepeat  : CHAR;
  1168.     scancode : CHAR;
  1169.   END;
  1170.  
  1171. (*** Virtual key values *)
  1172.  
  1173. CONST
  1174.   VK_BUTTON1   = $001;
  1175.   VK_BUTTON2   = $002;
  1176.   VK_BUTTON3   = $003;
  1177.   VK_BREAK     = $004;
  1178.   VK_BACKSPACE = $005;
  1179.   VK_TAB       = $006;
  1180.   VK_BACKTAB   = $007;
  1181.   VK_NEWLINE   = $008;
  1182.   VK_SHIFT     = $009;
  1183.   VK_CTRL      = $00A;
  1184.   VK_ALT       = $00B;
  1185.   VK_ALTGRAF   = $00C;
  1186.   VK_PAUSE     = $00D;
  1187.   VK_CAPSLOCK  = $00E;
  1188.   VK_ESC       = $00F;
  1189.   VK_SPACE     = $010;
  1190.   VK_PAGEUP    = $011;
  1191.   VK_PAGEDOWN  = $012;
  1192.   VK_END       = $013;
  1193.   VK_HOME      = $014;
  1194.   VK_LEFT      = $015;
  1195.   VK_UP        = $016;
  1196.   VK_RIGHT     = $017;
  1197.   VK_DOWN      = $018;
  1198.   VK_PRINTSCRN = $019;
  1199.   VK_INSERT    = $01A;
  1200.   VK_DELETE    = $01B;
  1201.   VK_SCRLLOCK  = $01C;
  1202.   VK_NUMLOCK   = $01D;
  1203.   VK_ENTER     = $01E;
  1204.   VK_SYSRQ     = $01F;
  1205.   VK_F1        = $020;
  1206.   VK_F2        = $021;
  1207.   VK_F3        = $022;
  1208.   VK_F4        = $023;
  1209.   VK_F5        = $024;
  1210.   VK_F6        = $025;
  1211.   VK_F7        = $026;
  1212.   VK_F8        = $027;
  1213.   VK_F9        = $028;
  1214.   VK_F10       = $029;
  1215.   VK_F11       = $02A;
  1216.   VK_F12       = $02B;
  1217.   VK_F13       = $02C;
  1218.   VK_F14       = $02D;
  1219.   VK_F15       = $02E;
  1220.   VK_F16       = $02F;
  1221.   VK_F17       = $030;
  1222.   VK_F18       = $031;
  1223.   VK_F19       = $032;
  1224.   VK_F20       = $033;
  1225.   VK_F21       = $034;
  1226.   VK_F22       = $035;
  1227.   VK_F23       = $036;
  1228.   VK_F24       = $037;
  1229.   VK_MENU      = VK_F10;
  1230.  
  1231.   VK_DBCSFIRST = $80;
  1232.   VK_DBCSLAST  = $0FF;
  1233.  
  1234.   VK_USERFIRST = $100;
  1235.   VK_USERLAST  = $1FF;
  1236.  
  1237.   FUNCTION WinGetKeyState(hWndDesktop : hWnd;
  1238.                           vKey        : INTEGER) : INTEGER;
  1239.   FUNCTION Win16GetKeyState(hWndDesktop : hWnd;
  1240.                           vKey        : INTEGER) : INTEGER;
  1241.  
  1242.   FUNCTION WinGetPhysKeyState(hWndDesktop : hWnd;
  1243.                               sc          : INTEGER) : INTEGER;
  1244.   FUNCTION Win16GetPhysKeyState(hWndDesktop : hWnd;
  1245.                               sc          : INTEGER) : INTEGER;
  1246.  
  1247.   FUNCTION WinEnablePhysInput(hWndDesktop : hWnd;
  1248.                               fEnable     : BOOLEAN) : BOOLEAN;
  1249.   FUNCTION Win16EnablePhysInput(hWndDesktop : hWnd;
  1250.                               fEnable     : BOOLEAN) : BOOLEAN;
  1251.  
  1252.   FUNCTION WinIsPhysInputEnabled(hWndDesktop : hWnd) : BOOLEAN;
  1253.   FUNCTION Win16IsPhysInputEnabled(hWndDesktop : hWnd) : BOOLEAN;
  1254.  
  1255.   FUNCTION WinSetKeyboardStateTable(hWndDesktop    : hWnd;
  1256.                                     pKeyStateTable : pBYTE;
  1257.                                     fSet           : BOOLEAN) : BOOLEAN;
  1258.   FUNCTION Win16SetKeyboardStateTable(hWndDesktop    : hWnd;
  1259.                                     pKeyStateTable : pBYTE;
  1260.                                     fSet           : BOOLEAN) : BOOLEAN;
  1261.  
  1262. (* Journal Notification messages  *)
  1263. CONST
  1264.   WM_JOURNALNOTIFY =    $0007C;
  1265.  
  1266. (*** Define the valid commands (lParm1) for journal notify message *)
  1267.   JRN_QUEUESTATUS =     $000000001;
  1268.   JRN_PHYSKEYSTATE =    $000000002;
  1269.  
  1270. (**** Dialog Manager *)
  1271.  
  1272. (**** Dialog Manager COMMON subsection *)
  1273.  
  1274.   FUNCTION WinGetDlgMsg(a : hWnd; VAR b : QMsg) : BOOLEAN;
  1275.   FUNCTION Win16GetDlgMsg(a : hWnd; VAR b : QMsg) : BOOLEAN;
  1276.  
  1277.   FUNCTION WinLoadDlg(hWndParent    : hWnd;
  1278.                       hWndOwner     : hWnd;
  1279.                       pfnDlgProc    : pFnWp;
  1280.                       hMod          : hModule;
  1281.                       idDlg         : WORD;
  1282.                       pCreateParams : pVoid) : hWnd;
  1283.   FUNCTION Win16LoadDlg(hWndParent    : hWnd;
  1284.                       hWndOwner     : hWnd;
  1285.                       pfnDlgProc    : pFnWp;
  1286.                       hMod          : hModule;
  1287.                       idDlg         : WORD;
  1288.                       pCreateParams : pVoid) : hWnd;
  1289.  
  1290.   FUNCTION WinDlgBox(hWndParent    : hWnd;
  1291.                      hWndOwner     : hWnd;
  1292.                      pfnDlgProc    : pFnWp;
  1293.                      hMod          : hModule;
  1294.                      idDlg         : WORD;
  1295.                      pCreateParams : pVoid) : WORD;
  1296.   FUNCTION Win16DlgBox(hWndParent    : hWnd;
  1297.                      hWndOwner     : hWnd;
  1298.                      pfnDlgProc    : pFnWp;
  1299.                      hMod          : hModule;
  1300.                      idDlg         : WORD;
  1301.                      pCreateParams : pVoid) : WORD;
  1302.  
  1303.   FUNCTION WinDismissDlg(hWndDlg : hWnd; usResult : WORD) : BOOLEAN;
  1304.   FUNCTION Win16DismissDlg(hWndDlg : hWnd; usResult : WORD) : BOOLEAN;
  1305.  
  1306.   FUNCTION WinQueryDlgItemShort(    hWndDlg : hWnd;
  1307.                                     idItem  : WORD;
  1308.                                 VAR pResult : INTEGER;
  1309.                                     fSigned : BOOLEAN) : BOOLEAN;
  1310.   FUNCTION Win16QueryDlgItemShort(    hWndDlg : hWnd;
  1311.                                     idItem  : WORD;
  1312.                                 VAR pResult : INTEGER;
  1313.                                     fSigned : BOOLEAN) : BOOLEAN;
  1314.  
  1315.   FUNCTION WinSetDlgItemShort(hWndDlg : hWnd;
  1316.                               idItem  : WORD;
  1317.                               usValue : WORD;
  1318.                               fSigned : BOOLEAN) : BOOLEAN;
  1319.   FUNCTION Win16SetDlgItemShort(hWndDlg : hWnd;
  1320.                               idItem  : WORD;
  1321.                               usValue : WORD;
  1322.                               fSigned : BOOLEAN) : BOOLEAN;
  1323.  
  1324.   FUNCTION WinSetDlgItemText(hWndDlg : hWnd;
  1325.                              idItem  : WORD;
  1326.                              pszText : pChar) : BOOLEAN;
  1327.   FUNCTION Win16SetDlgItemText(hWndDlg : hWnd;
  1328.                              idItem  : WORD;
  1329.                              pszText : pChar) : BOOLEAN;
  1330.  
  1331.   FUNCTION WinQueryDlgItemText(hWndDlg      : hWnd;
  1332.                                idItem       : WORD;
  1333.                                cchBufferMax : INTEGER;
  1334.                                pszBuf       : pChar) : WORD;
  1335.   FUNCTION Win16QueryDlgItemText(hWndDlg      : hWnd;
  1336.                                idItem       : WORD;
  1337.                                cchBufferMax : INTEGER;
  1338.                                pszBuf       : pChar) : WORD;
  1339.  
  1340.   FUNCTION WinQueryDlgItemTextLength(hWndDlg : hWnd;
  1341.                                      idItem  : WORD) : INTEGER;
  1342.   FUNCTION Win16QueryDlgItemTextLength(hWndDlg : hWnd;
  1343.                                      idItem  : WORD) : INTEGER;
  1344.  
  1345.   FUNCTION WinDefDlgProc(hWndDlg : hWnd;
  1346.                          Msg     : WORD;
  1347.                          Mp1     : mParam;
  1348.                          Mp2     : mParam) : mResult;
  1349.   FUNCTION Win16DefDlgProc(hWndDlg : hWnd;
  1350.                          Msg     : WORD;
  1351.                          Mp1     : mParam;
  1352.                          Mp2     : mParam) : mResult;
  1353.  
  1354. (* Special item IDs *)
  1355. CONST
  1356.   DID_OK     =  1;
  1357.   DID_CANCEL =  2;
  1358.   DID_ERROR  =  $FFFF;
  1359.  
  1360.   FUNCTION WinAlarm(hWndDesktop : hWnd; fsType : WORD) : BOOLEAN;
  1361.   FUNCTION Win16Alarm(hWndDesktop : hWnd; fsType : WORD) : BOOLEAN;
  1362.  
  1363. (* WinAlarm Codes *)
  1364. CONST
  1365.   WA_WARNING =              0;
  1366.   WA_NOTE =                 1;
  1367.   WA_ERROR =                2;
  1368.  
  1369.   WA_CWINALARMS =           3;
  1370.  
  1371.   FUNCTION WinMessageBox(hWndParent : hWnd;
  1372.                          hWndOwner  : hWnd;
  1373.                          pszText    : pChar;
  1374.                          pszCaption : pChar;
  1375.                          idWindow   : WORD;
  1376.                          flStyle    : WORD) : WORD;
  1377.   FUNCTION Win16MessageBox(hWndParent : hWnd;
  1378.                          hWndOwner  : hWnd;
  1379.                          pszText    : pChar;
  1380.                          pszCaption : pChar;
  1381.                          idWindow   : WORD;
  1382.                          flStyle    : WORD) : WORD;
  1383.  
  1384. (* Message box types *)
  1385. CONST
  1386.   MB_OK =                   $00000;
  1387.   MB_OKCANCEL =             $00001;
  1388.   MB_RETRYCANCEL =          $00002;
  1389.   MB_ABORTRETRYIGNORE =     $00003;
  1390.   MB_YESNO =                $00004;
  1391.   MB_YESNOCANCEL =          $00005;
  1392.   MB_CANCEL =               $00006;
  1393.   MB_ENTER =                $00007;
  1394.   MB_ENTERCANCEL =          $00008;
  1395.  
  1396.   MB_NOICON =               $00000;
  1397.   MB_CUANOTIFICATION =      $00000;
  1398.   MB_ICONQUESTION =         $00010;
  1399.   MB_ICONEXCLAMATION =      $00020;
  1400.   MB_CUAWARNING =           $00020;
  1401.   MB_ICONASTERISK =         $00030;
  1402.   MB_ICONHAND =             $00040;
  1403.   MB_CUACRITICAL =          $00040;
  1404.  
  1405.   MB_QUERY    = MB_ICONQUESTION;
  1406.   MB_WARNING    = MB_CUAWARNING;
  1407.   MB_INFORMATION  = MB_ICONASTERISK;
  1408.   MB_CRITICAL    = MB_CUACRITICAL;
  1409.   MB_ERROR    = MB_CRITICAL;
  1410.  
  1411.   MB_DEFBUTTON1 =           $00000;
  1412.   MB_DEFBUTTON2 =           $00100;
  1413.   MB_DEFBUTTON3 =           $00200;
  1414.  
  1415.   MB_APPLMODAL =            $00000;
  1416.   MB_SYSTEMMODAL =          $01000;
  1417.   MB_HELP =                 $02000;
  1418.   MB_MOVEABLE =             $04000;
  1419.  
  1420. (* Message box return codes *)
  1421.  
  1422.   MBID_OK =                 1;
  1423.   MBID_CANCEL =             2;
  1424.   MBID_ABORT =              3;
  1425.   MBID_RETRY =              4;
  1426.   MBID_IGNORE =             5;
  1427.   MBID_YES =                6;
  1428.   MBID_NO =                 7;
  1429.   MBID_HELP =               8;
  1430.   MBID_ENTER =              9;
  1431.   MBID_ERROR =              $FFFF;
  1432.  
  1433. (* Dialog codes: returned by WM_QUERYDLGCODE msg     *)
  1434.   DLGC_ENTRYFIELD =     $00001;    (* Entry field item understands EM_SETSEL) *)
  1435.   DLGC_BUTTON =         $00002;    (* Button item *)
  1436.   DLGC_RADIOBUTTON =    $00004;    (* Radio button *)
  1437.   DLGC_STATIC =         $00008;    (* Static item *)
  1438.   DLGC_DEFAULT =        $00010;    (* Default push button *)
  1439.   DLGC_PUSHBUTTON =     $00020;    (* Normal (Non-default) push button *)
  1440.   DLGC_CHECKBOX =       $00040;    (* Check box button control *)
  1441.   DLGC_SCROLLBAR =      $00080;    (* Scroll bar *)
  1442.   DLGC_MENU =           $00100;    (* Menu *)
  1443.   DLGC_TABONCLICK =     $00200;
  1444.   DLGC_MLE  = $400;
  1445.  
  1446.   FUNCTION WinProcessDlg(hWndDlg : hWnd) : WORD;
  1447.   FUNCTION Win16ProcessDlg(hWndDlg : hWnd) : WORD;
  1448.  
  1449. (*  FUNCTION WinStartDlg(a : HWND) : WORD;
  1450.      EXTERNAL 'PMWIN' INDEX ???;  *)
  1451.  
  1452.   FUNCTION WinSendDlgItemMsg(hWndDlg : hWnd;
  1453.                              idItem  : WORD;
  1454.                              Msg     : WORD;
  1455.                              Mp1     : mParam;
  1456.                              Mp2     : mParam) : mResult;
  1457.   FUNCTION Win16SendDlgItemMsg(hWndDlg : hWnd;
  1458.                              idItem  : WORD;
  1459.                              Msg     : WORD;
  1460.                              Mp1     : mParam;
  1461.                              Mp2     : mParam) : mResult;
  1462.  
  1463.   FUNCTION WinMapDlgPoints(    hWndDlg           : hWnd;
  1464.                            VAR prgwptl           : { LONG } PointL;
  1465.                                cwpt              : WORD;
  1466.                                fCalcWindowCoords : BOOLEAN) : BOOLEAN;
  1467.   FUNCTION Win16MapDlgPoints(    hWndDlg           : hWnd;
  1468.                            VAR prgwptl           : { LONG } PointL;
  1469.                                cwpt              : WORD;
  1470.                                fCalcWindowCoords : BOOLEAN) : BOOLEAN;
  1471.  
  1472.   FUNCTION WinEnumDlgItem(hWndDlg : hWnd;
  1473.                           aHwnd   : hWnd;
  1474.                           Code    : WORD;
  1475.                           fLock   : BOOLEAN) : hWnd;
  1476.   FUNCTION Win16EnumDlgItem(hWndDlg : hWnd;
  1477.                           aHwnd   : hWnd;
  1478.                           Code    : WORD;
  1479.                           fLock   : BOOLEAN) : hWnd;
  1480.  
  1481.   FUNCTION WinSubstituteStrings(aHwnd     : hWnd;
  1482.                                 pszSrc    : pChar;
  1483.                                 cchDstMax : INTEGER;
  1484.                                 pszDst    : pChar) : INTEGER;
  1485.   FUNCTION Win16SubstituteStrings(aHwnd     : hWnd;
  1486.                                 pszSrc    : pChar;
  1487.                                 cchDstMax : INTEGER;
  1488.                                 pszDst    : pChar) : INTEGER;
  1489.  
  1490. (* WinEnumDlgItem()  constants *)
  1491. CONST
  1492.   EDI_FIRSTTABITEM =        0;
  1493.   EDI_LASTTABITEM =         1;
  1494.   EDI_NEXTTABITEM =         2;
  1495.   EDI_PREVTABITEM =         3;
  1496.   EDI_FIRSTGROUPITEM =      4;
  1497.   EDI_LASTGROUPITEM =       5;
  1498.   EDI_NEXTGROUPITEM =       6;
  1499.   EDI_PREVGROUPITEM =       7;
  1500.  
  1501. (*** Dialog template definitions *)
  1502.  
  1503. (* Variable-sized dialog template items: *)
  1504.  
  1505. TYPE
  1506.   DlgTItem = RECORD     (* dlgti *)
  1507.     fsItemStatus:    WORD;
  1508.     cChildren:    WORD;
  1509.     cchClassName:    WORD;
  1510.     offClassName:    WORD;
  1511.     cchText:    WORD;
  1512.     offText:    WORD;
  1513.     flStyle:     LongInt;
  1514.     x:     INTEGER;
  1515.     y:     INTEGER;
  1516.     cx:     INTEGER;
  1517.     cy:     INTEGER;
  1518.     id:    WORD;
  1519.     offPresParams:    WORD;
  1520.     offCtlData:    WORD;
  1521.   END;
  1522.   pDlgTItem = ^DlgTItem;
  1523.  
  1524. (* Dialog Template structure *)
  1525.   DlgTemplate = RECORD           (* dlgt *)
  1526.     cbTemplate:      WORD;
  1527.     aType:      WORD;
  1528.     codepage:      WORD;
  1529.     offadlgti:      WORD;          (* Is always 12 for pm 1.1 *)
  1530.     fsTemplateStatus:      WORD;
  1531.     iItemFocus:      WORD;
  1532.     cOffPresParams:      WORD;     (* Reserved to be 0 for pm 1.1 *)
  1533.     adlgt: DlgTItem;
  1534.   END;
  1535.   pDlgTemplate = ^DlgTemplate;
  1536.  
  1537.   FUNCTION WinCreateDlg(hWndParent    : hWnd;
  1538.                         hWndOwner     : hWnd;
  1539.                         pfnDlgProc    : pFnWp;
  1540.                         pdlgt         : pDlgTemplate;
  1541.                         pCreateParams : pVoid) : hWnd;
  1542.   FUNCTION Win16CreateDlg(hWndParent    : hWnd;
  1543.                         hWndOwner     : hWnd;
  1544.                         pfnDlgProc    : pFnWp;
  1545.                         pdlgt         : pDlgTemplate;
  1546.                         pCreateParams : pVoid) : hWnd;
  1547.  
  1548. (**** Static Control Manager *)
  1549.  
  1550. (* Static control styles:
  1551.  *
  1552.  * NOTE: the top 9 bits of the LOWORD of the window flStyle are used for
  1553.  * DT_* flags.  The lower 7 bits are for SS_* styles.  This gives us up
  1554.  * to 128 distinct static control types (we currently use 11 of them).
  1555.  *)
  1556. CONST
  1557.   SS_TEXT =             $00001;
  1558.   SS_GROUPBOX =         $00002;
  1559.   SS_ICON =             $00003;
  1560.   SS_BITMAP =           $00004;
  1561.   SS_FGNDRECT =         $00005;
  1562.   SS_HALFTONERECT =     $00006;
  1563.   SS_BKGNDRECT =        $00007;
  1564.   SS_FGNDFRAME =        $00008;
  1565.   SS_HALFTONEFRAME =    $00009;
  1566.   SS_BKGNDFRAME =       $0000A;
  1567.   SS_SYSICON =          $0000B;
  1568.  
  1569. (* Static control class name *)
  1570.  
  1571.   WC_STATIC =       $0FFFF0005;
  1572.  
  1573. (* Static control messages *)
  1574.  
  1575.   SM_SETHANDLE =        $00100;
  1576.   SM_QUERYHANDLE =      $00101;
  1577. (**** Button Controls Subsection *)
  1578.  
  1579. (* Button control styles *)
  1580.  
  1581.   BS_PUSHBUTTON =       0;
  1582.   BS_CHECKBOX =         1;
  1583.   BS_AUTOCHECKBOX =     2;
  1584.   BS_RADIOBUTTON =      3;
  1585.   BS_AUTORADIOBUTTON =  4;
  1586.   BS_3STATE =           5;
  1587.   BS_AUTO3STATE =       6;
  1588.  
  1589.   BS_USERBUTTON =       7;
  1590.   BS_HELP =             $00100;
  1591.   BS_SYSCOMMAND =       $00200;
  1592.   BS_DEFAULT =          $00400;
  1593.   BS_NOPOINTERFOCUS =   $00800;
  1594.   BS_NOBORDER =         $01000;
  1595.   BS_NOCURSORSELECT  = $2000;
  1596.  
  1597. (* Button class name *)
  1598.  
  1599.   WC_BUTTON =   $0FFFF0003;
  1600.  
  1601. TYPE
  1602.   BtnCData = RECORD     (* btncd *)
  1603.     cb            : WORD;
  1604.     fsCheckState  : WORD;
  1605.     fsHiliteState : WORD;
  1606.   END;
  1607.   pBtnCData = ^BtnCData;
  1608.  
  1609. (* User button structure (passed in  msg: WM_CONTROL) *)
  1610.  
  1611. TYPE
  1612.   UserButton = RECORD   (* ubtn *)
  1613.     hWnd       : hWnd;
  1614.     hPs        : hPs;
  1615.     fsState    : WORD;
  1616.     fsStateOld : WORD;
  1617.   END;
  1618.   pUserButton = ^UserButton;
  1619.  
  1620. (* Button control messages *)
  1621. CONST
  1622.   BM_CLICK =            $00120;
  1623.   BM_QUERYCHECKINDEX =  $00121;
  1624.   BM_QUERYHILITE =      $00122;
  1625.   BM_SETHILITE =        $00123;
  1626.   BM_QUERYCHECK =       $00124;
  1627.   BM_SETCHECK =         $00125;
  1628.   BM_SETDEFAULT =       $00126;
  1629.  
  1630. (* Button notification codes *)
  1631.  
  1632.   BN_CLICKED =          1;
  1633.   BN_DBLCLICKED =       2;
  1634.   BN_PAINT =            3;
  1635.  
  1636. (* BN_PAINT button draw state codes (must be in high byte) *)
  1637.  
  1638.   BDS_HILITED =         $00100;
  1639.   BDS_DISABLED =        $00200;
  1640.   BDS_DEFAULT =         $00400;
  1641.  
  1642. (**** Entryfield controls Subsection *)
  1643.  
  1644. (* Entry field  styles *)
  1645.  
  1646.   ES_LEFT =             $000000000;
  1647.   ES_CENTER =           $000000001;
  1648.   ES_RIGHT =            $000000002;
  1649.   ES_AUTOSCROLL =       $000000004;
  1650.   ES_AUTOTAB =          $000000008;
  1651.  
  1652.     ES_READONLY    = $20;
  1653.     ES_COMMAND    = $40;
  1654.     ES_UNREADABLE  = $80;
  1655.     ES_PICTUREMASK  = $100;
  1656.  
  1657.     ES_ANY    = 0;
  1658.     ES_SBCS    = $100000;
  1659.     ES_DBCS    = $200000;
  1660.     ES_MIXED    = $300000;
  1661.  
  1662.   WC_ENTRYFIELD =     $0FFFF0006;
  1663.     WC_COMBOBOX    = $0FFFF0002;
  1664.  
  1665.     CBS_SIMPLE    = 1;
  1666.     CBS_DROPDOWN  = 2;
  1667.     CBS_DROPDOWNLIST  = 4;
  1668.  
  1669.     CBM_SHOWLISTT  = $170;
  1670.     CBM_HILITE    = $171;
  1671.     CBM_ISLISTSHOWING  = $172;
  1672.  
  1673.     CBN_EFCHANGE  = 1;
  1674.     CBN_EFSCROLL  = 2;
  1675.     CBN_MEMERROR  = 3;
  1676.     CBN_LBSELECT  = 4;
  1677.     CBN_LBSCROLL  = 5;
  1678.     CBN_SHOWLIST  = 6;
  1679.     CBN_ENTER    = 7;
  1680.  
  1681. TYPE
  1682.   EntryFData = RECORD        (* efd *)
  1683.     cb           : WORD;
  1684.     cchEditLimit : WORD;
  1685.     ichMinSel    : WORD;
  1686.     ichMaxSel    : WORD;
  1687.   END;
  1688.   pEntryFData = ^EntryFData;
  1689.  
  1690. (* Entry Field  messages *)
  1691. CONST
  1692.   EM_QUERYCHANGED =     $00140;
  1693.   EM_QUERYSEL =         $00141;
  1694.   EM_SETSEL =           $00142;
  1695.   EM_SETTEXTLIMIT =     $00143;
  1696.  
  1697.   EM_CUT =              $00144;
  1698.   EM_COPY =             $00145;
  1699.   EM_CLEAR =            $00146;
  1700.   EM_PASTE =            $00147;
  1701.   EM_QUERYFIRSTCHAR =   $00148;
  1702.   EM_SETFIRSTCHAR =     $00149;
  1703.  
  1704. (* Entry Field  notification messages *)
  1705.  
  1706.   EN_SETFOCUS =         $00001;
  1707.   EN_KILLFOCUS =        $00002;
  1708.   EN_CHANGE =           $00004;
  1709.   EN_SCROLL =           $00008;
  1710.   EN_MEMERROR =         $00010;
  1711.  
  1712. (**** Listboxes *)
  1713.  
  1714. (* List box styles *)
  1715.  
  1716.   LS_MULTIPLESEL =      $000000001;
  1717.  
  1718.   LS_OWNERDRAW =        $000000002;
  1719.  
  1720.   LS_NOADJUSTPOS =      $000000004;
  1721.  
  1722.  
  1723. (* Listbox class name *)
  1724.  
  1725.   WC_LISTBOX =      $0FFFF0007;
  1726.  
  1727. (* List box notification messages *)
  1728.   LN_SELECT =           1;
  1729.   LN_SETFOCUS =         2;
  1730.   LN_KILLFOCUS =        3;
  1731.   LN_SCROLL =           4;
  1732.   LN_ENTER =            5;
  1733.  
  1734. (* List box messages *)
  1735.  
  1736.   LM_QUERYITEMCOUNT =   $00160;
  1737.   LM_INSERTITEM =       $00161;
  1738.   LM_SETTOPINDEX =      $00162;
  1739.   LM_DELETEITEM =       $00163;
  1740.   LM_SELECTITEM =       $00164;
  1741.   LM_QUERYSELECTION =   $00165;
  1742.   LM_SETITEMTEXT =      $00166;
  1743.   LM_QUERYITEMTEXTLENGTH = $00167;
  1744.   LM_QUERYITEMTEXT =    $00168;
  1745.  
  1746.   LM_SETITEMHANDLE =    $00169;
  1747.   LM_QUERYITEMHANDLE =  $0016A;
  1748.   LM_SEARCHSTRING =     $0016B;
  1749.   LM_SETITEMHEIGHT =    $0016C;
  1750.   LM_QUERYTOPINDEX =    $0016D;
  1751.   LM_DELETEALL =        $0016E;
  1752.  
  1753. (* List box  CONSTants *)
  1754.  
  1755.   LIT_ERROR =            (-3);
  1756.   LIT_MEMERROR =         (-2);
  1757.   LIT_NONE =             (-1);
  1758.   LIT_FIRST =            (-1);
  1759.  
  1760. (* For LM_INSERTITEM msg     *)
  1761.  
  1762.   LIT_END =              (-1);
  1763.   LIT_SORTASCENDING =    (-2);
  1764.   LIT_SORTDESCENDING =   (-3);
  1765.  
  1766. (* For LM_SEARCHSTRING msg     *)
  1767.  
  1768.   LSS_SUBSTRING =       $00001;
  1769.   LSS_PREFIX =          $00002;
  1770.   LSS_CASESENSITIVE =   $00004;
  1771.  
  1772.  
  1773. (**** Menu Manager Subsection *)
  1774.  
  1775. (* Menu control styles *)
  1776.  
  1777.   MS_ACTIONBAR =        $000000001;
  1778.   MS_TITLEBUTTON =      $000000002;
  1779.   MS_VERTICALFLIP =     $000000004;
  1780.  
  1781.   FUNCTION WinLoadMenu(hWndFrame : hWnd;
  1782.                        hMod      : hModule;
  1783.                        idMenu    : WORD) : hWnd;
  1784.   FUNCTION Win16LoadMenu(hWndFrame : hWnd;
  1785.                        hMod      : hModule;
  1786.                        idMenu    : WORD) : hWnd;
  1787.  
  1788. (* Menu class name *)
  1789. CONST
  1790.   WC_MENU = $0FFFF0004;
  1791.  
  1792. (* Menu control messages *)
  1793.  
  1794.   MM_INSERTITEM =           $00180;
  1795.   MM_DELETEITEM =           $00181;
  1796.   MM_QUERYITEM =            $00182;
  1797.   MM_SETITEM =              $00183;
  1798.   MM_QUERYITEMCOUNT =       $00184;
  1799.   MM_STARTMENUMODE =        $00185;
  1800.   MM_ENDMENUMODE =          $00186;
  1801.   MM_REMOVEITEM =           $00188;
  1802.   MM_SELECTITEM =           $00189;
  1803.   MM_QUERYSELITEMID =       $0018A;
  1804.   MM_QUERYITEMTEXT =        $0018B;
  1805.   MM_QUERYITEMTEXTLENGTH =  $0018C;
  1806.   MM_SETITEMHANDLE =        $0018D;
  1807.   MM_SETITEMTEXT =          $0018E;
  1808.   MM_ITEMPOSITIONFROMID =   $0018F;
  1809.   MM_ITEMIDFROMPOSITION =   $00190;
  1810.   MM_QUERYITEMATTR =        $00191;
  1811.   MM_SETITEMATTR =          $00192;
  1812.   MM_ISITEMVALID =          $00193;
  1813.  
  1814.   FUNCTION WinCreateMenu(hWndParent : hWnd; pvmt : pVoid) : hWnd;
  1815.   FUNCTION Win16CreateMenu(hWndParent : hWnd; pvmt : pVoid) : hWnd;
  1816.  
  1817. (* Owner Item Structure (Also used for listboxes) *)
  1818. TYPE
  1819.    OwnerItem = RECORD
  1820.      hWnd           : hWnd;
  1821.      hPs            : hPs;
  1822.      fsState        : WORD;
  1823.      fsAttribute    : WORD;
  1824.      fsStateOld     : WORD;
  1825.      fsAttributeOld : WORD;
  1826.      rclItem        : RectL;
  1827.      idItem         : INTEGER;
  1828.        (* This field contains idItem for menus, iItem for lb. *)
  1829.      hItem          : LongInt;
  1830.    END;
  1831.    pOwnerItem = ^OwnerItem;
  1832.  
  1833. (* Menu item *)
  1834.  
  1835. TYPE
  1836.   MenuItem = RECORD     (* mi *)
  1837.     iPosition   : INTEGER;
  1838.     afStyle     : WORD;
  1839.     afAttribute : WORD;
  1840.     id          : WORD;
  1841.     hWndSubMenu : hWnd;
  1842.     hItem       : LongInt;
  1843.   END;
  1844.   pMenuItem = ^MenuItem;
  1845.  
  1846. CONST
  1847.   MIT_END =         (-1);
  1848.   MIT_NONE =        (-1);
  1849.   MIT_MEMERROR =    (-1);
  1850.   MIT_ERROR =       (-1);
  1851.   MID_NONE =        MIT_NONE;
  1852.   MID_ERROR =       (-1);
  1853.  
  1854. (* Menu item styles & attributes *)
  1855.  
  1856.   MIS_TEXT =            $00001;
  1857.  
  1858.   MIS_BITMAP =          $00002;
  1859.   MIS_SEPARATOR =       $00004;
  1860.   MIS_OWNERDRAW =       $00008;
  1861.   MIS_SUBMENU =         $00010;
  1862.   MIS_SYSCOMMAND =      $00040;
  1863.   MIS_HELP =            $00080;
  1864.   MIS_STATIC =          $00100;
  1865.   MIS_BUTTONSEPARATOR = $00200;
  1866.   MIS_BREAK =           $00400;
  1867.   MIS_BREAKSEPARATOR  = $00800;
  1868.   MIS_GROUP           = $1000;
  1869.   MIS_SINGLE          = $2000;
  1870.  
  1871.   MIA_NODISMISS =       $00020;
  1872.   MIA_FRAMED =          $01000;
  1873.   MIA_CHECKED =         $02000;
  1874.   MIA_DISABLED =        $04000;
  1875.   MIA_HILITED =         $08000;
  1876.  
  1877. (*** Scroll Bar controls Subsection *)
  1878.  
  1879. (* Scroll Bar styles *)
  1880.  
  1881.   SBS_HORZ =            0;
  1882.   SBS_VERT =            1;
  1883.     SBS_TTHUMBSIZE  = 2;
  1884.     SBS_AUTOTRACK  = 4;
  1885.  
  1886. (* Scroll bar class name *)
  1887.  
  1888.  
  1889.   WC_SCROLLBAR =    $0FFFF0008;
  1890.  
  1891. (* Scroll Bar messages *)
  1892.  
  1893.   SBM_SETSCROLLBAR =    $001A0;
  1894.   SBM_SETPOS =          $001A1;
  1895.   SBM_QUERYPOS =        $001A2;
  1896.   SBM_QUERYRANGE =      $001A3;
  1897.   SBM_SETHILITE =       $001A4;
  1898.   SBM_QUERYHILITE =     $001A5;
  1899.     SBM_SETTHUMBSIZE  = $1A6;
  1900.  
  1901. (* Scroll Bar Commands *)
  1902.  
  1903.   SB_LINEUP =           1;
  1904.   SB_LINEDOWN =         2;
  1905.   SB_LINELEFT =         1;
  1906.   SB_LINERIGHT =        2;
  1907.   SB_PAGEUP =           3;
  1908.   SB_PAGEDOWN =         4;
  1909.   SB_PAGELEFT =         3;
  1910.   SB_PAGERIGHT =        4;
  1911.   SB_SLIDERTRACK =      5;
  1912.   SB_SLIDERPOSITION =   6;
  1913.   SB_ENDSCROLL =        7;
  1914.  
  1915. TYPE
  1916.   SBCDATA = RECORD      (* sbcd *)
  1917.     cb: WORD;
  1918.     sHilite: WORD;         (* reserved, should be set to zero *)
  1919.     posFirst: INTEGER;
  1920.     posLast: INTEGER;
  1921.     posThumb: INTEGER;
  1922.   END;
  1923.   pSbcData = ^SBCDATA;
  1924.  
  1925. (*** Frame Manager Common subsection *)
  1926.  
  1927. TYPE
  1928.   FrameCData = RECORD     (* fcdata *)
  1929.     cb: WORD;
  1930.     flCreateFlags: LongInt;
  1931.     hmodResources: hModule;
  1932.     idResources: WORD;
  1933.   END;
  1934.   pFrameCData = ^FrameCData;
  1935.  
  1936. (* Frame window styles *)
  1937. CONST
  1938.   FCF_TITLEBAR =        $000000001;
  1939.   FCF_SYSMENU =         $000000002;
  1940.   FCF_MENU =            $000000004;
  1941.   FCF_SIZEBORDER =      $000000008;
  1942.   FCF_MINBUTTON =       $000000010;
  1943.   FCF_MAXBUTTON =       $000000020;
  1944.   FCF_MINMAX =          $000000030;     (* minmax means BOTH buttons *)
  1945.   FCF_VERTSCROLL =      $000000040;
  1946.   FCF_HORZSCROLL =      $000000080;
  1947.   FCF_DLGBORDER =       $000000100;
  1948.   FCF_BORDER =          $000000200;
  1949.   FCF_SHELLPOSITION =   $000000400;
  1950.   FCF_TASKLIST =        $000000800;
  1951.   FCF_NOBYTEALIGN =     $000001000;
  1952.   FCF_NOMOVEWITHOWNER = $000002000;
  1953.   FCF_ICON =            $000004000;
  1954.   FCF_ACCELTABLE =      $000008000;
  1955.   FCF_SYSMODAL =        $000010000;
  1956.   FCF_SCREENALIGN =     $000020000;
  1957.   FCF_MOUSEALIGN =      $000040000;
  1958.  
  1959.   FCF_PALETTE_NORMAL    = $80000;
  1960.   FCF_PALETTE_HELP      = $100000;
  1961.   FCF_PALETTE_POPUPODD  = $200000;
  1962.   FCF_PALETTE_POPUPEVEN = $400000;
  1963.  
  1964.   FCF_DBE_APPSTAT       = $80000000;
  1965.  
  1966. (* FCF_TITLEBAR | FCF_SYSMENU | FCF_MENU | FCF_SIZEBORDER | FCF_MINMAX |
  1967.    FCF_ICON | FCF_ACCELTABLE | FCF_SHELLPOSITION | FCF_TASKLIST *)
  1968.  
  1969.   FCF_STANDARD =        $00000CC3F;
  1970.  
  1971.  
  1972.   FS_ICON =             $000000001;
  1973.   FS_ACCELTABLE =       $000000002;
  1974.  
  1975.   FS_SHELLPOSITION =    $000000004;
  1976.  
  1977.   FS_TASKLIST =         $000000008;
  1978.   FS_NOBYTEALIGN =      $000000010;
  1979.   FS_NOMOVEWITHOWNER =  $000000020;
  1980.   FS_SYSMODAL =         $000000040;
  1981.   FS_DLGBORDER =        $000000080;
  1982.   FS_BORDER =           $000000100;
  1983.   FS_SCREENALIGN =      $000000200;
  1984.   FS_MOUSEALIGN =       $000000400;
  1985.   FS_SIZEBORDER =       $000000800;
  1986.  
  1987.     FS_DBE_APPSTAT  = $8000;
  1988.  
  1989. (* FS_ICON | FS_ACCELTABLE | FS_SHELLPOSITION | FS_TASKLIST *)
  1990.   FS_STANDARD =         $00000000F;
  1991.  
  1992. (* Frame Window Flags accessed via WinSet/QueryWindowUShort(QWS_FLAGS) *)
  1993.  
  1994.   FF_FLASHWINDOW =      $00001;
  1995.   FF_ACTIVE =           $00002;
  1996.   FF_FLASHHILITE =      $00004;
  1997.   FF_OWNERHIDDEN =      $00008;
  1998.   FF_DLGDISMISSED =     $00010;
  1999.   FF_OWNERDISABLED =    $00020;
  2000.   FF_SELECTED =         $00040;
  2001.   FF_NOACTIVATESWP =    $00080;
  2002.  
  2003.   FUNCTION WinCreateStdWindow(    hWndParent     : hWnd;
  2004.                                   flStyle        : LongInt;
  2005.                               VAR pflCreateFlags : LongInt;
  2006.                                   pszClientClass : pChar;
  2007.                                   pszTitle       : pChar;
  2008.                                   flClientStyle  : LongInt;
  2009.                                   hMod           : hModule;
  2010.                                   idResources    : WORD;
  2011.                               VAR hWndClient     : { LONG } hWnd) : hWnd;
  2012.   FUNCTION Win16CreateStdWindow(    hWndParent     : hWnd;
  2013.                                   flStyle        : LongInt;
  2014.                               VAR pflCreateFlags : LongInt;
  2015.                                   pszClientClass : pChar;
  2016.                                   pszTitle       : pChar;
  2017.                                   flClientStyle  : LongInt;
  2018.                                   hMod           : hModule;
  2019.                                   idResources    : WORD;
  2020.                               VAR hWndClient     : { LONG } hWnd) : hWnd;
  2021.  
  2022.   FUNCTION WinFlashWindow(hWndFrame : hWnd; fFlash : BOOLEAN) : BOOLEAN;
  2023.   FUNCTION Win16FlashWindow(hWndFrame : hWnd; fFlash : BOOLEAN) : BOOLEAN;
  2024.  
  2025. (* Frame window related messages *)
  2026. CONST
  2027.   WM_FLASHWINDOW =      $00040;
  2028.   WM_FORMATFRAME =      $00041;
  2029.   WM_UPDATEFRAME =      $00042;
  2030.   WM_FOCUSCHANGE =      $00043;
  2031.  
  2032.   WM_SETBORDERSIZE =    $00044;
  2033.   WM_TRACKFRAME =       $00045;
  2034.   WM_MINMAXFRAME =      $00046;
  2035.   WM_SETICON =          $00047;
  2036.   WM_QUERYICON =        $00048;
  2037.   WM_SETACCELTABLE =    $00049;
  2038.   WM_QUERYACCELTABLE =  $0004A;
  2039.   WM_TRANSLATEACCEL =   $0004B;
  2040.   WM_QUERYTRACKINFO =   $0004C;
  2041.   WM_QUERYBORDERSIZE =  $0004D;
  2042.   WM_NEXTMENU =         $0004E;
  2043.   WM_ERASEBACKGROUND =  $0004F;
  2044.   WM_QUERYFRAMEINFO =   $00050;
  2045.   WM_QUERYFOCUSCHAIN =  $00051;
  2046.     WM_CALCFRAMERECT  = $53;
  2047.     WM_WINDOWPOSCHANGED  = $55;
  2048.   WM_QUERYFRAMECTLCOUNT = $00059;
  2049.     WM_QUERYHELPINFO  = $5B;
  2050.     WM_SETHELPINFO  = $5C;
  2051.     WM_ERROR    = $5D;
  2052.  
  2053. (* WM_QUERYFRAMEINFO  constants *)
  2054. CONST
  2055.   FI_FRAME =            $000000001;
  2056.   FI_OWNERHIDE =        $000000002;
  2057.   FI_ACTIVATEOK =       $000000004;
  2058.   FI_NOMOVEWITHOWNER =  $000000008;
  2059.  
  2060. (* Frame class name *)
  2061.  
  2062.   WC_FRAME =        $0FFFF0001;
  2063.  
  2064.   FUNCTION WinCreateFrameControls(hWndFrame : hWnd;
  2065.                                   pfcdata   : { LONG } FrameCData;
  2066.                                   pszTitle  : pChar;
  2067.                                   h         : hModule) : BOOLEAN;
  2068.   FUNCTION Win16CreateFrameControls(hWndFrame : hWnd;
  2069.                                   pfcdata   : { LONG } FrameCData;
  2070.                                   pszTitle  : pChar;
  2071.                                   h         : hModule) : BOOLEAN;
  2072.  
  2073.   FUNCTION WinFormatFrame(    hWndFrame  : hWnd;
  2074.                               prclFrame  : { LONG } pRectL;
  2075.                               pSwp       : { LONG } Swp;
  2076.                               cswpMax    : WORD;
  2077.                           VAR prclClient : { LONG } pRectL) : INTEGER;
  2078.   FUNCTION Win16FormatFrame(    hWndFrame  : hWnd;
  2079.                               prclFrame  : { LONG } pRectL;
  2080.                               pSwp       : { LONG } Swp;
  2081.                               cswpMax    : WORD;
  2082.                           VAR prclClient : { LONG } pRectL) : INTEGER;
  2083.  
  2084.   FUNCTION WinCalcFrameRect(    hWndFrame : hWnd;
  2085.                             VAR prcl      : { LONG } pRectL;
  2086.                                 fClient   : BOOLEAN) : BOOLEAN;
  2087.   FUNCTION Win16CalcFrameRect(    hWndFrame : hWnd;
  2088.                             VAR prcl      : { LONG } pRectL;
  2089.                                 fClient   : BOOLEAN) : BOOLEAN;
  2090.  
  2091.   FUNCTION WinGetMinPosition(    hWnd : hWnd;
  2092.                              VAR pSwp : { LONG } Swp;
  2093.                              VAR pptl : { LONG } PointL) : BOOLEAN;
  2094.   FUNCTION Win16GetMinPosition(    hWnd : hWnd;
  2095.                              VAR pSwp : { LONG } Swp;
  2096.                              VAR pptl : { LONG } PointL) : BOOLEAN;
  2097.  
  2098.   FUNCTION WinGetMaxPosition(    hWnd : hWnd;
  2099.                              VAR pSwp : { LONG } Swp) : BOOLEAN;
  2100.   FUNCTION Win16GetMaxPosition(    hWnd : hWnd;
  2101.                              VAR pSwp : { LONG } Swp) : BOOLEAN;
  2102.  
  2103. (* Frame control IDs    *)
  2104. CONST
  2105.   FID_SYSMENU =         $08002;
  2106.   FID_TITLEBAR =        $08003;
  2107.   FID_MINMAX =          $08004;
  2108.   FID_MENU =            $08005;
  2109.   FID_VERTSCROLL =      $08006;
  2110.   FID_HORZSCROLL =      $08007;
  2111.   FID_CLIENT =          $08008;
  2112.  
  2113.     FID_DBE_APPSTAT  = $8010;
  2114.     FID_DBE_KBDSTAT  = $8011;
  2115.     FID_DBE_PECIC    = $8012;
  2116.     FID_DBE_KKPOPUP  = $8013;
  2117.  
  2118. (* Standard WM_SYSCOMMAND command values *)
  2119.  
  2120.   SC_SIZE =             $08000;
  2121.   SC_MOVE =             $08001;
  2122.   SC_MINIMIZE =         $08002;
  2123.   SC_MAXIMIZE =         $08003;
  2124.   SC_CLOSE =            $08004;
  2125.   SC_NEXT =             $08005;
  2126.   SC_APPMENU =          $08006;
  2127.   SC_SYSMENU =          $08007;
  2128.   SC_RESTORE =          $08008;
  2129.   SC_NEXTFRAME =        $08009;
  2130.   SC_NEXTWINDOW =       $08010;
  2131.   SC_TASKMANAGER =      $08011;
  2132.     SC_HELPKEYS    = $8012;
  2133.     SC_HELPINDEX  = $8013;
  2134.     SC_HELPEXTENDED  = $8014;
  2135.     SC_SWITCHPANELIDS  = $8015;
  2136.     SC_DBE_FIRST  = $8018;
  2137.     SC_DBE_LAST    = $801F;
  2138.  
  2139. (*** Frame controls *)
  2140.  
  2141. (** Title bar controls *)
  2142.  
  2143. (* Title bar control class name *)
  2144.  
  2145.   WC_TITLEBAR =  Pointer ($0FFFF0009);
  2146.  
  2147. (* Title bar control messages *)
  2148.  
  2149.   TBM_SETHILITE =           $001E3;
  2150.   TBM_QUERYHILITE =         $001E4;
  2151.   TBM_TRACKMOVE  = $1E5;
  2152.  
  2153. (*** Rectangle routines *)
  2154.  
  2155.   FUNCTION WinCopyRect(    ahab    : HAB;
  2156.                        VAR prclDst : { LONG } pRectL;
  2157.                            prclSrc : { LONG } pRectL) : BOOLEAN;
  2158.   FUNCTION Win16CopyRect(    ahab    : HAB;
  2159.                        VAR prclDst : { LONG } pRectL;
  2160.                            prclSrc : { LONG } pRectL) : BOOLEAN;
  2161.  
  2162.   FUNCTION WinSetRect(    ahab    : HAB;
  2163.                       VAR rcl     : { LONG } pRectL;
  2164.                           xLeft   : INTEGER;
  2165.                           yBottom : INTEGER;
  2166.                           xRight  : INTEGER;
  2167.                           yTop    : INTEGER) : BOOLEAN;
  2168.   FUNCTION Win16SetRect(    ahab    : HAB;
  2169.                       VAR rcl     : { LONG } pRectL;
  2170.                           xLeft   : INTEGER;
  2171.                           yBottom : INTEGER;
  2172.                           xRight  : INTEGER;
  2173.                           yTop    : INTEGER) : BOOLEAN;
  2174.  
  2175.   FUNCTION WinIsRectEmpty(ahab : HAB;
  2176.                           rcl  : { LONG } pRectL) : BOOLEAN;
  2177.   FUNCTION Win16IsRectEmpty(ahab : HAB;
  2178.                           rcl  : { LONG } pRectL) : BOOLEAN;
  2179.  
  2180.   FUNCTION WinEqualRect(ahab  : HAB;
  2181.                         prcl1 : { LONG } pRectL;
  2182.                         prcl2 : { LONG } pRectL) : BOOLEAN;
  2183.   FUNCTION Win16EqualRect(ahab  : HAB;
  2184.                         prcl1 : { LONG } pRectL;
  2185.                         prcl2 : { LONG } pRectL) : BOOLEAN;
  2186.  
  2187.   FUNCTION WinSetRectEmpty(    ahab : HAB;
  2188.                            VAR prcl : { LONG } pRectL) : BOOLEAN;
  2189.   FUNCTION Win16SetRectEmpty(    ahab : HAB;
  2190.                            VAR prcl : { LONG } pRectL) : BOOLEAN;
  2191.  
  2192.   FUNCTION WinOffsetRect(    ahab   : HAB;
  2193.                          VAR prcl   : { LONG } pRectL;
  2194.                              cx, cy : INTEGER) : BOOLEAN;
  2195.   FUNCTION Win16OffsetRect(    ahab   : HAB;
  2196.                          VAR prcl   : { LONG } pRectL;
  2197.                              cx, cy : INTEGER) : BOOLEAN;
  2198.  
  2199.   FUNCTION WinInflateRect(    ahab   : HAB;
  2200.                           VAR prcl   : { LONG } pRectL;
  2201.                               cx, cy : INTEGER) : BOOLEAN;
  2202.   FUNCTION Win16InflateRect(    ahab   : HAB;
  2203.                           VAR prcl   : { LONG } pRectL;
  2204.                               cx, cy : INTEGER) : BOOLEAN;
  2205.  
  2206.   FUNCTION WinPtInRect(ahab : HAB;
  2207.                        prcl : { LONG } pRectL;
  2208.                        pptl : { LONG } PointL) : BOOLEAN;
  2209.   FUNCTION Win16PtInRect(ahab : HAB;
  2210.                        prcl : { LONG } pRectL;
  2211.                        pptl : { LONG } PointL) : BOOLEAN;
  2212.  
  2213.   FUNCTION WinIntersectRect(    ahab     : HAB;
  2214.                             VAR prclDst  : { LONG } pRectL;
  2215.                                 prclSrc1 : { LONG } pRectL;
  2216.                                 prclSrc2 : { LONG } pRectL) : BOOLEAN;
  2217.   FUNCTION Win16IntersectRect(    ahab     : HAB;
  2218.                             VAR prclDst  : { LONG } pRectL;
  2219.                                 prclSrc1 : { LONG } pRectL;
  2220.                                 prclSrc2 : { LONG } pRectL) : BOOLEAN;
  2221.  
  2222.   FUNCTION WinUnionRect(    ahab     : HAB;
  2223.                         VAR prclDst  : { LONG } pRectL;
  2224.                             prclSrc1 : { LONG } pRectL;
  2225.                             prclSrc2 : { LONG } pRectL) : BOOLEAN;
  2226.   FUNCTION Win16UnionRect(    ahab     : HAB;
  2227.                         VAR prclDst  : { LONG } pRectL;
  2228.                             prclSrc1 : { LONG } pRectL;
  2229.                             prclSrc2 : { LONG } pRectL) : BOOLEAN;
  2230.  
  2231.   FUNCTION WinSubtractRect(    ahab     : HAB;
  2232.                            VAR prclDst  : { LONG } pRectL;
  2233.                                prclSrc1 : { LONG } pRectL;
  2234.                                prclSrc2 : { LONG } pRectL) : BOOLEAN;
  2235.   FUNCTION Win16SubtractRect(    ahab     : HAB;
  2236.                            VAR prclDst  : { LONG } pRectL;
  2237.                                prclSrc1 : { LONG } pRectL;
  2238.                                prclSrc2 : { LONG } pRectL) : BOOLEAN;
  2239.  
  2240. (*** System values *)
  2241.  
  2242.   FUNCTION WinQuerySysValue(hWndDesktop : hWnd;
  2243.                             iSysValue   : INTEGER) : LongInt;
  2244.   FUNCTION Win16QuerySysValue(hWndDesktop : hWnd;
  2245.                             iSysValue   : INTEGER) : LongInt;
  2246.  
  2247.   FUNCTION WinSetSysValue(hWndDesktop : hWnd;
  2248.                           iSysValue   : INTEGER;
  2249.                           lValue      : LongInt) : BOOLEAN;
  2250.   FUNCTION Win16SetSysValue(hWndDesktop : hWnd;
  2251.                           iSysValue   : INTEGER;
  2252.                           lValue      : LongInt) : BOOLEAN;
  2253.  
  2254. CONST
  2255.   SV_SWAPBUTTON =       0;
  2256.   SV_DBLCLKTIME =       1;
  2257.   SV_CXDBLCLK =         2;
  2258.   SV_CYDBLCLK =         3;
  2259.   SV_CXSIZEBORDER =     4;
  2260.   SV_CYSIZEBORDER =     5;
  2261.   SV_ALARM =            6;
  2262.  
  2263.   SV_RESERVEDFIRST1 =   7;
  2264.   SV_RESERVEDLAST1 =    8;
  2265.  
  2266.   SV_CURSORRATE =       9;
  2267.   SV_FIRSTSCROLLRATE =  10;
  2268.   SV_SCROLLRATE =       11;
  2269.   SV_NUMBEREDLISTS =    12;
  2270.   SV_WARNINGFREQ =      13;
  2271.   SV_NOTEFREQ =         14;
  2272.   SV_ERRORFREQ =        15;
  2273.   SV_WARNINGDURATION =  16;
  2274.   SV_NOTEDURATION =     17;
  2275.   SV_ERRORDURATION =    18;
  2276.  
  2277.   SV_RESERVEDFIRST =    19;
  2278.   SV_RESERVEDLAST =     19;
  2279.  
  2280.   SV_CXSCREEN =         20;
  2281.   SV_CYSCREEN =         21;
  2282.   SV_CXVSCROLL =        22;
  2283.   SV_CYHSCROLL =        23;
  2284.   SV_CYVSCROLLARROW =   24;
  2285.   SV_CXHSCROLLARROW =   25;
  2286.   SV_CXBORDER =         26;
  2287.   SV_CYBORDER =         27;
  2288.   SV_CXDLGFRAME =       28;
  2289.   SV_CYDLGFRAME =       29;
  2290.   SV_CYTITLEBAR =       30;
  2291.   SV_CYVSLIDER =        31;
  2292.   SV_CXHSLIDER =        32;
  2293.   SV_CXMINMAXBUTTON =   33;
  2294.   SV_CYMINMAXBUTTON =   34;
  2295.   SV_CYMENU =           35;
  2296.   SV_CXFULLSCREEN =     36;
  2297.   SV_CYFULLSCREEN =     37;
  2298.   SV_CXICON =           38;
  2299.   SV_CYICON =           39;
  2300.   SV_CXPOINTER =        40;
  2301.   SV_CYPOINTER =        41;
  2302.  
  2303.   SV_DEBUG =            42;
  2304.   SV_CMOUSEBUTTONS =    43;
  2305.   SV_POINTERLEVEL =     44;
  2306.   SV_CURSORLEVEL =      45;
  2307.   SV_TRACKRECTLEVEL =   46;
  2308.  
  2309.   SV_CTIMERS =          47;
  2310.   SV_MOUSEPRESENT =     48;
  2311.   SV_CXBYTEALIGN =      49;
  2312.   SV_CYBYTEALIGN =      50;
  2313.  
  2314.     SV_NOTRESERVED  = 56;
  2315.     SV_EXTRAKEYBEEP  = 57;
  2316.  
  2317.     SV_SETLIGHTS  = 58;
  2318.     SV_INSERTMODE  = 59;
  2319.  
  2320.     SV_MENUROLLDOWNDELAY  = 64;
  2321.     SV_MENUROLLUPDELAY    = 65;
  2322.     SV_ALTMNEMONIC    = 66;
  2323.     SV_TASKLISTMOUSEACCESS  = 67;
  2324.     SV_CSYSVALUESS    = 68;
  2325.  
  2326.     SV_CPOINTERBUTTONS    = 69;
  2327.     SV_CXALIGN      = 70;
  2328.     SV_CYALIGN      = 71;
  2329.     SV_MNEMONICSENABLED    = 72;
  2330.  
  2331. TYPE
  2332.   Param = RECORD
  2333.     id  : LongInt;
  2334.     cb  : LongInt;
  2335.     ab  : ARRAY [0..0] OF CHAR;
  2336.   END;
  2337.  
  2338.   PResParams = RECORD
  2339.     cb      : LongInt;
  2340.     aParam  : ARRAY [0..0] OF Param;
  2341.   END;
  2342.  
  2343.   FUNCTION WinSetPresParam(    a : hWnd;
  2344.                                b : LongInt;
  2345.                            VAR c : LongInt;
  2346.                                d : pVoid) : BOOLEAN;
  2347.   FUNCTION Win16SetPresParam(    a : hWnd;
  2348.                                b : LongInt;
  2349.                            VAR c : LongInt;
  2350.                                d : pVoid) : BOOLEAN;
  2351.  
  2352.   FUNCTION WinQueryPresParam(    a : hWnd;
  2353.                                  b : LongInt;
  2354.                                  c : LongInt;
  2355.                              VAR d : LongInt;
  2356.                                  e : LongInt;
  2357.                                  f : pVoid;
  2358.                                  g : WORD) : LongInt;
  2359.   FUNCTION Win16QueryPresParam(    a : hWnd;
  2360.                                  b : LongInt;
  2361.                                  c : LongInt;
  2362.                              VAR d : LongInt;
  2363.                                  e : LongInt;
  2364.                                  f : pVoid;
  2365.                                  g : WORD) : LongInt;
  2366.  
  2367.   FUNCTION WinRemovePresParam(a : hWnd; b : LongInt) : BOOLEAN;
  2368.   FUNCTION Win16RemovePresParam(a : hWnd; b : LongInt) : BOOLEAN;
  2369.  
  2370. CONST
  2371.   PP_FOREGROUNDCOLOR             =   1;
  2372.   PP_FOREGROUNDCOLORINDEX        =   2;
  2373.   PP_BACKGROUNDCOLOR             =   3;
  2374.   PP_BACKGROUNDCOLORINDEX        =   4;
  2375.   PP_HILITEFOREGROUNDCOLOR       =   5;
  2376.   PP_HILITEFOREGROUNDCOLORINDEX  =   6;
  2377.   PP_HILITEBACKGROUNDCOLOR       =   7;
  2378.   PP_HILITEBACKGROUNDCOLORINDEX  =   8;
  2379.   PP_DISABLEFOREGROUNDCOLOR      =   9;
  2380.   PP_DISABLEFOREGROUNDCOLORINDEX = $10;
  2381.   PP_DISABLEBACKGROUNDCOLOR      = $11;
  2382.   PP_DISABLEBACKGROUNDCOLORINDEX = $12;
  2383.   PP_BORDERCOLOR                 = $13;
  2384.   PP_BORDERCOLORINDEX            = $14;
  2385.   PP_FONTNAMESIZE                = $15;
  2386.   PP_FONTHANDLE                  = $16;
  2387.  
  2388.   QPF_NOINHERIT                  =   1;
  2389.   QPF_ID1COLORINDEX              =   2;
  2390.   QPF_ID2COLORINDEX              =   4;
  2391.   QPF_PURERGBCOLOR               =   8;
  2392.   QPF_VALIDFLAGS                 = $0F;
  2393.  
  2394. (*** System color functions *)
  2395.  
  2396.   FUNCTION WinQuerySysColor(hWndDesktop : hWnd;
  2397.                             clr         : Color;
  2398.                             lReserved   : LongInt) : Color;
  2399.   FUNCTION Win16QuerySysColor(hWndDesktop : hWnd;
  2400.                             clr         : Color;
  2401.                             lReserved   : LongInt) : Color;
  2402.  
  2403.   FUNCTION WinSetSysColors(hWndDesktop : hWnd;
  2404.                            flOptions   : LongInt;
  2405.                            flFormat    : LongInt;
  2406.                            clrFirst    : Color;
  2407.                            cclr        : LongInt;
  2408.                            pclr        : pColor) : BOOLEAN;
  2409.   FUNCTION Win16SetSysColors(hWndDesktop : hWnd;
  2410.                            flOptions   : LongInt;
  2411.                            flFormat    : LongInt;
  2412.                            clrFirst    : Color;
  2413.                            cclr        : LongInt;
  2414.                            pclr        : pColor) : BOOLEAN;
  2415.  
  2416. CONST
  2417.   SYSCLR_BUTTONLIGHT           = -41;
  2418.   SYSCLR_BUTTONMIDDLE          = -40;
  2419.   SYSCLR_BUTTONDARK            = -39;
  2420.   SYSCLR_BUTTONDEFAULT         = -38;
  2421.   SYSCLR_TITLEBOTTOM           = -37;
  2422.   SYSCLR_SHADOW                = -36;
  2423.   SYSCLR_ICONTEXT              = -35;
  2424.   SYSCLR_DIALOGBACKGROUND      = -34;
  2425.   SYSCLR_HILITEFOREGROUND      = -33;
  2426.   SYSCLR_HILITEBACKGROUND      = -32;
  2427.   SYSCLR_INACTIVETITLETEXTBGND = -31;
  2428.   SYSCLR_ACTIVETITLETEXTBGND   = -30;
  2429.   SYSCLR_INACTIVETITLETEXT     = -29;
  2430.   SYSCLR_ACTIVETITLETEXT       = -28;
  2431.   SYSCLR_OUTPUTTEXT            = -27;
  2432.   SYSCLR_WINDOWSTATICTEXT      = -26;
  2433.   SYSCLR_SCROLLBAR             = -25;
  2434.   SYSCLR_BACKGROUND            = -24;
  2435.   SYSCLR_ACTIVETITLE           = -23;
  2436.   SYSCLR_INACTIVETITLE    = -22;
  2437.   SYSCLR_MENU      = -21;
  2438.   SYSCLR_WINDOW      = -20;
  2439.   SYSCLR_WINDOWFRAME    = -19;
  2440.   SYSCLR_MENUTEXT     = -18;
  2441.   SYSCLR_WINDOWTEXT    = -17;
  2442.   SYSCLR_TITLETEXT    = -16;
  2443.   SYSCLR_ACTIVEBORDER    = -15;
  2444.   SYSCLR_INACTIVEBORDER    = -14;
  2445.   SYSCLR_APPWORKSPACE    = -13;
  2446.   SYSCLR_HELPBACKGROUND    = -12;
  2447.   SYSCLR_HELPTEXT     = -11;
  2448.   SYSCLR_HELPHILITE    = -10;
  2449.  
  2450.   SYSCLR_CSYSCOLORS    = $32;
  2451.  
  2452.  
  2453. (**** Timer manager *)
  2454.  
  2455.   FUNCTION WinStartTimer(ahab     : HAB;
  2456.                          aHwnd    : hWnd;
  2457.                          idTimer  : WORD;
  2458.                          lTimeout : WORD) : WORD;
  2459.   FUNCTION Win16StartTimer(ahab     : HAB;
  2460.                          aHwnd    : hWnd;
  2461.                          idTimer  : WORD;
  2462.                          lTimeout : WORD) : WORD;
  2463.  
  2464.   FUNCTION WinStopTimer(ahab : HAB; aHwnd : hWnd; idTimer : WORD) : BOOLEAN;
  2465.   FUNCTION Win16StopTimer(ahab : HAB; aHwnd : hWnd; idTimer : WORD) : BOOLEAN;
  2466.  
  2467.   FUNCTION WinGetCurrentTime(ahab : HAB) : LongInt;
  2468.   FUNCTION Win16GetCurrentTime(ahab : HAB) : LongInt;
  2469.  
  2470. CONST
  2471.   TID_CURSOR       = $0FFFF;  (* Reserved cursor timer ID *)
  2472.   TID_SCROLL       = $0FFFE;  (* Reserved scrolling timer ID *)
  2473.   TID_FLASHWINDOW  = $0FFFD;  (* Reserved for window flashing timer ID *)
  2474.   TID_USERMAX      = $7FFF;
  2475.  
  2476. (**** Accelerator functions *)
  2477.  
  2478. (* ACCEL fs bits
  2479.  *
  2480.  * NOTE: the first six AF_ code bits have the same value
  2481.  * as their KC_ counterparts
  2482.  *)
  2483.   AF_CHAR =         $00001;
  2484.   AF_VIRTUALKEY =   $00002;
  2485.   AF_SCANCODE =     $00004;
  2486.   AF_SHIFT =        $00008;
  2487.   AF_CONTROL =      $00010;
  2488.   AF_ALT =          $00020;
  2489.   AF_LONEKEY =      $00040;
  2490.   AF_SYSCOMMAND =   $00100;
  2491.   AF_HELP =         $00200;
  2492.  
  2493. TYPE
  2494.   hAccel = LHandle;  (* haccel *)
  2495.  
  2496.   Accel = RECORD        (* acc *)
  2497.     cmd : WORD;
  2498.     fs  : WORD;
  2499.     Key : WORD;
  2500.   END;
  2501.   pAccel = ^Accel;
  2502.  
  2503.   AccelTable = RECORD   (* acct  *)
  2504.     cAccel   : WORD;
  2505.     codepage : WORD;
  2506.     aAccel   : Accel;
  2507.   END;
  2508.   pAccelTable = ^AccelTable;
  2509.  
  2510.   FUNCTION WinLoadAccelTable(ahab         : HAB;
  2511.                              hMod         : hModule;
  2512.                              idAccelTable : WORD) : hAccel;
  2513.   FUNCTION Win16LoadAccelTable(ahab         : HAB;
  2514.                              hMod         : hModule;
  2515.                              idAccelTable : WORD) : hAccel;
  2516.  
  2517.   FUNCTION WinCreateAccelTable(    ahab  : HAB;
  2518.                                VAR pAcct : { LONG } AccelTable) : hAccel;
  2519.   FUNCTION Win16CreateAccelTable(    ahab  : HAB;
  2520.                                VAR pAcct : { LONG } AccelTable) : hAccel;
  2521.  
  2522.   FUNCTION WinDestroyAccelTable(ahAccel : hAccel) : BOOLEAN;
  2523.   FUNCTION Win16DestroyAccelTable(ahAccel : hAccel) : BOOLEAN;
  2524.  
  2525.   FUNCTION WinCopyAccelTable(    ahAccel   : hAccel;
  2526.                              VAR pAcct     : { LONG } AccelTable;
  2527.                                  cbCopyMax : WORD) : WORD;
  2528.   FUNCTION Win16CopyAccelTable(    ahAccel   : hAccel;
  2529.                              VAR pAcct     : { LONG } AccelTable;
  2530.                                  cbCopyMax : WORD) : WORD;
  2531.  
  2532.   FUNCTION WinTranslateAccel(    ahab    : HAB;
  2533.                                  aHwnd   : hWnd;
  2534.                                  ahAccel : hAccel;
  2535.                              VAR pQMsg   : { LONG } QMsg) : BOOLEAN;
  2536.   FUNCTION Win16TranslateAccel(    ahab    : HAB;
  2537.                                  aHwnd   : hWnd;
  2538.                                  ahAccel : hAccel;
  2539.                              VAR pQMsg   : { LONG } QMsg) : BOOLEAN;
  2540.  
  2541.   FUNCTION WinSetAccelTable(ahab      : HAB;
  2542.                             ahAccel   : hAccel;
  2543.                             hWndFrame : hWnd) : BOOLEAN;
  2544.   FUNCTION Win16SetAccelTable(ahab      : HAB;
  2545.                             ahAccel   : hAccel;
  2546.                             hWndFrame : hWnd) : BOOLEAN;
  2547.  
  2548.   FUNCTION WinQueryAccelTable(ahab      : HAB;
  2549.                               hWndFrame : hWnd) : hAccel;
  2550.   FUNCTION Win16QueryAccelTable(ahab      : HAB;
  2551.                               hWndFrame : hWnd) : hAccel;
  2552.  
  2553. CONST
  2554.   EAF_DEFAULTOWNER  = 1;
  2555.   EAF_UNCHANGEABLE  = 2;
  2556.   EAF_REUSEICON     = 4;
  2557.  
  2558. (*** WinTrackRect() stuff *)
  2559. (* WinTrackRect() tracking information structure *)
  2560.  
  2561. TYPE
  2562.   TrackInfo = RECORD    (* ti *)
  2563.     cxBorder        : INTEGER;
  2564.     cyBorder        : INTEGER;
  2565.     cxGrid          : INTEGER;
  2566.     cyGrid          : INTEGER;
  2567.     cxKeyboard      : INTEGER;
  2568.     cyKeyboard      : INTEGER;
  2569.     rclTrack        : RectL;
  2570.     rclBoundary     : RectL;
  2571.     ptlMinTrackSize : PointL;
  2572.     ptlMaxTrackSize : PointL;
  2573.     fs              : WORD;
  2574.     cxLeft          : WORD;
  2575.     cyBottom        : WORD;
  2576.     cxRight         : WORD;
  2577.     cyTop           : WORD;
  2578.   END;
  2579.   pTrackInfo = ^TrackInfo;
  2580.  
  2581.   FUNCTION WinTrackRect(    aHwnd : hWnd;
  2582.                             ahps  : hPs;
  2583.                         VAR pti   : { LONG } TrackInfo) : BOOLEAN;
  2584.   FUNCTION Win16TrackRect(    aHwnd : hWnd;
  2585.                             ahps  : hPs;
  2586.                         VAR pti   : { LONG } TrackInfo) : BOOLEAN;
  2587.  
  2588.   FUNCTION WinShowTrackRect(aHwnd : hWnd; fShow : BOOLEAN) : BOOLEAN;
  2589.   FUNCTION Win16ShowTrackRect(aHwnd : hWnd; fShow : BOOLEAN) : BOOLEAN;
  2590.  
  2591. (* WinTrackRect() flags *)
  2592. CONST
  2593.   TF_LEFT =              $00001;
  2594.   TF_TOP =               $00002;
  2595.   TF_RIGHT =             $00004;
  2596.   TF_BOTTOM =            $00008;
  2597. (* TF_MOVE = TF_LEFT | TF_TOP | TF_RIGHT | TF_BOTTOM *)
  2598.   TF_MOVE =              $0000F;
  2599.  
  2600.   TF_SETPOINTERPOS =     $00010;
  2601.   TF_GRID =              $00020;
  2602.   TF_STANDARD =          $00040;
  2603.   TF_ALLINBOUNDARY =     $00080;
  2604.   TF_VALIDATETRACKRECT = $00100;
  2605.   TF_PARTINBOUNDARY =    $00200;
  2606.  
  2607. (* Special rectangle relative flags *)
  2608.   TF_FIXLEFT =           $00400;
  2609.   TF_FIXTOP =            $00800;
  2610.   TF_FIXRIGHT =          $01000;
  2611.   TF_FIXBOTTOM =         $02000;
  2612.  
  2613. (**** Clipboard Manager *)
  2614.  
  2615. (* Clipboard messages *)
  2616.  
  2617.   WM_RENDERFMT =        $00060;
  2618.   WM_RENDERALLFMTS =    $00061;
  2619.   WM_DESTROYCLIPBOARD = $00062;
  2620.   WM_PAINTCLIPBOARD =   $00063;
  2621.   WM_SIZECLIPBOARD =    $00064;
  2622.   WM_HSCROLLCLIPBOARD = $00065;
  2623.   WM_VSCROLLCLIPBOARD = $00066;
  2624.   WM_DRAWCLIPBOARD =    $00067;
  2625.  
  2626. (* Standard Clipboard formats *)
  2627.  
  2628.   CF_TEXT =             1;
  2629.   CF_BITMAP =           2;
  2630.   CF_DSPTEXT =          3;
  2631.   CF_DSPBITMAP =        4;
  2632.   CF_METAFILE =         5;
  2633.   CF_DSPMETAFILE =      6;
  2634.  
  2635.   FUNCTION WinSetClipbrdOwner(ahab  : HAB;
  2636.                               aHwnd : hWnd) : BOOLEAN;
  2637.   FUNCTION Win16SetClipbrdOwner(ahab  : HAB;
  2638.                               aHwnd : hWnd) : BOOLEAN;
  2639.  
  2640.   FUNCTION WinSetClipbrdData(ahab      : HAB;
  2641.                              ulData    : LongInt;
  2642.                              fmt       : WORD;
  2643.                              fsFmtInfo : WORD) : BOOLEAN;
  2644.   FUNCTION Win16SetClipbrdData(ahab      : HAB;
  2645.                              ulData    : LongInt;
  2646.                              fmt       : WORD;
  2647.                              fsFmtInfo : WORD) : BOOLEAN;
  2648.  
  2649.   FUNCTION WinQueryClipbrdData(ahab : HAB;
  2650.                                fmt  : WORD) : LongInt;
  2651.   FUNCTION Win16QueryClipbrdData(ahab : HAB;
  2652.                                fmt  : WORD) : LongInt;
  2653.  
  2654.   FUNCTION WinQueryClipbrdFmtInfo(    ahab       : HAB;
  2655.                                       fmt        : WORD;
  2656.                                   VAR pfsFmtInfo : WORD) : BOOLEAN;
  2657.   FUNCTION Win16QueryClipbrdFmtInfo(    ahab       : HAB;
  2658.                                       fmt        : WORD;
  2659.                                   VAR pfsFmtInfo : WORD) : BOOLEAN;
  2660.  
  2661.   FUNCTION WinSetClipbrdViewer(ahab : HAB; aHwnd : hWnd) : BOOLEAN;
  2662.   FUNCTION Win16SetClipbrdViewer(ahab : HAB; aHwnd : hWnd) : BOOLEAN;
  2663.  
  2664. (* WinSetClipbrdData() flags *)
  2665. CONST
  2666.   CFI_OWNERFREE =       $00001;
  2667.   CFI_OWNERDISPLAY =    $00002;
  2668.   CFI_SELECTOR =        $00100;
  2669.   CFI_HANDLE =          $00200;
  2670.  
  2671.   FUNCTION WinEnumClipbrdFmts(ahab : HAB; fmt : WORD) : WORD;
  2672.   FUNCTION Win16EnumClipbrdFmts(ahab : HAB; fmt : WORD) : WORD;
  2673.  
  2674.   FUNCTION WinEmptyClipbrd(ahab : HAB) : BOOLEAN;
  2675.   FUNCTION Win16EmptyClipbrd(ahab : HAB) : BOOLEAN;
  2676.  
  2677.   FUNCTION WinOpenClipbrd(ahab : HAB) : BOOLEAN;
  2678.   FUNCTION Win16OpenClipbrd(ahab : HAB) : BOOLEAN;
  2679.  
  2680.   FUNCTION WinCloseClipbrd(ahab : HAB) : BOOLEAN;
  2681.   FUNCTION Win16CloseClipbrd(ahab : HAB) : BOOLEAN;
  2682.  
  2683.   FUNCTION WinQueryClipbrdOwner(ahab : HAB; fLock : BOOLEAN) : hWnd;
  2684.   FUNCTION Win16QueryClipbrdOwner(ahab : HAB; fLock : BOOLEAN) : hWnd;
  2685.  
  2686.   FUNCTION WinQueryClipbrdViewer(ahab : HAB; fLock : BOOLEAN) : hWnd;
  2687.   FUNCTION Win16QueryClipbrdViewer(ahab : HAB; fLock : BOOLEAN) : hWnd;
  2688.  
  2689. (**** Cursor manager common subsection *)
  2690.  
  2691.   FUNCTION WinDestroyCursor(aHwnd : hWnd) : BOOLEAN;
  2692.   FUNCTION Win16DestroyCursor(aHwnd : hWnd) : BOOLEAN;
  2693.  
  2694.   FUNCTION WinShowCursor(aHwnd : hWnd; fShow : BOOLEAN) : BOOLEAN;
  2695.   FUNCTION Win16ShowCursor(aHwnd : hWnd; fShow : BOOLEAN) : BOOLEAN;
  2696.  
  2697.   FUNCTION WinCreateCursor(aHwnd    : hWnd;
  2698.                            x, y     : INTEGER;
  2699.                            cx, cy   : INTEGER;
  2700.                            fs       : WORD;
  2701.                            prclClip : { LONG } pRectL) : BOOLEAN;
  2702.   FUNCTION Win16CreateCursor(aHwnd    : hWnd;
  2703.                            x, y     : INTEGER;
  2704.                            cx, cy   : INTEGER;
  2705.                            fs       : WORD;
  2706.                            prclClip : { LONG } pRectL) : BOOLEAN;
  2707.  
  2708. (* WinCreateCursor() flags *)
  2709. CONST
  2710.   CURSOR_SOLID =     $00000;
  2711.   CURSOR_HALFTONE =  $00001;
  2712.   CURSOR_FRAME =     $00002;
  2713.   CURSOR_FLASH =     $00004;
  2714.   CURSOR_SETPOS =    $08000;
  2715.  
  2716. TYPE
  2717.   CursorInfo = RECORD    (* csri *)
  2718.     aHwnd   :  hWnd;
  2719.     x       : INTEGER;
  2720.     y       : INTEGER;
  2721.     cx      : INTEGER;
  2722.     cy      : INTEGER;
  2723.     fs      : WORD;
  2724.     rclClip : RectL;
  2725.   END;
  2726.   pCursorInfo = ^CursorInfo;
  2727.  
  2728.   FUNCTION WinQueryCursorInfo(    hWndDesktop : hWnd;
  2729.                               VAR pcsri       : { LONG } CursorInfo) : BOOLEAN;
  2730.   FUNCTION Win16QueryCursorInfo(    hWndDesktop : hWnd;
  2731.                               VAR pcsri       : { LONG } CursorInfo) : BOOLEAN;
  2732.  
  2733. (**** Pointer manager *)
  2734. TYPE
  2735.   hPointer = LHandle;
  2736.  
  2737.   FUNCTION WinSetPointer(hWndDesktop : hWnd; hptrNew : hPointer) : BOOLEAN;
  2738.   FUNCTION Win16SetPointer(hWndDesktop : hWnd; hptrNew : hPointer) : BOOLEAN;
  2739.  
  2740.   FUNCTION WinShowPointer(hWndDesktop : hWnd; fShow : BOOLEAN) : BOOLEAN;
  2741.   FUNCTION Win16ShowPointer(hWndDesktop : hWnd; fShow : BOOLEAN) : BOOLEAN;
  2742.  
  2743.   FUNCTION WinQuerySysPointer(hWndDesktop : hWnd;
  2744.                               iptr        : INTEGER;
  2745.                               fLoad       : BOOLEAN) : hPointer;
  2746.   FUNCTION Win16QuerySysPointer(hWndDesktop : hWnd;
  2747.                               iptr        : INTEGER;
  2748.                               fLoad       : BOOLEAN) : hPointer;
  2749.  
  2750. (* System pointers (NOTE: these are 1-based) *)
  2751. CONST
  2752.   SPTR_ARROW =            1;
  2753.   SPTR_TEXT =             2;
  2754.   SPTR_WAIT =             3;
  2755.   SPTR_MOVE =             4;
  2756.   SPTR_SIZENWSE =         5;
  2757.   SPTR_SIZENESW =         6;
  2758.   SPTR_SIZEWE =           7;
  2759.   SPTR_SIZENS =           8;
  2760.   SPTR_APPICON =          9;
  2761.   SPTR_ICONINFORMATION =  10;
  2762.   SPTR_ICONQUESTION =     11;
  2763.   SPTR_ICONERROR =        12;
  2764.   SPTR_ICONWARNING =      13;
  2765.   SPTR_CPTR =             13;    (* count loaded by pmwin *)
  2766.  
  2767.   SPTR_ILLEGAL =          14;
  2768.   SPTR_FILE =             15;
  2769.   SPTR_FOLDER =           16;
  2770.   SPTR_MULTFILE =         17;
  2771.   SPTR_PROGRAM =          18;
  2772.  
  2773.   FUNCTION WinLoadPointer(hWndDesktop : hWnd;
  2774.                           hMod        : hModule;
  2775.                           idPtr       : WORD) : hPointer;
  2776.   FUNCTION Win16LoadPointer(hWndDesktop : hWnd;
  2777.                           hMod        : hModule;
  2778.                           idPtr       : WORD) : hPointer;
  2779.  
  2780.   FUNCTION WinDestroyPointer(hptr : hPointer) : BOOLEAN;
  2781.   FUNCTION Win16DestroyPointer(hptr : hPointer) : BOOLEAN;
  2782.  
  2783.   FUNCTION WinCreatePointer(hWndDesktop : hWnd;
  2784.                             hbmPointer  : hBitmap;
  2785.                             fPointer    : BOOLEAN;
  2786.                             xHotspot    : INTEGER;
  2787.                             yHotspot    : INTEGER) : hPointer;
  2788.   FUNCTION Win16CreatePointer(hWndDesktop : hWnd;
  2789.                             hbmPointer  : hBitmap;
  2790.                             fPointer    : BOOLEAN;
  2791.                             xHotspot    : INTEGER;
  2792.                             yHotspot    : INTEGER) : hPointer;
  2793.  
  2794.   FUNCTION WinQueryPointer(hWndDesktop : hWnd) : hPointer;
  2795.   FUNCTION Win16QueryPointer(hWndDesktop : hWnd) : hPointer;
  2796.  
  2797.   FUNCTION WinSetPointerPos(hWndDesktop : hWnd;
  2798.                             x, y        : INTEGER) : BOOLEAN;
  2799.   FUNCTION Win16SetPointerPos(hWndDesktop : hWnd;
  2800.                             x, y        : INTEGER) : BOOLEAN;
  2801.  
  2802.   FUNCTION WinQueryPointerPos(    hWndDesktop : hWnd;
  2803.                               VAR pptl        : { LONG } PointL) : BOOLEAN;
  2804.   FUNCTION Win16QueryPointerPos(    hWndDesktop : hWnd;
  2805.                               VAR pptl        : { LONG } PointL) : BOOLEAN;
  2806.  
  2807. TYPE
  2808.   PointerInfo = RECORD   (* ptri *)
  2809.     fPointer   : BOOLEAN;
  2810.     xHotspot   : INTEGER;
  2811.     yHotspot   : INTEGER;
  2812.     hbmPointer : hBitmap;
  2813.   END;
  2814.   pPointerInfo = ^PointerInfo;
  2815.  
  2816.   FUNCTION WinCreatePointerIndirect(a : hWnd; b : PointerInfo) : hPointer;
  2817.   FUNCTION Win16CreatePointerIndirect(a : hWnd; b : PointerInfo) : hPointer;
  2818.  
  2819.   FUNCTION WinQueryPointerInfo(    hptr  : hPointer;
  2820.                                VAR pptri : { LONG } PointerInfo) : BOOLEAN;
  2821.   FUNCTION Win16QueryPointerInfo(    hptr  : hPointer;
  2822.                                VAR pptri : { LONG } PointerInfo) : BOOLEAN;
  2823.  
  2824.   FUNCTION WinDrawPointer(ahps : hPs;
  2825.                           x, y : INTEGER;
  2826.                           hptr : hPointer;
  2827.                           fs: WORD) : BOOLEAN;
  2828.   FUNCTION Win16DrawPointer(ahps : hPs;
  2829.                           x, y : INTEGER;
  2830.                           hptr : hPointer;
  2831.                           fs: WORD) : BOOLEAN;
  2832.  
  2833. (* WinDrawPointer()  constants *)
  2834. CONST
  2835.   DP_NORMAL =      $00000;
  2836.   DP_HALFTONED =   $00001;
  2837.   DP_INVERTED =    $00002;
  2838.  
  2839.   FUNCTION WinGetSysBitmap(hWndDesktop : hWnd; ibm : WORD) : hBitmap;
  2840.   FUNCTION Win16GetSysBitmap(hWndDesktop : hWnd; ibm : WORD) : hBitmap;
  2841.  
  2842. (* System bitmaps (NOTE: these are 1-based) *)
  2843. CONST
  2844.   SBMP_SYSMENU =          1;
  2845.   SBMP_SBUPARROW =        2;
  2846.   SBMP_SBDNARROW =        3;
  2847.   SBMP_SBRGARROW =        4;
  2848.   SBMP_SBLFARROW =        5;
  2849.   SBMP_MENUCHECK =        6;
  2850.   SBMP_CHECKBOXES =       7;
  2851.   SBMP_BTNCORNERS =       8;
  2852.   SBMP_MINBUTTON =        9;
  2853.   SBMP_MAXBUTTON =        10;
  2854.   SBMP_RESTOREBUTTON =    11;
  2855.   SBMP_CHILDSYSMENU =     12;
  2856.   SBMP_DRIVE =            15;
  2857.   SBMP_FILE =             16;
  2858.   SBMP_FOLDER =           17;
  2859.   SBMP_TREEPLUS =         18;
  2860.   SBMP_TREEMINUS =        19;
  2861.   SBMP_PROGRAM =          22;
  2862.   SBMP_MENUATTACHED =     23;
  2863.   SBMP_SIZEBOX =          24;
  2864.  
  2865. (*
  2866.     SBMP_SYSMENU    = 25;
  2867.     SBMP_MINBUTTON    = 26;
  2868.     SBMP_MAXBUTTON    = 27;
  2869.     SBMP_RESTOREBUTTON  = 28;
  2870.     SBMP_CHILDSYSMENU  = 29;
  2871. *)
  2872.     SBMP_SYSMENUDEP   = 30;
  2873.     SBMP_MINBUTTONDEP  = 31;
  2874.     SBMP_MAXBUTTONDEP  = 32;
  2875.     SBMP_RESTOREBUTTONDEP  = 33;
  2876.     SBMP_CHILDSYSMENUDEP  = 34;
  2877. (*
  2878.     SBMP_SBUPARROW    = 35;
  2879.     SBMP_SBDNARROW    = 36;
  2880.     SBMP_SBLFARROW    = 37;
  2881.     SBMP_SBRGARROW    = 38;
  2882. *)
  2883.     SBMP_SBUPARROWDEP  = 39;
  2884.     SBMP_SBDNARROWDEP  = 40;
  2885.     SBMP_SBLFARROWDEP  = 41;
  2886.     SBMP_SBRGARROWDEP  = 42;
  2887.     SBMP_SBUPARROWDIS  = 43;
  2888.     SBMP_SBDNARROWDIS  = 44;
  2889.     SBMP_SBLFARROWDIS  = 45;
  2890.     SBMP_SBRGARROWDIS  = 46;
  2891.     SBMP_COMBODOWN  = 47;
  2892.  
  2893.  
  2894. (**** Hook manager *)
  2895.  
  2896.   FUNCTION WinSetHook(ahab    : HAB;
  2897.                       aHmq    : hMQ;
  2898.                       iHook   : INTEGER;
  2899.                       pfnHook : pFN;
  2900.                       hMod    : hModule) : BOOLEAN;
  2901.   FUNCTION Win16SetHook(ahab    : HAB;
  2902.                       aHmq    : hMQ;
  2903.                       iHook   : INTEGER;
  2904.                       pfnHook : pFN;
  2905.                       hMod    : hModule) : BOOLEAN;
  2906.  
  2907.   FUNCTION WinReleaseHook(ahab    : HAB;
  2908.                           aHmq    : hMQ;
  2909.                           iHook   : INTEGER;
  2910.                           pfnHook : pFN;
  2911.                           hMod    : hModule) : BOOLEAN;
  2912.   FUNCTION Win16ReleaseHook(ahab    : HAB;
  2913.                           aHmq    : hMQ;
  2914.                           iHook   : INTEGER;
  2915.                           pfnHook : pFN;
  2916.                           hMod    : hModule) : BOOLEAN;
  2917.  
  2918.   FUNCTION WinCallMsgFilter(    ahab  : HAB;
  2919.                             VAR pQMsg : { LONG } QMsg;
  2920.                                 MsgF  : WORD) : BOOLEAN;
  2921.   FUNCTION Win16CallMsgFilter(    ahab  : HAB;
  2922.                             VAR pQMsg : { LONG } QMsg;
  2923.                                 MsgF  : WORD) : BOOLEAN;
  2924.  
  2925. (* Hook codes *)
  2926. CONST
  2927.   HK_SENDMSG =          0;
  2928.   HK_INPUT =            1;
  2929.   HK_MSGFILTER =        2;
  2930.   HK_JOURNALRECORD =    3;
  2931.   HK_JOURNALPLAYBACK =  4;
  2932.   HK_HELP =             5;
  2933.     HK_LOADER  = 6;
  2934.     HK_REGISTERUSERMSG  = 7;
  2935.     HK_MSGCONTROLL  = 8;
  2936.     HK_PLIST_ENTRY  = 9;
  2937.     HK_PLIST_EXIT  = 10;
  2938.     HK_FINDWORD    = 11;
  2939.     HK_CODEPAGECHANGED  = 12;
  2940.  
  2941.   HMQ_CURRENT =         1;
  2942.  
  2943. (* WH_MSGFILTER context codes *)
  2944.  
  2945.   MSGF_DIALOGBOX =      1;
  2946.   MSGF_MESSAGEBOX =     2;
  2947.   MSGF_TRACK =          8;
  2948.  
  2949. (* HK_HELP Help modes *)
  2950.  
  2951.   HLPM_FRAME =          (-1);
  2952.   HLPM_WINDOW =         (-2);
  2953.   HLPM_MENU =           (-3);
  2954.  
  2955. (* HK_SENDMSG structure *)
  2956.  
  2957. TYPE
  2958.   SMHStruct = RECORD    (* smhs *)
  2959.     Mp2  : mParam;
  2960.     Mp1  : mParam;
  2961.     Msg  : WORD;
  2962.     hWnd :   hWnd;
  2963.   END;
  2964.   pSMHStruct = ^SMHStruct;
  2965.  
  2966. CONST
  2967.   LHK_DELETEPROC  = 1;
  2968.   LHK_DELETELIB  = 2;
  2969.   LHK_LOADPROC  = 3;
  2970.   LHK_LOADLIB    = 4;
  2971.  
  2972.   MCHK_MSGINTEREST  = 1;
  2973.   MCHK_CLASSMSGINTEREST  = 2;
  2974.   MCHK_SYNCHRONISATION  = 3;
  2975.   MCHK_MSGMODE    = 4;
  2976.  
  2977.   RUMHK_DATATYPE  = 1;
  2978.   RUMHK_MSGMODE  = 2;
  2979.  
  2980.   FUNCTION WinQueryCp(aHmq : hMQ) : WORD;
  2981.   FUNCTION Win16QueryCp(aHmq : hMQ) : WORD;
  2982.  
  2983.   FUNCTION WinSetCp(aHmq : hMQ; idcp : WORD) : BOOLEAN;
  2984.   FUNCTION Win16SetCp(aHmq : hMQ; idcp : WORD) : BOOLEAN;
  2985.  
  2986.   FUNCTION WinQueryCpList(    ahab   : HAB;
  2987.                               ccpMax : WORD;
  2988.                           VAR pacp   : WORD) : WORD;
  2989.   FUNCTION Win16QueryCpList(    ahab   : HAB;
  2990.                               ccpMax : WORD;
  2991.                           VAR pacp   : WORD) : WORD;
  2992.  
  2993.   FUNCTION WinCpTranslateString(ahab       : HAB;
  2994.                                 cpSrc      : WORD;
  2995.                                 pszSrc     : pChar;
  2996.                                 cpDst      : WORD;
  2997.                                 cchDestMax : WORD;
  2998.                                 pszDest    : pChar) : BOOLEAN;
  2999.   FUNCTION Win16CpTranslateString(ahab       : HAB;
  3000.                                 cpSrc      : WORD;
  3001.                                 pszSrc     : pChar;
  3002.                                 cpDst      : WORD;
  3003.                                 cchDestMax : WORD;
  3004.                                 pszDest    : pChar) : BOOLEAN;
  3005.  
  3006.   FUNCTION WinCpTranslateChar(ahab  : HAB;
  3007.                               cpSrc : WORD;
  3008.                               chSrc : BYTE;
  3009.                               cpDst : WORD) : BYTE;
  3010.   FUNCTION Win16CpTranslateChar(ahab  : HAB;
  3011.                               cpSrc : WORD;
  3012.                               chSrc : BYTE;
  3013.                               cpDst : WORD) : BYTE;
  3014.  
  3015.   FUNCTION WinUpper(ahab : HAB;
  3016.                     idcp : WORD;
  3017.                     idcc : WORD;
  3018.                     pChar  : pChar) : WORD;
  3019.   FUNCTION Win16Upper(ahab : HAB;
  3020.                     idcp : WORD;
  3021.                     idcc : WORD;
  3022.                     pChar  : pChar) : WORD;
  3023.  
  3024.   FUNCTION WinUpperChar(ahab : HAB;
  3025.                         idcp : WORD;
  3026.                         idcc : WORD;
  3027.                         c    : WORD) : WORD;
  3028.   FUNCTION Win16UpperChar(ahab : HAB;
  3029.                         idcp : WORD;
  3030.                         idcc : WORD;
  3031.                         c    : WORD) : WORD;
  3032.  
  3033.   FUNCTION WinNextChar(ahab : HAB;
  3034.                        idcp : WORD;
  3035.                        idcc : WORD;
  3036.                        pChar  : pChar) : pChar;
  3037.   FUNCTION Win16NextChar(ahab : HAB;
  3038.                        idcp : WORD;
  3039.                        idcc : WORD;
  3040.                        pChar  : pChar) : pChar;
  3041.  
  3042.   FUNCTION WinPrevChar(ahab     : HAB;
  3043.                        idcp     : WORD;
  3044.                        idcc     : WORD;
  3045.                        pszStart : pChar;
  3046.                        pChar      : pChar) : pChar;
  3047.   FUNCTION Win16PrevChar(ahab     : HAB;
  3048.                        idcp     : WORD;
  3049.                        idcc     : WORD;
  3050.                        pszStart : pChar;
  3051.                        pChar      : pChar) : pChar;
  3052.  
  3053.   FUNCTION WinCompareStrings(ahab     : HAB;
  3054.                              idcp     : WORD;
  3055.                              idcc     : WORD;
  3056.                              psz1     : pChar;
  3057.                              psz2     : pChar;
  3058.                              Reserved : WORD):  WORD;
  3059.   FUNCTION Win16CompareStrings(ahab     : HAB;
  3060.                              idcp     : WORD;
  3061.                              idcc     : WORD;
  3062.                              psz1     : pChar;
  3063.                              psz2     : pChar;
  3064.                              Reserved : WORD):  WORD;
  3065.  
  3066. CONST
  3067.   WCS_ERROR = 0;
  3068.   WCS_EQ =    1;
  3069.   WCS_LT =    2;
  3070.   WCS_GT =    3;
  3071.  
  3072. (* Heap Manager Interface declarations *)
  3073. TYPE
  3074.   hHeap = LHandle;
  3075.  
  3076. (* structure for moveable heap *)
  3077.  
  3078. TYPE
  3079.   MovBlockHdr = RECORD     (* mbhdr *)
  3080.     ppmem : ^nPByte;
  3081.     cb    :  WORD;
  3082.   END;
  3083.   pMovBlockHdr = ^MovBlockHdr;
  3084.  
  3085. (* macro for creating a back pointer *)
  3086. (*
  3087. #define SETMEMBACKPTR(npb) (((PMOVBLOCKHDR) npb)-1)->ppmem = &npb
  3088. *)
  3089.  
  3090.   FUNCTION WinCreateHeap(selHeapBase : WORD;
  3091.                          cbHeap      : WORD;
  3092.                          cbGrow      : WORD;
  3093.                          chMinDed    : WORD;
  3094.                          cbMaxDed    : WORD;
  3095.                          fsOptions   : WORD) : hHeap;
  3096.   FUNCTION Win16CreateHeap(selHeapBase : WORD;
  3097.                          cbHeap      : WORD;
  3098.                          cbGrow      : WORD;
  3099.                          chMinDed    : WORD;
  3100.                          cbMaxDed    : WORD;
  3101.                          fsOptions   : WORD) : hHeap;
  3102.  
  3103.   FUNCTION WinDestroyHeap(hHeap : hHeap) : hHeap;
  3104.   FUNCTION Win16DestroyHeap(hHeap : hHeap) : hHeap;
  3105.  
  3106.   FUNCTION WinAvailMem(ahHeap    : hHeap;
  3107.                        fCompact  : BOOLEAN;
  3108.                        cbMinFree : WORD) : WORD;
  3109.   FUNCTION Win16AvailMem(ahHeap    : hHeap;
  3110.                        fCompact  : BOOLEAN;
  3111.                        cbMinFree : WORD) : WORD;
  3112.  
  3113.   FUNCTION WinAllocMem(hHeap : hHeap; cb : WORD) : nPByte;
  3114.   FUNCTION Win16AllocMem(hHeap : hHeap; cb : WORD) : nPByte;
  3115.  
  3116.   FUNCTION WinReallocMem(hHeap : hHeap;
  3117.                          npMem : nPByte;
  3118.                          cbOld : WORD;
  3119.                          cbNew : WORD) : nPByte;
  3120.   FUNCTION Win16ReallocMem(hHeap : hHeap;
  3121.                          npMem : nPByte;
  3122.                          cbOld : WORD;
  3123.                          cbNew : WORD) : nPByte;
  3124.  
  3125.   FUNCTION WinFreeMem(ahHeap : hHeap;
  3126.                       npMem  : nPByte;
  3127.                       cbMem  : WORD) : nPByte;
  3128.   FUNCTION Win16FreeMem(ahHeap : hHeap;
  3129.                       npMem  : nPByte;
  3130.                       cbMem  : WORD) : nPByte;
  3131.  
  3132.   FUNCTION WinLockHeap(ahHeap : hHeap) : pVoid;
  3133.   FUNCTION Win16LockHeap(ahHeap : hHeap) : pVoid;
  3134.  
  3135. CONST
  3136.   HM_MOVEABLE =     $00001;      (* Parameters to WinCreateHeap *)
  3137.   HM_VALIDSIZE =    $00002;
  3138.  
  3139. (*** Atom Manager Interface declarations *)
  3140. TYPE
  3141.    hAtomTbl = LHandle;
  3142.    Atom     = WORD;
  3143.  
  3144.   FUNCTION WinQuerySystemAtomTable : hAtomTbl;
  3145.   FUNCTION Win16QuerySystemAtomTable : hAtomTbl;
  3146.  
  3147.   FUNCTION WinCreateAtomTable(cbInitial : WORD;
  3148.                               cBuckets  : WORD) : hAtomTbl;
  3149.   FUNCTION Win16CreateAtomTable(cbInitial : WORD;
  3150.                               cBuckets  : WORD) : hAtomTbl;
  3151.  
  3152.   FUNCTION WinDestroyAtomTable(hAtomTbl : hAtomTbl) : hAtomTbl;
  3153.   FUNCTION Win16DestroyAtomTable(hAtomTbl : hAtomTbl) : hAtomTbl;
  3154.  
  3155.   FUNCTION WinAddAtom(hAtomTbl    : hAtomTbl;
  3156.                       pszAtomName : pChar) : Atom;
  3157.   FUNCTION Win16AddAtom(hAtomTbl    : hAtomTbl;
  3158.                       pszAtomName : pChar) : Atom;
  3159.  
  3160.   FUNCTION WinFindAtom(hAtomTbl : hAtomTbl; pszAtomName : pChar) : Atom;
  3161.   FUNCTION Win16FindAtom(hAtomTbl : hAtomTbl; pszAtomName : pChar) : Atom;
  3162.  
  3163.   FUNCTION WinDeleteAtom(hAtomTbl : hAtomTbl; Atom : Atom) : Atom;
  3164.   FUNCTION Win16DeleteAtom(hAtomTbl : hAtomTbl; Atom : Atom) : Atom;
  3165.  
  3166.   FUNCTION WinQueryAtomUsage(hAtomTbl : hAtomTbl; Atom : Atom) : WORD;
  3167.   FUNCTION Win16QueryAtomUsage(hAtomTbl : hAtomTbl; Atom : Atom) : WORD;
  3168.  
  3169.   FUNCTION WinQueryAtomLength(hAtomTbl : hAtomTbl; Atom : Atom) : WORD;
  3170.   FUNCTION Win16QueryAtomLength(hAtomTbl : hAtomTbl; Atom : Atom) : WORD;
  3171.  
  3172.   FUNCTION WinQueryAtomName(ahAtomTbl    : hAtomTbl;
  3173.                             anAtom       : Atom;
  3174.                             pszBuffer    : pChar;
  3175.                             cchBufferMax : WORD) : WORD;
  3176.   FUNCTION Win16QueryAtomName(ahAtomTbl    : hAtomTbl;
  3177.                             anAtom       : Atom;
  3178.                             pszBuffer    : pChar;
  3179.                             cchBufferMax : WORD) : WORD;
  3180.  
  3181. (***
  3182. #define MAKEINTATOM(a)  ((PCH)MAKELongInt(a, 0xffff))
  3183. ***)
  3184.  
  3185. (*** Catch/Throw Interface declarations *)
  3186. TYPE
  3187.   CatchBuf = RECORD   (* ctchbf *)
  3188.     Reserved : ARRAY [0..3] OF LongInt;
  3189.   END;
  3190.   pCatchBuf = ^CatchBuf;
  3191.  
  3192.   FUNCTION WinCatch(VAR pctchbf : { LONG } CatchBuf) : INTEGER;
  3193.   FUNCTION Win16Catch(VAR pctchbf : { LONG } CatchBuf) : INTEGER;
  3194.  
  3195.   FUNCTION WinThrow(VAR pctchbf      : { LONG } CatchBuf;
  3196.                         sErrorReturn : INTEGER) : INTEGER;
  3197.   FUNCTION Win16Throw(VAR pctchbf      : { LONG } CatchBuf;
  3198.                         sErrorReturn : INTEGER) : INTEGER;
  3199.  
  3200. CONST
  3201.   PMERR_INVALID_HWND =                  $01001;
  3202.   PMERR_INVALID_HMQ =                   $01002;
  3203.   PMERR_PARAMETER_OUT_OF_RANGE =        $01003;
  3204.   PMERR_WINDOW_LOCK_UNDERFLOW =         $01004;
  3205.   PMERR_WINDOW_LOCK_OVERFLOW =          $01005;
  3206.   PMERR_BAD_WINDOW_LOCK_COUNT =         $01006;
  3207.   PMERR_WINDOW_NOT_LOCKED =             $01007;
  3208.   PMERR_INVALID_SELECTOR =              $01008;
  3209.   PMERR_CALL_FROM_WRONG_THREAD =        $01009;
  3210.   PMERR_RESOURCE_NOT_FOUND =            $0100A;
  3211.   PMERR_INVALID_STRING_PARM =           $0100B;
  3212.   PMERR_INVALID_HHEAP =                 $0100C;
  3213.   PMERR_INVALID_HEAP_POINTER =          $0100D;
  3214.   PMERR_INVALID_HEAP_SIZE_PARM =        $0100E;
  3215.   PMERR_INVALID_HEAP_SIZE =             $0100F;
  3216.   PMERR_INVALID_HEAP_SIZE_WORD =        $01010;
  3217.   PMERR_HEAP_OUT_OF_MEMORY =            $01011;
  3218.   PMERR_HEAP_MAX_SIZE_REACHED =         $01012;
  3219.   PMERR_INVALID_HATOMTBL =              $01013;
  3220.   PMERR_INVALID_ATOM =                  $01014;
  3221.   PMERR_INVALID_ATOM_NAME =             $01015;
  3222.   PMERR_INVALID_INTEGER_ATOM =          $01016;
  3223.   PMERR_ATOM_NAME_NOT_FOUND =           $01017;
  3224.   PMERR_QUEUE_TOO_LARGE =               $01018;
  3225.   PMERR_INVALID_FLAG =                  $01019;
  3226.   PMERR_INVALID_HACCEL =                $0101A;
  3227.   PMERR_INVALID_HPTR =                  $0101B;
  3228.   PMERR_INVALID_HENUM =                 $0101C;
  3229.   PMERR_INVALID_SRC_CODEPAGE =          $0101D;
  3230.   PMERR_INVALID_DST_CODEPAGE =          $0101E;
  3231.  
  3232. (* These are not real error codes, but just used to access special   *)
  3233. (* error message strings used by WinGetErrorInfo to format an error *)
  3234. (* message.                                                         *)
  3235.  
  3236.   PMERR_UNKNOWN_COMPONENT_ID =          $0101F;
  3237.   PMERR_UNKNOWN_ERROR_CODE =            $01020;
  3238.   PMERR_SEVERITY_LEVELS =               $01021;
  3239.   PMERR_INVALID_RESOURCE_FORMAT =       $01034;
  3240.  
  3241. (* Error codes for debugging support *)
  3242.  
  3243.   WINDBG_HWND_NOT_DESTROYED =           $01022;
  3244.   WINDBG_HPTR_NOT_DESTROYED =           $01023;
  3245.   WINDBG_HACCEL_NOT_DESTROYED =         $01024;
  3246.   WINDBG_HENUM_NOT_DESTROYED =          $01025;
  3247.   WINDBG_VISRGN_SEM_BUSY =              $01026;
  3248.   WINDBG_USER_SEM_BUSY =                $01027;
  3249.   WINDBG_DC_CACHE_BUSY =                $01028;
  3250.   WINDBG_HOOK_STILL_INSTALLED =         $01029;
  3251.   WINDBG_WINDOW_STILL_LOCKED =          $0102A;
  3252.   WINDBG_UPDATEPS_ASSERTION_FAIL =      $0102B;
  3253.   WINDBG_SENDMSG_WITHIN_USER_SEM =      $0102C;
  3254.   WINDBG_USER_SEM_NOT_ENTERED =         $0102D;
  3255.   WINDBG_PROC_NOT_EXPORTED =            $0102E;
  3256.   WINDBG_BAD_SENDMSG_HWND =             $0102F;
  3257.   WINDBG_ABNORMAL_EXIT =                $01030;
  3258.   WINDBG_INTERNAL_REVISION =            $01031;
  3259.   WINDBG_INITSYSTEM_FAILED =            $01032;
  3260.   WINDBG_HATOMTBL_NOT_DESTROYED =       $01033;
  3261.   WINDBG_WINDOW_UNLOCK_WAIT =           $01035;
  3262.  
  3263. (* Get/Set Error Information Interface declarations *)
  3264.  
  3265. TYPE
  3266.   ERRINFO = RECORD    (* erri *)
  3267.     cbFixedErrInfo : WORD;
  3268.     idError        : ErrorId;
  3269.     cDetailLevel   : WORD;
  3270.     offaoffszMsg   : WORD;
  3271.     offBinaryData  : WORD;
  3272.   END;
  3273.   pErrInfo = ^ERRINFO;
  3274.  
  3275.   FUNCTION WinGetLastError(ahab : HAB) : ErrorId;
  3276.   FUNCTION Win16GetLastError(ahab : HAB) : ErrorId;
  3277.  
  3278.   FUNCTION WinGetErrorInfo(ahab : HAB) : pErrInfo;
  3279.   FUNCTION Win16GetErrorInfo(ahab : HAB) : pErrInfo;
  3280.  
  3281.   FUNCTION WinFreeErrorInfo(apErrInfo : pErrInfo) : BOOLEAN;
  3282.   FUNCTION Win16FreeErrorInfo(apErrInfo : pErrInfo) : BOOLEAN;
  3283.  
  3284. (* Dynamic Data Exchange (DDE) Structure Declaration *)
  3285. TYPE
  3286.   DdeInit = RECORD   (* ddei *)
  3287.     cb         : WORD;
  3288.     pszAppName : pChar;
  3289.     pszTopic   : pChar;
  3290.   END;
  3291.   pDdeInit = ^DdeInit;
  3292.  
  3293.   DdeStruct = RECORD    (* dde *)
  3294.     cbData        : LongInt;
  3295.     fsStatus      : WORD;
  3296.     usFormat      : WORD;
  3297.     offszItemName : WORD;
  3298.     offabData     : WORD;
  3299.   END;
  3300.   pDdeStruct = ^DdeStruct;
  3301.  
  3302. (* DDE  constants for wStatus field *)
  3303. CONST
  3304.   DDE_FACK =            $00001;
  3305.   DDE_FBUSY =           $00002;
  3306.   DDE_FNODATA =         $00004;
  3307.   DDE_FACKREQ =         $00008;
  3308.   DDE_FRESPONSE =       $00010;
  3309.   DDE_NOTPROCESSED =    $00020;
  3310.   DDE_FRESERVED =       $000C0;
  3311.   DDE_FAPPSTATUS =      $0FF00;
  3312.  
  3313. (* DDE public formats *)
  3314.   DDEFMT_TEXT =         $00001;
  3315.  
  3316. (* Dynamic Data Exchange (DDE) Routines *)
  3317.  
  3318.   FUNCTION WinDdeInitiate(hWndClient   : hWnd;
  3319.                           pszAppName   : pChar;
  3320.                           pszTopicName : pChar) : BOOLEAN;
  3321.   FUNCTION Win16DdeInitiate(hWndClient   : hWnd;
  3322.                           pszAppName   : pChar;
  3323.                           pszTopicName : pChar) : BOOLEAN;
  3324.  
  3325.   FUNCTION WinDdeRespond(hWndClient   : hWnd;
  3326.                          hWndServer   : hWnd;
  3327.                          pszAppName   : pChar;
  3328.                          pszTopicName : pChar) : mResult;
  3329.   FUNCTION Win16DdeRespond(hWndClient   : hWnd;
  3330.                          hWndServer   : hWnd;
  3331.                          pszAppName   : pChar;
  3332.                          pszTopicName : pChar) : mResult;
  3333.  
  3334.   FUNCTION WinDdePostMsg(hWndTo   : hWnd;
  3335.                          hWndFrom : hWnd;
  3336.                          wm       : WORD;
  3337.                          pddes    : { LONG } DdeStruct;
  3338.                          fRetry   : BOOLEAN) : BOOLEAN;
  3339.   FUNCTION Win16DdePostMsg(hWndTo   : hWnd;
  3340.                          hWndFrom : hWnd;
  3341.                          wm       : WORD;
  3342.                          pddes    : { LONG } DdeStruct;
  3343.                          fRetry   : BOOLEAN) : BOOLEAN;
  3344.  
  3345. (* Dynamic Data Exchange (DDE) Messages *)
  3346. CONST
  3347.   WM_DDE_FIRST =        $000A0;
  3348.   WM_DDE_INITIATE =     $000A0;
  3349.   WM_DDE_REQUEST =      $000A1;
  3350.   WM_DDE_ACK =          $000A2;
  3351.   WM_DDE_DATA =         $000A3;
  3352.   WM_DDE_ADVISE =       $000A4;
  3353.   WM_DDE_UNADVISE =     $000A5;
  3354.   WM_DDE_POKE =         $000A6;
  3355.   WM_DDE_EXECUTE =      $000A7;
  3356.   WM_DDE_TERMINATE =    $000A8;
  3357.   WM_DDE_INITIATEACK =  $000A9;
  3358.   WM_DDE_LAST =         $000AF;
  3359.  
  3360.   WM_QUERYCONVERTPOS =  $000B0;
  3361.  
  3362. (* Return values for WM_QUERYCONVERTPOS *)
  3363.  
  3364.   QCP_CONVERT =         $00001;
  3365.   QCP_NOCONVERT =       $00000;
  3366.  
  3367. TYPE
  3368.   hLib = hModule;
  3369.  
  3370.   FUNCTION WinDeleteProcedure  (a : HAB; b : pFnWp) : BOOLEAN;
  3371.   FUNCTION Win16DeleteProcedure(a : HAB; b : pFnWp) : BOOLEAN;
  3372.  
  3373.   FUNCTION WinDeleteLibrary  (a : HAB; b : hLib) : BOOLEAN;
  3374.   FUNCTION Win16DeleteLibrary(a : HAB; b : hLib) : BOOLEAN;
  3375.  
  3376.   FUNCTION WinLoadProcedure  (a : HAB; b : hLib; c : pChar) : { PFNWP } Pointer;
  3377.   FUNCTION Win16LoadProcedure(a : HAB; b : hLib; c : pChar) : { PFNWP } Pointer;
  3378.  
  3379.   FUNCTION WinLoadLibrary(a : HAB; b :  pChar) : hLib;
  3380.   FUNCTION Win16LoadLibrary(a : HAB; b :  pChar) : hLib;
  3381.  
  3382. CONST
  3383.     WM_DBCSFIRST    = $0B0;
  3384.     WM_DBCSLAST     = $0CF;
  3385.     WC_APPSTAT      = $0FFFF0010;
  3386.     WC_KBDSTAT      = $0FFFF0011;
  3387.     WC_PECIC        = $0FFFF0012;
  3388.     WC_DBE_KKPOPUP  = $0FFFF0013;
  3389.  
  3390. IMPLEMENTATION
  3391.   
  3392.   FUNCTION WinQueryDesktopWindow;   EXTERNAL 'PMWin'    INDEX   1;
  3393.   FUNCTION Win16QueryDesktopWindow; EXTERNAL 'PMWin'    INDEX   1;
  3394.  
  3395.   FUNCTION WinQueryObjectWindow;    EXTERNAL 'PMWin'    INDEX   2;
  3396.   FUNCTION Win16QueryObjectWindow;  EXTERNAL 'PMWin'    INDEX   2;
  3397.  
  3398.   FUNCTION WinRegisterClass;        EXTERNAL 'PMWin'    INDEX   3;
  3399.   FUNCTION Win16RegisterClass;      EXTERNAL 'PMWin'    INDEX   3;
  3400.  
  3401.   FUNCTION WinQueryClassName;       EXTERNAL 'PMWin'    INDEX   4;
  3402.   FUNCTION Win16QueryClassName;     EXTERNAL 'PMWin'    INDEX   4;
  3403.  
  3404.   FUNCTION WinQueryClassInfo;       EXTERNAL 'PMWin'    INDEX   5;
  3405.   FUNCTION Win16QueryClassInfo;     EXTERNAL 'PMWin'    INDEX   5;
  3406.  
  3407.   FUNCTION WinCreateWindow;         EXTERNAL 'PMWin'    INDEX   6;
  3408.   FUNCTION Win16CreateWindow;       EXTERNAL 'PMWin'    INDEX   6;
  3409.  
  3410.   FUNCTION WinDestroyWindow;        EXTERNAL 'PMWin'    INDEX   7;
  3411.   FUNCTION Win16DestroyWindow;      EXTERNAL 'PMWin'    INDEX   7;
  3412.  
  3413.   FUNCTION WinSetWindowPos;         EXTERNAL 'PMWin'    INDEX   8;
  3414.   FUNCTION Win16SetWindowPos;       EXTERNAL 'PMWin'    INDEX   8;
  3415.  
  3416.   FUNCTION WinSetMultWindowPos;     EXTERNAL 'PMWin'    INDEX   9;
  3417.   FUNCTION Win16SetMultWindowPos;   EXTERNAL 'PMWin'    INDEX   9;
  3418.  
  3419.   FUNCTION WinQueryWindowPos;       EXTERNAL 'PMWin'    INDEX  10;
  3420.   FUNCTION Win16QueryWindowPos;     EXTERNAL 'PMWin'    INDEX  10;
  3421.  
  3422.   FUNCTION WinEnableWindow;         EXTERNAL 'PMWin'    INDEX  11;
  3423.   FUNCTION Win16EnableWindow;       EXTERNAL 'PMWin'    INDEX  11;
  3424.  
  3425.   FUNCTION WinIsWindowEnabled;      EXTERNAL 'PMWin'    INDEX  12;
  3426.   FUNCTION Win16IsWindowEnabled;    EXTERNAL 'PMWin'    INDEX  12;
  3427.  
  3428.   FUNCTION WinShowWindow;           EXTERNAL 'PMWin'    INDEX  13;
  3429.   FUNCTION Win16ShowWindow;         EXTERNAL 'PMWin'    INDEX  13;
  3430.  
  3431.   FUNCTION WinEnableWindowUpdate;   EXTERNAL 'PMWin'    INDEX  14;
  3432.   FUNCTION Win16EnableWindowUpdate; EXTERNAL 'PMWin'    INDEX  14;
  3433.  
  3434.   FUNCTION WinIsWindowVisible;      EXTERNAL 'PMWin'    INDEX  15;
  3435.   FUNCTION Win16IsWindowVisible;    EXTERNAL 'PMWin'    INDEX  15;
  3436.  
  3437.   FUNCTION WinSetWindowText;        EXTERNAL 'PMWin'    INDEX  16;
  3438.   FUNCTION Win16SetWindowText;      EXTERNAL 'PMWin'    INDEX  16;
  3439.  
  3440.   FUNCTION WinQueryWindowText;      EXTERNAL 'PMWin'    INDEX  17;
  3441.   FUNCTION Win16QueryWindowText;    EXTERNAL 'PMWin'    INDEX  17;
  3442.  
  3443.   FUNCTION WinQueryWindowTextLength;EXTERNAL 'PMWin'    INDEX  18;
  3444.   FUNCTION Win16QueryWindowTextLength;EXTERNAL 'PMWin'  INDEX  18;
  3445.   FUNCTION WinWindowFromID;         EXTERNAL 'PMWin'    INDEX  19;
  3446.   FUNCTION Win16WindowFromID;       EXTERNAL 'PMWin'    INDEX  19;
  3447.  
  3448.   FUNCTION WinMultWindowFromIDs;    EXTERNAL 'PMWin'    INDEX  20;
  3449.   FUNCTION Win16MultWindowFromIDs;  EXTERNAL 'PMWin'    INDEX  20;
  3450.  
  3451.   FUNCTION WinIsWindow;             EXTERNAL 'PMWin'    INDEX  21;
  3452.   FUNCTION Win16IsWindow;           EXTERNAL 'PMWin'    INDEX  21;
  3453.  
  3454.   FUNCTION WinIsChild;              EXTERNAL 'PMWin'    INDEX  22;
  3455.   FUNCTION Win16IsChild;            EXTERNAL 'PMWin'    INDEX  22;
  3456.  
  3457.   FUNCTION WinSetParent;            EXTERNAL 'PMWin'    INDEX  23;
  3458.   FUNCTION Win16SetParent;          EXTERNAL 'PMWin'    INDEX  23;
  3459.  
  3460.   FUNCTION WinSetOwner;             EXTERNAL 'PMWin'    INDEX  24;
  3461.   FUNCTION Win16SetOwner;           EXTERNAL 'PMWin'    INDEX  24;
  3462.  
  3463.   FUNCTION WinQueryWindow;          EXTERNAL 'PMWin'    INDEX  25;
  3464.   FUNCTION Win16QueryWindow;        EXTERNAL 'PMWin'    INDEX  25;
  3465.  
  3466.   FUNCTION WinQueryWindowRect;      EXTERNAL 'PMWin'    INDEX  26;
  3467.   FUNCTION Win16QueryWindowRect;    EXTERNAL 'PMWin'    INDEX  26;
  3468.  
  3469.   FUNCTION WinQueryWindowProcess;   EXTERNAL 'PMWin'    INDEX  27;
  3470.   FUNCTION Win16QueryWindowProcess; EXTERNAL 'PMWin'    INDEX  27;
  3471.  
  3472.   FUNCTION WinSetWindowUShort;      EXTERNAL 'PMWin'    INDEX  28;
  3473.   FUNCTION Win16SetWindowUShort;    EXTERNAL 'PMWin'    INDEX  28;
  3474.  
  3475.   FUNCTION WinQueryWindowUShort;    EXTERNAL 'PMWin'    INDEX  29;
  3476.   FUNCTION Win16QueryWindowUShort;  EXTERNAL 'PMWin'    INDEX  29;
  3477.  
  3478.   FUNCTION WinSetWindowULong;       EXTERNAL 'PMWin'    INDEX  30;
  3479.   FUNCTION Win16SetWindowULong;     EXTERNAL 'PMWin'    INDEX  30;
  3480.  
  3481.   FUNCTION WinQueryWindowULong;     EXTERNAL 'PMWin'    INDEX  31;
  3482.   FUNCTION Win16QueryWindowULong;   EXTERNAL 'PMWin'    INDEX  31;
  3483.  
  3484.   FUNCTION WinBeginEnumWindows;     EXTERNAL 'PMWin'    INDEX  32;
  3485.   FUNCTION Win16BeginEnumWindows;   EXTERNAL 'PMWin'    INDEX  32;
  3486.  
  3487.   FUNCTION WinGetNextWindow;        EXTERNAL 'PMWin'    INDEX  33;
  3488.   FUNCTION Win16GetNextWindow;      EXTERNAL 'PMWin'    INDEX  33;
  3489.  
  3490.   FUNCTION WinEndEnumWindows;       EXTERNAL 'PMWin'    INDEX  34;
  3491.   FUNCTION Win16EndEnumWindows;     EXTERNAL 'PMWin'    INDEX  34;
  3492.  
  3493.   FUNCTION WinWindowFromPoint;      EXTERNAL 'PMWin'    INDEX  35;
  3494.   FUNCTION Win16WindowFromPoint;    EXTERNAL 'PMWin'    INDEX  35;
  3495.  
  3496.   FUNCTION WinMapWindowPoints;      EXTERNAL 'PMWin'    INDEX  36;
  3497.   FUNCTION Win16MapWindowPoints;    EXTERNAL 'PMWin'    INDEX  36;
  3498.  
  3499.   FUNCTION WinSubclassWindow;       EXTERNAL 'PMWin'    INDEX  37;
  3500.   FUNCTION Win16SubclassWindow;     EXTERNAL 'PMWin'    INDEX  37;
  3501.  
  3502.   FUNCTION WinLockWindow;           EXTERNAL 'PMWin'    INDEX  38;
  3503.   FUNCTION Win16LockWindow;         EXTERNAL 'PMWin'    INDEX  38;
  3504.  
  3505.   FUNCTION WinQueryWindowLockCount; EXTERNAL 'PMWin'    INDEX  39;
  3506.   FUNCTION Win16QueryWindowLockCount;EXTERNAL 'PMWin'   INDEX  39;
  3507.  
  3508.   FUNCTION WinRegisterWindowDestroy;EXTERNAL 'PMWin'    INDEX  40;
  3509.   FUNCTION Win16RegisterWindowDestroy;EXTERNAL 'PMWin'  INDEX  40;
  3510.  
  3511.   FUNCTION WinOpenWindowDC;         EXTERNAL 'PMWin'    INDEX  41;
  3512.   FUNCTION Win16OpenWindowDC;       EXTERNAL 'PMWin'    INDEX  41;
  3513.  
  3514.   FUNCTION WinGetScreenPS;          EXTERNAL 'PMWin'    INDEX  42;
  3515.   FUNCTION Win16GetScreenPS;        EXTERNAL 'PMWin'    INDEX  42;
  3516.  
  3517.   FUNCTION WinGetPS;                EXTERNAL 'PMWin'    INDEX  43;
  3518.   FUNCTION Win16GetPS;              EXTERNAL 'PMWin'    INDEX  43;
  3519.  
  3520.   FUNCTION WinReleasePS;            EXTERNAL 'PMWin'    INDEX  44;
  3521.   FUNCTION Win16ReleasePS;          EXTERNAL 'PMWin'    INDEX  44;
  3522.  
  3523.   FUNCTION WinBeginPaint;           EXTERNAL 'PMWin'    INDEX  45;
  3524.   FUNCTION Win16BeginPaint;         EXTERNAL 'PMWin'    INDEX  45;
  3525.  
  3526.   FUNCTION WinEndPaint;             EXTERNAL 'PMWin'    INDEX  46;
  3527.   FUNCTION Win16EndPaint;           EXTERNAL 'PMWin'    INDEX  46;
  3528.  
  3529.   FUNCTION WinInvalidateRect;       EXTERNAL 'PMWin'    INDEX  47;
  3530.   FUNCTION Win16InvalidateRect;     EXTERNAL 'PMWin'    INDEX  47;
  3531.  
  3532.   FUNCTION WinInvalidateRegion;     EXTERNAL 'PMWin'    INDEX  48;
  3533.   FUNCTION Win16InvalidateRegion;   EXTERNAL 'PMWin'    INDEX  48;
  3534.  
  3535.   FUNCTION WinValidateRect;         EXTERNAL 'PMWin'    INDEX  49;
  3536.   FUNCTION Win16ValidateRect;       EXTERNAL 'PMWin'    INDEX  49;
  3537.  
  3538.   FUNCTION WinValidateRegion;       EXTERNAL 'PMWin'    INDEX  50;
  3539.   FUNCTION Win16ValidateRegion;     EXTERNAL 'PMWin'    INDEX  50;
  3540.  
  3541.   FUNCTION WinQueryUpdateRect;      EXTERNAL 'PMWin'    INDEX  51;
  3542.   FUNCTION Win16QueryUpdateRect;    EXTERNAL 'PMWin'    INDEX  51;
  3543.  
  3544.   FUNCTION WinQueryUpdateRegion;    EXTERNAL 'PMWin'    INDEX  52;
  3545.   FUNCTION Win16QueryUpdateRegion;  EXTERNAL 'PMWin'    INDEX  52;
  3546.  
  3547.   FUNCTION WinUpdateWindow;         EXTERNAL 'PMWin'    INDEX  53;
  3548.   FUNCTION Win16UpdateWindow;       EXTERNAL 'PMWin'    INDEX  53;
  3549.  
  3550.   FUNCTION WinExcludeUpdateRegion;  EXTERNAL 'PMWin'    INDEX  54;
  3551.   FUNCTION Win16ExcludeUpdateRegion;EXTERNAL 'PMWin'    INDEX  54;
  3552.  
  3553.   FUNCTION WinLockWindowUpdate;     EXTERNAL 'PMWin'    INDEX  55;
  3554.   FUNCTION Win16LockWindowUpdate;   EXTERNAL 'PMWin'    INDEX  55;
  3555.  
  3556.   FUNCTION WinLockVisRegions;       EXTERNAL 'PMWin'    INDEX  56;
  3557.   FUNCTION Win16LockVisRegions;     EXTERNAL 'PMWin'    INDEX  56;
  3558.  
  3559.   FUNCTION WinWindowFromDC;         EXTERNAL 'PMWin'    INDEX  57;
  3560.   FUNCTION Win16WindowFromDC;       EXTERNAL 'PMWin'    INDEX  57;
  3561.  
  3562.   FUNCTION WinCreateMsgQueue;       EXTERNAL 'PMWin'    INDEX  58;
  3563.   FUNCTION Win16CreateMsgQueue;     EXTERNAL 'PMWin'    INDEX  58;
  3564.  
  3565.   FUNCTION WinDestroyMsgQueue;      EXTERNAL 'PMWin'    INDEX  59;
  3566.   FUNCTION Win16DestroyMsgQueue;    EXTERNAL 'PMWin'    INDEX  59;
  3567.  
  3568.   FUNCTION WinQueryQueueStatus;     EXTERNAL 'PMWin'    INDEX  60;
  3569.   FUNCTION Win16QueryQueueStatus;   EXTERNAL 'PMWin'    INDEX  60;
  3570.  
  3571.   FUNCTION WinSendMsg;              EXTERNAL 'PMWin'    INDEX  61;
  3572.   FUNCTION Win16SendMsg;            EXTERNAL 'PMWin'    INDEX  61;
  3573.  
  3574. (* ====================================================*)
  3575.  
  3576.   FUNCTION WinBroadcastMsg;         EXTERNAL 'PMWin'    INDEX  63;
  3577.   FUNCTION Win16BroadcastMsg;       EXTERNAL 'PMWin'    INDEX  63;
  3578.  
  3579.   FUNCTION WinInSendMsg;            EXTERNAL 'PMWin'    INDEX  64;
  3580.   FUNCTION Win16InSendMsg;          EXTERNAL 'PMWin'    INDEX  64;
  3581.  
  3582.   FUNCTION WinGetMsg;               EXTERNAL 'PMWin'    INDEX  65;
  3583.   FUNCTION Win16GetMsg;             EXTERNAL 'PMWin'    INDEX  65;
  3584.  
  3585.   FUNCTION WinPeekMsg;              EXTERNAL 'PMWin'    INDEX  66;
  3586.   FUNCTION Win16PeekMsg;            EXTERNAL 'PMWin'    INDEX  66;
  3587.  
  3588.   FUNCTION WinWaitMsg;              EXTERNAL 'PMWin'    INDEX  67;
  3589.   FUNCTION Win16WaitMsg;            EXTERNAL 'PMWin'    INDEX  67;
  3590.  
  3591.   FUNCTION WinDispatchMsg;          EXTERNAL 'PMWin'    INDEX  68;
  3592.   FUNCTION Win16DispatchMsg;        EXTERNAL 'PMWin'    INDEX  68;
  3593.  
  3594.   FUNCTION WinPostMsg;              EXTERNAL 'PMWin'    INDEX  69;
  3595.   FUNCTION Win16PostMsg;            EXTERNAL 'PMWin'    INDEX  69;
  3596.  
  3597.   FUNCTION WinPostQueueMsg;         EXTERNAL 'PMWin'    INDEX  70;
  3598.   FUNCTION Win16PostQueueMsg;       EXTERNAL 'PMWin'    INDEX  70;
  3599.  
  3600.   FUNCTION WinQueryMsgPos;          EXTERNAL 'PMWin'    INDEX  71;
  3601.   FUNCTION Win16QueryMsgPos;        EXTERNAL 'PMWin'    INDEX  71;
  3602.  
  3603.   FUNCTION WinQueryMsgTime;         EXTERNAL 'PMWin'    INDEX  72;
  3604.   FUNCTION Win16QueryMsgTime;       EXTERNAL 'PMWin'    INDEX  72;
  3605.  
  3606.   FUNCTION WinCallMsgFilter;        EXTERNAL 'PMWin'    INDEX  73;
  3607.   FUNCTION Win16CallMsgFilter;      EXTERNAL 'PMWin'    INDEX  73;
  3608. {
  3609.   FUNCTION WinSetMsgInterest;       External 'PMWin'    INDEX  74;
  3610.   FUNCTION Win16SetMsgInterest;     External 'PMWin'    INDEX  74;
  3611. }
  3612.   FUNCTION WinSetCapture;           EXTERNAL 'PMWin'    INDEX  75;
  3613.   FUNCTION Win16SetCapture;         EXTERNAL 'PMWin'    INDEX  75;
  3614.  
  3615.   FUNCTION WinQueryCapture;         EXTERNAL 'PMWin'    INDEX  76;
  3616.   FUNCTION Win16QueryCapture;       EXTERNAL 'PMWin'    INDEX  76;
  3617.  
  3618.   FUNCTION WinSetFocus;             EXTERNAL 'PMWin'    INDEX  77;
  3619.   FUNCTION Win16SetFocus;           EXTERNAL 'PMWin'    INDEX  77;
  3620.  
  3621.   FUNCTION WinQueryFocus;           EXTERNAL 'PMWin'    INDEX  78;
  3622.   FUNCTION Win16QueryFocus;         EXTERNAL 'PMWin'    INDEX  78;
  3623.  
  3624.   FUNCTION WinSetActiveWindow;      EXTERNAL 'PMWin'    INDEX  79;
  3625.   FUNCTION Win16SetActiveWindow;    EXTERNAL 'PMWin'    INDEX  79;
  3626.  
  3627.   FUNCTION WinQueryActiveWindow;    EXTERNAL 'PMWin'    INDEX  80;
  3628.   FUNCTION Win16QueryActiveWindow;  EXTERNAL 'PMWin'    INDEX  80;
  3629.  
  3630.   FUNCTION WinSetSysModalWindow;    EXTERNAL 'PMWin'    INDEX  81;
  3631.   FUNCTION Win16SetSysModalWindow;  EXTERNAL 'PMWin'    INDEX  81;
  3632.  
  3633.   FUNCTION WinQuerySysModalWindow;  EXTERNAL 'PMWin'    INDEX  82;
  3634.   FUNCTION Win16QuerySysModalWindow;EXTERNAL 'PMWin'    INDEX  82;
  3635.  
  3636.   FUNCTION WinIsThreadActive;       EXTERNAL 'PMWin'    INDEX  83;
  3637.   FUNCTION Win16IsThreadActive;     EXTERNAL 'PMWin'    INDEX  83;
  3638.  
  3639.   FUNCTION WinStartTimer;           EXTERNAL 'PMWin'    INDEX  84;
  3640.   FUNCTION Win16StartTimer;         EXTERNAL 'PMWin'    INDEX  84;
  3641.  
  3642.   FUNCTION WinStopTimer;            EXTERNAL 'PMWin'    INDEX  85;
  3643.   FUNCTION Win16StopTimer;          EXTERNAL 'PMWin'    INDEX  85;
  3644.  
  3645.   FUNCTION WinGetCurrentTime;       EXTERNAL 'PMWin'    INDEX  86;
  3646.   FUNCTION Win16GetCurrentTime;     EXTERNAL 'PMWin'    INDEX  86;
  3647.  
  3648.   FUNCTION WinLoadPointer;          EXTERNAL 'PMWin'    INDEX  87;
  3649.   FUNCTION Win16LoadPointer;        EXTERNAL 'PMWin'    INDEX  87;
  3650.  
  3651.   FUNCTION WinCreatePointer;        EXTERNAL 'PMWin'    INDEX  88;
  3652.   FUNCTION Win16CreatePointer;      EXTERNAL 'PMWin'    INDEX  88;
  3653.  
  3654.   FUNCTION WinDestroyPointer;       EXTERNAL 'PMWin'    INDEX  89;
  3655.   FUNCTION Win16DestroyPointer;     EXTERNAL 'PMWin'    INDEX  89;
  3656. {
  3657.   FUNCTION OldWinQueryPointerInfo;  External 'PMWin'    INDEX  90;
  3658. }
  3659.   FUNCTION WinQuerySysPointer;      EXTERNAL 'PMWin'    INDEX  91;
  3660.   FUNCTION Win16QuerySysPointer;    EXTERNAL 'PMWin'    INDEX  91;
  3661.  
  3662.   FUNCTION WinSetPointer;           EXTERNAL 'PMWin'    INDEX  92;
  3663.   FUNCTION Win16SetPointer;         EXTERNAL 'PMWin'    INDEX  92;
  3664.  
  3665.   FUNCTION WinQueryPointer;         EXTERNAL 'PMWin'    INDEX  93;
  3666.   FUNCTION Win16QueryPointer;       EXTERNAL 'PMWin'    INDEX  93;
  3667.  
  3668.   FUNCTION WinShowPointer;          EXTERNAL 'PMWin'    INDEX  94;
  3669.   FUNCTION Win16ShowPointer;        EXTERNAL 'PMWin'    INDEX  94;
  3670.  
  3671.   FUNCTION WinSetPointerPos;        EXTERNAL 'PMWin'    INDEX  95;
  3672.   FUNCTION Win16SetPointerPos;      EXTERNAL 'PMWin'    INDEX  95;
  3673.  
  3674.   FUNCTION WinQueryPointerPos;      EXTERNAL 'PMWin'    INDEX  96;
  3675.   FUNCTION Win16QueryPointerPos;    EXTERNAL 'PMWin'    INDEX  96;
  3676.  
  3677.   FUNCTION WinGetSysBitmap;         EXTERNAL 'PMWin'    INDEX  97;
  3678.   FUNCTION Win16GetSysBitmap;       EXTERNAL 'PMWin'    INDEX  97;
  3679.  
  3680.   FUNCTION WinCreateCursor;         EXTERNAL 'PMWin'    INDEX  98;
  3681.   FUNCTION Win16CreateCursor;       EXTERNAL 'PMWin'    INDEX  98;
  3682.  
  3683.   FUNCTION WinDestroyCursor;        EXTERNAL 'PMWin'    INDEX  99;
  3684.   FUNCTION Win16DestroyCursor;      EXTERNAL 'PMWin'    INDEX  99;
  3685.  
  3686.   FUNCTION WinShowCursor;           EXTERNAL 'PMWin'    INDEX 100;
  3687.   FUNCTION Win16ShowCursor;         EXTERNAL 'PMWin'    INDEX 100;
  3688.  
  3689.   FUNCTION WinQueryCursorInfo;      EXTERNAL 'PMWin'    INDEX 101;
  3690.   FUNCTION Win16QueryCursorInfo;    EXTERNAL 'PMWin'    INDEX 101;
  3691.  
  3692.   FUNCTION WinLoadAccelTable;       EXTERNAL 'PMWin'    INDEX 102;
  3693.   FUNCTION Win16LoadAccelTable;     EXTERNAL 'PMWin'    INDEX 102;
  3694.  
  3695.   FUNCTION WinCreateAccelTable;     EXTERNAL 'PMWin'    INDEX 103;
  3696.   FUNCTION Win16CreateAccelTable;   EXTERNAL 'PMWin'    INDEX 103;
  3697.  
  3698.   FUNCTION WinDestroyAccelTable;    EXTERNAL 'PMWin'    INDEX 104;
  3699.   FUNCTION Win16DestroyAccelTable;  EXTERNAL 'PMWin'    INDEX 104;
  3700.  
  3701.   FUNCTION WinTranslateAccel;       EXTERNAL 'PMWin'    INDEX 105;
  3702.   FUNCTION Win16TranslateAccel;     EXTERNAL 'PMWin'    INDEX 105;
  3703.  
  3704.   FUNCTION WinSetAccelTable;        EXTERNAL 'PMWin'    INDEX 106;
  3705.   FUNCTION Win16SetAccelTable;      EXTERNAL 'PMWin'    INDEX 106;
  3706.  
  3707.   FUNCTION WinQueryAccelTable;      EXTERNAL 'PMWin'    INDEX 107;
  3708.   FUNCTION Win16QueryAccelTable;    EXTERNAL 'PMWin'    INDEX 107;
  3709.  
  3710.   FUNCTION WinCopyAccelTable;       EXTERNAL 'PMWin'    INDEX 108;
  3711.   FUNCTION Win16CopyAccelTable;     EXTERNAL 'PMWin'    INDEX 108;
  3712.  
  3713.   FUNCTION WinSetHook;              EXTERNAL 'PMWin'    INDEX 109;
  3714.   FUNCTION Win16SetHook;            EXTERNAL 'PMWin'    INDEX 109;
  3715.  
  3716.   FUNCTION WinReleaseHook;          EXTERNAL 'PMWin'    INDEX 110;
  3717.   FUNCTION Win16ReleaseHook;        EXTERNAL 'PMWin'    INDEX 110;
  3718.  
  3719.   FUNCTION WinOpenClipbrd;          EXTERNAL 'PMWin'    INDEX 111;
  3720.   FUNCTION Win16OpenClipbrd;        EXTERNAL 'PMWin'    INDEX 111;
  3721.  
  3722.   FUNCTION WinCloseClipbrd;         EXTERNAL 'PMWin'    INDEX 112;
  3723.   FUNCTION Win16CloseClipbrd;       EXTERNAL 'PMWin'    INDEX 112;
  3724.  
  3725.   FUNCTION WinEmptyClipbrd;         EXTERNAL 'PMWin'    INDEX 113;
  3726.   FUNCTION Win16EmptyClipbrd;       EXTERNAL 'PMWin'    INDEX 113;
  3727.  
  3728.   FUNCTION WinSetClipbrdOwner;      EXTERNAL 'PMWin'    INDEX 114;
  3729.   FUNCTION Win16SetClipbrdOwner;    EXTERNAL 'PMWin'    INDEX 114;
  3730.  
  3731.   FUNCTION WinQueryClipbrdOwner;    EXTERNAL 'PMWin'    INDEX 115;
  3732.   FUNCTION Win16QueryClipbrdOwner;  EXTERNAL 'PMWin'    INDEX 115;
  3733.  
  3734.   FUNCTION WinSetClipbrdData;       EXTERNAL 'PMWin'    INDEX 116;
  3735.   FUNCTION Win16SetClipbrdData;     EXTERNAL 'PMWin'    INDEX 116;
  3736.  
  3737.   FUNCTION WinQueryClipbrdData;     EXTERNAL 'PMWin'    INDEX 117;
  3738.   FUNCTION Win16QueryClipbrdData;   EXTERNAL 'PMWin'    INDEX 117;
  3739.  
  3740.   FUNCTION WinEnumClipbrdFmts;      EXTERNAL 'PMWin'    INDEX 118;
  3741.   FUNCTION Win16EnumClipbrdFmts;    EXTERNAL 'PMWin'    INDEX 118;
  3742.  
  3743.   FUNCTION WinQueryClipbrdFmtInfo;  EXTERNAL 'PMWin'    INDEX 119;
  3744.   FUNCTION Win16QueryClipbrdFmtInfo;EXTERNAL 'PMWin'    INDEX 119;
  3745.  
  3746.   FUNCTION WinSetClipbrdViewer;     EXTERNAL 'PMWin'    INDEX 120;
  3747.   FUNCTION Win16SetClipbrdViewer;   EXTERNAL 'PMWin'    INDEX 120;
  3748.  
  3749.   FUNCTION WinQueryClipbrdViewer;   EXTERNAL 'PMWin'    INDEX 121;
  3750.   FUNCTION Win16QueryClipbrdViewer; EXTERNAL 'PMWin'    INDEX 121;
  3751.  
  3752.   FUNCTION WinLoadDlg;              EXTERNAL 'PMWin'    INDEX 122;
  3753.   FUNCTION Win16LoadDlg;            EXTERNAL 'PMWin'    INDEX 122;
  3754.  
  3755.   FUNCTION WinCreateDlg;            EXTERNAL 'PMWin'    INDEX 123;
  3756.   FUNCTION Win16CreateDlg;          EXTERNAL 'PMWin'    INDEX 123;
  3757.  
  3758.   FUNCTION WinProcessDlg;           EXTERNAL 'PMWin'    INDEX 124;
  3759.   FUNCTION Win16ProcessDlg;         EXTERNAL 'PMWin'    INDEX 124;
  3760.  
  3761.   FUNCTION WinDlgBox;               EXTERNAL 'PMWin'    INDEX 125;
  3762.   FUNCTION Win16DlgBox;             EXTERNAL 'PMWin'    INDEX 125;
  3763.  
  3764.   FUNCTION WinDismissDlg;           EXTERNAL 'PMWin'    INDEX 126;
  3765.   FUNCTION Win16DismissDlg;         EXTERNAL 'PMWin'    INDEX 126;
  3766.  
  3767.   FUNCTION WinSendDlgItemMsg;       EXTERNAL 'PMWin'    INDEX 127;
  3768.   FUNCTION Win16SendDlgItemMsg;     EXTERNAL 'PMWin'    INDEX 127;
  3769.  
  3770.   FUNCTION WinSetDlgItemShort;      EXTERNAL 'PMWin'    INDEX 128;
  3771.   FUNCTION Win16SetDlgItemShort;    EXTERNAL 'PMWin'    INDEX 128;
  3772.  
  3773.   FUNCTION WinQueryDlgItemShort;    EXTERNAL 'PMWin'    INDEX 129;
  3774.   FUNCTION Win16QueryDlgItemShort;  EXTERNAL 'PMWin'    INDEX 129;
  3775.  
  3776.   FUNCTION WinMapDlgPoints;         EXTERNAL 'PMWin'    INDEX 130;
  3777.   FUNCTION Win16MapDlgPoints;       EXTERNAL 'PMWin'    INDEX 130;
  3778.  
  3779.   FUNCTION WinSubstituteStrings;    EXTERNAL 'PMWin'    INDEX 132;
  3780.   FUNCTION Win16SubstituteStrings;  EXTERNAL 'PMWin'    INDEX 132;
  3781.  
  3782.   FUNCTION WinEnumDlgItem;          EXTERNAL 'PMWin'    INDEX 133;
  3783.   FUNCTION Win16EnumDlgItem;        EXTERNAL 'PMWin'    INDEX 133;
  3784.  
  3785.   FUNCTION WinSetDlgItemText;       EXTERNAL 'PMWin'    INDEX 134;
  3786.   FUNCTION Win16SetDlgItemText;     EXTERNAL 'PMWin'    INDEX 134;
  3787.  
  3788.   FUNCTION WinQueryDlgItemText;     EXTERNAL 'PMWin'    INDEX 135;
  3789.   FUNCTION Win16QueryDlgItemText;   EXTERNAL 'PMWin'    INDEX 135;
  3790.  
  3791.   FUNCTION WinLoadMenu;             EXTERNAL 'PMWin'    INDEX 136;
  3792.   FUNCTION Win16LoadMenu;           EXTERNAL 'PMWin'    INDEX 136;
  3793.  
  3794.   FUNCTION WinCreateMenu;           EXTERNAL 'PMWin'    INDEX 137;
  3795.   FUNCTION Win16CreateMenu;         EXTERNAL 'PMWin'    INDEX 137;
  3796.  
  3797.   FUNCTION WinAlarm;                EXTERNAL 'PMWin'    INDEX 138;
  3798.   FUNCTION Win16Alarm;              EXTERNAL 'PMWin'    INDEX 138;
  3799.  
  3800.   FUNCTION WinMessageBox;           EXTERNAL 'PMWin'    INDEX 139;
  3801.   FUNCTION Win16MessageBox;         EXTERNAL 'PMWin'    INDEX 139;
  3802.  
  3803.   FUNCTION WinCreateStdWindow;      EXTERNAL 'PMWin'    INDEX 140;
  3804.   FUNCTION Win16CreateStdWindow;    EXTERNAL 'PMWin'    INDEX 140;
  3805.  
  3806.   FUNCTION WinCreateFrameControls;  EXTERNAL 'PMWin'    INDEX 141;
  3807.   FUNCTION Win16CreateFrameControls;EXTERNAL 'PMWin'    INDEX 141;
  3808.  
  3809.   FUNCTION WinFormatFrame;          EXTERNAL 'PMWIN' INDEX 142;
  3810.   FUNCTION Win16FormatFrame;        EXTERNAL 'PMWIN' INDEX 142;
  3811.  
  3812. (* ====================================================== *)
  3813.  
  3814.   FUNCTION WinCalcFrameRect;        EXTERNAL 'PMWin'    INDEX 143;
  3815.   FUNCTION Win16CalcFrameRect;      EXTERNAL 'PMWin'    INDEX 143;
  3816.  
  3817.   FUNCTION WinFlashWindow;          EXTERNAL 'PMWin'    INDEX 144;
  3818.   FUNCTION Win16FlashWindow;        EXTERNAL 'PMWin'    INDEX 144;
  3819.  
  3820. (* ====================================================== *)
  3821.  
  3822.   FUNCTION WinGetMinPosition;       EXTERNAL 'PMWin'    INDEX 146;
  3823.   FUNCTION Win16GetMinPosition;     EXTERNAL 'PMWin'    INDEX 146;
  3824.  
  3825.   FUNCTION WinGetMaxPosition;       EXTERNAL 'PMWin'    INDEX 147;
  3826.   FUNCTION Win16GetMaxPosition;     EXTERNAL 'PMWin'    INDEX 147;
  3827.  
  3828. (* ====================================================*)
  3829.  
  3830.   FUNCTION WinQuerySysValue;        EXTERNAL 'PMWin'    INDEX 149;
  3831.   FUNCTION Win16QuerySysValue;      EXTERNAL 'PMWin'    INDEX 149;
  3832.  
  3833.   FUNCTION WinSetSysValue;          EXTERNAL 'PMWin'    INDEX 150;
  3834.   FUNCTION Win16SetSysValue;        EXTERNAL 'PMWin'    INDEX 150;
  3835.  
  3836.   FUNCTION WinSetSysColors;         EXTERNAL 'PMWin'    INDEX 151;
  3837.   FUNCTION Win16SetSysColors;       EXTERNAL 'PMWin'    INDEX 151;
  3838.  
  3839.   FUNCTION WinQuerySysColor;        EXTERNAL 'PMWin'    INDEX 152;
  3840.   FUNCTION Win16QuerySysColor;      EXTERNAL 'PMWin'    INDEX 152;
  3841.  
  3842.   FUNCTION WinScrollWindow;         EXTERNAL 'PMWin'    INDEX 153;
  3843.   FUNCTION Win16ScrollWindow;       EXTERNAL 'PMWin'    INDEX 153;
  3844.  
  3845.   FUNCTION WinTrackRect;            EXTERNAL 'PMWin'    INDEX 154;
  3846.   FUNCTION Win16TrackRect;          EXTERNAL 'PMWin'    INDEX 154;
  3847.  
  3848.   FUNCTION WinShowTrackRect;        EXTERNAL 'PMWin'    INDEX 155;
  3849.   FUNCTION Win16ShowTrackRect;      EXTERNAL 'PMWin'    INDEX 155;
  3850. {
  3851.   FUNCTION GPILoadBitmap;           External 'PMWin'    INDEX 156;
  3852.   FUNCTION GPI16LoadBitmap;         External 'PMWin'    INDEX 156;
  3853. }
  3854.   FUNCTION WinLoadString;           EXTERNAL 'PMWin'    INDEX 157;
  3855.   FUNCTION Win16LoadString;         EXTERNAL 'PMWin'    INDEX 157;
  3856.  
  3857.   FUNCTION WinLoadMessage;          EXTERNAL 'PMWin'    INDEX 158;
  3858.   FUNCTION Win16LoadMessage;        EXTERNAL 'PMWin'    INDEX 158;
  3859.  
  3860.   FUNCTION WinSetRectEmpty;         EXTERNAL 'PMWin'    INDEX 159;
  3861.   FUNCTION Win16SetRectEmpty;       EXTERNAL 'PMWin'    INDEX 159;
  3862.  
  3863.   FUNCTION WinSetRect;              EXTERNAL 'PMWin'    INDEX 160;
  3864.   FUNCTION Win16SetRect;            EXTERNAL 'PMWin'    INDEX 160;
  3865.  
  3866.   FUNCTION WinCopyRect;             EXTERNAL 'PMWin'    INDEX 161;
  3867.   FUNCTION Win16CopyRect;           EXTERNAL 'PMWin'    INDEX 161;
  3868.  
  3869.   FUNCTION WinIsRectEmpty;          EXTERNAL 'PMWin'    INDEX 162;
  3870.   FUNCTION Win16IsRectEmpty;        EXTERNAL 'PMWin'    INDEX 162;
  3871.  
  3872.   FUNCTION WinEqualRect;            EXTERNAL 'PMWin'    INDEX 163;
  3873.   FUNCTION Win16EqualRect;          EXTERNAL 'PMWin'    INDEX 163;
  3874.  
  3875.   FUNCTION WinPtInRect;             EXTERNAL 'PMWin'    INDEX 164;
  3876.   FUNCTION Win16PtInRect;           EXTERNAL 'PMWin'    INDEX 164;
  3877.  
  3878.   FUNCTION WinOffsetRect;           EXTERNAL 'PMWin'    INDEX 165;
  3879.   FUNCTION Win16OffsetRect;         EXTERNAL 'PMWin'    INDEX 165;
  3880.  
  3881.   FUNCTION WinInflateRect;          EXTERNAL 'PMWin'    INDEX 166;
  3882.   FUNCTION Win16InflateRect;        EXTERNAL 'PMWin'    INDEX 166;
  3883.  
  3884.   FUNCTION WinIntersectRect;        EXTERNAL 'PMWin'    INDEX 167;
  3885.   FUNCTION Win16IntersectRect;      EXTERNAL 'PMWin'    INDEX 167;
  3886.  
  3887.   FUNCTION WinUnionRect;            EXTERNAL 'PMWin'    INDEX 168;
  3888.   FUNCTION Win16UnionRect;          EXTERNAL 'PMWin'    INDEX 168;
  3889.  
  3890.   FUNCTION WinSubtractRect;         EXTERNAL 'PMWin'    INDEX 169;
  3891.   FUNCTION Win16SubtractRect;       EXTERNAL 'PMWin'    INDEX 169;
  3892. {
  3893.   FUNCTION WinMakeRect;             External 'PMWin'    INDEX 170;
  3894.   FUNCTION Win16MakeRect;           External 'PMWin'    INDEX 170;
  3895.  
  3896.   FUNCTION WinMakePoints;           External 'PMWin'    INDEX 171;
  3897.   FUNCTION Win16MakePoints;         External 'PMWin'    INDEX 171;
  3898. }
  3899.   FUNCTION WinInvertRect;           EXTERNAL 'PMWin'    INDEX 172;
  3900.   FUNCTION Win16InvertRect;         EXTERNAL 'PMWin'    INDEX 172;
  3901.  
  3902.   FUNCTION WinFillRect;             EXTERNAL 'PMWin'    INDEX 173;
  3903.   FUNCTION Win16FillRect;           EXTERNAL 'PMWin'    INDEX 173;
  3904. {
  3905.   FUNCTION KbdPacket;               External 'PMWin'    INDEX 174;
  3906. }
  3907. (* ====================================================*)
  3908.  
  3909.   FUNCTION WinDrawPointer;          EXTERNAL 'PMWin'    INDEX 177;
  3910.   FUNCTION Win16DrawPointer;        EXTERNAL 'PMWin'    INDEX 177;
  3911.  
  3912.   FUNCTION WinDefWindowProc;        EXTERNAL 'PMWin'    INDEX 178;
  3913.   FUNCTION Win16DefWindowProc;      EXTERNAL 'PMWin'    INDEX 178;
  3914.  
  3915.   FUNCTION WinDefDlgProc;           EXTERNAL 'PMWin'    INDEX 179;
  3916.   FUNCTION Win16DefDlgProc;         EXTERNAL 'PMWin'    INDEX 179;
  3917.  
  3918. (* ====================================================== *)
  3919.  
  3920.   FUNCTION WinGetKeyState;          EXTERNAL 'PMWin'    INDEX 211;
  3921.   FUNCTION Win16GetKeyState;        EXTERNAL 'PMWin'    INDEX 211;
  3922.  
  3923.   FUNCTION WinGetPhysKeyState;      EXTERNAL 'PMWin'    INDEX 212;
  3924.   FUNCTION Win16GetPhysKeyState;    EXTERNAL 'PMWin'    INDEX 212;
  3925.  
  3926.   FUNCTION WinSetKeyboardStateTable;EXTERNAL 'PMWin'    INDEX 213;
  3927.   FUNCTION Win16SetKeyboardStateTable;EXTERNAL 'PMWin'  INDEX 213;
  3928.  
  3929.   FUNCTION WinEnablePhysInput;      EXTERNAL 'PMWin'    INDEX 214;
  3930.   FUNCTION Win16EnablePhysInput;    EXTERNAL 'PMWin'    INDEX 214;
  3931.  
  3932.   FUNCTION WinSetCp;                EXTERNAL 'PMWin'    INDEX 215;
  3933.   FUNCTION Win16SetCp;              EXTERNAL 'PMWin'    INDEX 215;
  3934.  
  3935.   FUNCTION WinQueryCp;              EXTERNAL 'PMWin'    INDEX 216;
  3936.   FUNCTION Win16QueryCp;            EXTERNAL 'PMWin'    INDEX 216;
  3937.  
  3938.   FUNCTION WinQueryCpList;          EXTERNAL 'PMWin'    INDEX 217;
  3939.   FUNCTION Win16QueryCpList;        EXTERNAL 'PMWin'    INDEX 217;
  3940.  
  3941.   FUNCTION WinCpTranslateString;    EXTERNAL 'PMWin'    INDEX 218;
  3942.   FUNCTION Win16CpTranslateString;  EXTERNAL 'PMWin'    INDEX 218;
  3943.  
  3944.   FUNCTION WinCpTranslateChar;      EXTERNAL 'PMWin'    INDEX 219;
  3945.   FUNCTION Win16CpTranslateChar;    EXTERNAL 'PMWin'    INDEX 219;
  3946.  
  3947.   FUNCTION WinCompareStrings;       EXTERNAL 'PMWin'    INDEX 220;
  3948.   FUNCTION Win16CompareStrings;     EXTERNAL 'PMWin'    INDEX 220;
  3949.  
  3950.   FUNCTION WinUpper;                EXTERNAL 'PMWin'    INDEX 221;
  3951.   FUNCTION Win16Upper;              EXTERNAL 'PMWin'    INDEX 221;
  3952.  
  3953.   FUNCTION WinUpperChar;            EXTERNAL 'PMWin'    INDEX 222;
  3954.   FUNCTION Win16UpperChar;          EXTERNAL 'PMWin'    INDEX 222;
  3955.  
  3956.   FUNCTION WinNextChar;             EXTERNAL 'PMWin'    INDEX 223;
  3957.   FUNCTION Win16NextChar;           EXTERNAL 'PMWin'    INDEX 223;
  3958.  
  3959.   FUNCTION WinPrevChar;             EXTERNAL 'PMWin'    INDEX 224;
  3960.   FUNCTION Win16PrevChar;           EXTERNAL 'PMWin'    INDEX 224;
  3961.  
  3962.   FUNCTION WinCreateHeap;           EXTERNAL 'PMWin'    INDEX 225;
  3963.   FUNCTION Win16CreateHeap;         EXTERNAL 'PMWin'    INDEX 225;
  3964.  
  3965.   FUNCTION WinDestroyHeap;          EXTERNAL 'PMWin'    INDEX 226;
  3966.   FUNCTION Win16DestroyHeap;        EXTERNAL 'PMWin'    INDEX 226;
  3967.  
  3968.   FUNCTION WinAvailMem;             EXTERNAL 'PMWin'    INDEX 227;
  3969.   FUNCTION Win16AvailMem;           EXTERNAL 'PMWin'    INDEX 227;
  3970.  
  3971.   FUNCTION WinAllocMem;             EXTERNAL 'PMWin'    INDEX 228;
  3972.   FUNCTION Win16AllocMem;           EXTERNAL 'PMWin'    INDEX 228;
  3973.  
  3974.   FUNCTION WinReallocMem;           EXTERNAL 'PMWin'    INDEX 229;
  3975.   FUNCTION Win16ReallocMem;         EXTERNAL 'PMWin'    INDEX 229;
  3976.  
  3977.   FUNCTION WinFreeMem;              EXTERNAL 'PMWin'    INDEX 230;
  3978.   FUNCTION Win16FreeMem;            EXTERNAL 'PMWin'    INDEX 230;
  3979.  
  3980.   FUNCTION WinLockHeap;             EXTERNAL 'PMWin'    INDEX 231;
  3981.   FUNCTION Win16LockHeap;           EXTERNAL 'PMWin'    INDEX 231;
  3982.  
  3983.   FUNCTION WinCreateAtomTable;      EXTERNAL 'PMWin'    INDEX 233;
  3984.   FUNCTION Win16CreateAtomTable;    EXTERNAL 'PMWin'    INDEX 233;
  3985.  
  3986.   FUNCTION WinDestroyAtomTable;     EXTERNAL 'PMWin'    INDEX 234;
  3987.   FUNCTION Win16DestroyAtomTable;   EXTERNAL 'PMWin'    INDEX 234;
  3988.  
  3989.   FUNCTION WinAddAtom;              EXTERNAL 'PMWin'    INDEX 235;
  3990.   FUNCTION Win16AddAtom;            EXTERNAL 'PMWin'    INDEX 235;
  3991.  
  3992.   FUNCTION WinFindAtom;             EXTERNAL 'PMWin'    INDEX 236;
  3993.   FUNCTION Win16FindAtom;           EXTERNAL 'PMWin'    INDEX 236;
  3994.  
  3995.   FUNCTION WinDeleteAtom;           EXTERNAL 'PMWin'    INDEX 237;
  3996.   FUNCTION Win16DeleteAtom;         EXTERNAL 'PMWin'    INDEX 237;
  3997.  
  3998.   FUNCTION WinQueryAtomUsage;       EXTERNAL 'PMWin'    INDEX 238;
  3999.   FUNCTION Win16QueryAtomUsage;     EXTERNAL 'PMWin'    INDEX 238;
  4000.  
  4001.   FUNCTION WinQueryAtomLength;      EXTERNAL 'PMWin'    INDEX 239;
  4002.   FUNCTION Win16QueryAtomLength;    EXTERNAL 'PMWin'    INDEX 239;
  4003.  
  4004.   FUNCTION WinQueryAtomName;        EXTERNAL 'PMWin'    INDEX 240;
  4005.   FUNCTION Win16QueryAtomName;      EXTERNAL 'PMWin'    INDEX 240;
  4006.  
  4007.   FUNCTION WinQuerySystemAtomTable; EXTERNAL 'PMWin'    INDEX 241;
  4008.   FUNCTION Win16QuerySystemAtomTable;EXTERNAL 'PMWin'   INDEX 241;
  4009.  
  4010.   FUNCTION WinGetLastError;         EXTERNAL 'PMWin'    INDEX 243;
  4011.   FUNCTION Win16GetLastError;       EXTERNAL 'PMWin'    INDEX 243;
  4012.  
  4013.   FUNCTION WinGetErrorInfo;         EXTERNAL 'PMWin'    INDEX 244;
  4014.   FUNCTION Win16GetErrorInfo;       EXTERNAL 'PMWin'    INDEX 244;
  4015.  
  4016.   FUNCTION WinFreeErrorInfo;        EXTERNAL 'PMWin'    INDEX 245;
  4017.   FUNCTION Win16FreeErrorInfo;      EXTERNAL 'PMWin'    INDEX 245;
  4018.  
  4019.   FUNCTION WinInitialize;           EXTERNAL 'PMWin'    INDEX 246;
  4020.   FUNCTION Win16Initialize;         EXTERNAL 'PMWin'    INDEX 246;
  4021.  
  4022.   FUNCTION WinTerminate;            EXTERNAL 'PMWin'    INDEX 247;
  4023.   FUNCTION Win16Terminate;          EXTERNAL 'PMWin'    INDEX 247;
  4024.  
  4025.   FUNCTION WinCatch;                EXTERNAL 'PMWin'    INDEX 248;
  4026.   FUNCTION Win16Catch;              EXTERNAL 'PMWin'    INDEX 248;
  4027.  
  4028.   FUNCTION WinThrow;                EXTERNAL 'PMWin'    INDEX 249;
  4029.   FUNCTION Win16Throw;              EXTERNAL 'PMWin'    INDEX 249;
  4030.  
  4031.   FUNCTION WinQueryVersion;         EXTERNAL 'PMWin'    INDEX 250;
  4032.   FUNCTION Win16QueryVersion;       EXTERNAL 'PMWin'    INDEX 250;
  4033.  
  4034.   FUNCTION WinIsPhysInputEnabled;   EXTERNAL 'PMWin'    INDEX 264;
  4035.   FUNCTION Win16IsPhysInputEnabled; EXTERNAL 'PMWin'    INDEX 264;
  4036.  
  4037.   FUNCTION WinQueryWindowDC;        EXTERNAL 'PMWin'    INDEX 265;
  4038.   FUNCTION Win16QueryWindowDC;      EXTERNAL 'PMWin'    INDEX 265;
  4039.  
  4040.   FUNCTION WinDrawBorder;           EXTERNAL 'PMWin'    INDEX 266;
  4041.   FUNCTION Win16DrawBorder;         EXTERNAL 'PMWin'    INDEX 266;
  4042.  
  4043.   FUNCTION WinDrawText;             EXTERNAL 'PMWin'    INDEX 267;
  4044.   FUNCTION Win16DrawText;           EXTERNAL 'PMWin'    INDEX 267;
  4045.  
  4046.   FUNCTION WinDrawBitmap;           EXTERNAL 'PMWin'    INDEX 268;
  4047.   FUNCTION Win16DrawBitmap;         EXTERNAL 'PMWin'    INDEX 268;
  4048.  
  4049.   FUNCTION WinQueryWindowPtr;       EXTERNAL 'PMWin'    INDEX 269;
  4050.   FUNCTION Win16QueryWindowPtr;     EXTERNAL 'PMWin'    INDEX 269;
  4051.  
  4052.   FUNCTION WinSetWindowPtr;         EXTERNAL 'PMWin'    INDEX 270;
  4053.   FUNCTION Win16SetWindowPtr;       EXTERNAL 'PMWin'    INDEX 270;
  4054.  
  4055.   FUNCTION WinMsgSemWait;           EXTERNAL 'PMWin'    INDEX 274;
  4056.   FUNCTION Win16MsgSemWait;         EXTERNAL 'PMWin'    INDEX 274;
  4057.  
  4058.   FUNCTION WinMsgMuxSemWait;        EXTERNAL 'PMWin'    INDEX 275;
  4059.   FUNCTION Win16MsgMuxSemWait;      EXTERNAL 'PMWin'    INDEX 275;
  4060.  
  4061.   FUNCTION WinCancelShutdown;       EXTERNAL 'PMWin'    INDEX 277;
  4062.   FUNCTION Win16CancelShutdown;     EXTERNAL 'PMWin'    INDEX 277;
  4063.  
  4064.   FUNCTION WinSetWindowBits;        EXTERNAL 'PMWin'    INDEX 278;
  4065.   FUNCTION Win16SetWindowBits;      EXTERNAL 'PMWin'    INDEX 278;
  4066.  
  4067.   FUNCTION WinGetClipPS;            EXTERNAL 'PMWin'    INDEX 279;
  4068.   FUNCTION Win16GetClipPS;          EXTERNAL 'PMWin'    INDEX 279;
  4069.  
  4070. (* ====================================================== *)
  4071. {
  4072.   FUNCTION WinSaveWindowPos;        External 'PMWin'    INDEX 285;
  4073.   FUNCTION Win16SaveWindowPos;      External 'PMWin'    INDEX 285;
  4074. }
  4075.   FUNCTION WinFocusChange;          EXTERNAL 'PMWin'    INDEX 286;
  4076.   FUNCTION Win16FocusChange;        EXTERNAL 'PMWin'    INDEX 286;
  4077.  
  4078.   FUNCTION WinQueryQueueInfo;       EXTERNAL 'PMWin'    INDEX 287;
  4079.   FUNCTION Win16QueryQueueInfo;     EXTERNAL 'PMWin'    INDEX 287;
  4080. {
  4081.   FUNCTION WinSetClassMsgInterest;  External 'PMWin'    INDEX 292;
  4082.   FUNCTION Win16SetClassMsgInterest;External 'PMWin'    INDEX 292;
  4083. }
  4084.   FUNCTION WinQueryDlgItemTextLength;EXTERNAL 'PMWin'    INDEX 294;
  4085.   FUNCTION Win16QueryDlgItemTextLength;EXTERNAL 'PMWin'  INDEX 294;
  4086.  
  4087.   FUNCTION WinDdeInitiate;           EXTERNAL 'PMWin'    INDEX 297;
  4088.   FUNCTION Win16DdeInitiate;         EXTERNAL 'PMWin'    INDEX 297;
  4089.  
  4090.   FUNCTION WinDdeRespond;            EXTERNAL 'PMWin'    INDEX 298;
  4091.   FUNCTION Win16DdeRespond;          EXTERNAL 'PMWin'    INDEX 298;
  4092.  
  4093.   FUNCTION WinDdePostMsg;            EXTERNAL 'PMWin'    INDEX 299;
  4094.   FUNCTION Win16DdePostMsg;          EXTERNAL 'PMWin'    INDEX 299;
  4095.  
  4096.   FUNCTION WinSetPresParam;          EXTERNAL 'PMWin'    INDEX 301;
  4097.   FUNCTION Win16SetPresParam;        EXTERNAL 'PMWin'    INDEX 301;
  4098.  
  4099.   FUNCTION WinQueryPresParam;        EXTERNAL 'PMWin'    INDEX 302;
  4100.   FUNCTION Win16QueryPresParam;      EXTERNAL 'PMWin'    INDEX 302;
  4101.  
  4102.   FUNCTION WinRemovePresParam;       EXTERNAL 'PMWin'    INDEX 303;
  4103.   FUNCTION Win16RemovePresParam;     EXTERNAL 'PMWin'    INDEX 303;
  4104.  
  4105. (* ====================================================== *)
  4106. {
  4107.   FUNCTION DumWinCreateHelpInstance; External 'PMWin'    INDEX 311;
  4108.  
  4109.   FUNCTION DumWinDestroyHelpInstance;External 'PMWin'    INDEX 312;
  4110.  
  4111.   FUNCTION DumWinAssociateHelpInstance;External 'PMWin'  INDEX 313;
  4112.  
  4113.   FUNCTION DumWinCreateHelpTable;    External 'PMWin'    INDEX 314;
  4114.  
  4115.   FUNCTION DumWinLoadHelpTable;      External 'PMWin'    INDEX 315;
  4116.  
  4117.   FUNCTION DumWinQueryHelpInstance;  External 'PMWin'    INDEX 316;
  4118.  
  4119.   FUNCTION WinQueryWindowModeL;      External 'PMWin'    INDEX 317;
  4120.   FUNCTION Win16QueryWindowModeL;    External 'PMWin'    INDEX 317;
  4121.  
  4122.   FUNCTION WinSetDesktopBkGnd;       External 'PMWin'    INDEX 318;
  4123.   FUNCTION Win16SetDesktopBkGnd;     External 'PMWin'    INDEX 318;
  4124.  
  4125.   FUNCTION WinQueryDesktopBkGnd;     External 'PMWin'    INDEX 319;
  4126.   FUNCTION Win16QueryDesktopBkGnd;   External 'PMWin'    INDEX 319;
  4127.  
  4128.   FUNCTION WinPopupMenu;             External 'PMWin'    INDEX 320;
  4129.   FUNCTION Win16PopupMenu;           External 'PMWin'    INDEX 320;
  4130.  
  4131.   FUNCTION WinRealizePalette;        External 'PMWin'    INDEX 321;
  4132.   FUNCTION Win16RealizePalette;      External 'PMWin'    INDEX 321;
  4133.  
  4134.   FUNCTION DummyHelpEntry;           External 'PMWin'    INDEX 322;
  4135. }
  4136. (* ====================================================== *)
  4137.  
  4138.   FUNCTION WinDeleteLibrary;         EXTERNAL 'PMWin'    INDEX 602;
  4139.   FUNCTION Win16DeleteLibrary;       EXTERNAL 'PMWin'    INDEX 602;
  4140.  
  4141.   FUNCTION WinLoadProcedure;         EXTERNAL 'PMWin'    INDEX 603;
  4142.   FUNCTION Win16LoadProcedure;       EXTERNAL 'PMWin'    INDEX 603;
  4143.  
  4144.   FUNCTION WinDeleteProcedure;       EXTERNAL 'PMWin'    INDEX 604;
  4145.   FUNCTION Win16DeleteProcedure;     EXTERNAL 'PMWin'    INDEX 604;
  4146.  
  4147.   FUNCTION WinSetMsgMode;            EXTERNAL 'PMWin'    INDEX 605;
  4148.   FUNCTION Win16SetMsgMode;          EXTERNAL 'PMWin'    INDEX 605;
  4149.  
  4150.   FUNCTION WinSetSynchroMode;        EXTERNAL 'PMWin'    INDEX 606;
  4151.   FUNCTION Win16SetSynchroMode;      EXTERNAL 'PMWin'    INDEX 606;
  4152.  
  4153.   FUNCTION WinGetDlgMsg;             EXTERNAL 'PMWin'    INDEX 607;
  4154.   FUNCTION Win16GetDlgMsg;           EXTERNAL 'PMWin'    INDEX 607;
  4155.  
  4156.   FUNCTION WinRegisterUserMsg;       EXTERNAL 'PMWin'    INDEX 608;
  4157.   FUNCTION Win16RegisterUserMsg;     EXTERNAL 'PMWin'    INDEX 608;
  4158.  
  4159.   FUNCTION WinQueryAnchorBlock;      EXTERNAL 'PMWin'    INDEX 609;
  4160.   FUNCTION Win16QueryAnchorBlock;    EXTERNAL 'PMWin'    INDEX 609;
  4161.  
  4162. (* ====================================================*)
  4163.  
  4164.   FUNCTION WinRegisterUserDatatype;  EXTERNAL 'PMWin'    INDEX 612;
  4165.   FUNCTION Win16RegisterUserDatatype;EXTERNAL 'PMWin'    INDEX 612;
  4166.  
  4167. (* ====================================================*)
  4168.  
  4169.   FUNCTION WinIsWindowShowing;       EXTERNAL 'PMWin'    INDEX 614;
  4170.   FUNCTION Win16IsWindowShowing;     EXTERNAL 'PMWin'    INDEX 614;
  4171.  
  4172.   FUNCTION WinLoadLibrary;           EXTERNAL 'PMWin'    INDEX 615;
  4173.   FUNCTION Win16LoadLibrary;         EXTERNAL 'PMWin'    INDEX 615;
  4174.  
  4175.   FUNCTION WinCreatePointerIndirect; EXTERNAL 'PMWin'    INDEX 616;
  4176.   FUNCTION Win16CreatePointerIndirect;EXTERNAL 'PMWin'   INDEX 616;
  4177.  
  4178.   FUNCTION WinQueryPointerInfo;      EXTERNAL 'PMWin'    INDEX 617;
  4179.   FUNCTION Win16QueryPointerInfo;    EXTERNAL 'PMWin'    INDEX 617;
  4180.  
  4181. (* ====================================================*)
  4182. {
  4183.   FUNCTION WinGetErasePS;            External 'PMWin'    INDEX 624;
  4184.   FUNCTION Win16GetErasePS;          External 'PMWin'    INDEX 624;
  4185.  
  4186.   FUNCTION WinReleaseErasePS;        External 'PMWin'    INDEX 625;
  4187.   FUNCTION Win16ReleaseErasePS;      External 'PMWin'    INDEX 625;
  4188. }
  4189. (* ====================================================*)
  4190. {
  4191.   FUNCTION WinStretchPointer;        External 'PMWin'    INDEX 632;
  4192.   FUNCTION Win16StretchPointer;      External 'PMWin'    INDEX 632;
  4193.  
  4194.   FUNCTION WinSetPointerOwner;       External 'PMWin'    INDEX 633;
  4195.   FUNCTION Win16SetPointerOwner;     External 'PMWin'    INDEX 633;
  4196. }
  4197. (* ====================================================== *)
  4198. (*                         32 Bit                         *)
  4199. {                      NOT IMPLEMENTED
  4200.   FUNCTION Win32AddAtom;
  4201.     External 'PMWin'    INDEX 700;
  4202.  
  4203.   FUNCTION Win32Alarm;
  4204.     External 'PMWin'    INDEX 701;
  4205.  
  4206.   FUNCTION Win32BeginEnumWindows;
  4207.     External 'PMWin'    INDEX 702;
  4208.  
  4209.   FUNCTION Win32BeginPaint;
  4210.     External 'PMWin'    INDEX 703;
  4211.  
  4212.   FUNCTION Win32CalcFrameRect;
  4213.     External 'PMWin'    INDEX 704;
  4214.  
  4215.   FUNCTION Win32CancelShutdown;
  4216.     External 'PMWin'    INDEX 705;
  4217.  
  4218.   FUNCTION Win32CloseClipbrd;
  4219.     External 'PMWin'    INDEX 707;
  4220.  
  4221.   FUNCTION Win32CompareStrings;
  4222.     External 'PMWin'    INDEX 708;
  4223.  
  4224.   FUNCTION Win32CopyAccelTable;
  4225.     External 'PMWin'    INDEX 709;
  4226.  
  4227.   FUNCTION Win32CopyRect;
  4228.     External 'PMWin'    INDEX 710;
  4229.  
  4230.   FUNCTION Win32CpTranslateChar;
  4231.     External 'PMWin'    INDEX 711;
  4232.  
  4233.   FUNCTION Win32CpTranslateString;
  4234.     External 'PMWin'    INDEX 712;
  4235.  
  4236.   FUNCTION Win32CreateAccelTable;
  4237.     External 'PMWin'    INDEX 713;
  4238.  
  4239.   FUNCTION Win32CreateAtomTable;
  4240.     External 'PMWin'    INDEX 714;
  4241.  
  4242.   FUNCTION Win32CreateCursor;
  4243.     External 'PMWin'    INDEX 715;
  4244.  
  4245.   FUNCTION Win32CreateMsgQueue;
  4246.     External 'PMWin'    INDEX 716;
  4247.  
  4248.   FUNCTION Win32CreatePointer;
  4249.     External 'PMWin'    INDEX 717;
  4250.  
  4251.   FUNCTION Win32DdeInitiate;
  4252.     External 'PMWin'    INDEX 718;
  4253.  
  4254.   FUNCTION Win32DdePostMsg;
  4255.     External 'PMWin'    INDEX 719;
  4256.  
  4257.   FUNCTION Win32DdeRespond;
  4258.     External 'PMWin'    INDEX 720;
  4259.  
  4260.   FUNCTION Win32DeleteAtom;
  4261.     External 'PMWin'    INDEX 721;
  4262.  
  4263.   FUNCTION Win32DeleteLibrary;
  4264.     External 'PMWin'    INDEX 722;
  4265.  
  4266.   FUNCTION Win32DestroyAccelTable;
  4267.     External 'PMWin'    INDEX 723;
  4268.  
  4269.   FUNCTION Win32DestroyAtomTable;
  4270.     External 'PMWin'    INDEX 724;
  4271.  
  4272.   FUNCTION Win32DestroyCursor;
  4273.     External 'PMWin'    INDEX 725;
  4274.  
  4275.   FUNCTION Win32DestroyMsgQueue;
  4276.     External 'PMWin'    INDEX 726;
  4277.  
  4278.   FUNCTION Win32DestroyPointer;
  4279.     External 'PMWin'    INDEX 727;
  4280.  
  4281.   FUNCTION Win32DestroyWindow;
  4282.     External 'PMWin'    INDEX 728;
  4283.  
  4284.   FUNCTION Win32DismissDlg;
  4285.     External 'PMWin'    INDEX 729;
  4286.   
  4287.   FUNCTION Win32DrawBitmap;
  4288.     External 'PMWin'    INDEX 730;
  4289.   
  4290.   FUNCTION Win32DrawBorder;
  4291.     External 'PMWin'    INDEX 731;
  4292.  
  4293.   FUNCTION Win32DrawPointer;
  4294.     External 'PMWin'    INDEX 732;
  4295.   
  4296.   FUNCTION Win32EmptyClipbrd;
  4297.     External 'PMWin'    INDEX 733;
  4298.   
  4299.   FUNCTION Win32EnablePhysInput;
  4300.     External 'PMWin'    INDEX 734;
  4301.   
  4302.   FUNCTION Win32EnableWindow;
  4303.     External 'PMWin'    INDEX 735;
  4304.  
  4305.   FUNCTION Win32EnableWindowUpdate;
  4306.     External 'PMWin'    INDEX 736;
  4307.   
  4308.   FUNCTION Win32EndEnumWindows;
  4309.     External 'PMWin'    INDEX 737;
  4310.   
  4311.   FUNCTION Win32EndPaint;
  4312.     External 'PMWin'    INDEX 738;
  4313.   
  4314.   FUNCTION Win32EnumClipbrdFmts;
  4315.     External 'PMWin'    INDEX 739;
  4316.   
  4317.   FUNCTION Win32EnumDlgItem;
  4318.     External 'PMWin'    INDEX 740;
  4319.   
  4320.   FUNCTION Win32EqualRect;
  4321.     External 'PMWin'    INDEX 741;
  4322.   
  4323.   FUNCTION Win32ExcludeUpdateRegion;
  4324.     External 'PMWin'    INDEX 742;
  4325.   
  4326.   FUNCTION Win32FillRect;
  4327.     External 'PMWin'    INDEX 743;
  4328.   
  4329.   FUNCTION Win32FindAtom;
  4330.     External 'PMWin'    INDEX 744;
  4331.   
  4332.   FUNCTION Win32FlashWindow;
  4333.     External 'PMWin'    INDEX 745;
  4334.   
  4335.   FUNCTION Win32FocusChange;
  4336.     External 'PMWin'    INDEX 746;
  4337.   
  4338.   FUNCTION Win32FreeErrorInfo;
  4339.     External 'PMWin'    INDEX 748;
  4340.   
  4341.   FUNCTION Win32GetClipPS;
  4342.     External 'PMWin'    INDEX 749;
  4343.   
  4344.   FUNCTION Win32GetCurrentTime;
  4345.     External 'PMWin'    INDEX 750;
  4346.   
  4347.   FUNCTION Win32GetErrorInfo;
  4348.     External 'PMWin'    INDEX 751;
  4349.  
  4350.   FUNCTION Win32GetKeyState;
  4351.     External 'PMWin'    INDEX 752;
  4352.   
  4353.   FUNCTION Win32GetLastError;
  4354.     External 'PMWin'    INDEX 753;
  4355.   
  4356.   FUNCTION Win32GetMaxPosition;
  4357.     External 'PMWin'    INDEX 754;
  4358.   
  4359.   FUNCTION Win32GetMinPosition;
  4360.     External 'PMWin'    INDEX 755;
  4361.   
  4362.   FUNCTION Win32GetNextWindow;
  4363.     External 'PMWin'    INDEX 756;
  4364.  
  4365.   FUNCTION Win32GetPS;
  4366.     External 'PMWin'    INDEX 757;
  4367.   
  4368.   FUNCTION Win32GetPhysKeyState;
  4369.     External 'PMWin'    INDEX 758;
  4370.   
  4371.   FUNCTION Win32GetScreenPS;
  4372.     External 'PMWin'    INDEX 759;
  4373.   
  4374.   FUNCTION Win32GetSysBitmap;
  4375.     External 'PMWin'    INDEX 760;
  4376.   
  4377.   FUNCTION Win32InSendMsg;
  4378.     External 'PMWin'    INDEX 761;
  4379.   
  4380.   FUNCTION Win32InflateRect;
  4381.     External 'PMWin'    INDEX 762;
  4382.   
  4383.   FUNCTION Win32Initialize;
  4384.     External 'PMWin'    INDEX 763;
  4385.   
  4386.   FUNCTION Win32IntersectRect;
  4387.     External 'PMWin'    INDEX 764;
  4388.   
  4389.   FUNCTION Win32InvalidateRect;
  4390.     External 'PMWin'    INDEX 765;
  4391.   
  4392.   FUNCTION Win32InvalidateRegion;
  4393.     External 'PMWin'    INDEX 766;
  4394.   
  4395.   FUNCTION Win32InvertRect;
  4396.     External 'PMWin'    INDEX 767;
  4397.   
  4398.   FUNCTION Win32IsChild;
  4399.     External 'PMWin'    INDEX 768;
  4400.   
  4401.   FUNCTION Win32IsPhysInputEnabled;
  4402.     External 'PMWin'    INDEX 769;
  4403.   
  4404.   FUNCTION Win32IsRectEmpty;
  4405.     External 'PMWin'    INDEX 770;
  4406.  
  4407.   FUNCTION Win32IsThreadActive;
  4408.     External 'PMWin'    INDEX 771;
  4409.   
  4410.   FUNCTION Win32IsWindow;
  4411.     External 'PMWin'    INDEX 772;
  4412.  
  4413.   FUNCTION Win32IsWindowEnabled;
  4414.     External 'PMWin'    INDEX 773;
  4415.   
  4416.   FUNCTION Win32IsWindowShowing;
  4417.     External 'PMWin'    INDEX 774;
  4418.   
  4419.   FUNCTION Win32IsWindowVisible;
  4420.     External 'PMWin'    INDEX 775;
  4421.   
  4422.   FUNCTION Win32LoadAccelTable;
  4423.     External 'PMWin'    INDEX 776;
  4424.  
  4425.   FUNCTION Win32LoadLibrary;
  4426.     External 'PMWin'    INDEX 777;
  4427.   
  4428.   FUNCTION Win32LoadMenu;
  4429.     External 'PMWin'    INDEX 778;
  4430.   
  4431.   FUNCTION Win32LoadMessage;
  4432.     External 'PMWin'    INDEX 779;
  4433.  
  4434.   FUNCTION Win32LoadPointer;
  4435.     External 'PMWin'    INDEX 780;
  4436.  
  4437.   FUNCTION Win32LoadString;
  4438.     External 'PMWin'    INDEX 781;
  4439.  
  4440.   FUNCTION Win32LockVisRegions;
  4441.     External 'PMWin'    INDEX 782;
  4442.  
  4443. (* ====================================================== *)
  4444.  
  4445.   FUNCTION Win32LockWindowUpdate;
  4446.     External 'PMWin'    INDEX 784;
  4447.  
  4448.   FUNCTION Win32MakePoints;
  4449.     External 'PMWin'    INDEX 785;
  4450.  
  4451.   FUNCTION Win32MakeRect;
  4452.     External 'PMWin'    INDEX 786;
  4453.   
  4454.   FUNCTION Win32MapDlgPoints;
  4455.     External 'PMWin'    INDEX 787;
  4456.   
  4457.   FUNCTION Win32MapWindowPoints;
  4458.     External 'PMWin'    INDEX 788;
  4459.   
  4460.   FUNCTION Win32MessageBox;
  4461.     External 'PMWin'    INDEX 789;
  4462.   
  4463.   FUNCTION Win32MsgSemWait;
  4464.     External 'PMWin'    INDEX 790;
  4465.   
  4466.   FUNCTION Win32NextChar;
  4467.     External 'PMWin'    INDEX 791;
  4468.   
  4469.   FUNCTION Win32OffSetRect;
  4470.     External 'PMWin'    INDEX 792;
  4471.  
  4472.   FUNCTION Win32OpenClipbrd;
  4473.     External 'PMWin'    INDEX 793;
  4474.   
  4475.   FUNCTION Win32OpenWindowDC;
  4476.     External 'PMWin'    INDEX 794;
  4477.   
  4478.   FUNCTION Win32PrevChar;
  4479.     External 'PMWin'    INDEX 795;
  4480.   
  4481.   FUNCTION Win32ProcessDlg;
  4482.     External 'PMWin'    INDEX 796;
  4483.   
  4484.   FUNCTION Win32PtInRect;
  4485.     External 'PMWin'    INDEX 797;
  4486.   
  4487.   FUNCTION Win32QueryAccelTable;
  4488.     External 'PMWin'    INDEX 798;
  4489.  
  4490.   FUNCTION Win32QueryActiveWindow;
  4491.     External 'PMWin'    INDEX 799;
  4492.   
  4493.   FUNCTION Win32QueryAnchorBlock;
  4494.     External 'PMWin'    INDEX 800;
  4495.   
  4496.   FUNCTION Win32QueryAtomLength;
  4497.     External 'PMWin'    INDEX 801;
  4498.   
  4499.   FUNCTION Win32QueryAtomName;
  4500.     External 'PMWin'    INDEX 802;
  4501.   
  4502.   FUNCTION Win32QueryAtomUsage;
  4503.     External 'PMWin'    INDEX 803;
  4504.  
  4505.   FUNCTION Win32QueryCapture;
  4506.     External 'PMWin'    INDEX 804;
  4507.   
  4508.   FUNCTION Win32QueryClassName;
  4509.     External 'PMWin'    INDEX 805;
  4510.   
  4511.   FUNCTION Win32QueryClipbrdData;
  4512.     External 'PMWin'    INDEX 806;
  4513.   
  4514.   FUNCTION Win32QueryClipbrdFmtInfo;
  4515.     External 'PMWin'    INDEX 807;
  4516.   
  4517.   FUNCTION Win32QueryClipbrdOwner;
  4518.     External 'PMWin'    INDEX 808;
  4519.   
  4520.   FUNCTION Win32QueryClipbrdViewer;
  4521.     External 'PMWin'    INDEX 809;
  4522.   
  4523.   FUNCTION Win32QueryCp;
  4524.     External 'PMWin'    INDEX 810;
  4525.   
  4526.   FUNCTION Win32QueryCpList;
  4527.     External 'PMWin'    INDEX 811;
  4528.   
  4529.   FUNCTION Win32QueryCursorInfo;
  4530.     External 'PMWin'    INDEX 812;
  4531.  
  4532.   FUNCTION Win32QueryDesktopWindow;
  4533.     External 'PMWin'    INDEX 813;
  4534.   
  4535.   FUNCTION Win32QueryDlgItemShort;
  4536.     External 'PMWin'    INDEX 814;
  4537.   
  4538.   FUNCTION Win32QueryDlgItemText;
  4539.     External 'PMWin'    INDEX 815;
  4540.   
  4541.   FUNCTION Win32QueryDlgItemTextLength;
  4542.     External 'PMWin'    INDEX 816;
  4543.   
  4544.   FUNCTION Win32QueryFocus;
  4545.     External 'PMWin'    INDEX 817;
  4546.  
  4547.   FUNCTION Win32QueryMsgPos;
  4548.     External 'PMWin'    INDEX 818;
  4549.   
  4550.   FUNCTION Win32QueryMsgTime;
  4551.     External 'PMWin'    INDEX 819;
  4552.   
  4553.   FUNCTION Win32QueryObjectWindow;
  4554.     External 'PMWin'    INDEX 820;
  4555.   
  4556.   FUNCTION Win32QueryPointer;
  4557.     External 'PMWin'    INDEX 821;
  4558.   
  4559.   FUNCTION Win32QueryPointerInfo;
  4560.     External 'PMWin'    INDEX 822;
  4561.   
  4562.   FUNCTION Win32QueryPointerPos;
  4563.     External 'PMWin'    INDEX 823;
  4564.  
  4565.   FUNCTION Win32QueryQueueInfo;
  4566.     External 'PMWin'    INDEX 824;
  4567.   
  4568.   FUNCTION Win32QueryQueueStatus;
  4569.     External 'PMWin'    INDEX 825;
  4570.   
  4571.   FUNCTION Win32QuerySysColor;
  4572.     External 'PMWin'    INDEX 826;
  4573.   
  4574.   FUNCTION Win32QuerySysModalWindow;
  4575.     External 'PMWin'    INDEX 827;
  4576.   
  4577.   FUNCTION Win32QuerySysPointer;
  4578.     External 'PMWin'    INDEX 828;
  4579.   
  4580.   FUNCTION Win32QuerySysValue;
  4581.     External 'PMWin'    INDEX 829;
  4582.   
  4583.   FUNCTION Win32QuerySystemAtomTable;
  4584.     External 'PMWin'    INDEX 830;
  4585.   
  4586.   FUNCTION Win32QueryUpdateRect;
  4587.     External 'PMWin'    INDEX 831;
  4588.   
  4589.   FUNCTION Win32QueryUpdateRegion;
  4590.     External 'PMWin'    INDEX 832;
  4591.  
  4592.   FUNCTION Win32QueryVersion;
  4593.     External 'PMWin'    INDEX 833;
  4594.   
  4595.   FUNCTION Win32QueryWindow;
  4596.     External 'PMWin'    INDEX 834;
  4597.   
  4598.   FUNCTION Win32QueryWindowDC;
  4599.     External 'PMWin'    INDEX 835;
  4600.   
  4601.   FUNCTION Win32QueryWindowPos;
  4602.     External 'PMWin'    INDEX 837;
  4603.  
  4604.   FUNCTION Win32QueryWindowProcess;
  4605.     External 'PMWin'    INDEX 838;
  4606.   
  4607.   FUNCTION Win32QueryWindowPtr;
  4608.     External 'PMWin'    INDEX 839;
  4609.   
  4610.   FUNCTION Win32QueryWindowRect;
  4611.     External 'PMWin'    INDEX 840;
  4612.   
  4613.   FUNCTION Win32QueryWindowText;
  4614.     External 'PMWin'    INDEX 841;
  4615.   
  4616.   FUNCTION Win32QueryWindowTextLength;
  4617.     External 'PMWin'    INDEX 842;
  4618.   
  4619.   FUNCTION Win32QueryWindowULong;
  4620.     External 'PMWin'    INDEX 843;
  4621.   
  4622.   FUNCTION Win32QueryWindowUShort;
  4623.     External 'PMWin'    INDEX 844;
  4624.  
  4625.   FUNCTION Win32RegisterUserDatatype;
  4626.     External 'PMWin'    INDEX 845;
  4627.   
  4628.   FUNCTION Win32RegisterUserMsg;
  4629.     External 'PMWin'    INDEX 846;
  4630.   
  4631.   FUNCTION Win32ReleasePS;
  4632.     External 'PMWin'    INDEX 848;
  4633.   
  4634.   FUNCTION Win32ScrollWindow;
  4635.     External 'PMWin'    INDEX 849;
  4636.   
  4637.   FUNCTION Win32SetAccelTable;
  4638.     External 'PMWin'    INDEX 850;
  4639.   
  4640.   FUNCTION Win32SetActiveWindow;
  4641.     External 'PMWin'    INDEX 851;
  4642.   
  4643.   FUNCTION Win32SetCapture;
  4644.     External 'PMWin'    INDEX 852;
  4645.   
  4646.   FUNCTION Win32SetClassMsgInterest;
  4647.     External 'PMWin'    INDEX 853;
  4648.   
  4649.   FUNCTION Win32SetClipbrdData;
  4650.     External 'PMWin'    INDEX 854;
  4651.  
  4652.   FUNCTION Win32SetClipbrdOwner;
  4653.     External 'PMWin'    INDEX 855;
  4654.   
  4655.   FUNCTION Win32SetClipbrdViewer;
  4656.     External 'PMWin'    INDEX 856;
  4657.   
  4658.   FUNCTION Win32SetCp;
  4659.     External 'PMWin'    INDEX 857;
  4660.  
  4661.   FUNCTION Win32SetDlgItemShort;
  4662.     External 'PMWin'    INDEX 858;
  4663.   
  4664.   FUNCTION Win32SetDlgItemText;
  4665.     External 'PMWin'    INDEX 859;
  4666.   
  4667.   FUNCTION Win32SetFocus;
  4668.     External 'PMWin'    INDEX 860;
  4669.   
  4670.   FUNCTION Win32SetMsgInterest;
  4671.     External 'PMWin'    INDEX 861;
  4672.   
  4673.   FUNCTION Win32SetMsgMode;
  4674.     External 'PMWin'    INDEX 862;
  4675.   
  4676.   FUNCTION Win32SetMultWindowPos;
  4677.     External 'PMWin'    INDEX 863;
  4678.   
  4679.   FUNCTION Win32SetOwner;
  4680.     External 'PMWin'    INDEX 864;
  4681.   
  4682.   FUNCTION Win32SetParent;
  4683.     External 'PMWin'    INDEX 865;
  4684.  
  4685.   FUNCTION Win32SetPointer;
  4686.     External 'PMWin'    INDEX 866;
  4687.   
  4688.   FUNCTION Win32SetPointerPos;
  4689.     External 'PMWin'    INDEX 867;
  4690.   
  4691.   FUNCTION Win32SetRect;
  4692.     External 'PMWin'    INDEX 868;
  4693.   
  4694.   FUNCTION Win32SetRectEmpty;
  4695.     External 'PMWin'    INDEX 869;
  4696.   
  4697.   FUNCTION Win32SetSynchroMode;
  4698.     External 'PMWin'    INDEX 870;
  4699.   
  4700.   FUNCTION Win32SetSysColors;
  4701.     External 'PMWin'    INDEX 871;
  4702.   
  4703.   FUNCTION Win32SetSysModalWindow;
  4704.     External 'PMWin'    INDEX 872;
  4705.   
  4706.   FUNCTION Win32SetSysValue;
  4707.     External 'PMWin'    INDEX 873;
  4708.   
  4709.   FUNCTION Win32SetWindowBits;
  4710.     External 'PMWin'    INDEX 874;
  4711.  
  4712.   FUNCTION Win32SetWindowPos;
  4713.     External 'PMWin'    INDEX 875;
  4714.   
  4715.   FUNCTION Win32SetWindowPtr;
  4716.     External 'PMWin'    INDEX 876;
  4717.  
  4718.   FUNCTION Win32SetWindowText;
  4719.     External 'PMWin'    INDEX 877;
  4720.   
  4721.   FUNCTION Win32SetWindowULong;
  4722.     External 'PMWin'    INDEX 878;
  4723.   
  4724.   FUNCTION Win32SetWindowUShort;
  4725.     External 'PMWin'    INDEX 879;
  4726.   
  4727.   FUNCTION Win32ShowCursor;
  4728.     External 'PMWin'    INDEX 880;
  4729.   
  4730.   FUNCTION Win32ShowPointer;
  4731.     External 'PMWin'    INDEX 881;
  4732.   
  4733.   FUNCTION Win32ShowTrackRect;
  4734.     External 'PMWin'    INDEX 882;
  4735.   
  4736.   FUNCTION Win32ShowWindow;
  4737.     External 'PMWin'    INDEX 883;
  4738.   
  4739.   FUNCTION Win32StartTimer;
  4740.     External 'PMWin'    INDEX 884;
  4741.   
  4742.   FUNCTION Win32StopTimer;
  4743.     External 'PMWin'    INDEX 885;
  4744.  
  4745.   FUNCTION Win32SubstituteStrings;
  4746.     External 'PMWin'    INDEX 886;
  4747.   
  4748.   FUNCTION Win32SubtractRect;
  4749.     External 'PMWin'    INDEX 887;
  4750.  
  4751.   FUNCTION Win32Terminate;
  4752.     External 'PMWin'    INDEX 888;
  4753.  
  4754. (* ====================================================== *)
  4755.  
  4756.   FUNCTION Win32TrackRect;
  4757.     External 'PMWin'    INDEX 890;
  4758.   
  4759.   FUNCTION Win32UnionRect;
  4760.     External 'PMWin'    INDEX 891;
  4761.   
  4762.   FUNCTION Win32UpdateWindow;
  4763.     External 'PMWin'    INDEX 892;
  4764.  
  4765.   FUNCTION Win32Upper;
  4766.     External 'PMWin'    INDEX 893;
  4767.   
  4768.   FUNCTION Win32UpperChar;
  4769.     External 'PMWin'    INDEX 894;
  4770.  
  4771.   FUNCTION Win32ValidateRect;
  4772.     External 'PMWin'    INDEX 895;
  4773.   
  4774.   FUNCTION Win32ValidateRegion;
  4775.     External 'PMWin'    INDEX 896;
  4776.   
  4777.   FUNCTION Win32WaitMsg;
  4778.     External 'PMWin'    INDEX 897;
  4779.   
  4780.   FUNCTION Win32WindowFromDC;
  4781.     External 'PMWin'    INDEX 898;
  4782.   
  4783.   FUNCTION Win32WindowFromID;
  4784.     External 'PMWin'    INDEX 899;
  4785.   
  4786.   FUNCTION Win32WindowFromPoint;
  4787.     External 'PMWin'    INDEX 900;
  4788.   
  4789.   FUNCTION Win32BroadcastMsg;
  4790.     External 'PMWin'    INDEX 901;
  4791.  
  4792.   FUNCTION Win32PostQueueMsg;
  4793.     External 'PMWin'    INDEX 902;
  4794.   
  4795.   FUNCTION Win32SendDlgItemMsg;
  4796.     External 'PMWin'    INDEX 903;
  4797.   
  4798.   FUNCTION Win32TranslateAccel;
  4799.     External 'PMWin'    INDEX 904;
  4800.   
  4801.   FUNCTION Win32CallMsgFilter;
  4802.     External 'PMWin'    INDEX 905;
  4803.   
  4804.   FUNCTION Win32CreateFrameControls;
  4805.     External 'PMWin'    INDEX 906;
  4806.   
  4807.   FUNCTION Win32CreateMenu;
  4808.     External 'PMWin'    INDEX 907;
  4809.   
  4810.   FUNCTION Win32CreateStdWindow;
  4811.     External 'PMWin'    INDEX 908;
  4812.  
  4813.   FUNCTION Win32CreateWindow;
  4814.     External 'PMWin'    INDEX 909;
  4815.   
  4816.   FUNCTION Win32DefDlgProc;
  4817.     External 'PMWin'    INDEX 910;
  4818.   
  4819.   FUNCTION Win32DefWindowProc;
  4820.     External 'PMWin'    INDEX 911;
  4821.   
  4822.   FUNCTION Win32DispatchMsg;
  4823.     External 'PMWin'    INDEX 912;
  4824.  
  4825.   FUNCTION Win32DrawText;
  4826.     External 'PMWin'    INDEX 913;
  4827.  
  4828.   FUNCTION Win32GetDlgMsg;
  4829.     External 'PMWin'    INDEX 914;
  4830.   
  4831.   FUNCTION Win32GetMsg;
  4832.     External 'PMWin'    INDEX 915;
  4833.   
  4834.   FUNCTION Win32MsgMuxSemWait;
  4835.     External 'PMWin'    INDEX 916;
  4836.   
  4837.   FUNCTION Win32MultWindowFromIDs;
  4838.     External 'PMWin'    INDEX 917;
  4839.   
  4840.   FUNCTION Win32PeekMsg;
  4841.     External 'PMWin'    INDEX 918;
  4842.   
  4843.   FUNCTION Win32PostMsg;
  4844.     External 'PMWin'    INDEX 919;
  4845.   
  4846.   FUNCTION Win32SendMsg;
  4847.     External 'PMWin'    INDEX 920;
  4848.   
  4849.   FUNCTION Win32SetKeyboardStateTable;
  4850.     External 'PMWin'    INDEX 921;
  4851.  
  4852.   FUNCTION Win32CreateDlg;
  4853.     External 'PMWin'    INDEX 922;
  4854.   
  4855.   FUNCTION Win32DlgBox;
  4856.     External 'PMWin'    INDEX 923;
  4857.   
  4858.   FUNCTION Win32LoadDlg;
  4859.     External 'PMWin'    INDEX 924;
  4860.   
  4861.   FUNCTION Win32QueryClassInfo;
  4862.     External 'PMWin'    INDEX 925;
  4863.   
  4864.   FUNCTION Win32RegisterClass;
  4865.     External 'PMWin'    INDEX 926;
  4866.   
  4867.   FUNCTION Win32ReleaseHook;
  4868.     External 'PMWin'    INDEX 927;
  4869.  
  4870.   FUNCTION Win32SetHook;
  4871.     External 'PMWin'    INDEX 928;
  4872.   
  4873.   FUNCTION Win32SubclassWindow;
  4874.     External 'PMWin'    INDEX 929;
  4875.   
  4876.   FUNCTION Win32SetClassThunkProc;
  4877.     External 'PMWin'    INDEX 930;
  4878.   
  4879.   FUNCTION Win32QueryClassThunkProc;
  4880.     External 'PMWin'    INDEX 931;
  4881.   
  4882.   FUNCTION Win32SetWindowThunkProc;
  4883.     External 'PMWin'    INDEX 932;
  4884.  
  4885.   FUNCTION Win32QueryWindowThunkProc;
  4886.     External 'PMWin'    INDEX 933;
  4887.   
  4888.   FUNCTION Win32QueryWindowModel;
  4889.     External 'PMWin'    INDEX 934;
  4890.   
  4891.   FUNCTION Win32SetDesktopBkgnd;
  4892.     External 'PMWin'    INDEX 935;
  4893.   
  4894.   FUNCTION Win32QueryDesktopBkgnd;
  4895.     External 'PMWin'    INDEX 936;
  4896.   
  4897.   FUNCTION Win32PopupMenu;
  4898.     External 'PMWin'    INDEX 937;
  4899.   
  4900.   FUNCTION Win32SetPresParam;
  4901.     External 'PMWin'    INDEX 938;
  4902.   
  4903.   FUNCTION Win32QueryPresParam;
  4904.     External 'PMWin'    INDEX 939;
  4905.  
  4906.   FUNCTION Win32RemovePresParam;
  4907.     External 'PMWin'    INDEX 940;
  4908.   
  4909.   FUNCTION Win32RealizePalette;
  4910.     External 'PMWin'    INDEX 941;
  4911.  
  4912.   FUNCTION Win32CreatePointerIndirect;
  4913.     External 'PMWin'    INDEX 942;
  4914.   
  4915.   FUNCTION Win32SaveWindowPos;
  4916.     External 'PMWin'    INDEX 943;
  4917.   
  4918.   FUNCTION Win32GetErasePS;
  4919.     External 'PMWin'    INDEX 952;
  4920.   
  4921.   FUNCTION Win32ReleaseErasePS;
  4922.     External 'PMWin'    INDEX 953;
  4923. }
  4924. (* ====================================================== *)
  4925. (*                         16 Bit                         *)
  4926.  
  4927. {
  4928.   FUNCTION WinSetClassThunkProc;    External 'PMWin'    INDEX 959;
  4929.   FUNCTION Win16SetClassThunkProc;  External 'PMWin'    INDEX 959;
  4930.  
  4931.   FUNCTION WinQueryClassThunkProc;  External 'PMWin'    INDEX 960;
  4932.   FUNCTION Win16QueryClassThunkProc;External 'PMWin'    INDEX 960;
  4933.  
  4934.   FUNCTION WinSetWindowThunkProc;   External 'PMWin'    INDEX 961;
  4935.   FUNCTION Win16SetWindowThunkProc; External 'PMWin'    INDEX 961;
  4936.  
  4937.   FUNCTION WinQueryWindowThunkProc; External 'PMWin'    INDEX 962;
  4938.   FUNCTION Win16QueryWindowThunkProc;External 'PMWin'   INDEX 962;
  4939.  
  4940. }
  4941. (* ====================================================== *)
  4942. (*                         32 Bit                         *)
  4943. {                     NOT IMPLEMENTED
  4944.  
  4945.   FUNCTION Win32StretchPointer;
  4946.     External 'PMWin'    INDEX 968;
  4947.  
  4948. (* ====================================================== *)
  4949.  
  4950.   FUNCTION Win32SetPointerOwner;
  4951.     External 'PMWin'    INDEX 971;
  4952.  
  4953. (* ====================================================== *)
  4954.  
  4955.   FUNCTION Win32SetErrorInfo;
  4956.     External 'PMWin'    INDEX 977;
  4957.  
  4958.   FUNCTION Win32WaitEventSem;
  4959.     External 'PMWin'    INDEX 978;
  4960.  
  4961.   FUNCTION Win32RequestMutexSem;
  4962.     External 'PMWin'    INDEX 979;
  4963.  
  4964.   FUNCTION Win32WaitMuxWaitSem;
  4965.     External 'PMWin'    INDEX 980;
  4966.  
  4967. (* ====================================================== *)
  4968.  
  4969.   FUNCTION Win32LoadProcedure;   External 'PMWin' INDEX 986;
  4970.   FUNCTION Win32DeleteProcedure; External 'PMWin' INDEX 987;
  4971. }
  4972.  
  4973. END.
  4974.  
  4975. (* ======================================================= *)
  4976. (*                     Ende von PMWIN.PAS                  *)