Модульные классы ATL
В этом разделе рассматриваются классы модулей, которые были новыми в ATL 7.0.
Классы замены CComModule
Более ранние версии ATL использовались CComModule
. В ATL 7.0 CComModule
функциональные возможности заменяются несколькими классами:
CAtlBaseModule Содержит сведения, необходимые большинству приложений, использующих ATL. Содержит HINSTANCE модуля и экземпляр ресурса.
CAtlComModule Содержит сведения, необходимые классам COM в ATL.
CAtlWinModule Содержит сведения, необходимые классам окон в ATL.
CAtlDebugInterfacesModule Содержит поддержку отладки интерфейса.
CAtlModule Следующие
CAtlModule
производные классы настраиваются для хранения сведений, необходимых для определенного типа приложения. Большинство членов в этих классах можно переопределить:CAtlDllModuleT используется в приложениях DLL. Предоставляет код для стандартных экспортов.
CAtlExeModuleT используется в приложениях EXE. Предоставляет код, необходимый в EXE.
CAtlServiceModuleT обеспечивает поддержку создания служб Windows NT и Windows 2000.
CComModule
по-прежнему доступен для обратной совместимости.
Причины распространения функций CComModule
Функциональные возможности CComModule
были распределены по нескольким новым классам по следующим причинам:
Сделайте функциональные
CComModule
возможности детализированной.Поддержка функций COM, окон, отладки интерфейсов и приложений (DLL или EXE) теперь находится в отдельных классах.
Автоматически объявляйте глобальный экземпляр каждого из этих модулей.
Глобальный экземпляр обязательных классов модулей связан с проектом.
Удалите необходимость вызова методов Init и Term.
Методы Init и Term перемещены в конструкторы и деструкторы для классов модулей; Больше нет необходимости вызывать Init и Term.