Библиотека СОМ

Для обеспечения выполнения общих функций и базовых интерфейсов в операционной систем устанавливается специальная библиотека СОМ (конкретная реализация может быть различной). Доступ к функциям библиотеки осуществляется стандартным способом, а не через интерфейс. Согласно спецификации, имена всех библиотечных функций начинаются с приставки «Со».

При установке использующего СОМ приложения в системный реестр записывается информация обо всех используемых им объектах СОМ:

· Идентификатор класса (Class Identifier – CLSID), который однозначно определяет класс объекта;

· Тип сервера – внутренний, локальный, удаленный;

· Для локальных и внутренних серверов сохраняется полное имя динамической библиотеки или исполняемого файла;

· Для удаленных серверов записывается полный сетевой адрес.

При попытке клиента использовать некоторый объект СОМ, который до этого момента не использовался и, следовательно, клиент не мог получить указатели на объект и интерфейс, он обращается к библиотеке СОМ и вызывает метод CoCreateInstance, передавая ей в качестве параметра CLSID нужного класса, IDD интерфейса и требуемый тип сервера.

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

Библиотека СОМ передает указатель клиенту, который впоследствии может обращаться непосредственно к объекту. Схема создания первого экземпляра объекта с помощью библиотеки СОМ и системного реестра приведена на (СЛАЙДЕ 4).

Для неявной инициализации созданного объекта (установки значений свойств) может использоваться специальный объект – моникер. Или же клиент может инициализировать объект самостоятельно, применив специальные интерфейсы: IPersistFile, IPersistStjrage, IPersistStream.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: