Вы правы, COM не зависит от языка, но требует много дополнительной работы во время выполнения, чтобы запросить у OS указатели на нужные вам интерфейсы и методы.COM это огромная боль в C ++.Вы просматриваете 5-10 строк кода для одного вызова функции.«Вспомогательные» библиотеки Microsoft, такие как MFC и ATL, могут помочь упростить эту задачу, но это все же не очень красиво.
C # абстрагирует многие детали и делает COM похожим на обычный объектно-ориентированный код.В C ++ вам придется написать класс-оболочку самостоятельно или найти чью-либо реализацию.Это не обязательно будет сложно, но это будет утомительно.
Я работаю с COM в C ++, и я бы воспользовался шансом сделать это с помощью C #.