Начиная с Visual Studio 2005, вы можете использовать C ++ / CLI, одобренный ECMA диалект C ++ от Microsoft, который позволяет использовать управляемый и неуправляемый код вместе. В VS2005 есть «Управляемые расширения для C ++», с помощью которых вы можете достичь примерно того же, но вы должны использовать ужасно выглядящие синтаксисы для написания управляемого кода на C ++ (с множеством двойных подчеркиваний).
С C ++ / CLI вы можете смешивать управляемый и неуправляемый код в своем проекте и напрямую использовать типы C #. ИМХО, это намного проще, чем использовать COM.