Шаг 256.
Среда программирования Visual C++.
Ошибки СОМ-компонентов. Коды HRESULT

    На этом шаге мы приведем общие сведения о кодах HRESULT.

    Для обработки ошибок приложения и компоненты СОМ применяют ранее рассмотренные методы, однако для них известен более предпочтительный способ передачи информации о сбое - посредством кодов НRESULT.

    Начиная с этого шага мы расскажем о кодах HRESULT и об особенностях обработки ошибок СОМ-компонентов. Не забывайте, что различия между удачной и ошибочной работой СОМ-компонента не всегда похожи на различия между белым и черным. СОМ допускает, что успех и неудача могут быть частичными.

    Мы также расскажем, как СОМ-компонент уведомляет клиентское приложение об ошибке событием Error - одним из стандартных событий, определенных в СОМ.

Коды HRESULT

    В модели СОМ методы интерфейсов возвращают коды HRESULT, сообщающие об успешном или ошибочном завершении. Несмотря на префикс Н, код HRESULT - не описатель, а простое 32-разрядное число, отражающее ошибку или удачное завершение функции.

    В СОМ определено множество кодов HRESULT, например S_OK для успешного завершения, S_FALSE для ошибочного, а также предусмотрены различные коды ошибок, например Е_INVALIDARG или E_NOTIMPL. Префикс Е обозначает коды ошибок, S - коды состояния (SCODE). В 32-разрадных ОС Windows HRESULT и SCODE не различаются.

    В СОМ разрешается определять собственные значения HRESULT, что описано далее. Однако во избежание путаницы старайтесь использовать предопределенные значения. Например, стандартный код E_OUTOFMEMORY однозначно сообщает об этой частой ошибке. Список значений HRESULT с их описанием Вы найдете в файле WinError.h под заголовком "OLE Error Codes".

    На следующем шаге мы рассмотрим структуру кода HRESULT.




Предыдущий шаг Содержание Следующий шаг