Die CallingConvention des Callbacks ist falsch. Auch der müsste Stdcall sein. C# erlaubt Dir blöderweise nicht, auf der Callback-Methode die Calling Convention festzulegen.
Eine Lösung für VB(native) gibt es hier:
http://www.codeproject.com/KB/dotnet...CSharp_VB.aspx
Die kannst Du analog anpassen. Weitere Details siehe
hier.
Viel Erfolg.