<<
>>

Создание объекта автоматизации

После того как приложение-сервер создано, следует включить в него новый объект автоматизации. Для этого выберите команду File ► New, затем в открывшемся окне диалога New Items перейдите на вкладку ActiveX и щелкните на значке Automation Object (см.
рис. 18.1).

После щелчка на кнопке ОК в окне диалога New Items производится запуск мастера создания объекта автоматизации, в окне которого необходимо задать параметры создаваемого объекта (рис. 18.7).

Рис. 18.7. Окно мастера создания объекта автоматизации

? В поле CoClass Name вводится имя класса объекта автоматизации (в нашем при­мере назовем класс TestAuto).

? В списке Instancing, как и в случае COM-сервера, выбирается способ создания объекта автоматизации.

? В списке Threading Model, как и в случае COM-сервера, выбирается вариант ра­боты сервера с потоками.

? Флажок Generate event support code определяет, должен ли создаваемый объект автоматизации поддерживать обработки событий.

После щелчка на кнопке ОК в окне Automation Object Wizard будет создан новый объект автоматизации и откроется окно редактора библиотеки типов. Если просмотреть текст модуля объекта автоматизации (в нашем примере назовем его AutoObjectUnit), то даже при беглом взгляде видно, что содержащийся в нем код не сложнее, чем в модуле «пустого» СОМ-объекта: unit AutoObjectUnit;

interface

uses

ComObj, ActiveX. AutoServer_TLB. StdVcl; type

TTestAuto = class(TAutoObject. ITestAuto) protected

{ Protected declarations } end:

implementation uses ComServ: initialization

TAutoObjectFactory.Create(ComServer. TTestAuto.

Class_TestAuto,ciMulti Instance, tmApartment): end.

ПРИМЕЧАНИЕ-------------------------------------------------------------------------------

В данном примере при создании объекта автоматизации не была включена поддерж­ка обработки событий. Программирование событий в некоторой степени усложняет код модуля объекта автоматизации и представляет собой нетривиальную задачу, од­нако ввиду ограниченного объема книги данные вопросы здесь не рассматриваются.

Код библиотеки типов вновь созданного объекта автоматизации, в отличие от СОМ-объекта, включает описание нескольких интерфейсов:

unit AutoServer_TLB;

{STYPEDADDRESS OFF}

uses Windows, ActiveX. Classes. Graphics, OleServer,

OleCtrls. StdVCL;

const

AutoServerMajorVersion = 1;

AutoServerMinorVersion = 0;

LIBID_AutoServer: TGUID - '{62D7BF80-A76C-11D4-A8C1- 0060520799ВЕ} ’;

IIDJTestAuto: TGUID = ' {62D7BF81-A76C-11D4-A8C1- 0060520799BE}';

CLASS_TestAuto: TGUID = 1{62D7BF85-A76C-11D4-A8C1- 0060520799BE}':

type

ITestAuto = interface;

ITestAutoDisp = dispinterface:

TestAuto - ITestAuto;

ITestAuto = interface!IDispatch)

['{62D7BF81-A76C-11D4-A8C1-0060520799BE}'] end;

ITestAutoDisp = dispinterface

['{62D7BF81-A76C-11D4-A8C1-0060520799BE}' ]

end:

CoTestAuto = dass

class function Create: ITestAuto;

dass function CreateRemote!const MachineName;

String): ITestAuto; end;

implementation uses ComObj;

dass function CoTestAuto.Create: ITestAuto; begin

Result := CreateComObject(CLASS_TestAuto) as ITestAuto: end;

class function CoTestAuto'.CreateRemote!const MachineName: string): ITestAuto; begin

Result := CreateRemoteComObject(MachineName.

CLASSJestAuto) as ITestAuto: end:

end.

Интерфейс ITestAuto называется дуальным и предназначен для работы с объектом TTestAuto.

ПРИМЕЧАНИЕ------------------------------------------------------------------------------

Дуальные интерфейсы являются наследниками интерфейса IDispatch и обеспечива­ют как связывание с объектом во время компиляции (раннее связывание через таб­лицу виртуальных методов), так и позднее связывание, используемое в технологии автоматизации.

Интерфейс диспетчеризации ITestAutoDisp обеспечивает взаимодействие с объек­том на основе технологии автоматизации.

<< | >>
Источник: Избачков Ю. С., Петров В. Н.. Информационные системы. 2006

Еще по теме Создание объекта автоматизации:

  1. Статья 1112. Договор о создании по заказу и использование объекта права интеллектуальной собственности
  2. АВТОМАТИЗАЦИЯ
  3. Статья 298. Незаконное проведение поисковых работ на объекте археологического наследия, уничтожение, разрушение или повреждение объектов культурного наследия
  4. 14.8.2. Традиция создания инструментов
  5. §10. СОЗДАНИЕ ЮРИДИЧЕСКОГО ЛИЦА
  6. Статья 87. Создание юридического лица
  7. 2. Создание и управление учреждением
  8. 14.8.1. Принцип создания инструментов
  9. Статья 153. Создание акционерного общества
  10. 2. Создание и управление фондом
  11. Создание концепции
  12. Статья 255. Создание преступной организации
  13. 5.10.1. Создание пространства для ответа
  14. Глава 1. Ты – непростое создание
  15. 5.10.2. Создание отправных пунктов
  16. 1. Возникновение (создание) юридического лица
  17. Создание ума-эго
  18. Процесс создания коллектива
  19. Создание желаемого Любовью