Delphi и COM


         

OLE Automation


Стандарт COM основан на едином для всех поддерживающих его языков формате таблицы, описывающей ссылки на методы объекта, реализующего интерфейс. Однако вызов методов при помощи этой таблицы доступен только для компилирующих языков программирования. В то же время очень удобно было бы иметь доступ к разнообразным возможностям, предоставляемым COM из интерпретирующих языков, таких как VBScript. Для поддержки этих языков была разработана технология OLE Automation, позволяющая приложениям делать свою функциональность доступной для гораздо большего числа клиентов. Automation базируется на COM и является его подмножеством, однако накладывает на COM-серверы ряд дополнительных требований.

  1. Интерфейс, реализуемый COM-сервером, должен наследоваться от IDispatch.
  2. Должны использоваться типы данных из числа поддерживаемых OLE Automation (см. таблицу). Возможна поддержка пользовательских типов данных, для чего необходимо реализовать интерфейс IRecordInfo.
  3. Все методы должны быть процедурами или функциями, возвращающими значение типа HRESULT.
  4. Все методы должны иметь соглашение о вызовах safecall.

Кроме того, Automation-серверы могут поддерживать ряд интерфейсов, позволяющих получать информацию о методах, обрабатывать ошибки и т.п. Все необходимые интерфейсы реализуются VCL Delphi автоматически.



Содержание раздела