Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_TKP_PrCOM.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
556 Кб
Скачать
☆

5.6.2.2 Регистрация com-сервера

В общем случае, схема получения СОМ-клиентом доступа к СОМ-объекту выглядит следующим образом:

  1. Клиент запрашивает СОМ-объект;

  2. Windows выполняет поиск СОМ-сервера запрошенного объекта, и, в случае, если таковой будет найден, выполняет запуск сервера и возвращает приложению-клиенту указатель на запрашиваемый интерфейс.

Информация о местоположении сервера находится в реестре Windows. СОМ использует эту информацию для поиска объектов и определения возможностей, которыми обладают объекты, зарегистрированные в системе. Поэтому, для того, чтобы можно было использовать СОМ-сервер, его необходимо зарегистрировать, сделав соответствующую запись в реестр. Регистрация осуществляется в ветви

HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx},

где серия {хx…} представляет собой идентификатор класса (CLSID) этого СОМ-класса. Регистрация осуществляется путем создания раздела в этой ветви. Для внутренних СОМ-серверов это можно сделать несколькими способами:

  • внести соответствующую запись в реестр вручную;

  • создать вручную текстовый файл регистрации и с помощью утилиты regedit перенести (экспортировать) информацию из этого файла в Реестр. Формат команды, которая данные из файла с именем xxx.reg переносит в Реестр имеет вид: Regedit /s xxx.reg.

  • используя специальную системную утилиту RegSvr32;

  • созданием специальных приложений регистрации использующих функцию DllRegisterServer. Для удаления зарегистрированного внутреннего COM-сервера используется функция DllUnregisterServer;

  • использование возможностей программных средств (типа InstallShield и аналогичных ему) создания дистрибутивов для регистрации СОМ-серверов в процессе инсталляции приложений;

  • при разработке приложений в среде delphi можно воспользоваться командой Run | Register ActiveX Server главного меню.

Понятно, что последний способ применим лишь на компьютере разработчика приложения. Для регистрации СОМ-сервера на компьютере заказчика целесообразно использовать утилиту RegSvr32 или специальные приложения регистрации/инсталляции.

Примечание: Следует отметить, что все перечисленные выше способы (за исключением ручной записи в реестр или экспорта файла регистрации) используют обращение к функциям DllRegisterServer и DllUnregisterServer, т. е., по сути, утилиты и специализированные приложения используются как программные контейнеры, содержащие вызовы этих функций.

Внутреннее строение СОМ тесно связано с Реестром - с его предопределенными разделами, значениями и протоколом хранения данных. Например, когда приложение использует элемент управления ActiveX (известный ранее как элемент управления OLE), то оно создает экземпляр этого элемента управления либо с помощью его CLSID, либо через ProgID. Эти идентификаторы хранятся в Реестре. На рис. 5. показано, каким образом Реестр принимает участие в инстанцировании (создании экземляра) Com-объекта ExcelChart (диаграмма электронной таблицы).

При установке приложения, поддерживающего COM, в системный реестр записывается информация обо всех реализуемых этим приложением объектах COM. Кроме записи CLSID, описанной выше, для всех объектов, обязательно должен указываться тип сервера (внутренний, локальный или удаленный) и путь доступа к нему. Причем, для внутренних и локальных серверов должно указываться полное имя динамической библиотеки или исполняемого файла, а для удаленных серверов – их полный сетевой адрес.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]