_variant_t и _bstr_t предоставляются компилятором как классы поддержки COM и используются, когда вы используете конструкции типа #import. Вы можете использовать их, если хотите.
CComVariant и CComBSTR предоставляются библиотеками ATL .
Независимо от того, используете ли вы классы поддержки COM или классы ATL, решать только вам. Если вам часто требуется выполнять такие операции, как присоединение к «сырым» BSTR или VARIANT, классы поддержки COM могут быть более безопасными.
Существуют некоторые поведенческие различия (см. Документы), наиболее важным из которых, по-видимому, является то, что классы поддержки COM генерируют исключение _com_error & в случае сбоя. Если вы не хотите заниматься обработкой исключений, используйте классы ATL.