Здравствуйте AlexKn, Вы писали:
AK>Понимаешь, можно конечно делать с try и catch. Но для чего тогда используют HRESULT. Генерят то исключение не пойнтеры, а _com_issue_errorex(_hr, this, __uuidof(this)); Этого не должно быть и пропадает весь механизм получения ошибки через GetErrorInfo и GetDescription. По моему это не нормально, все примеры которые я видел работают именно на проверку AK>if(FAILED(...))
Так ты тогда не используй SmartInterfaces, а работай через CoCreateInstance / QueryInterface и так далее на низком уровне и проверяй if (FAILED(...)).
Хотя и при использовании _com_error ничего не теряется, смотри его описание в MSDN (_com_error::ErrorInfo).