Public Const GWL_WNDPROC = (-4)
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
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public WinProc As Long
Public Const WM_PASTE = &H302
Public Sub RUNLoad(ByVal Wnd As Long)
WinProc = GetWindowLong(Wnd, GWL_WNDPROC)
SetWindowLong Wnd, GWL_WNDPROC, AddressOf WndProc
End Sub
Public Sub RunUnload(ByVal Wnd As Long)
SetWindowLong Wnd, GWL_WNDPROC, WinProc
WinProc = 0
End Sub
Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_PASTE Then
xxx
Else
WndProc = CallWindowProc(WinProc, hWnd, Msg, wParam, lParam)
End If
End Function