Архитектура Microsoft Windows для разработчиков


              

это часть кода, которая предоставляет


Серверный объект — это часть кода, которая предоставляет сервисы клиенту. Доступ к сервисам осуществляется через интерфейсы СОМ, которые вызываются объектами-клиентами. Сервисы реализуют два основных типа объектов СОМ: внутрипроцессные (in-process) и внешние (out-of-process). Первые — это библиотеки динамической загрузки, которые всегда выполняются локально. Вторые представляют собой исполняемые модули и могут работать как на локальном, так и на удаленном компьютере. Интерфейсы СОМ Возможности объектов СОМ доступны через интерфейс. Он представляет собой указатель (адрес памяти) на функции, вызываемые клиентом. Такое взаимодействие между пользователем сервисов объекта — клиентом — и сервером, реализующим объект и его сервисы, называется контрактом. Сервисы имеют и другое название — методы, или функции-члены. Контрактом между программными компонентами определяется:

  • уникальный идентификатор интерфейса, отличающий его от других;

  • местоположение функций в интерфейсе;

  • назначение функций;

  • аргументы и возвращаемые значения каждой функции.

  • Контракт не обязан указывать:
  • способ реализации функции;

  • код, составляющий функцию;

  • язык, использованный для создания объекта;

  • платформу, на которой выполняется объект.

  • Интерфейс не является ни объектом, ни классом (определением) объектов. Интерфейс — это абстрактный класс, который нужно проектировать исходя из возможного применения в самых разных контекстах. Например, простой интерфейс базового чтения-записи потоков данных подойдет для множества самых разных клиентов и типов объектов. Интерфейс IUnknown Объект СОМ имеет несколько интерфейсов, что позволяет обслуживать клиентов разных типов. Тем не менее все объекты СОМ поддерживают как минимум один стандартный интерфейс — I Unknown, который управляет всеми другими интерфейсами объекта. Этот интерфейс имеет три основных метода: AddRef, Release и Querylnterface (рис. 5.2).
    Рис. 5.2 Интерфейс lUnknown

    • Метод AddRef реализует объект СОМ. При создании каждого экземпляра объекта значение счетчика ссылок для него увеличивается.

      Содержание  Назад  Вперед