Меня смущает выбор классов интеллектуальных указателей COM для программирования на С++:
Там три четыре, о которых я знаю:
-
CCOMPtr
от ATL -
_com_ptr_t
из классов поддержки MS Com -
TComInterface
(потому что я использую С++ Builder 2009) -
CCOMQIPtr
, (который я ранее забыл)
Я читал о различиях в обработке ошибок и исключений из первых двух, но TComInterface
кажется полностью недокументированным. Как первые два, кажется, имеют gotchas или "неожиданное" поведение, из того, что я могу найти.
В идеале, мне бы хотелось что-то, что чистым и современным С++, но boost::com
не существует, насколько я знаю...
Мне нужно управлять приложением от другого поставщика. Они предоставляют COM-интерфейс через файл TLB.