Создание СОМ-объекта с использованием мастера
Далее перечислены шаги, которые нужно выполнить для создания нового СОМ-объекта с помощью мастера:
1. Выберите в главном меню Delphi пункт File/New (Файл/Новый), при этом откроется диалог добавления новых частей проекта (рис. 3.11).
2. Выберите вкладку ActiveX в данном диалоговом окне.
3. Дважды щелкните на иконке, изображающей СОМ-объект.
Рис. 3.11. Диалоговое окно добавления новых частей проекта
В результате вышеописанных действий, появится окно мастера СОМ-объекта (COM Object Wizard), изображенное на рис. 3.12.
Рис. 3.12. Мастер СОМ-объекта
Окно мастера СОМ-объекта содержит несколько полей ввода и флажков: - поле Class Name (Имя класса) - определяет имя нового СОМ-объекта;
- поле Instancing (Экземпляры) - определяет способ создания СОМ-объекта, данное поле может принимать любое из трех значений:
Internal (Внутренний) - объект может быть создан только внутри процесса, внешнее приложение не может непосредственно создавать экземпляры данного объекта. Примером такого способа создания СОМ-объекта может служить текстовый процессор, который может содержать в качестве объекта документ, который будет создаваться только путем вызова метода данного текстового процессора.
Single Instance (Одиночный экземпляр) - допускает только один СОМ-интерфейс для каждого приложения. Таким образом, когда какое-нибудь приложение присоединяется к объекту, объект становится недоступным для остальных приложений.
Multiple Instance (Множественный экземпляр) - объект может быть подключен к нескольким приложениям. Всякий раз, когда клиент запрашивает услуги сервера, создается новый экземпляр сервера. Например, каждый раз, когда пользователь пытается открыть Windows Explorer, создается новый экземпляр Проводника.
Примечание
Если СОМ-объект используется только внутри процесса, поле Instancing (Экземпляры) игнорируется.
- поле Threading Model (Потоковая модель) - определяет, каким образом приложения клиенты могут вызывать интерфейсы данного СОМ-объекта;
Примечание
О потоковых моделях читайте далее в этой главе.
- поле Implemented Interfaces (Реализуемые интерфейсы) - определяет СОМ-интерфейсы, которые должны быть реализованы в СОМ-объекте;
- поле Description (Описание) - сюда вы можете поместить описание вашего СОМ-объекта;
- флажок Include Type Library (Включать библиотеку типов) - устанавливается в случае, если вы хотите создавать библиотеку типов для вашего объекта. Установка данного флажка автоматически производит установку другого флажка Mark interface Oleautomation (Отметить интерфейс Oleautomation);
- флажок Mark interface Oleautomation (Отметить интерфейс Oleautomation) - устанавливается для активирования кода маршалинга. СОМ знает как осуществлять маршалинг всех объектов, совместимых с сервером автоматизации, и устанавливает прокси и заглушки автоматически.