The best way is to define a delegate that has the equivalent signature as
your C++ Function pointer. Then pass an instance of that delegate to your
unmanaged registration function via PInvoke.
The tricky part with this is you have to make sure that the lifetime of your
delegate instance in managed code is longer that the unmanaged version.
Otherwise the GC will collect your managed version and when your unmanaged
code tries to perform the callback, it will be referencing invalid memory.

Signature
Jared Parsons [MSFT]
jaredpar@online.microsoft.com
http://blogs.msdn.com/jaredpar
"This posting is provided "AS IS" with no warranties, and confers no rights"
> How do you
> Pass a Delegate for Callback from C# to MFC C++
[quoted text clipped - 5 lines]
> tia
> john