As for doing native->CLR calls from within msvcm, there are a few options, and I haven't chosen one yet:
There is another possibility, which is to embed a .NET header and the code we need in msvcm, and use pinvokes/vtable fixups to call between native and managed code.