методов AddRef и Release. Объект должен существовать до тех пор, пока с
ним работает хотя бы один клиент. Объект имеет специальный счетчик
ссылок, который увеличивается на единицу при подключении нового клиента
и уменьшается на единицу при завершении его работы. Клиент не может
уничтожить объект, так как с ним могут работать другие клиенты.
Увеличение счетчика ссылок выполняется методом AddRef. Метод
возвращает увеличенное на единицу количество ссылок на объект. Данный
метод должен вызываться, когда указатель на интерфейс передается какому-
либо объекту. Метод Release уменьшает счетчик ссылок на объект на
единицу. Когда значение счетчика достигает нуля, объект завершает свою
работу и выгружается из памяти. Данный метод должен обязательно
вызываться клиентом, использовавшим данный интерфейс.
4.1.5. Сервер СОМ
Сервер СОМ является библиотекой или приложением,
предоставляющим сервисы клиентскому приложению или библиотеке.
Сервер СОМ может состоять из одного и более объектов СОМ. Объекты
СОМ выступают в роли наборов свойств и методов. Клиенту не обязательно
знать, где расположен объект СОМ, так как технология предоставляет
прозрачный доступ независимо от расположения объекта.
Различают три типа серверов:
- Внутренний сервер (In-process server) является библиотекой DLL,
подключаемой к клиентскому приложению и работающей с ним в одном
адресном пространстве. В качестве примера можно привести элемент
управления ActiveX, отображаемый на веб-странице. Элемент управления
запускается внутри некоторого процесса браузера. Схема показана на
рисунке 4.1.5.1.