На этом шаге мы рассмотрим особености применения ATL.
ActiveX Template Library (ATL) - это набор шаблонных классов C++, облегчающих создание производительных СОМ-компонентов Он поддерживает ключевые возможности СОМ, в том числе интерфейсы IUnknown и IDispatch и двойные интерфейсы. ATL также используют для создания элементов управления на базе ActiveX. С его помощью создают СОМ-объекты, поддерживающие как однопоточную модель так и модели разделенных и свободных потоков.
Кроме ATL в Microsoft Visual Studio имеются мастера, упрощающие использование ATL в качестве основы разработки каркаса приложения.
При создании СОМ-объектов значительную часть исходного текста можно создать на основе кода шаблонов. Наличие ATL повышает гибкость среды Visual Studio, что необходимо при создании СОМ-объектов. Мастера ATL генерируют стандартный код, предоставляя Вам возможность сосредоточиться на специальных методах, реализующих те функции, для которых и предназначен Ваш СОМ-объект.
Код, сгенерированный мастерами ATL, базируется на основной наборе шаблонных классов и макросов ATL. Шаблоны ATL (в отличие от сложной структуры наследования в MFC) позволяют разрабатывать быстрый, компактный код, вполне пригодный для создав компонентов и управляющих элементов.
В ATL СОМ-объект создается в следующей последовательности.
Именно в такой последовательности мы создадим простой СОМ-объект на базе ATL, предоставляющий услуги шифрования. Он называется Encoder и поддерживает всего лишь один интерфейс IEncoder с единственным методом EncodeString(). Этот метод шифрует и возвращает передаваемую ему строку, используя простой алгоритм, который заключается в увеличении или уменьшении значения каждого символа на заданную константу. Эта константа определяется как настраиваемое свойство Key.
На следующем шаге мы рассмотрим создание проекта ATL COM.