Основы COM. Рудалев В.Г - 16 стр.

UptoLike

16
Следующий этап преобразование проекта в сервер автоматизации с помощью
мастера. Мастер поможет сформировать необходимые интерфейсы и объекты ,
эти интерфейсы реализующие.
Запустите (не закрывая исходный проект sa.dpr) мастер New ActiveX
Automation Object. Заполните появившуюся форму.
Здесь CoClass Name - имя компонентного класса , реализующего COM-сервер.
Под этим именем COM-сервер будет зарегистрирован в реестре .
Instansing определяет режим создания COM-объектов . Параметр может прини -
мать следующие значения:
Internal. Объект может использоваться только внутри этого приложения.
Single Instance. Создание каждого экземпляра объекта приводит к запуску
нового экземпляра приложения-сервера . После создания объекта фабрика
классов удаляет информацию о себе из системного списка зарегистриро -
ванных фабрик, что заставляет COM при создании нового объекта запус-
кать сервер как новый процесс.
Multiple Instance. После создания экземпляра объекта фабрика не удаляет
себя из списка зарегистрированных. При запросе на создание нового объ -
екта COM обнаружит её в этом списке и запросит создание у той же фаб-
рики . Новый экземпляр объекта будет создан в том же приложении. Для
создания всех объектов данного типа запускается только один экземпляр
сервера .
Поле Threading Model заполните в соответствии с рекомендациями , изложен-
ными в п. 1.7.
Если задать флаг Generate Event Support code, генерируется дополнительный
код , позволяющий серверу реализовать интерфейс событий. Этот интерфейс
описывает события, которые может генерировать сервер. Клиент может зареги -
стрировать себя в качестве подписчика на эти события и получать уведомления
о них (см . п. 2.4).
Нажмите Ok. После этого мы окажемся в редакторе библиотеки типов .
                                          16
След ую щ и й этап –преобраз ов ани епроекта в серверав томати з аци и спомощ ью
масте ра. М астерпомож етсформи ров ать необход и мы еи нтерфей сы и объекты ,
эти и нтерфей сы реали з ую щ и е.
Запусти те (не з акры в ая и сход ны й проект sa.dpr) мастер New – ActiveX –
Automation Object. Заполни тепояв и в ш ую сяформу.




Зд есь CoClass Name - и мя компонентного класса, реали з ую щ его COM-сервер.
Под эти м и менем COM-сервербуд етз ареги стри ров ан в реестре.
Instansing опред еляет реж и м соз д ани я COM-объектов . Параметрмож ет при ни -
мать след ую щ и ез начени я:
   • Internal. О бъектмож ети спольз ов атьсятолько в нутри этого при лож ени я.
   • Single Instance. Соз д ани екаж д ого экземпляра объекта при в од и ткз апуску
     нов ого экземпляра при лож ени я-серв ера. Послесоз д ани яобъекта фабри ка
     классов уд аляети нформаци ю о себеи з си стемного спи ска з ареги стри ро-
     в анны х фабри к, что з астав ляетCOM при соз д ани и нов ого объекта з апус-
     кать серверкакнов ы й процесс.
   • Multiple Instance. Послесоз д ани я экземпляра объекта фабри ка не уд аляет
     себяи з спи ска з ареги стри ров анны х. При з апросена соз д ани енов ого объ-
     екта COM обнаруж и теё в этом спи скеи з апроси тсоз д ани еу той ж ефаб-
     ри ки . Н ов ы й экземпляробъекта буд етсоз д ан в том ж епри лож ени и . Д ля
     соз д ани я в сех объектов д анного ти па з апускается только од и н экземпляр
     серв ера.
Поле Threading Model з аполни те в соотв етств и и с рекоменд аци ями , и з лож ен-
ны ми в п. 1.7.
Е сли з ад ать флаг Generate Event Support code, генери руется д ополни тельны й
код , поз в оляю щ и й серверу реали з ов ать и нтерфей с собы ти й . Э тот и нтерфей с
опи сы в аетсобы ти я, которы емож етгенери ров ать сервер. К ли ентмож етз ареги -
стри ров ать себяв качеств епод пи счи ка на эти собы ти яи получать ув ед омлени я
о ни х (см. п. 2.4).
Н аж ми теOk. Послеэтого мы окаж емсяв ред актореби бли отеки ти пов .