> Public Function BFFCallback(ByVal hwnd As Integer, ByVal uMsg As Integer, ByVal lParam As Integer, ByVal lpData As Integer) As Integer hWnd は Int32 ではなく、 IntPtr 型もしくは HandleRef 型にします。 uMsg は Int32 のままで OK です。本来は UInt32 ですが、Int32 のままの方が使いやすいでしょう。 lParam / lpData については、本来の型は IntPtr が適切です。
そして先の .lpfn はこれを受け取るデリゲートなので、lpfn As Integer ではなく ' VB Public lpfn As Func(Of IntPtr, Integer, IntPtr, IntPtr, Integer)
// C# public Func<IntPtr, int, IntPtr, IntPtr, int> lpfn; などのようにします。
ジェネリックデリゲートだと分かりにくい場合は、 Public Delegate Function BrowseCallbackProc(ByVal hwnd As IntPtr, ByVal uMsg As Integer, ByVal lParam As IntPtr, ByVal lpData As IntPtr) As Integer のような明示的なデリゲート型を作成しておき、構造体メンバーを Public lpfn As BrowseCallbackProc としても構いません。