home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / winwindo.def < prev    next >
Text File  |  1995-12-14  |  20KB  |  678 lines

  1. DEFINITION MODULE WINWINDOWMGR;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for general window manager.
  5.            09.08.95 21.49: changed WinBeginPaint
  6.            14.12.95 18.01: corrected: functions with val-parameter
  7.                            of type RECTL. These are now of type
  8.                            PRECTL or VAR RECTL.
  9.  
  10.   Copyright (c) 1992 by Juergen Neuhoff
  11. *************************************************************************)
  12.  
  13. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  14. (*$CDECL+    C-style procedures                                         *)
  15. (*$A         default alignment for record fields                        *)
  16.  
  17. IMPORT SYSTEM;
  18. FROM   OS2DEF IMPORT TYPEPREFIX, HAB, HWND, HPS, HDC, HRGN, HMODULE, HBITMAP;
  19. FROM   OS2DEF IMPORT PID, TID, RECTL, PRECTL, PSZ, LHANDLE, POINTL;
  20. FROM   WINDEF IMPORT PFNWP, MPARAM, MRESULT;
  21.  
  22.  
  23. PROCEDURE WinCreateWindow
  24. ( WinHandle         : HWND;
  25.   ClassName         : ARRAY OF CHAR;
  26.   Name              : ARRAY OF CHAR;
  27.   Style             : LONGCARD;
  28.   x                 : LONGINT;
  29.   y                 : LONGINT;
  30.   Width             : LONGINT;
  31.   Height            : LONGINT;
  32.   OwnerWinHandle    : HWND;
  33.   BehindWinHandle   : HWND;
  34.   WinId             : LONGCARD;
  35.   VAR CtlData       : ARRAY OF SYSTEM.BYTE;
  36.   VAR PresParams    : ARRAY OF SYSTEM.BYTE
  37. )                   : HWND;
  38.  
  39. PROCEDURE WinEnableWindow
  40. ( WinHandle         : HWND;
  41.   Enable            : BOOLEAN
  42. )                   : BOOLEAN;
  43.  
  44. PROCEDURE WinIsWindowEnabled
  45. ( WinHandle         : HWND
  46. )                   : BOOLEAN;
  47.  
  48. PROCEDURE WinEnableWindowUpdate
  49. ( WinHandle         : HWND;
  50.   Enable            : BOOLEAN
  51. )                   : BOOLEAN;
  52.  
  53. PROCEDURE WinIsWindowVisible
  54. ( WinHandle         : HWND
  55. )                   : BOOLEAN;
  56.  
  57. PROCEDURE WinQueryWindowText
  58. ( WinHandle         : HWND;
  59.   BufferLen         : LONGINT;
  60.   VAR Buffer        : ARRAY OF CHAR
  61. )                   : LONGINT;
  62.  
  63. PROCEDURE WinSetWindowText
  64. ( WinHandle         : HWND;
  65.   Text              : ARRAY OF CHAR
  66. )                   : BOOLEAN;
  67.  
  68. PROCEDURE WinQueryWindowTextLength
  69. ( WinHandle         : HWND
  70. )                   : LONGINT;
  71.  
  72. PROCEDURE WinWindowFromID
  73. ( ParentWinHandle   : HWND;
  74.   ChildId           : LONGCARD
  75. )                   : HWND;
  76.  
  77. PROCEDURE WinIsWindow
  78. ( AnchorBlockHandle : HAB;
  79.   WinHandle         : HWND
  80. )                   : BOOLEAN;
  81.  
  82. PROCEDURE WinQueryWindow
  83. ( WinHandle         : HWND;
  84.   ICode             : LONGINT
  85. )                   : HWND;
  86.  
  87. CONST (* WinQueryWindow() codes *)
  88.   QW_NEXT       = 0; (* next window in z-order (window below) *)
  89.   QW_PREV       = 1; (* previous window in z-order (window above) *)
  90.   QW_TOP        = 2; (* topmost child window *)
  91.   QW_BOTTOM     = 3; (* bottommost child window *)
  92.   QW_OWNER      = 4; (* owner of window *)
  93.   QW_PARENT     = 5; (* parent of window *)
  94.   QW_NEXTTOP    = 6; (* next window of the owner window hierarchy *)
  95.   QW_PREVTOP    = 7; (* previous window of the owner window hierarchy *)
  96.   QW_FRAMEOWNER = 8;
  97.  
  98. PROCEDURE WinMultWindowFromIDs
  99. ( ParentWinHandle   : HWND;
  100.   VAR WinHandles    : ARRAY OF HWND;
  101.   FirstId           : LONGCARD;
  102.   LastId            : LONGCARD
  103. )                   : LONGINT;
  104.  
  105. PROCEDURE WinSetParent
  106. ( WinHandle         : HWND;
  107.   NewParentHandle   : HWND;
  108.   Redraw            : BOOLEAN
  109. )                   : BOOLEAN;
  110.  
  111. PROCEDURE WinIsChild
  112. ( WinHandle         : HWND;
  113.   ParentWinHandle   : HWND
  114. )                   : BOOLEAN;
  115.  
  116. PROCEDURE WinSetOwner
  117. ( WinHandle         : HWND;
  118.   NewOwner          : HWND
  119. )                   : BOOLEAN;
  120.  
  121. PROCEDURE WinQueryWindowProcess
  122. ( WinHandle         : HWND;
  123.   VAR ProcessId     : PID;
  124.   VAR ThreadId      : TID
  125. )                   : BOOLEAN;
  126.  
  127. PROCEDURE WinQueryObjectWindow
  128. ( DeskTopWinHandle  : HWND
  129. )                   : HWND;
  130.  
  131. PROCEDURE WinQueryDesktopWindow
  132. ( AnchorBlockHandle : HAB;
  133.   DevContextHandle  : HDC
  134. )                   : HWND;
  135.  
  136. PROCEDURE WinSetWindowPos
  137. ( WinHandle            : HWND;
  138.   InsertBehindHandle   : HWND;
  139.   x                    : LONGINT;
  140.   y                    : LONGINT;
  141.   xSize                : LONGINT;
  142.   ySize                : LONGINT;
  143.   Options              : LONGCARD
  144. )                      : BOOLEAN;
  145.  
  146. CONST (* WinSetWindowPos() flags *)
  147.   SWP_SIZE             = 0001H; (* change the window size *)
  148.   SWP_MOVE             = 0002H; (* change the window x,y position *)
  149.   SWP_ZORDER           = 0004H; (* change the relative window placement *)
  150.   SWP_SHOW             = 0008H; (* show the window *)
  151.   SWP_HIDE             = 0010H; (* hide the window *)
  152.   SWP_NOREDRAW         = 0020H; (* changes are not redrawn *)
  153.   SWP_NOADJUST         = 0040H; (* no WM_ADJUSTWINDOWPOS before moving/sizing *)
  154.   SWP_ACTIVATE         = 0080H; (* activate if frame window *)
  155.   SWP_DEACTIVATE       = 0100H; (* deactivate if frame window *)
  156.   SWP_EXTSTATECHANGE   = 0200H;
  157.   SWP_MINIMIZE         = 0400H; (* minimize the window *)
  158.   SWP_MAXIMIZE         = 0800H; (* maximize the window *)
  159.   SWP_RESTORE          = 1000H; (* restore the window to normal size/pos *)
  160.   SWP_FOCUSACTIVATE    = 2000H;
  161.   SWP_FOCUSDEACTIVATE  = 4000H;
  162.   SWP_NOAUTOCLOSE      = 8000H; (* Valid in PROGDETAILS struct only *)
  163.  
  164. TYPE (* WinSetMultWindowPos() record *)
  165.   SWP                    = RECORD
  166.     CASE                   : TYPEPREFIX OF
  167.     | TRUE                 :
  168.       fl                   : LONGCARD;
  169.       cy                   : LONGINT;
  170.       cx                   : LONGINT;
  171.     | FALSE                :
  172.       Flags                : LONGCARD;
  173.       ySize                : LONGINT;
  174.       xSize                : LONGINT;
  175.     END;
  176.     y                      : LONGINT;
  177.     x                      : LONGINT;
  178.     CASE                   : TYPEPREFIX OF
  179.     | TRUE                 :
  180.       hwndInsertBehind     : HWND;
  181.       hwnd                 : HWND;
  182.       ulReserved1          : LONGCARD;
  183.       ulReserved2          : LONGCARD;
  184.     | FALSE                :
  185.       InsertBehindHandle   : HWND;
  186.       WinHandle            : HWND;
  187.       Reserved1            : LONGCARD;
  188.       Reserved2            : LONGCARD;
  189.     END;                   END;
  190.   PSWP                   = POINTER TO SWP;
  191.  
  192. PROCEDURE WinSetMultWindowPos
  193. ( AnchorBlockHandle    : HAB;
  194.   VAR SetWinPos        : ARRAY OF SWP;
  195.   SetWinPosCount       : LONGINT
  196. )                      : BOOLEAN;
  197.  
  198. PROCEDURE WinQueryWindowPos
  199. ( WinHandle            : HWND;
  200.   VAR WinPos           : SWP
  201. )                      : BOOLEAN;
  202.  
  203. CONST (* returned from WM_ADJUSTWINDOWPOS and passed to WM_WINDOWPOSCHANGED *)
  204.   AWP_MINIMIZED        = 00010000H;
  205.   AWP_MAXIMIZED        = 00020000H;
  206.   AWP_RESTORED         = 00040000H;
  207.   AWP_ACTIVATE         = 00080000H;
  208.   AWP_DEACTIVATE       = 00100000H;
  209.  
  210. PROCEDURE WinUpdateWindow
  211. ( WinHandle            : HWND
  212. )                      : BOOLEAN;
  213.  
  214. PROCEDURE WinInvalidateRect
  215. ( WinHandle            : HWND;
  216.   Rectangle            : PRECTL;
  217.   InclClippedChildren  : BOOLEAN
  218. )                      : BOOLEAN;
  219.  
  220. PROCEDURE WinInvalidateRegion
  221. ( WinHandle            : HWND;
  222.   RegionHandle         : HRGN;
  223.   InclClippedChildren  : BOOLEAN
  224. )                      : BOOLEAN;
  225.  
  226. PROCEDURE WinInvertRect
  227. ( PresSpaceHandle      : HPS;
  228.   VAR Rectangle        : RECTL
  229. )                      : BOOLEAN;
  230.  
  231. PROCEDURE WinDrawBitmap
  232. ( PresSpaceHandle      : HPS;
  233.   BitMapHandle         : HBITMAP;
  234.   SubRectangle         : PRECTL;
  235.   VAR BitMapDest       : POINTL;
  236.   ForeColor            : LONGINT;
  237.   BackColor            : LONGINT;
  238.   Flags                : LONGCARD
  239. )                      : BOOLEAN;
  240.  
  241. CONST (* WinDrawBitmap() flags *)
  242.   DBM_NORMAL           = 0000H;
  243.   DBM_INVERT           = 0001H;
  244.   DBM_HALFTONE         = 0002H;
  245.   DBM_STRETCH          = 0004H;
  246.   DBM_IMAGEATTRS       = 0008H;
  247.  
  248. PROCEDURE WinDrawText
  249. ( PresSpaceHandle      : HPS;
  250.   Count                : LONGINT;
  251.   Text                 : ARRAY OF CHAR;
  252.   VAR Rectangle        : RECTL;
  253.   ForeColor            : LONGINT;
  254.   BackColor            : LONGINT;
  255.   CmdFlags             : LONGCARD
  256. )                      : LONGINT;
  257.  
  258. CONST
  259. (*
  260. * WinDrawText() codes:
  261. * From DT_LEFT to DT_EXTERNALLEADING, the codes are designed to be OR'ed with
  262. * WINSTATICS.SS_TEXT to create variations of the basic text static item.
  263. *)
  264.   DT_LEFT            = 0000H;
  265.   DT_QUERYEXTENT     = 0002H;
  266.   DT_UNDERSCORE      = 0010H;
  267.   DT_STRIKEOUT       = 0020H;
  268.   DT_TEXTATTRS       = 0040H;
  269.   DT_EXTERNALLEADING = 0080H;
  270.   DT_CENTER          = 0100H;
  271.   DT_RIGHT           = 0200H;
  272.   DT_TOP             = 0000H;
  273.   DT_VCENTER         = 0400H;
  274.   DT_BOTTOM          = 0800H;
  275.   DT_HALFTONE        = 1000H;
  276.   DT_MNEMONIC        = 2000H;
  277.   DT_WORDBREAK       = 4000H;
  278.   DT_ERASERECT       = 8000H;
  279.  
  280. PROCEDURE WinDrawBorder
  281. ( PresSpaceHandle      : HPS;
  282.   VAR Rectangle        : RECTL;
  283.   VertSizeWidth        : LONGINT;
  284.   HorizSideWidth       : LONGINT;
  285.   BorderColor          : LONGINT;
  286.   InteriorColor        : LONGINT;
  287.   CmdFlags             : LONGCARD
  288. )                      : BOOLEAN;
  289.  
  290. CONST (* WinDrawBorder() flags *)
  291.   DB_PATCOPY      = 0000H;
  292.   DB_PATINVERT    = 0001H;
  293.   DB_DESTINVERT   = 0002H;
  294.   DB_AREAMIXMODE  = 0003H;
  295.   DB_ROP          = 0007H;
  296.   DB_INTERIOR     = 0008H;
  297.   DB_AREAATTRS    = 0010H;
  298.   DB_STANDARD     = 0100H;
  299.   DB_DLGBORDER    = 0200H;
  300.  
  301. PROCEDURE WinLoadString
  302. ( AnchorBlockHandle    : HAB;
  303.   ResourceHandle       : HMODULE;
  304.   StringId             : LONGCARD;
  305.   BufferMax            : LONGINT;
  306.   VAR Buffer           : ARRAY OF CHAR
  307. )                      : LONGINT;
  308.  
  309. PROCEDURE WinLoadMessage
  310. ( AnchorBlockHandle    : HAB;
  311.   ModuleHandle         : HMODULE;
  312.   MessageId            : LONGCARD;
  313.   BufferMax            : LONGINT;
  314.   VAR Buffer           : ARRAY OF CHAR
  315. )                      : LONGINT;
  316.  
  317. PROCEDURE WinRegisterClass
  318. ( AnchorBlockHandle       : HAB;
  319.   ClassName               : ARRAY OF CHAR;
  320.   WndProc                 : PFNWP;
  321.   ClassStyle              : LONGCARD;
  322.   ExtraBytes              : CARDINAL
  323. )                         : BOOLEAN;
  324.  
  325. PROCEDURE WinDefWindowProc
  326. ( WinHandle               : HWND;
  327.   MessageId               : LONGCARD;
  328.   Param1                  : MPARAM;
  329.   Param2                  : MPARAM
  330. )                         : MRESULT;
  331.  
  332. PROCEDURE WinDestroyWindow
  333. ( WinHandle               : HWND
  334. )                         : BOOLEAN;
  335.  
  336. PROCEDURE WinShowWindow
  337. ( WinHandle               : HWND;
  338.   NewVisibility           : BOOLEAN
  339. )                         : BOOLEAN;
  340.  
  341. PROCEDURE WinQueryWindowRect
  342. ( WinHandle               : HWND;
  343.   VAR Rect                : RECTL
  344. )                         : BOOLEAN;
  345.  
  346. PROCEDURE WinGetPS
  347. ( WinHandle               : HWND
  348. )                         : HPS;
  349.  
  350. PROCEDURE WinReleasePS
  351. ( PresSpaceHandle         : HPS
  352. )                         : BOOLEAN;
  353.  
  354. PROCEDURE WinEndPaint
  355. ( PresSpaceHandle         : HPS
  356. )                         : BOOLEAN;
  357.  
  358. PROCEDURE WinGetClipPS
  359. ( WinHandle               : HWND;
  360.   ClipWinHandle           : HWND;
  361.   ClipFlags               : LONGCARD
  362. )                         : HPS;
  363.  
  364. CONST (* WinGetClipPS() flags *)
  365.   PSF_LOCKWINDOWUPDATE    = 0001H;
  366.   PSF_CLIPUPWARDS         = 0002H;
  367.   PSF_CLIPDOWNWARDS       = 0004H;
  368.   PSF_CLIPSIBLINGS        = 0008H;
  369.   PSF_CLIPCHILDREN        = 0010H;
  370.   PSF_PARENTCLIP          = 0020H;
  371.  
  372. PROCEDURE WinIsWindowShowing
  373. ( WinHandle               : HWND
  374. )                         : BOOLEAN;
  375.  
  376. PROCEDURE WinBeginPaint
  377. ( WinHandle               : HWND;
  378.   PresSpaceHandle         : HPS;
  379.   Rect                    : PRECTL
  380. )                         : HPS;
  381.  
  382. PROCEDURE WinOpenWindowDC
  383. ( WinHandle               : HWND
  384. )                         : HDC;
  385.  
  386. PROCEDURE WinScrollWindow
  387. ( WinHandle               : HWND;
  388.   dx                      : LONGINT;
  389.   dy                      : LONGINT;
  390.   ScrollRect              : PRECTL;
  391.   ClipRect                : PRECTL;
  392.   UpdateRgn               : HRGN;
  393.   UpdateRect              : PRECTL;
  394.   Options                 : LONGCARD
  395. )                         : LONGINT;
  396.  
  397. CONST (* WinScrollWindow() flags *)
  398.   SW_SCROLLCHILDREN       = 0001H;
  399.   SW_INVALIDATERGN        = 0002H;
  400.  
  401. PROCEDURE WinFillRect
  402. ( PresSpaceHandle         : HPS;
  403.   VAR Rect                : RECTL;
  404.   Color                   : LONGINT
  405. )                         : BOOLEAN;
  406.  
  407. PROCEDURE WinQueryVersion
  408. ( AnchorBlockHandle       : HAB
  409. )                         : LONGCARD;
  410.  
  411. TYPE (* WinQueryVersion() return value (access thru type transfer) *)
  412.   QVERSDATA    = RECORD
  413.     environment  : CARDINAL;
  414.     version      : CARDINAL;
  415.   END;
  416.   PQVERSDATA   = POINTER TO QVERSDATA;
  417.  
  418. PROCEDURE WinInitialize
  419. ( Options                 : LONGCARD
  420. )                         : HAB;
  421.  
  422. CONST (* for WinInitialize() *)
  423.   QV_OS2       = 0000H;
  424.   QV_CMS       = 0001H;
  425.   QV_TSO       = 0002H;
  426.   QV_TSOBATCH  = 0003H;
  427.   QV_OS400     = 0004H;
  428.  
  429. PROCEDURE WinTerminate
  430. ( AnchorBlockHandle       : HAB
  431. )                         : BOOLEAN;
  432.  
  433. PROCEDURE WinQueryAnchorBlock
  434. ( WinHandle               : HWND
  435. )                         : HAB;
  436.  
  437. PROCEDURE WinSetActiveWindow
  438. ( DesktopWinHandle        : HWND;
  439.   WinHandle               : HWND
  440. )                         : BOOLEAN;
  441.  
  442. TYPE (* WM_CREATE message record *)
  443.    CREATESTRUCT         = RECORD
  444.      CASE                 : TYPEPREFIX OF
  445.      | TRUE               :
  446.        pPresParams        : SYSTEM.ADDRESS;
  447.        pCtlData           : SYSTEM.ADDRESS;
  448.        id                 : LONGCARD;
  449.        hwndInsertBehind   : HWND;
  450.        hwndOwner          : HWND;
  451.        cy                 : LONGINT;
  452.        cx                 : LONGINT;
  453.      | FALSE              :
  454.        PresParams         : SYSTEM.ADDRESS;
  455.        CtlData            : SYSTEM.ADDRESS;
  456.        Id                 : LONGCARD;
  457.        InsertBehindHandle : HWND;
  458.        OwnerHandle        : HWND;
  459.        ySize              : LONGINT;
  460.        xSize              : LONGINT;
  461.      END;
  462.      y                    : LONGINT;
  463.      x                    : LONGINT;
  464.      CASE                 : TYPEPREFIX OF
  465.      | TRUE               :
  466.        flStyle            : LONGCARD;
  467.        pszText            : PSZ;
  468.        pszClass           : PSZ;
  469.        hwndParent         : HWND;
  470.      | FALSE              :
  471.        Style              : LONGCARD;
  472.        Text               : PSZ;
  473.        Class              : PSZ;
  474.        ParentHandle       : HWND;
  475.      END;                 END;
  476.    PCREATESTRUCT        = POINTER TO CREATESTRUCT;
  477.  
  478. TYPE (* WinQueryClassInfo() structure *)
  479.    CLASSINFO            = RECORD
  480.      CASE                 : TYPEPREFIX OF
  481.      | TRUE               :
  482.        flClassStyle       : LONGCARD;
  483.        pfnWindowProc      : PFNWP;
  484.        cbWindowData       : LONGCARD;
  485.      | FALSE              :
  486.        ClassStyle         : LONGCARD;
  487.        WindowProc         : PFNWP;
  488.        WindowDataLen      : LONGCARD;
  489.      END;                 END;
  490.    PCLASSINFO           = POINTER TO PCLASSINFO;
  491.  
  492. PROCEDURE WinSubclassWindow
  493. ( WinHandle               : HWND;
  494.   NewWindowProc           : PFNWP
  495. )                         : PFNWP;
  496.  
  497. PROCEDURE WinQueryClassName
  498. ( WinHandle               : HWND;
  499.   BufferMax               : LONGINT;
  500.   VAR Buffer              : ARRAY OF CHAR
  501. )                         : LONGINT;
  502.  
  503. PROCEDURE WinQueryClassInfo
  504. ( AnchorBlockHandle       : HAB;
  505.   ClassName               : ARRAY OF CHAR;
  506.   VAR ClassInfo           : CLASSINFO
  507. )                         : BOOLEAN;
  508.  
  509. PROCEDURE WinQueryActiveWindow
  510. ( ParentWinHandle         : HWND
  511. )                         : HWND;
  512.  
  513. PROCEDURE WinIsThreadActive
  514. ( AnchorBlockHandle       : HAB
  515. )                         : BOOLEAN;
  516.  
  517. PROCEDURE WinQuerySysModalWindow
  518. ( DesktopWinHandle        : HWND
  519. )                         : HWND;
  520.  
  521. PROCEDURE WinSetSysModalWindow
  522. ( DesktopWinHandle        : HWND;
  523.   WinHandle               : HWND
  524. )                         : BOOLEAN;
  525.  
  526. PROCEDURE WinQueryWindowUShort
  527. ( WinHandle               : HWND;
  528.   Index                   : LONGINT
  529. )                         : CARDINAL;
  530.  
  531. PROCEDURE WinSetWindowUShort
  532. ( WinHandle               : HWND;
  533.   Index                   : LONGINT;
  534.   Data                    : CARDINAL
  535. )                         : BOOLEAN;
  536.  
  537. PROCEDURE WinQueryWindowULong
  538. ( WinHandle               : HWND;
  539.   Index                   : LONGINT
  540. )                         : LONGCARD;
  541.  
  542. PROCEDURE WinSetWindowULong
  543. ( WinHandle               : HWND;
  544.   Index                   : LONGINT;
  545.   Data                    : LONGCARD
  546. )                         : BOOLEAN;
  547.  
  548. PROCEDURE WinQueryWindowPtr
  549. ( WinHandle               : HWND;
  550.   Index                   : LONGINT
  551. )                         : SYSTEM.ADDRESS;
  552.  
  553. PROCEDURE WinSetWindowPtr
  554. ( WinHandle               : HWND;
  555.   Index                   : LONGINT;
  556.   Ptr                     : SYSTEM.ADDRESS
  557. )                         : BOOLEAN;
  558.  
  559. PROCEDURE WinSetWindowBits
  560. ( WinHandle               : HWND;
  561.   Index                   : LONGINT;
  562.   Data                    : LONGCARD;
  563.   Mask                    : LONGCARD
  564. )                         : BOOLEAN;
  565.  
  566. CONST (* Standard WinQueryWindowUShort/ULong() indices *)
  567.   QWS_USER     =  0;
  568.   QWS_ID       = -1;
  569.   QWS_MIN      = -1;
  570.   QWL_USER     =  0;
  571.   QWL_STYLE    = -2;
  572.   QWP_PFNWP    = -3;
  573.   QWL_HMQ      = -4;
  574.   QWL_RESERVED = -5;
  575.   QWL_MIN      = -6;
  576.  
  577. CONST (* WC_FRAME WinQueryWindowUShort/ULong() indices *)
  578.   QWL_HHEAP          = 0004H;
  579.   QWL_HWNDFOCUSSAVE  = 0018H;
  580.   QWL_DEFBUTTON      = 0040H;
  581.   QWL_PSSCBLK        = 0048H;
  582.   QWL_PFEPBLK        = 004CH;
  583.   QWL_PSTATBLK       = 0050H;
  584.   QWS_FLAGS          = 0008H;
  585.   QWS_RESULT         = 000AH;
  586.   QWS_XRESTORE       = 000CH;
  587.   QWS_YRESTORE       = 000EH;
  588.   QWS_CXRESTORE      = 0010H;
  589.   QWS_CYRESTORE      = 0012H;
  590.   QWS_XMINIMIZE      = 0014H;
  591.   QWS_YMINIMIZE      = 0016H;
  592.  
  593. TYPE
  594.   HENUM = LHANDLE; (* Window enumeration *)
  595.  
  596. PROCEDURE WinBeginEnumWindows
  597. ( WinHandle               : HWND
  598. )                         : HENUM;
  599.  
  600. PROCEDURE WinGetNextWindow
  601. ( EnumHandle              : HENUM
  602. )                         : HWND;
  603.  
  604. PROCEDURE WinEndEnumWindows
  605. ( EnumHandle              : HENUM
  606. )                         : BOOLEAN;
  607.  
  608. PROCEDURE WinWindowFromPoint
  609. ( WinHandle               : HWND;
  610.   VAR Point               : POINTL;
  611.   EnumChildren            : BOOLEAN
  612. )                         : HWND;
  613.  
  614. PROCEDURE WinMapWindowPoints
  615. ( FromWinHandle           : HWND;
  616.   ToWinHandle             : HWND;
  617.   VAR Points              : POINTL;
  618.   Count                   : LONGINT
  619. )                         : BOOLEAN;
  620.  
  621. PROCEDURE WinValidateRect
  622. ( WinHandle               : HWND;
  623.   Rectangle               : PRECTL;
  624.   InclClippedChildren     : BOOLEAN
  625. )                         : BOOLEAN;
  626.  
  627. PROCEDURE WinValidateRegion
  628. ( WinHandle               : HWND;
  629.   RegionHandle            : HRGN;
  630.   InclClippedChildren     : BOOLEAN
  631. )                         : BOOLEAN;
  632.  
  633. PROCEDURE WinWindowFromDC
  634. ( DecContextHandle        : HDC
  635. )                         : HWND;
  636.  
  637. PROCEDURE WinQueryWindowDC
  638. ( WinHandle               : HWND
  639. )                         : HDC;
  640.  
  641. PROCEDURE WinGetScreenPS
  642. ( DesktopWinHandle        : HWND
  643. )                         : HPS;
  644.  
  645. PROCEDURE WinLockWindowUpdate
  646. ( DesktopWinHandle        : HWND;
  647.   LockUpdateWinHandle     : HWND
  648. )                         : BOOLEAN;
  649.  
  650. PROCEDURE WinLockVisRegions
  651. ( DesktopWinHandle        : HWND;
  652.   Lock                    : BOOLEAN
  653. )                         : BOOLEAN;
  654.  
  655. PROCEDURE WinQueryUpdateRect
  656. ( WinHandle               : HWND;
  657.   VAR Rectangle           : RECTL
  658. )                         : BOOLEAN;
  659.  
  660. PROCEDURE WinQueryUpdateRegion
  661. ( WinHandle               : HWND;
  662.   RegionHandle            : HRGN
  663. )                         : LONGINT;
  664.  
  665. PROCEDURE WinExcludeUpdateRegion
  666. ( PresSpaceHandle         : HPS;
  667.   WinHandle               : HWND
  668. )                         : LONGINT;
  669.  
  670. CONST
  671.   WM_QUERYCONVERTPOS      = 00B0H;   (* WM_DBCSFIRST *)
  672.  
  673. CONST (* Return values for WM_QUERYCONVERTPOS *)
  674.   QCP_CONVERT             = 0001H;
  675.   QCP_NOCONVERT           = 0000H;
  676.  
  677. END WINWINDOWMGR.
  678.