private delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
Private Delegate Function EnumWindowsProc(ByVal hWnd As IntPtr, ByVal lParam As IntPtr) As Boolean
If you’re going to use the lParam to return a by-value result (such as the hwnd of a window you are looking for), you’ll want to send lParam by reference:
private delegate bool EnumWindowsProc(IntPtr hWnd, ref IntPtr lParam);
Private Delegate Function EnumWindowsProc(ByVal hWnd As IntPtr, ByRef lParam As IntPtr) As Boolean
You can use any data type for lParam if it is 'ref', since as a 'ref' it is already being passed as a pointer.