Classe CComModule

A partir da ATL 7.0, CComModule foi preterido: consulte Classes de módulo da ATL para obter mais detalhes.

Importante

Essa classe e seus membros não podem ser usados em aplicativos que são executados no Windows Runtime.

Sintaxe

class CComModule : public _ATL_MODULE

Membros

Métodos públicos

Nome Descrição
CComModule::GetClassObject Cria um objeto de um CLSID especificado. Somente para DLLs.
CComModule::GetModuleInstance Retorna m_hInst.
CComModule::GetResourceInstance Retorna m_hInstResource.
CComModule::GetTypeLibInstance Retorna m_hInstTypeLib.
CComModule::Init Inicializa membros de dados.
CComModule::RegisterClassHelper Insira o registro de classe padrão de um objeto no registro do sistema.
CComModule::RegisterClassObjects Registra o objeto de classe. Somente para EXEs.
CComModule::RegisterServer Atualiza o registro do sistema para cada objeto no mapa de objetos.
CComModule::RegisterTypeLib Registra uma biblioteca de tipos.
CComModule::RevokeClassObjects Revoga o objeto de classe. Somente para EXEs.
CComModule::Term Libera membros de dados.
CComModule::UnregisterClassHelper Remove o registro de classe padrão de um objeto do registro do sistema.
CComModule::UnregisterServer Desarmista cada objeto no mapa de objetos.
CComModule::UpdateRegistryClass Registra ou ansia o registro de classe padrão de um objeto.
CComModule::UpdateRegistryFromResourceD Executa o script contido em um recurso especificado para registrar ou não registrar um objeto.
CComModule::UpdateRegistryFromResourceS Vincula-se estaticamente ao Componente do Registro da ATL. Executa o script contido em um recurso especificado para registrar ou não registrar um objeto.

Membros de Dados Públicos

Nome Descrição
CComModule::m_csObjMap Garante o acesso sincronizado às informações do mapa de objeto.
CComModule::m_csTypeInfoHolder Garante o acesso sincronizado às informações da biblioteca de tipos.
CComModule::m_csWindowCreate Garante o acesso sincronizado a informações de classe de janela e dados estáticos usados durante a criação da janela.
CComModule::m_hInst Contém o alça para a instância do módulo.
CComModule::m_hInstResource Por padrão, contém o handle para a instância do módulo.
CComModule::m_hInstTypeLib Por padrão, contém o handle para a instância do módulo.
CComModule::m_pObjMap Aponta para o mapa de objeto mantido pela instância do módulo.

Comentários

Observação

Essa classe foi preterida e os assistentes de geração de código da ATL agora usam as classes derivadas CAtlAutoThreadModule e CAtlModule . Consulte Classes de módulo da ATL para obter mais informações. As informações a seguir são para uso com aplicativos criados com versões mais antigas da ATL. CComModule ainda faz parte da ATL para capacidade de vertida.

CComModule implementa um módulo de servidor COM, permitindo que um cliente acesse os componentes do módulo. CComModule dá suporte a módulos DLL (em processo) e EXE (local).

Uma CComModule instância usa um mapa de objeto para manter um conjunto de definições de objeto de classe. Esse mapa de objeto é implementado como uma matriz de estruturas _ATL_OBJMAP_ENTRY e contém informações para:

  • Inserindo e removendo descrições de objeto no registro do sistema.

  • Inciando objetos por meio de uma fábrica de classes.

  • Estabelecer a comunicação entre um cliente e o objeto raiz no componente.

  • Executando o gerenciamento de tempo de vida de objetos de classe.

Quando você executar o AppWizard COM da ATL, _Moduleo assistente gerará automaticamente , uma instância global CComModule do ou uma classe derivada dela. Para obter mais informações sobre o Assistente de Project ATL, consulte o artigo Criando um atl Project.

Além do CComModule, a ATL fornece CComAutoThreadModule, que implementa um módulo apartment-model para EXEs e Windows serviços. Derive seu módulo de CComAutoThreadModule quando você deseja criar objetos em vários apartments.

Hierarquia de herança

_ATL_MODULE

Catlmodule

Catlmodulet

CComModule

Requisitos

Header: atlbase.h

CComModule::GetClassObject

A partir da ATL 7.0, está CComModule obsoleto: consulte Classes de módulo da ATL para obter mais detalhes.

HRESULT GetClassObject(
    REFCLSID rclsid,
    REFIID riid,
    LPVOID* ppv) throw();

Parâmetros

Rclsid
[in] O CLSID do objeto a ser criado.

riid
[in] O IID da interface solicitada.

Ppv
[out] Um ponteiro para o ponteiro de interface identificado por riid. Se o objeto não dá suporte a essa interface, ppv é definido como NULL.

Valor Retornado

Um valor HRESULT padrão.

Comentários

Cria um objeto do CLSID especificado e recupera um ponteiro de interface para esse objeto.

GetClassObject Só está disponível para DLLs.

CComModule:: GetModuleInstance

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HINSTANCE GetModuleInstance() throw();

Valor Retornado

O HINSTANCE que identifica este módulo.

Comentários

Retorna o membro de dados m_hInst .

CComModule:: GetResourceInstance

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HINSTANCE GetResourceInstance() throw();

Valor Retornado

Um HINSTANCE.

Comentários

Retorna o membro de dados m_hInstResource .

CComModule:: GetTypeLibInstance

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HINSTANCE GetTypeLibInstance() const throw();

Valor Retornado

Um HINSTANCE.

Comentários

Retorna o membro de dados m_hInstTypeLib .

CComModule:: init

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HRESULT Init(
    _ATL_OBJMAP_ENTRY* p,
    HINSTANCE h,
    const GUID* plibid = NULL) throw();

Parâmetros

DTI
no Um ponteiro para uma matriz de entradas de mapa de objeto.

h
no O HINSTANCE passado para DLLMain ou WinMain .

plibid
no Um ponteiro para o LIBID da biblioteca de tipos associada ao projeto.

Valor Retornado

Um valor HRESULT padrão.

Comentários

Inicializa todos os membros de dados.

CComModule:: m_csObjMap

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

CRITICAL_SECTION m_csObjMap;

Comentários

Garante o acesso sincronizado ao mapa de objetos.

CComModule:: m_csTypeInfoHolder

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

CRITICAL_SECTION m_csTypeInfoHolder;

Comentários

Garante o acesso sincronizado à biblioteca de tipos.

CComModule:: m_csWindowCreate

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

CRITICAL_SECTION m_csWindowCreate;

Comentários

Garante o acesso sincronizado às informações de classe de janela e aos dados estáticos usados durante a criação da janela.

CComModule:: m_hInst

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HINSTANCE m_hInst;

Comentários

Contém o identificador para a instância do módulo.

O método init define m_hInst para o identificador passado para DLLMain ou WinMain .

CComModule:: m_hInstResource

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HINSTANCE m_hInstResource;

Comentários

Por padrão, o contém o identificador para a instância do módulo.

O método init define m_hInstResource para o identificador passado para DLLMain ou WinMain . Você pode definir m_hInstResource explicitamente como o identificador para um recurso.

O método GetResourceInstance retorna o identificador armazenado em m_hInstResource .

CComModule:: m_hInstTypeLib

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HINSTANCE m_hInstTypeLib;

Comentários

Por padrão, o contém o identificador para a instância do módulo.

O método init define m_hInstTypeLib para o identificador passado para DLLMain ou WinMain . Você pode definir m_hInstTypeLib explicitamente como o identificador para uma biblioteca de tipos.

O método GetTypeLibInstance retorna o identificador armazenado em m_hInstTypeLib .

CComModule:: m_pObjMap

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

_ATL_OBJMAP_ENTRY* m_pObjMap;

Comentários

Aponta para o mapa de objeto mantido pela instância do módulo.

CComModule:: RegisterClassHelper

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

ATL_DEPRECATED HRESULT RegisterClassHelper(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    UINT nDescID,
    DWORD dwFlags);

Parâmetros

CLSID
no O CLSID do objeto a ser registrado.

lpszProgID
no O ProgID associado ao objeto.

lpszVerIndProgID
no O ProgID independente de versão associado ao objeto.

nDescID
no O identificador de um recurso de cadeia de caracteres para a descrição do objeto.

dwFlags
no Especifica o modelo de Threading a ser inserido no registro. Os valores possíveis são THREADFLAGS_APARTMENT, THREADFLAGS_BOTH ou AUTPRXFLAG.

Valor Retornado

Um valor HRESULT padrão.

Comentários

Insere o registro de classe padrão de um objeto no registro do sistema.

O método UpdateRegistryClass chama RegisterClassHelper .

CComModule:: RegisterClassObjects

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();

Parâmetros

dwClsContext
no Especifica o contexto no qual o objeto de classe deve ser executado. Os valores possíveis são CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER ou CLSCTX_LOCAL_SERVER. para obter uma descrição desses valores, consulte CLSCTX no SDK do Windows.

dwFlags
no Determina os tipos de conexão para o objeto de classe. Os valores possíveis são REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE ou REGCLS_MULTI_SEPARATE. para obter uma descrição desses valores, consulte REGCLS no SDK do Windows.

Valor Retornado

Um valor HRESULT padrão.

Comentários

Registra um objeto de classe EXE com OLE para que outros aplicativos possam se conectar a ele. Esse método só está disponível para EXEs.

CComModule:: RegisterServer

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HRESULT RegisterServer(
    BOOL bRegTypeLib = FALSE,
    const CLSID* pCLSID = NULL) throw();

Parâmetros

bRegTypeLib
no Indica se a biblioteca de tipos será registrada. O valor padrão é FALSE.

pCLSID
no Aponta para o CLSID do objeto a ser registrado. Se for NULL (o valor padrão), todos os objetos no mapa de objetos serão registrados.

Valor Retornado

Um valor HRESULT padrão.

Comentários

Dependendo do parâmetro pCLSID , o atualiza o registro do sistema para um único objeto de classe ou para todos os objetos no mapa de objetos.

Se bRegTypeLib for true, as informações da biblioteca de tipos também serão atualizadas.

Consulte OBJECT_ENTRY_AUTO para obter informações sobre como adicionar uma entrada ao mapa de objetos.

RegisterServer será chamado automaticamente por DLLRegisterServer para uma DLL ou por WinMain para um exe executado com a opção de linha de /RegServer comando.

CComModule:: RegisterTypeLib

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();

Parâmetros

lpszIndex
no Cadeia de caracteres no formato "\\N" , em que N é o índice de inteiro do recurso TypeLib.

Valor Retornado

Um valor HRESULT padrão.

Comentários

Adiciona informações sobre uma biblioteca de tipos ao registro do sistema.

Se a instância do módulo contiver várias bibliotecas de tipos, use a segunda versão desse método para especificar qual biblioteca de tipos deve ser usada.

CComModule:: RevokeClassObjects

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HRESULT RevokeClassObjects() throw();

Valor Retornado

Um valor HRESULT padrão.

Comentários

Remove o objeto de classe. Esse método só está disponível para EXEs.

CComModule:: termo

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

void Term() throw();

Comentários

Libera todos os membros de dados.

CComModule:: UnregisterClassHelper

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

ATL_DEPRECATED HRESULT UnregisterClassHelper(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID);

Parâmetros

CLSID
no O CLSID do registro do objeto a ser cancelado.

lpszProgID
no O ProgID associado ao objeto.

lpszVerIndProgID
no O ProgID independente de versão associado ao objeto.

Valor Retornado

Um valor HRESULT padrão.

Comentários

Remove o registro de classe padrão de um objeto do registro do sistema.

O método UpdateRegistryClass chama UnregisterClassHelper .

CComModule:: UnregisterServer

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

HRESULT UnregisterServer(const CLSID* pCLSID = NULL) throw ();
inline HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID* pCLSID = NULL) throw ();

Parâmetros

bUnRegTypeLib
Se for TRUE, a biblioteca de tipos também será cancelada.

pCLSID
Aponta para o CLSID do objeto a ser cancelado. Se NULL (o valor padrão), todos os objetos no mapa de objeto terão o registro cancelado.

Valor Retornado

Um valor HRESULT padrão.

Comentários

Dependendo do parâmetro pCLSID , o cancela o registro de um único objeto de classe ou de todos os objetos no mapa de objetos.

UnregisterServer será chamado automaticamente por DLLUnregisterServer para uma DLL ou por WinMain para um exe executado com a opção de linha de /UnregServer comando.

Consulte OBJECT_ENTRY_AUTO para obter informações sobre como adicionar uma entrada ao mapa de objetos.

CComModule:: UpdateRegistryClass

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

ATL_DEPRECATED HRESULT UpdateRegistryClass(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    UINT nDescID,
    DWORD dwFlags,
    BOOL bRegister);

ATL_DEPRECATED HRESULT UpdateRegistryClass(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    LPCTSTR szDesc,
    DWORD dwFlags,
    BOOL bRegister);

Parâmetros

CLSID
O CLSID do objeto a ser registrado ou cancelado.

lpszProgID
O ProgID associado ao objeto.

lpszVerIndProgID
O ProgID independente de versão associado ao objeto.

nDescID
O identificador do recurso de cadeia de caracteres para a descrição do objeto.

szDesc
Uma cadeia de caracteres que contém a descrição do objeto.

dwFlags
Especifica o modelo de Threading a ser inserido no registro. Os valores possíveis são THREADFLAGS_APARTMENT, THREADFLAGS_BOTH ou AUTPRXFLAG.

bRegister
Indica se o objeto deve ser registrado.

Valor Retornado

Um valor HRESULT padrão.

Comentários

Se bRegister for true, esse método inserirá o registro de classe padrão do objeto no registro do sistema.

Se bRegister for false, ele removerá o registro do objeto.

Dependendo do valor de bRegister, UpdateRegistryClass o chama RegisterClassHelper ou UnregisterClassHelper.

Ao especificar a macro DECLARE_REGISTRY , UpdateRegistryClass será invocada automaticamente quando o mapa do objeto for processado.

CComModule:: UpdateRegistryFromResourceD

A partir do ATL 7,0, CComModule é obsoleto: consulte classes de módulo do ATL para obter mais detalhes.

virtual HRESULT UpdateRegistryFromResourceD(
    LPCTSTR lpszRes,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

virtual HRESULT UpdateRegistryFromResourceD(
    UINT nResID,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw ();

Parâmetros

lpszRes
no Um nome de recurso.

nResID
[in] Uma ID de recurso.

Bregister
[in] Indica se o objeto deve ser registrado.

Pmapentries
[in] Um ponteiro para o mapa de substituição que armazenará valores associados aos parâmetros substituíveis do script. A ATL usa automaticamente %MODULE%. Para usar parâmetros substituíveis adicionais, consulte os Comentários para obter detalhes. Caso contrário, use o valor padrão NULL.

Valor Retornado

Um valor HRESULT padrão.

Comentários

Executa o script contido no recurso especificado por lpszRes ou nResID.

Se bRegister for TRUE, esse método registrará o objeto no registro do sistema; caso contrário, o registro do objeto será desaconselhado.

Ao especificar o DECLARE_REGISTRY_RESOURCE ouDECLARE_REGISTRY_RESOURCEID macro, UpdateRegistryFromResourceD será invocado automaticamente quando o mapa de objetos for processado.

Observação

Para substituir valores de substituição em tempo de executar, não especifique a DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID macro. Em vez disso, crie uma matriz de _ATL_REGMAP_ENTRIES estruturas, em que cada entrada contém um espaço reservado variável emparelhado com um valor para substituir o espaço reservado em tempo de executar. Em seguida, UpdateRegistryFromResourceDchame , passando a matriz para o parâmetro pMapEntries . Isso adiciona todos os valores de substituição nas estruturas _ATL_REGMAP_ENTRIES ao mapa de substituição do Registrador.

Observação

Para vincular estaticamente ao Registrador (Componente do Registro) da ATL, consulte UpdateRegistryFromResourceS.

Para obter mais informações sobre parâmetros substituíveis e scripts, consulte o artigo O Registrador (Componente do Registro) da ATL.

CComModule::UpdateRegistryFromResourceS

A partir da ATL 7.0, está CComModule obsoleto: consulte Classes de módulo da ATL para obter mais detalhes.

virtual HRESULT UpdateRegistryFromResourceS(
    LPCTSTR lpszRes,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

virtual HRESULT UpdateRegistryFromResourceS(
    UINT nResID,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

Parâmetros

lpszRes
[in] Um nome de recurso.

nResID
[in] Uma ID de recurso.

Bregister
[in] Indica se o script de recurso deve ser registrado.

Pmapentries
[in] Um ponteiro para o mapa de substituição que armazenará valores associados aos parâmetros substituíveis do script. A ATL usa automaticamente %MODULE%. Para usar parâmetros substituíveis adicionais, consulte os Comentários para obter detalhes. Caso contrário, use o valor padrão NULL.

Valor Retornado

Um valor HRESULT padrão.

Comentários

Semelhante a UpdateRegistryFromResourceD , UpdateRegistryFromResourceS exceto que cria um link estático para o Registrador (Componente do Registro) da ATL.

UpdateRegistryFromResourceSserá invocado automaticamente quando o mapa de objetos for processado, #define _ATL_STATIC_REGISTRY desde que você adicione ao seu pch.h (stdafx.h no Visual Studio 2017 e anterior).

Observação

Para substituir valores de substituição em tempo de executar, não especifique a DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID macro. Em vez disso, crie uma matriz de _ATL_REGMAP_ENTRIES estruturas, em que cada entrada contém um espaço reservado variável emparelhado com um valor para substituir o espaço reservado em tempo de executar. Em seguida, UpdateRegistryFromResourceSchame , passando a matriz para o parâmetro pMapEntries . Isso adiciona todos os valores de substituição nas estruturas _ATL_REGMAP_ENTRIES ao mapa de substituição do Registrador.

Para obter mais informações sobre parâmetros substituíveis e scripts, consulte o artigo O Registrador (Componente do Registro) da ATL.

Confira também

Visão geral da classe