pennygab
Nov 14th, 2000, 06:57 PM
I'm trying to intercept a windows message using VB. I wnat to access the lParam and wParam of a Windows Message. how should i proceed
Vlatko
Nov 15th, 2000, 06:47 AM
You need to subclass the window
'in module
Public oldp As Long
Public Const GWL_WNDPROC = (-4)
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_MOVE Then 'example
If wParam = SomeValue
'Do Something
End If
End If
WindowProc = CallWindowProc(oldp, hwnd, uMsg, wParam, lParam)
End Function
'in a form
Private Sub Form_Load()
oldp = SetWindowLong(Form1.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
SetWindowLong(Form1.hwnd, GWL_WNDPROC,oldp)
End Sub