Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Поддержка технологий COM >> Object Pascal и COM >> Возвращаемый тип HResult

[Назад]    [Содержание ]    [Вперед]

  


Возвращаемый тип HResult


Можно было заметить, что метод QueryInterfасе() интерфейса IUnknown возвращает результат типа HResult. Это наиболее общий возвращаемый тип для многих методов интерфейсов ActiveX и OLE, а также функций СОМ API. HResult определяется в модуле System как тип LongWord. Возможное значение HResult описывается в модуле Windows (если используется VCL, описания значений можно найти под заголовком {HRESULT value definitions }). Значение HResult S_OK или NOERROR (0) говорит об успешном выполнении, если же установлен старший бит значения HResult ? выполнение некорректно. В модуле Windows имеются две функции ? Succeeded() и Failed(), которые принимают HResult в качестве параметра и возвращают значение типа BOOL, указывающее, соответствует ли переданное значение корректному завершению функции или ошибке. Синтаксис вызова этого метода имеет вид:

if Succeeded(FunctionThatReturnsHResult) then
═════//Продолжение, если все нормально
if Failed(FunctionThatReturnsHResult) then
═════// Код обработки ошибки

Естественно, проверка возвращаемого значения каждой вызываемой функции ? скучное занятие. Кроме того, работа с возвращаемыми ошибками функций приводит к неиспользованию системы исключительных ситуаций Delphi. А потому в модуле ComObj определяется процедура OleCheck(), с помощью которой ошибки HResult преобразуются в исключительные ситуации. Синтаксис вызова этого метода имеет вид:

OleCheck(FunctionThatReturnsHResult);

Эта процедура удобна в использовании, а следовательно, ваш код упрощается.



[Назад]    [Содержание ]    [Вперед]

  


  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017