The major dichotomy in coding now is managed code verses unmanaged code. Unmanaged code is usually referred to as native code. I've got a book on .NET and COM interoperability (Andrew Troelsen), but never read much of it. So I can't answer your question, although you've picked a hard topic, I'll say that!
I think most of the folks here are mostly into native code, either Win32 or using some non .NET class framework, such as MFC, wxWidgets, or QT. A lot of Win32 types like myself (and I'm sure others here too) take a fairly dim view of .NET.
Folks into using the .NET framework generally use C#, VB.NET, or C++/CLI.
I think there are ways to do it though. If you are going to try it though I will say it does help if you are a genuis. The following person is who runs this forum and posted this ...
... but unfortunately for you, he uses PowerBASIC and not C++. The post shows how to host the .NET runtime using Win32 code. It would be translatable to C++ though, as everything in PowerBASIC is.