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); }Should work.VB Code:
Option Explicit Declare Function test Lib "H:\Microsoft Visual Studio\MyProjects\callback\Debug\callback.dll" (ByVal cbkCallbackProc As Long, ByVal wParam As Any) As Long Public Function CB(ByVal uCalled As Long, ByVal uReturn As Long, ByVal wParam As String) As Long Debug.Print "uCalled" & vbTab & uCalled Debug.Print "uReturn" & vbTab & uReturn Debug.Print "wParam" & vbTab & wParam CB = 54321 End Function Sub main() Dim a As String a = "hello world" Debug.Print "Return" & vbTab & test(AddressOf CB, a) End Sub




Reply With Quote