На этом шаге мы рассмотрим другие способы разработки COM-объектов.
ATL - не единственный способ разработки СОМ-объектов. Вы вправе создавать их "с нуля" на C++ или можете прибегнуть к помощи MFC-классов.
Если Вы решите реализовать СОМ-объект на C++ "с нуля", Вам придется написать довольно много кода. Это можно сделать в такой последовательности .
Большая часть приведенных выше операций связана с созданием эквивалента шаблонного СОМ-кода, который в ATL генерируется автоматически. Кроме того, написание такого кода - утомительная задача, при выполнении которой вряд ли удастся избежать ошибок. ATL 3fL же сохраняет Вам огромное количество времени, создавая при этом эффективные, высокопроизводительные компоненты.
MFC прекрасно подходит для написания СОМ-объектов. Однако классы MFC все-таки предназначены для создания приложений, и поддержка СОМ в них не выходит за рамки OLE. OLE (теперь в большинстве своем преобразованная в ActiveX) - это технология на базе СОМ, позволяющая одним приложениям экспортировать наборы своих свойств в другие приложения. Например, именно технология OLE позволяет внедрять электронную таблицу Microsoft Excel в документ Microsoft Word.
Поскольку функции OLE, как правило, реализованы на основе диспетчерских интерфейсов, поддержка СОМ в MFC базируется на технологии диспетчерского отображения, реализованной в классе CCmdTarget. Если же Вы захотите создать компонент со специальным интерфейсом, Вам придется обратиться к низкоуровневому кодированию на C++.
Другой недостаток MFC COM заключается в том, что вместе с компонентом Вам придется поставлять тяжеловесные MFC-библиотеки. Если Вы поставляете свой компонент в комплекте с приложением, которое и так устанавливает DLL-библиотеки MFC, то особых проблем не возникает, но весьма утомительно проверять их наличие и устанавливать их ради одного-единственного мелкого компонента. Иногда статическое подключение MFC библиотеки приводит к "разбуханию" компонента, что недопустимо. Одна из причин разработки ATL такова: компоненты и элементы управления на основе MFC не годились для развертывания и работы в Интернете.
Тем не менее MFC остается прекрасным инструментом для разработки компонентов на базе Automation в средах, где можно без проблем установить MFC-библиотеки. MFC - прекрасное средство для создания элементов управления на базе ActiveX, многократно используемых в Ваших MFC-приложениях.
На следующем шаге мы вернемся к приложению STUpload.