Practically same thing
Code:
#include <windows.h>

typedef int (__stdcall *STATUSCALLBACK)(int uCalled, int uReturn, LPVOID wParam);

int __stdcall test(STATUSCALLBACK f, LPVOID wParam)
{
	return f(123, 123, wParam);
}
VB Code:
  1. Option Explicit
  2. Declare Function test Lib "H:\Microsoft Visual Studio\MyProjects\callback\Debug\callback.dll" (ByVal cbkCallbackProc As Long, ByVal wParam As Any) As Long
  3.  
  4. Public Function CB(ByVal uCalled As Long, ByVal uReturn As Long, ByVal wParam As String) As Long
  5.    
  6.     Debug.Print "uCalled" & vbTab & uCalled
  7.     Debug.Print "uReturn" & vbTab & uReturn
  8.     Debug.Print "wParam" & vbTab & wParam
  9.    
  10.     CB = 54321
  11. End Function
  12.  
  13. Sub main()
  14.     Dim a As String
  15.    
  16.     a = "hello world"
  17.    
  18.     Debug.Print "Return" & vbTab & test(AddressOf CB, a)
  19. End Sub
Should work.