copymemory这样做错了吗?
Private Type TPNMHdR
hwndFrom As Long
idFrom As Long
code As Long
End Type
——————————
Public Sub Hook(ByVal hWnd As Long)
If lWndProc = 0 Then
lWndProc = GetWindowLong(hWnd, GWL_WNDPROC)
SetWindowLong hWnd, GWL_WNDPROC, AddressOf WndProc
End If
End Sub
Public Sub UnHook(ByVal hWnd As Long)
If lWndProc <> 0 Then
SetWindowLong hWnd, GWL_WNDPROC, lWndProc
lWndProc = 0
End If
End Sub
Private Function WndProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim PNMHdR As TPNMHdR
WndProc = CallWindowProc(lWndProc, hWnd, uMsg, wParam, lParam)
If uMsg = WM_NOTIFY Then
CopyMemory PNMHdR, ByVal lParam, Len(PNMHdR)
Select Case PNMHdR.code
Case EN_CHANGE '改变事件
MsgBox "3" '
End Select
End If
End Function_______________________
问:怎么系统执行到CopyMemory PNMHdR, ByVal lParam, Len(PNMHdR)这句就系统崩溃了(自动关闭了VB)。