Classe CComModule
A partir da ATL 7.0, CComModule
é preterido: consulte Classes de módulo ATL para obter mais detalhes.
Importante
Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.
Sintaxe
class CComModule : public _ATL_MODULE
Membros
Métodos públicos
Nome | Descrição |
---|---|
CComModule::GetClassObject | Cria um objeto do 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 | Insere 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 do objeto. |
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 | Cancela o registro de cada objeto no mapa de objetos. |
CComModule::UpdateRegistryClass | Registra ou cancela o registro de classe padrão de um objeto. |
CComModule::UpdateRegistryFromResourceD | Executa o script contido em um recurso especificado para registrar ou cancelar o registro de um objeto. |
CComModule::UpdateRegistryFromResourceS | Vincula estaticamente ao Componente do Registro da ATL. Executa o script contido em um recurso especificado para registrar ou cancelar o registro de um objeto. |
Membros de Dados Públicos
Nome | Descrição |
---|---|
CComModule::m_csObjMap | Garante o acesso sincronizado às informações do mapa do objeto. |
CComModule::m_csTypeInfoHolder | Garante o acesso sincronizado às informações da biblioteca de tipos. |
CComModule::m_csWindowCreate | Garante o acesso sincronizado às informações de classe de janela e a dados estáticos usados durante a criação da janela. |
CComModule::m_hInst | Contém o identificador para a instância do módulo. |
CComModule::m_hInstResource | Por padrão, contém o identificador para a instância do módulo. |
CComModule::m_hInstTypeLib | Por padrão, contém o identificador 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 usadas com aplicativos criados com versões mais antigas da ATL. CComModule
ainda faz parte da ATL para funcionalidade de versões anteriores.
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 instância CComModule
usa um mapa de objeto para manter um conjunto de definições de objeto de classe. Este mapa de objetos é implementado como uma matriz de estruturas _ATL_OBJMAP_ENTRY
e contém informações para:
Inserir e remover descrições de objeto no registro do sistema.
Instanciar objetos por meio de uma fábrica de classes.
Estabelecer a comunicação entre um cliente e o objeto raiz no componente.
Executar o gerenciamento de tempo de vida de objetos de classe.
Quando você executa o COM AppWizard da ATL, o assistente gera automaticamente _Module
, uma instância global de CComModule
ou uma classe derivada dela. Para obter mais informações sobre o Assistente de Projeto da ATL, confira o artigo Criar um projeto da ATL.
Além de CComModule
, a ATL fornece CComAutoThreadModule, que implementa um módulo de modelo de acomodação para EXEs e serviços Windows. Derive seu módulo de CComAutoThreadModule
para criar objetos em várias acomodações.
Hierarquia de herança
CComModule
Requisitos
Cabeçalho: atlbase.h
CComModule::GetClassObject
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
HRESULT GetClassObject(
REFCLSID rclsid,
REFIID riid,
LPVOID* ppv) throw();
Parâmetros
rclsid
[entrada] O CLSID do objeto a ser criado.
riid
[in] O IID da interface solicitada .
ppv
[saída] Um ponteiro para o ponteiro da interface identificado por riid. Se o objeto não der suporte a essa interface, o ppv será definido como NULL.
Valor de retorno
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 da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
HINSTANCE GetModuleInstance() throw();
Valor de retorno
O HINSTANCE que identifica este módulo.
Comentários
Retorna o membro de dados m_hInst.
CComModule::GetResourceInstance
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
HINSTANCE GetResourceInstance() throw();
Valor de retorno
Um HINSTANCE.
Comentários
Retorna o membro de dados m_hInstResource.
CComModule::GetTypeLibInstance
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
HINSTANCE GetTypeLibInstance() const throw();
Valor de retorno
Um HINSTANCE.
Comentários
Retorna o membro de dados m_hInstTypeLib.
CComModule::Init
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
HRESULT Init(
_ATL_OBJMAP_ENTRY* p,
HINSTANCE h,
const GUID* plibid = NULL) throw();
Parâmetros
p
[entrada] Um ponteiro para uma matriz de entradas de mapa de objeto.
h
[entrada] O HINSTANCE passado para DLLMain
ou WinMain
.
plibid
[entrada] Um ponteiro para o LIBID da biblioteca de tipos associada ao projeto.
Valor de retorno
Um valor HRESULT padrão.
Comentários
Inicializa todos os membros de dados.
CComModule::m_csObjMap
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
CRITICAL_SECTION m_csObjMap;
Comentários
Garante o acesso sincronizado ao mapa do objeto.
CComModule::m_csTypeInfoHolder
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
CRITICAL_SECTION m_csTypeInfoHolder;
Comentários
Garante o acesso sincronizado à biblioteca de tipos.
CComModule::m_csWindowCreate
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
CRITICAL_SECTION m_csWindowCreate;
Comentários
Garante o acesso sincronizado às informações de classe de janela e a dados estáticos usados durante a criação da janela.
CComModule::m_hInst
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da 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 da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
HINSTANCE m_hInstResource;
Comentários
Por padrã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 para o identificador para um recurso.
O método GetResourceInstance retorna o identificador armazenado em m_hInstResource
.
CComModule::m_hInstTypeLib
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
HINSTANCE m_hInstTypeLib;
Comentários
Por padrã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 explicitamente m_hInstTypeLib
para o identificador para uma biblioteca de tipos.
O método GetTypeLibInstance retorna o identificador armazenado em m_hInstTypeLib
.
CComModule::m_pObjMap
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da 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 da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
ATL_DEPRECATED HRESULT RegisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
UINT nDescID,
DWORD dwFlags);
Parâmetros
clsid
[entrada] O CLSID do objeto a ser registrado.
lpszProgID
[entrada] O ProgID associado ao objeto.
lpszVerIndProgID
[entrada] O ProgID independente de versão associado ao objeto.
nDescID
[entrada] O identificador de um recurso de cadeia de caracteres para a descrição do objeto.
dwFlags
[entrada] Especifica o modelo de threading a ser inserido no registro. Os valores possíveis são THREADFLAGS_APARTMENT, THREADFLAGS_BOTH ou AUTPRXFLAG.
Valor de retorno
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 da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
Parâmetros
dwClsContext
[entrada] 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
[entrada] Determina os tipos de conexão com 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 de retorno
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 da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
HRESULT RegisterServer(
BOOL bRegTypeLib = FALSE,
const CLSID* pCLSID = NULL) throw();
Parâmetros
bRegTypeLib
[entrada] Indica se a biblioteca de tipos será registrada. O valor padrão é FALSE.
pCLSID
[entrada] Aponta para o CLSID do objeto a ser registrado. Se NULL (o valor padrão), todos os objetos no mapa de objetos serão registrados.
Valor de retorno
Um valor HRESULT padrão.
Comentários
Dependendo do parâmetro pCLSID, atualiza o registro do sistema para um único objeto de classe ou para todos os objetos no mapa do objeto.
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 uma execução EXE com a opção de linha de comando /RegServer
.
CComModule::RegisterTypeLib
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();
Parâmetros
lpszIndex
[entrada] Cadeia de caracteres no formato "\\N"
, onde N
é o índice inteiro do recurso TYPELIB.
Valor de retorno
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 da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
HRESULT RevokeClassObjects() throw();
Valor de retorno
Um valor HRESULT padrão.
Comentários
Remove o objeto de classe. Esse método só está disponível para EXEs.
CComModule::Term
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
void Term() throw();
Comentários
Libera todos os membros de dados.
CComModule::UnregisterClassHelper
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da ATL para obter mais detalhes.
ATL_DEPRECATED HRESULT UnregisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID);
Parâmetros
clsid
[entrada] O CLSID do objeto a ser cancelado.
lpszProgID
[entrada] O ProgID associado ao objeto.
lpszVerIndProgID
[entrada] O ProgID independente de versão associado ao objeto.
Valor de retorno
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 da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da 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 TRUE, a biblioteca de tipos também não será registrada.
pCLSID
Aponta para o CLSID do objeto a ser cancelado. Se NULL (o valor padrão), todos os objetos no mapa de objetos terão o registro cancelado.
Valor de retorno
Um valor HRESULT padrão.
Comentários
Dependendo do parâmetro pCLSID, cancela o registro de um único objeto de classe ou de todos os objetos no mapa do objeto.
UnregisterServer
será chamado automaticamente por DLLUnregisterServer
para uma DLL ou por WinMain
para uma execução EXE com a opção de linha de comando /UnregServer
.
Consulte OBJECT_ENTRY_AUTO para obter informações sobre como adicionar uma entrada ao mapa de objetos.
CComModule::UpdateRegistryClass
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da 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 a ter o registro cancelado.
lpszProgID
O ProgID associado ao objeto.
lpszVerIndProgID
O ProgID independente de versão associado ao objeto.
nDescID
O identificador de um 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 de retorno
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
chama RegisterClassHelper ou UnregisterClassHelper.
Ao especificar a macro DECLARE_REGISTRY, UpdateRegistryClass
será invocado automaticamente quando o mapa de objetos for processado.
CComModule::UpdateRegistryFromResourceD
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos da 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
[entrada] Um nome do recurso.
nResID
[entrada] Uma ID do recurso.
bRegister
[entrada] Indica se o objeto deve ser registrado.
pMapEntries
[entrada] Um ponteiro para o mapa de substituição que armazena 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 de retorno
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, ele removerá o objeto.
Ao especificar a macro DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID, UpdateRegistryFromResourceD
será invocado automaticamente quando o mapa do objeto for processado.
Observação
Para substituir valores de substituição em tempo de execução, não especifique a macro DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID. Em vez disso, crie uma matriz de estruturas _ATL_REGMAP_ENTRIES
, em que cada entrada contém um espaço reservado de variável emparelhado com um valor para substituir o espaço reservado no tempo de execução. Em seguida chame UpdateRegistryFromResourceD
, passando a matriz para o parâmetro pMapEntries. Isso adiciona todos os valores de substituição nas estruturas _ATL_REGMAP_ENTRIES
para o mapa de substituição do Registrador.
Observação
Para ser vinculado estaticamente ao Componente do Registro da ATL (Registrador), confira UpdateRegistryFromResourceS.
Para obter mais informações sobre scripts e parâmetros substituíveis, consulte o artigo Componente do Registro da ATL (Registrador).
CComModule::UpdateRegistryFromResourceS
A partir da ATL 7.0, CComModule
está obsoleto: confira Classes de módulos 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
[entrada] Um nome do recurso.
nResID
[entrada] Uma ID do recurso.
bRegister
[entrada] Indica se o script do recurso deve ser registrado.
pMapEntries
[entrada] Um ponteiro para o mapa de substituição que armazena 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 de retorno
Um valor HRESULT padrão.
Comentários
Semelhante a UpdateRegistryFromResourceD, exceto que UpdateRegistryFromResourceS
cria um link estático para o Componente do Registro da ATL (Registrador).
UpdateRegistryFromResourceS
será invocado automaticamente quando o mapa de objeto for processado, desde que você adicione #define _ATL_STATIC_REGISTRY
ao pch.h (stdafx.h no Visual Studio 2017 e anteriores).
Observação
Para substituir valores de substituição em tempo de execução, não especifique a macro DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID. Em vez disso, crie uma matriz de estruturas _ATL_REGMAP_ENTRIES
, em que cada entrada contém um espaço reservado de variável emparelhado com um valor para substituir o espaço reservado no tempo de execução. Em seguida chame UpdateRegistryFromResourceS
, passando a matriz para o parâmetro pMapEntries. Isso adiciona todos os valores de substituição nas estruturas _ATL_REGMAP_ENTRIES
para o mapa de substituição do Registrador.
Para obter mais informações sobre scripts e parâmetros substituíveis, consulte o artigo Componente do Registro da ATL (Registrador).