c++/cli самый удобный на мой взгляд. Если знаешь c# и с++ разберешься за пару часов или даже меньше, можно почитать статью на хабре - там почти все описано.
собрать activex компонент на с++ нетривиальная задача.
p/invoke работает только в одну сторону