测试结果在代码批注中。测试工具是VB6。
modPublic.bas 。主要的测试逻辑和代码都在该模块中体现。
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 DefWindowProc Lib "user32" Alias "DefWindowProcA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam 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 Const WM_NCACTIVATE = &H86
Public Const GWL_WNDPROC = (-4)
Public Const WM_MOUSEACTIVATE = &H21
Public Const WM_LBUTTONDOWN = &H201
Public Const MA_NOACTIVATE = 3
Public OldWndProc As Long
Public OldWndProc2 As Long
Public Function Hook(ByVal hWnd1&) As Long