Попробовал посмотреть в справке,мало что понялось.Особенно с термином Delegate.
В частности проблема при использовании названного оператора,в примере установки "своего" обработчика window message.
- Код: Выделить всё
Module Module1
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Int32, ByVal nIndex As Int32, ByVal dwNewLong As Int32) As Int32
Private Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Int32, ByVal hwnd As Int32, ByVal msg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
Private Const GWL_WNDPROC As Int32 = (-4)
Public sc_Hwnd As Int32
Public Sub SetLong(ByVal hwnd As Int32)
sc_Hwnd = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub RestoreLong(ByVal hwnd As Int32)
SetWindowLong(hwnd, GWL_WNDPROC, sc_Hwnd)
End Sub
'Обработчик
Public Function WindowProc(ByVal hwnd As Int32, ByVal iMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
WindowProc = CallWindowProc(sc_Hwnd, hwnd, iMsg, wParam, lParam)
End Function
End Module
Ругаеться на AddressOf.

Visual Basic писал(а):AddressOf' expression cannot be converted to 'Integer' because 'Integer' is not a delegate type.