description | title | ms.date | helpviewer_keywords | ms.assetid | |||
---|---|---|---|---|---|---|---|
Learn more about: ATL Module Classes |
ATL Module Classes |
11/04/2016 |
|
fd75382d-c955-46ba-a38e-37728b7fa00f |
This topic discusses the module classes that were new in ATL 7.0.
Earlier versions of ATL used CComModule
. In ATL 7.0, CComModule
functionality is replaced by several classes:
-
CAtlBaseModule Contains information required by most applications that use ATL. Contains the HINSTANCE of the module and the resource instance.
-
CAtlComModule Contains information required by the COM classes in ATL.
-
CAtlWinModule Contains information required by the windowing classes in ATL.
-
CAtlDebugInterfacesModule Contains support for interface debugging.
-
CAtlModule The following
CAtlModule
-derived classes are customized to contain information required in a particular application type. Most members in these classes can be overridden:-
CAtlDllModuleT Used in DLL applications. Provides code for the standard exports.
-
CAtlExeModuleT Used in EXE applications. Provides code required in an EXE.
-
CAtlServiceModuleT Provides support to create Windows NT and Windows 2000 Services.
-
CComModule
is still available for backward compatibility.
The functionality of CComModule
was distributed into several new classes for the following reasons:
-
Make the functionality in
CComModule
granular.Support for COM, windowing, interface debugging, and application-specific (DLL or EXE) features is now in separate classes.
-
Automatically declare global instance of each of these modules.
A global instance of the required module classes is linked into the project.
-
Remove the necessity of calling Init and Term methods.
Init and Term methods have moved into the constructors and destructors for the module classes; there is no longer a need to call Init and Term.