BSTR - это строковый тип данных, используемый с COM.
_bstr_t - это класс-оболочка, который работает как интеллектуальный указатель, поэтому он освобождает выделенную память, когда переменная уничтожается или выходит из области видимости.
_bstr_t также имеет подсчет ссылок, который увеличивается каждый раз, когда вы передаете переменную _bstr_t по значению (избегая ненужного копирования) и уменьшается, когда она больше не используется. Всякий раз, когда все ссылки уничтожаются, выделенная память для строки освобождается.
Альтернативой BSTR является CComBSTR. Он также управляет памятью для BSTR, но не имеет подсчета ссылок.