COM é um padrão criado nos anos 90 para permitir que diferentes partes de software conversem entre si. O mais importante é o padrão binário que permite que um software crie ou ligue a um objeto e, em seguida, chame a interface. Isso permite que você faça coisas como criar uma DLL em C ++, que pode ser chamada por uma página ASP (Objetos COM), ou criar um controle no Delphi, que você pode colocar em uma caixa de diálogo VB (controles ActiveX) ou planilha do Excel. Quando você cola uma imagem no Word, ele também usa COM, incorporando um aplicativo separado ao Word. Menos popular é o DCOM, que é para chamar objetos remotos, geralmente existem maneiras mais simples de fazer isso.
Então, o Com / ActiveX / DCOM era muito popular há 10 anos com VB, VBA, C ++ / ATL, Delphi. O Dotnet é muito mais simples e o C # substituiu a maioria dos usos de COM e VB, etc.
Ainda existem muitas interfaces COM existentes que você pode querer chamar de um aplicativo dotnet ou Java ou C ++. (Você não diz)
Se você precisar chamar interfaces COM, o VB é a maneira mais simples de fazer isso. No Dotnet 4.0, o C # possui a palavra-chave dinâmica, que facilita a chamada de interfaces IDispatch, o que provavelmente é uma ótima solução.
Se você precisa conhecer muitos detalhes, realmente precisa usar C ++ e ATL, chame as APIs C como CoCreateInstance. Evite isso se você puder, como sua tecnologia antiga e não for muito útil, siga as recomendações acima.
Não sei ao certo qual software de monitoramento você está procurando, mas provavelmente estará disponível através das classes System.Management no dotnet.