Использование макросов для обработки ошибок

COM определяет ряд макросов, упрощающих работу со значениями HRESULT .

Макросы обработки ошибок описаны в следующей таблице.

Макрос Description
MAKE_HRESULT
Возвращает HRESULT, учитывая бит серьезности, код объекта и код ошибки, составляющий HRESULT.
Примечание. Вызов MAKE_HRESULT для проверки S_OK несет штраф за производительность. Обычно не следует использовать MAKE_HRESULT для успешных результатов.
MAKE_SCODE
Возвращает SCODE с учетом бита серьезности, кода объекта и кода ошибки, который состоит из SCODE.
HRESULT_CODE
Извлекает часть кода ошибки HRESULT.
HRESULT_FACILITY
Извлекает код объекта HRESULT.
HRESULT_SEVERITY
Извлекает бит серьезности HRESULT.
SCODE_CODE
Извлекает часть кода ошибки SCODE.
SCODE_FACILITY
Извлекает код объекта SCODE.
SCODE_SEVERITY
Извлекает поле серьезности SCODE.
УДАЛОСЬ
Проверяет бит серьезности SCODE или HRESULT; возвращает значение TRUE , если уровень серьезности равен нулю и FALSE , если он равен одному.
СБОЙ ПРИ
Проверяет бит серьезности SCODE или HRESULT; возвращает значение TRUE , если серьезность равна одному и FALSE , если она равна нулю.
IS_ERROR
Предоставляет универсальный тест на наличие ошибок в любом значении состояния.
HRESULT_FROM_WIN32
Карты системный код ошибки в значение HRESULT.
HRESULT_FROM_NT
Карты значение состояния NT в значение Значение HRESULT.

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