Мне нужно выполнить безопасное преобразование между _variant_t и типом, например long \ bool_bstr_t и т. Д.
Есть много вариантов сделать это, но я заблудился в (плохой) документации.
Например, для преобразования в long:
Вариант 1. Проверьте, является ли тип варианта длинным (== VT_I4), и если это так, выполните статическое приведение.
Вариант 2: использовать экстрактор, который я не до конца понимаю. В MSDN говорится, что если VARIANT уже не является надлежащим типом, VariantChangeType используется для попытки преобразования. Однако VariantChangeType возвращает код ошибки, если это не удается. Где я могу получить этот код ошибки? Возвращаемый тип должен быть того типа, который мы извлекаем, не так ли?
Буду признателен за наиболее безопасное решение и объяснение различных вариантов.
Задача ещё не решена.
Других решений пока нет …