Шаг 171.
Среда программирования Visual C++.
Создание СОМ-компонентов средствами ATL. Применение ATL

    На этом шаге мы рассмотрим особености применения ATL.

    ActiveX Template Library (ATL) - это набор шаблонных классов C++, облегчающих создание производительных СОМ-компонентов Он поддерживает ключевые возможности СОМ, в том числе интерфейсы IUnknown и IDispatch и двойные интерфейсы. ATL также используют для создания элементов управления на базе ActiveX. С его помощью создают СОМ-объекты, поддерживающие как однопоточную модель так и модели разделенных и свободных потоков.

    Кроме ATL в Microsoft Visual Studio имеются мастера, упрощающие использование ATL в качестве основы разработки каркаса приложения.

    При создании СОМ-объектов значительную часть исходного текста можно создать на основе кода шаблонов. Наличие ATL повышает гибкость среды Visual Studio, что необходимо при создании СОМ-объектов. Мастера ATL генерируют стандартный код, предоставляя Вам возможность сосредоточиться на специальных методах, реализующих те функции, для которых и предназначен Ваш СОМ-объект.

    Код, сгенерированный мастерами ATL, базируется на основной наборе шаблонных классов и макросов ATL. Шаблоны ATL (в отличие от сложной структуры наследования в MFC) позволяют разрабатывать быстрый, компактный код, вполне пригодный для создав компонентов и управляющих элементов.

    В ATL СОМ-объект создается в следующей последовательности.

  1. Средствами мастера ATL COM AppWizard генерируется проект ATL COM. Тип проекта определяет вид создаваемого СОМ-сервера (встраиваемый в процесс или внешний), который будет предоставлять услуги Вашим СОМ-объектам.
  2. С помощью ATL Object Wizard формируется новый ATL-объект.
  3. В мастере Add Method to Interface Wizard задаются методы объекта.
  4. В мастере Add Properties to Interface Wizard настраиваются свойства объекта.
  5. Пишется код методов объекта.

    Именно в такой последовательности мы создадим простой СОМ-объект на базе ATL, предоставляющий услуги шифрования. Он называется Encoder и поддерживает всего лишь один интерфейс IEncoder с единственным методом EncodeString(). Этот метод шифрует и возвращает передаваемую ему строку, используя простой алгоритм, который заключается в увеличении или уменьшении значения каждого символа на заданную константу. Эта константа определяется как настраиваемое свойство Key.

    На следующем шаге мы рассмотрим создание проекта ATL COM.




Предыдущий шаг Содержание Следующий шаг