home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / OS2BAS.ZIP / WINMSGS.BI < prev    next >
Text File  |  1989-07-25  |  7KB  |  258 lines

  1. '**************************************************************
  2. '*
  3. '* Include File: WinMsgs.BI
  4. '*
  5. '* Requires:     none
  6. '*
  7. '* Description:  Message Control Manager
  8. '*               Much moved to PMBase.BI
  9. '*
  10. '**************************************************************
  11.  
  12. ' QMSG structure
  13.  
  14. 'TYPE QMSG 
  15. '    hwnd AS LONG
  16. '    msg AS INTEGER
  17. '    mp1 AS LONG
  18. '    mp2 AS LONG
  19. '    time AS LONG
  20. '    ptl AS LONG
  21. 'END TYPE
  22.  
  23.  
  24.  
  25. ' Standard Window Messages 
  26.  
  27. 'CONST WMNULL             = &H0000
  28. 'CONST WMCREATE           = &H0001
  29. 'CONST WMDESTROY          = &H0002
  30. '
  31. 'CONST WMOTHERWINDOWDESTROYED = &H0003
  32. '
  33. 'CONST WMENABLE           = &H0004
  34. 'CONST WMSHOW             = &H0005
  35. 'CONST WMMOVE             = &H0006
  36. 'CONST WMSIZE             = &H0007
  37. 'CONST WMADJUSTWINDOWPOS  = &H0008
  38. '
  39. 'CONST WMCALCVALIDRECTS   = &H0009
  40. '
  41. 'CONST WMSETWINDOWPARAMS  = &H000a
  42. 'CONST WMQUERYWINDOWPARAMS = &H000b
  43. 'CONST WMHITTEST          = &H000c
  44. 'CONST WMACTIVATE         = &H000d
  45. 'CONST WMSETFOCUS         = &H000f
  46. 'CONST WMSETSELECTION     = &H0010
  47. '
  48. 'CONST WMCOMMAND          = &H0020
  49. 'CONST WMSYSCOMMAND       = &H0021
  50. 'CONST WMHELP             = &H0022
  51. 'CONST WMPAINT            = &H0023
  52. '
  53. 'CONST WMTIMER            = &H0024
  54. 'CONST WMSEM1             = &H0025
  55. 'CONST WMSEM2             = &H0026
  56. 'CONST WMSEM3             = &H0027
  57. 'CONST WMSEM4             = &H0028
  58. '
  59. 'CONST WMCLOSE            = &H0029
  60. 'CONST WMQUIT             = &H002a
  61. 'CONST WMSYSCOLORCHANGE   = &H002b
  62. 'CONST WMSYSVALUECHANGED  = &H002d
  63. '
  64. '' Control notification messages 
  65. '
  66. 'CONST WMCONTROL          = &H0030
  67. 'CONST WMVSCROLL          = &H0031
  68. 'CONST WMHSCROLL          = &H0032
  69. 'CONST WMINITMENU         = &H0033
  70. 'CONST WMMENUSELECT       = &H0034
  71. 'CONST WMMENUEND          = &H0035
  72. 'CONST WMDRAWITEM         = &H0036
  73. 'CONST WMMEASUREITEM      = &H0037
  74. 'CONST WMCONTROLPOINTER   = &H0038
  75. 'CONST WMCONTROLHEAP      = &H0039
  76. 'CONST WMQUERYDLGCODE     = &H003a
  77. 'CONST WMINITDLG          = &H003b
  78. 'CONST WMSUBSTITUTESTRING = &H003c
  79. 'CONST WMMATCHMNEMONIC    = &H003d
  80. '
  81. '
  82. 'CONST WMUSER             = &H1000
  83.  
  84. ' WMCOMMAND msg source codes 
  85.  
  86. CONST CMDSRCPUSHBUTTON   =1
  87. CONST CMDSRCMENU         =2
  88. CONST CMDSRCACCELERATOR  =3
  89. CONST CMDSRCOTHER        =0
  90.  
  91. '
  92. ' * The following structure and macro are used to access the
  93. ' * WMCOMMAND, WMHELP, and WMSYSCOMMAND message parameters:
  94. TYPE COMMANDMSG 
  95.     source AS INTEGER          ' mp2 
  96.     fMouse AS INTEGER
  97.     cmd AS INTEGER             ' mp1 
  98.     unused AS INTEGER
  99. END TYPE
  100.  
  101.  
  102.  
  103. '
  104. ' * The following structure is used by the WinQueryQueueInfo() routine
  105. TYPE MQINFO
  106.     cb AS INTEGER
  107.     pid AS LONG
  108.     tid AS INTEGER
  109.     cmsgs AS INTEGER
  110.     pReserved AS LONG
  111. END TYPE
  112.  
  113.  
  114. 'DECLARE FUNCTION WinSendMsg&(BYVAL hwnd AS LONG,_
  115. '                             BYVAL msg AS INTEGER,_
  116. '                             BYVAL mp1 AS LONG,_
  117. '                             BYVAL mp2 AS LONG)
  118. '
  119. 'DECLARE FUNCTION WinCreateMsgQueue&(BYVAL hab AS LONG,_
  120. '                                    BYVAL cmsg AS INTEGER)
  121. '
  122. 'DECLARE FUNCTION WinDestroyMsgQueue%(BYVAL hmq AS LONG)
  123.  
  124. DECLARE FUNCTION WinQueryQueueInfo%(BYVAL hmq AS LONG,_
  125.                                     BYVAL pmqi AS LONG,_
  126.                                     BYVAL cbCopy AS INTEGER)
  127.  
  128. DECLARE FUNCTION WinCancelShutdown%(BYVAL hmq AS LONG,_
  129.                                     BYVAL fCancelAlways AS INTEGER)
  130.  
  131. 'DECLARE FUNCTION WinGetMsg%(BYVAL hab AS LONG,_
  132. '                            BYVAL pqmsg AS LONG,_
  133. '                            BYVAL hwndFilter AS LONG,_
  134. '                            BYVAL msgFilterFirst AS INTEGER,_
  135. '                            BYVAL msgFilterLast AS INTEGER)
  136.  
  137. DECLARE FUNCTION WinPeekMsg%(BYVAL hab AS LONG,_
  138.                              BYVAL pqmsg AS LONG,_
  139.                              BYVAL hwndFilter AS LONG,_
  140.                  BYVAL msgFilterFirst AS INTEGER,_
  141.                  BYVAL msgFilterLast AS INTEGER,_
  142.                  BYVAL fs AS INTEGER)
  143.  
  144. 'DECLARE FUNCTION WinDispatchMsg&(BYVAL hab AS LONG,_
  145. '                                 BYVAL pqmsg AS LONG)
  146.  
  147. DECLARE FUNCTION WinPostMsg%(BYVAL hwnd AS LONG,_
  148.                              BYVAL msg AS INTEGER,_
  149.                              BYVAL mp1 AS LONG,_
  150.                              BYVAL mp2 AS LONG)
  151.  
  152. ' WinPeekMsg() constants 
  153.  
  154. CONST PMREMOVE       = &H0001
  155. CONST PMNOREMOVE     = &H0000
  156.  
  157.  
  158.  
  159.  
  160. ' WMCALCVALIDRECTS return flags 
  161.  
  162. CONST CVRALIGNLEFT       = &H0001
  163. CONST CVRALIGNBOTTOM     = &H0002
  164. CONST CVRALIGNRIGHT      = &H0004
  165. CONST CVRALIGNTOP        = &H0008
  166. CONST CVRREDRAW          = &H0010
  167.  
  168.  
  169. ' WMHITTEST return codes 
  170.  
  171. CONST HTNORMAL       =0
  172. CONST HTTRANSPARENT  =-1
  173. CONST HTDISCARD      =-2
  174. CONST HTERROR        =-3
  175.  
  176. ' WMSET/QUERYWINDOWPARAMS structures and flags 
  177.  
  178. TYPE WNDPARAMS 
  179.     fsStatus AS INTEGER
  180.     cchText AS INTEGER
  181.     pszText AS LONG
  182.     cbPresParams AS INTEGER
  183.     pPresParams AS LONG
  184.     cbCtlData AS INTEGER
  185.     pCtlData AS LONG
  186. END TYPE 
  187.  
  188.  
  189. ' Flags used by WMSET/QUERYWINDOWPARAMS 
  190.  
  191. CONST WPMTEXT        = &H0001
  192. CONST WPMCTLDATA     = &H0002
  193. CONST WPMPRESPARAMS  = &H0004
  194. CONST WPMCCHTEXT     = &H0008
  195. CONST WPMCBCTLDATA   = &H0010
  196. CONST WPMCBPRESPARAMS = &H0020
  197.  
  198.  
  199. DECLARE FUNCTION WinInSendMsg%(BYVAL hab AS LONG)
  200.  
  201.  
  202. DECLARE FUNCTION WinBroadcastMsg%(BYVAL hwnd AS LONG,_
  203.                                   BYVAL msg AS INTEGER,_
  204.                                   BYVAL mp1 AS LONG,_
  205.                                   BYVAL mp2 AS LONG,_
  206.                                   BYVAL rgf AS INTEGER)
  207.  
  208. ' WinBroadcastMsg codes 
  209.  
  210. CONST BMSGPOST           = &H0000
  211. CONST BMSGSEND           = &H0001
  212. CONST BMSGPOSTQUEUE      = &H0002
  213. CONST BMSGDESCENDANTS    = &H0004
  214. CONST BMSGFRAMEONLY      = &H0008
  215.  
  216.  
  217.  
  218. DECLARE FUNCTION WinWaitMsg%(BYVAL hab AS LONG,_
  219.                              BYVAL msgFirst AS INTEGER,_
  220.                              BYVAL msgLast AS INTEGER)
  221.  
  222. DECLARE FUNCTION WinQueryQueueStatus&(BYVAL hwndDesktop AS LONG)
  223.  
  224. ' WinQueryQueueStatus() constants 
  225.  
  226. CONST QSKEY          = &H0001
  227. CONST QSMOUSEBUTTON  = &H0002
  228. CONST QSMOUSEMOVE    = &H0004
  229. CONST QSMOUSE        = &H0006      ' QSMOUSEMOVE|QSMOUSEBUTTON 
  230. CONST QSTIMER        = &H0008
  231. CONST QSPAINT        = &H0010
  232. CONST QSPOSTMSG      = &H0020
  233. CONST QSSEM1         = &H0040
  234. CONST QSSEM2         = &H0080
  235. CONST QSSEM3         = &H0100
  236. CONST QSSEM4         = &H0200
  237. CONST QSSENDMSG      = &H0400
  238.  
  239.  
  240. DECLARE FUNCTION WinQueryMsgPos%(BYVAL hab AS LONG,_
  241.                                  BYVAL pptl AS LONG)
  242.  
  243. DECLARE FUNCTION WinQueryMsgTime&(BYVAL hab AS LONG)
  244.  
  245. DECLARE FUNCTION WinMsgSemWait%(BYVAL hsem AS LONG,_
  246.                                 BYVAL dtTimeout AS LONG)
  247.  
  248. DECLARE FUNCTION WinMsgMuxSemWait%(BYVAL pisemCleared AS LONG,_
  249.                                    BYVAL pmxsl AS LONG,_ 
  250.                                    BYVAL dtTimeout AS LONG)
  251.  
  252. DECLARE FUNCTION WinPostQueueMsg%(BYVAL hmq AS LONG,_
  253.                                   BYVAL msg AS INTEGER,_
  254.                                   BYVAL mp1 AS LONG,_
  255.                                   BYVAL mp2 AS LONG)
  256.