| title | ATL Module Classes | Microsoft Docs | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ms.custom | ||||||||||||||
| ms.date | 11/04/2016 | |||||||||||||
| ms.reviewer | ||||||||||||||
| ms.suite | ||||||||||||||
| ms.technology |
|
|||||||||||||
| ms.tgt_pltfrm | ||||||||||||||
| ms.topic | article | |||||||||||||
| dev_langs |
|
|||||||||||||
| helpviewer_keywords |
|
|||||||||||||
| ms.assetid | fd75382d-c955-46ba-a38e-37728b7fa00f | |||||||||||||
| caps.latest.revision | 10 | |||||||||||||
| author | mikeblome | |||||||||||||
| ms.author | mblome | |||||||||||||
| manager | ghogen | |||||||||||||
| translation.priority.ht |
|
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
CComModulegranular.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.