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, _Module
o 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
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, UpdateRegistryFromResourceD
chame , 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.
UpdateRegistryFromResourceS
será 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, UpdateRegistryFromResourceS
chame , 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.