В чем суть WTL (ATL)
Объясните мне зачем там COM? Зачем при построении простого окна использовать COM? И где этот COM интерфейс будет храниться? Внутри проги что ли. Тогда смысл от этого. Ни dll-ок никаких не создается, ничего. Он же еще и регистрироваться будет в реестре.
CWindow m_MainWindow;
и понеслась ...
Все равно не понятно. Например, "лепишь" на форму кнопку, a зачем использовать COM? Да и обычно COM интрефейсы размещаются в отдельной dll, а тут то все компилируется в одни exe - шник. И таким образом получается, что сам exe-шник (пользовательская программа) становиться сервером. Да и если я создаю класс "кнопка" зачем мне использовать использовать WTL, если я его экспортировать никуда не буду.
WTL не использует COM, кроме классов CAxDialogImpl и CAxWindow, которые специально созданы для агрегации COM-объектов.
Да не я не удивляюсь и не возмущаюсь. Просто везде, где я читал везде упоминается COM. И что АTL, а значит и WTL, как прямой потомок, служат именно для облегчения создания COM. Я потому и спросил. Я посмотрел иерархию наследования для базовых классов и там как раз и есть шаблоны отвечающие за реализацию IUnknown интерфесфа, фабрики классов и саморегистрации. А что мне еще было думать.
Не совсем так. ATL да в частности создан для удобной работы с COM. WTL создан на основе ATL но в первую очередь как оконая билиотека GUI элеметов и с COM частью ATL почти не пересекается.