Ну, ссылка, приведенная в принятом ответе на этот вопрос, относится к статье Эрика Липперта, Полное руководство Эрика по семантике BSTR . Хотя это определенно будет , а не официальной документацией, Липперт является хорошо известным специалистом по COM (особенно в области сценариев).
Однако, официальная документация гласит:
BSTR без элементов данных является либо пустым BSTR, либо пустым BSTR. Пустой BSTR указывает текущее, но нулевое значение данных. NULL BSTR указывает значение данных, которое отсутствует.
Итак, официально они оба BSTR
s без элементов данных, но с немного отличающейся семантикой (хотя нет ничего, чтобы сказать, что эти 2 случая должны обрабатываться по-разному в вашем приложении). В этом случае я бы, конечно, следовал совету Липперта относиться к ним одинаково. Для меня его реальный опыт работы с реальными реализациями имеет больший вес, чем одно предложение в официальном документе BSTR.