ArnieZ.
Любая COM DLL может быть использована из .NET. Добавление его в качестве ссылки в Visual Studio создаст DLL с именем
"YourDll.Interop.dll"
Это библиотека .NET -> COM-маршалинга, которая будет делать то, что вам нужно.
Вы также можете сгенерировать это из командной строки, используя tlbimp.exe
Конечно, вы должны иметь в виду, что вы вызываете COM-компоненты, и не забывайте использовать .NET Marshaling API для уменьшения количества ссылок, когда вы их используете, иначе вы вызовете утечки памяти.
Я обернул реализацию взаимодействия в другую библиотеку, которая реализует IDisposable на своих объектах, так что очистка раньше выполнялась автоматически, но если это большая библиотека, это может не стоить усилий.