home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / codeli_1 / setup.exe / _SETUP.1 / RebarSubClass.bas < prev    next >
Encoding:
BASIC Source File  |  1997-07-21  |  2.2 KB  |  76 lines

  1. Attribute VB_Name = "WindowProc"
  2. Option Private Module
  3. Option Explicit
  4.  
  5. Public NextProcs As Long
  6.  
  7. Public Nodef As Boolean
  8.  
  9. Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  10. Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Any) As Long
  11. Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSrc As Any, ByVal ByteLen As Long)
  12. Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  13. Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal wndrpcPrev As Long, ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  14.  
  15. Public Const WM_COMMAND = &H111
  16. Public Const GWL_USERDATA = (-21)
  17. Public Const GWL_WNDPROC = -4
  18.  
  19. Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
  20. Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
  21.  
  22. Type POINTAPI
  23.         x As Long
  24.         y As Long
  25. End Type
  26.  
  27. Private Const WM_USER = &H400
  28.  
  29. Public Const RBHT_CAPTION = &H2
  30. Public Const RBHT_CLIENT = &H3
  31. Public Const RBHT_GRABBER = &H4
  32.  
  33. Public Const RB_HITTEST = (WM_USER + 8)
  34. Public Const WM_SYSCOLORCHANGE = &H15
  35. Public Const WM_NOTIFY = &H4E
  36.  
  37. Public Type RBHITTESTINFO
  38.     ptApi As POINTAPI
  39.     flags As Long
  40.     iBand As Long
  41. End Type
  42.  
  43. Public Type NMREBAR
  44.     NMHDR As Long
  45.     uBand As Long
  46.     wID As Long
  47.     cyChild As Long
  48.     cyBand As Long
  49. End Type
  50.  
  51. Public Type NMHDR
  52.     hwndFrom As Long
  53.     idfrom As Long
  54.     code As Long
  55. End Type
  56. Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, _
  57. ByVal wParam As Long, ByVal lParam As Long) As Long
  58. On Error Resume Next
  59.   
  60. Select Case hwnd
  61.  
  62.     Case frmCoolbar.hwnd
  63.     frmCoolbar.ProcMsg hwnd, uMsg, wParam, lParam, 0& ', 0&
  64.       
  65. End Select
  66.  
  67. If Nodef = True Then
  68.     WindowProc = CallWindowProc(NextProcs, hwnd, uMsg, wParam, ByVal lParam)
  69. Else
  70.     Nodef = False
  71.     Nodef = True
  72. End If
  73.     
  74. End Function
  75.  
  76.