Здравствуйте Аноним, Вы писали:
А>Здравствуйте retalik, Вы писали:
А>Выглядит вот так:
А>А> catch(_com_error *e)
А> {
А> CString Error = e->ErrorMessage();
А> AfxMessageBox(e->ErrorMessage());
А> }
А> catch(...)
А> {
А> MessageBox(_T("Исключение не обработано"));
А> }
А>
А>А при ответе, к сожалению, неизменно выбирает второй обработчик, а чего там ловить
И это правильно! (с) не мое.
Так как _com_error* и _com_error — это разные типы, а при ошибке смарт-пойнтеры неизменно бросают _com_error по значению, то первый обработчик и не выбирается.
Измени обработчик на _com_error&, и он неизбежно сработает, клянусь моей треуголкой!

(с) не мое.
PS: и еще Description() обязательно выводи, может помочь.