Поделиться через


Обработка ошибок в COM (COM)

Почти все функции COM и методы интерфейса возвращают значение типа HRESULT. HRESULT (имя может быть прочитано как "дескриптор результатов") — это способ возврата успешного, предупреждения или значения ошибки. HRESULT на самом деле не дескриптор (см. раздел "Почему HRESULT начинается с H, когда это не дескриптор"?) — это просто значение с несколькими полями, закодированными в него. Согласно спецификации COM, результат нуля указывает на успешность, а ненулевой результат указывает на сбой.

На уровне исходного кода все значения ошибок состоят из трех частей, разделенных подчеркиванием. Первая часть — это префикс, определяющий объект, связанный с ошибкой, вторая часть — E для ошибки, а третья — строка, описывающая фактическое условие. Например, STG_E_MEDIUMFULL возвращается, если на жестком диске нет места. Префикс STG указывает на хранилище, E указывает, что код состояния представляет ошибку, а MEDIUMFULL предоставляет конкретные сведения об ошибке. Многие значения, которые может потребоваться вернуть из метода интерфейса или функции, определяются в Winerror.h.

Дополнительные сведения об обработке ошибок см. в следующих разделах:

Коды ошибок COM