Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private 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
Private Const GWL_WNDPROC = (-4)
Private Const WM_MOUSEMOVE = 512
Private Const WM_RBUTTONDOWN = &H204
Private preWinProc As Long
Private Function wndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  If Msg = WM_RBUTTONDOWN Then
    MsgBox "你好,鼠标右击消息!"
  Else
    wndproc = CallWindowProc(preWinProc, hwnd, Msg, wParam, lParam)
  End If
End Function
Private Sub EndSubclass()
Dim ret As Long
  ret = SetWindowLong(Combo1.hwnd, GWL_WNDPROC, preWinProc)
End Sub
Private Sub Form_Load()
  Combo1.ListIndex = 0
 Dim ret As Long
  preWinProc = GetWindowLong(Combo1.hwnd, GWL_WNDPROC)
  ret = SetWindowLong(Combo1.hwnd, GWL_WNDPROC, AddressOf wndproc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
  Call EndSubclass
End Sub
当执行到formload的时候,出现编译错误(Ivalid use of AddressOf operator),如何解决这个问题,请不要使用模块(在模块中定义没有问题)