Classes de módulo ATL

Esse tópico discute as classes de módulo que eram novas no ATL 7.0.

Classes de substituição CComModule

Versões anteriores do ATL usavam CComModule. No ATL 7.0, CComModule a funcionalidade CComModule é substituída por várias classes:

  • CAtlBaseModule Contém informações exigidas pela maioria dos aplicativos que usam ATL. Contém o HINSTANCE do módulo e a instância do recurso.

  • CAtlComModule Contém as informações exigidas pelas classes COM em ATL.

  • CAtlWinModule Contém as informações exigidas pelas classes de janelas em ATL.

  • CAtlDebugInterfacesModule Contém suporte para depuração de interface.

  • CAtlModule As seguintes classes derivadas de CAtlModule são personalizadas para conter as informações necessárias em um tipo de aplicativo específico. A maioria dos membros nessas classes pode ser substituída:

    • CAtlDllModuleT Usado em aplicativos DLL. Fornece código para as exportações padrão.

    • CAtlExeModuleT Usado em aplicativos EXE. Fornece o código necessário em um EXE.

    • CAtlServiceModuleT Fornece suporte para criar Windows NT e Windows 2000 Services.

CComModule ainda está disponível para compatibilidade com versões anteriores.

Razões para distribuir a funcionalidade de CComModule

A funcionalidade de CComModule foi distribuída em várias novas classes pelos seguintes motivos:

  • Torne a funcionalidade no CComModule granular.

    O suporte para COM, janelas, depuração de interface e recursos específicos do aplicativo (DLL ou EXE) agora está em classes separadas.

  • Declara automaticamente a instância global de cada um desses módulos.

    Uma instância global das classes de módulo necessárias é vinculada ao projeto.

  • Remove a necessidade de chamar os métodos Init e Term.

    Os métodos Init e Term foram movidos para os construtores e destruidores das classes de módulo, portanto, não há mais necessidade de chamar Init e Term.

Confira também

Conceitos
Visão geral da classe