Шаг 319.
Создание внутрипроцессных серверов автоматизации. Обработка ошибок. Соглашение о вызовах safecall на сервере

    На этом шаге мы рассмотрим, как преобразуется этот вызов на сервере.

    Если мы реализовали метод СОМ-сервера как процедуру, поддерживающую соглашение о вызовах safecall, Delphi скомпилирует его в функцию, возвращающую значение типа HRESULT и поддерживающую соглашение о вызовах stdcall. Если метод был функцией, то возвращаемое значение преобразуется в еще один параметр этого метода. Сама функция будет реализована в виде следующего псевдокода:

try
  <тело функции>
  Result := S_OK 
except
  // Подготовка информации для IErrorInfo
  Result := <код ошибки> 
end;

    Благодаря этому можно свободно генерировать исключения в коде функции, и они будут преобразованы в ошибки СОМ.

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




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