Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
A partir do ATL 7.0, CComModule está obsoleto: veja ATL Module Classes para mais detalhes.
Importante
Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.
Sintaxe
class CComModule : public _ATL_MODULE
Membros
Métodos Públicos
| Nome | Description |
|---|---|
| CComModule::GetClassObject | Cria um objeto de um CLSID especificado. Apenas 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 registo de classe padrão de um objeto no registo do sistema. |
| CComModule::RegisterClassObjects | Regista o objeto de classe. Apenas para EXEs. |
| CComModule::RegisterServer | Atualiza o registo do sistema para cada objeto no mapa do objeto. |
| CComModule::RegisterTypeLib | Registra uma biblioteca de tipos. |
| CComModule::RevokeClassObjects | Revoga o objeto de classe. Apenas para EXEs. |
| CComModule::Term | Liberta os membros dos dados. |
| CComModule::UnregisterClassHelper | Remove o registo de classe padrão de um objeto do registo do sistema. |
| CComModule::UnregisterServer | Desregista cada objeto no mapa de objetos. |
| CComModule::UpdateRegistryClass | Regista ou desregista o registo de classe padrão de um objeto. |
| CComModule::UpdateRegistryFromResourceD | Executa o script contido num recurso especificado para registar ou desregistar um objeto. |
| CComModule::UpdateRegistryFromResourceS | Liga-se estaticamente ao Componente do Registo ATL. Executa o script contido num recurso especificado para registar ou desregistar um objeto. |
Membros de Dados Públicos
| Nome | Description |
|---|---|
| CComModule::m_csObjMap | Assegura o acesso sincronizado à informação do mapa do objeto. |
| CComModule::m_csTypeInfoHolder | Assegura acesso sincronizado à informação da biblioteca de tipos. |
| CComModule::m_csWindowCreate | Assegura acesso sincronizado à informação da classe de janela e aos dados estáticos usados durante a criação da janela. |
| CComModule::m_hInst | Contém o handle da instância do módulo. |
| CComModule::m_hInstResource | Por defeito, contém o handle da instância do módulo. |
| CComModule::m_hInstTypeLib | Por defeito, contém o handle da instância do módulo. |
| CComModule::m_pObjMap | Aponta para o mapa de objetos mantido pela instância do módulo. |
Observações
Observação
Esta classe está obsoleta, e os assistentes de geração de código ATL usam agora as classes derivadas do CAtlAutoThreadModule e do CAtlModule . Consulte as Aulas de Módulo ATL para mais informações. A informação que se segue destina-se a aplicações criadas com versões mais antigas do ATL.
CComModule ainda faz parte da ATL pela capacidade de retroceder.
CComModule implementa um módulo servidor COM, permitindo ao cliente aceder aos componentes do módulo.
CComModule suporta tanto módulos DLL (em processo) como EXE (locais).
Uma CComModule instância utiliza um mapa de objetos para manter um conjunto de definições de objetos de classe. Este mapa de objetos é implementado como um array de _ATL_OBJMAP_ENTRY estruturas, e contém informação para:
Introdução e remoção de descrições de objetos no registo do sistema.
Instanciar objetos através de uma fábrica de classes.
Estabelecer comunicação entre um cliente e o objeto raiz no componente.
Realização de gestão ao longo da vida dos objetos de classe.
Quando executa o ATL COM AppWizard, o assistente gera _Moduleautomaticamente , uma instância global de CComModule ou uma classe derivada dele. Para mais informações sobre o Assistente do Projeto ATL, consulte o artigo Criar um Projeto ATL.
Além de CComModule, o ATL fornece o CComAutoThreadModule, que implementa um módulo modelo apartamento para EXEs e serviços Windows. Deriva o teu módulo a partir CComAutoThreadModule do momento em que queres criar objetos em vários apartamentos.
Hierarquia de herança
CComModule
Requerimentos
Cabeçalho: atlbase.h
CComModule::GetClassObject
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HRESULT GetClassObject(
REFCLSID rclsid,
REFIID riid,
LPVOID* ppv) throw();
Parâmetros
RCLSID
[dentro] O CLSID do objeto a ser criado.
riid
[dentro] O IID da interface solicitada.
PPV
[fora] Um ponteiro para o ponteiro de interface identificado por riid. Se o objeto não suportar esta interface, o ppv é definido como NULL.
Valor de retorno
Um valor HRESULT padrão.
Observações
Cria um objeto com o CLSID especificado e recupera um ponteiro de interface para esse objeto.
GetClassObject está disponível apenas para DLLs.
CComModule::GetModuleInstance
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HINSTANCE GetModuleInstance() throw();
Valor de retorno
O HINSTANCE identifica este módulo.
Observações
Devolve o m_hInst membro de dados.
CComModule::GetResourceInstance
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HINSTANCE GetResourceInstance() throw();
Valor de retorno
UM INSTANTE.
Observações
Devolve o m_hInstResource membro de dados.
CComModule::GetTypeLibInstance
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HINSTANCE GetTypeLibInstance() const throw();
Valor de retorno
UM INSTANTE.
Observações
Devolve o m_hInstTypeLib membro de dados.
CComModule::Init
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HRESULT Init(
_ATL_OBJMAP_ENTRY* p,
HINSTANCE h,
const GUID* plibid = NULL) throw();
Parâmetros
p
[dentro] Um ponteiro para um array de entradas de mapa de objetos.
h
[dentro] A HINSTÂNCIA passou para DLLMain ou WinMain.
plibid
[dentro] Um apontador para o LIBID da biblioteca de tipos associada ao projeto.
Valor de retorno
Um valor HRESULT padrão.
Observações
Inicializa todos os membros dos dados.
CComModule::m_csObjMap
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
CRITICAL_SECTION m_csObjMap;
Observações
Garante o acesso sincronizado ao mapa de objetos.
CComModule::m_csTypeInfoHolder
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
CRITICAL_SECTION m_csTypeInfoHolder;
Observações
Assegura acesso sincronizado à biblioteca de tipos.
CComModule::m_csWindowCreate
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
CRITICAL_SECTION m_csWindowCreate;
Observações
Assegura o acesso sincronizado à informação da 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 está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HINSTANCE m_hInst;
Observações
Contém o handle da instância do módulo.
O método Init define m_hInst para a alça passada para DLLMain ou WinMain.
CComModule::m_hInstResource
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HINSTANCE m_hInstResource;
Observações
Por defeito, contém o handle da instância do módulo.
O método Init define m_hInstResource para a alça passada para DLLMain ou WinMain. Podes definir m_hInstResource explicitamente o handle para um recurso.
O método GetResourceInstance devolve o handle armazenado em m_hInstResource.
CComModule::m_hInstTypeLib
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HINSTANCE m_hInstTypeLib;
Observações
Por defeito, contém o handle da instância do módulo.
O método Init define m_hInstTypeLib para a alça passada para DLLMain ou WinMain. Podes definir m_hInstTypeLib explicitamente para o handle uma biblioteca de tipos.
O método GetTypeLibInstance devolve o handle armazenado em m_hInstTypeLib.
CComModule::m_pObjMap
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
_ATL_OBJMAP_ENTRY* m_pObjMap;
Observações
Aponta para o mapa de objetos mantido pela instância do módulo.
CComModule::RegisterClassHelper
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
ATL_DEPRECATED HRESULT RegisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
UINT nDescID,
DWORD dwFlags);
Parâmetros
CLSID
[dentro] O CLSID do objeto a registar.
lpszProgID
[dentro] O ProgID associado ao objeto.
lpszVerIndProgID
[dentro] O ProgID independente de versão associado ao objeto.
nDescID
[dentro] O identificador de um recurso string para a descrição do objeto.
dwBandeiras
[dentro] Especifica o modelo de threading a introduzir no registo. Os valores possíveis são THREADFLAGS_APARTMENT, THREADFLAGS_BOTH ou AUTPRXFLAG.
Valor de retorno
Um valor HRESULT padrão.
Observações
Insere o registo de classe padrão de um objeto no registo do sistema.
O método UpdateRegistryClass chama RegisterClassHelper.
CComModule::RegisterClassObjects
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
Parâmetros
dwClsContext
[dentro] Especifica o contexto em que o objeto de classe deve ser executado. Os valores possíveis são CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER ou CLSCTX_LOCAL_SERVER. Para uma descrição destes valores, veja CLSCTX no SDK do Windows.
dwBandeiras
[dentro] Determina os tipos de ligação ao objeto de classe. Os valores possíveis são REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE ou REGCLS_MULTI_SEPARATE. Para uma descrição destes valores, veja REGCLS no SDK do Windows.
Valor de retorno
Um valor HRESULT padrão.
Observações
Regista um objeto de classe EXE com OLE para que outras aplicações possam ligar-se a ele. Este método está disponível apenas para EXEs.
CComModule::RegisterServer
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HRESULT RegisterServer(
BOOL bRegTypeLib = FALSE,
const CLSID* pCLSID = NULL) throw();
Parâmetros
bRegTypeLib
[dentro] Indica se a biblioteca de tipos será registada. O valor padrão é FALSE.
pCLSID
[dentro] Aponta para o CLSID do objeto a registar. Se for NULL (o valor padrão), todos os objetos no mapa de objetos serão registados.
Valor de retorno
Um valor HRESULT padrão.
Observações
Dependendo do parâmetro pCLSID , atualiza o registo do sistema para um único objeto de classe ou para todos os objetos no mapa do objeto.
Se o bRegTypeLib for VERDADEIRO, a informação da biblioteca de tipos também será atualizada.
Consulte OBJECT_ENTRY_AUTO para informações sobre como adicionar uma entrada ao mapa de objetos.
RegisterServer será chamada automaticamente por DLLRegisterServer para uma DLL ou por WinMain por para uma execução EXE com a /RegServer opção de linha de comandos.
CComModule::RegisterTypeLib
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();
Parâmetros
lpszIndex
[dentro] String no formato "\\N", onde N é o índice inteiro do recurso TYPELIB.
Valor de retorno
Um valor HRESULT padrão.
Observações
Adiciona informação sobre uma biblioteca de tipos ao registo do sistema.
Se a instância do módulo contiver múltiplas bibliotecas de tipos, use a segunda versão deste método para especificar qual biblioteca de tipos deve ser usada.
CComModule::RevokeClassObjects
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
HRESULT RevokeClassObjects() throw();
Valor de retorno
Um valor HRESULT padrão.
Observações
Remove o objeto de classe. Este método está disponível apenas para EXEs.
CComModule::Term
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
void Term() throw();
Observações
Liberta todos os membros dos dados.
CComModule::UnregisterClassHelper
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para mais detalhes.
ATL_DEPRECATED HRESULT UnregisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID);
Parâmetros
CLSID
[dentro] O CLSID do objeto a ser desregistado.
lpszProgID
[dentro] O ProgID associado ao objeto.
lpszVerIndProgID
[dentro] O ProgID independente de versão associado ao objeto.
Valor de retorno
Um valor HRESULT padrão.
Observações
Remove o registo de classe padrão de um objeto do registo do sistema.
O método UpdateRegistryClass chama UnregisterClassHelper.
CComModule::UnregisterServer
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para 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 está registada.
pCLSID
Aponta para o CLSID do objeto a ser não registado. Se for NULL (o valor padrão), todos os objetos no mapa de objetos serão desregistados.
Valor de retorno
Um valor HRESULT padrão.
Observações
Dependendo do parâmetro pCLSID , desregista um único objeto de classe ou todos os objetos do mapa do objeto.
UnregisterServer será chamada automaticamente por DLLUnregisterServer para uma DLL ou por WinMain por para uma execução EXE com a /UnregServer opção de linha de comandos.
Consulte OBJECT_ENTRY_AUTO para informações sobre como adicionar uma entrada ao mapa de objetos.
CComModule::UpdateRegistryClass
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para 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 registar ou não registar.
lpszProgID
O ProgID associado ao objeto.
lpszVerIndProgID
O ProgID independente de versão associado ao objeto.
nDescID
O identificador do recurso string para a descrição do objeto.
szDesc
Uma cadeia contendo a descrição do objeto.
dwBandeiras
Especifica o modelo de threading a introduzir no registo. Os valores possíveis são THREADFLAGS_APARTMENT, THREADFLAGS_BOTH ou AUTPRXFLAG.
bRegister
Indica se o objeto deve ser registado.
Valor de retorno
Um valor HRESULT padrão.
Observações
Se o bRegister for TRUE, este método entra no registo padrão da classe do objeto no registo do sistema.
Se o bRegister for FALSO, remove o registo do objeto.
Dependendo do valor de bRegister, UpdateRegistryClass chama RegisterClassHelper ou UnregisterClassHelper.
Ao especificar o DECLARE_REGISTRY macro, UpdateRegistryClass será invocado automaticamente quando o seu mapa de objetos for processado.
CComModule::UpdateRegistryFromResourceD
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para 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
[dentro] Um nome de recurso.
nResID
[dentro] Um ID de recurso.
bRegister
[dentro] Indica se o objeto deve ser registado.
pMapEntries
[dentro] Um ponteiro para o mapa de substituição que armazena valores associados aos parâmetros substituíveis do script. O ATL utiliza %MODULE%automaticamente . Para usar parâmetros substituíveis adicionais, consulte as Observações para mais detalhes. Caso contrário, use o valor padrão NULL.
Valor de retorno
Um valor HRESULT padrão.
Observações
Executa o script contido no recurso especificado por lpszRes ou nResID.
Se o bRegister for TRUE, este método regista o objeto no registo do sistema; caso contrário, desregista o objeto.
Ao especificar o DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID macro, UpdateRegistryFromResourceD será invocado automaticamente quando o seu mapa de objetos 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-se um array de _ATL_REGMAP_ENTRIES estruturas, onde cada entrada contém um marcador de posição variável emparelhado com um valor para substituir o marcador em tempo de execução. Depois chama UpdateRegistryFromResourceD, passando o array para o parâmetro pMapEntrs . Isto adiciona todos os valores de substituição nas _ATL_REGMAP_ENTRIES estruturas ao mapa de substituição do Registrador.
Observação
Para ligar estaticamente ao Componente do Registo ATL (Registrar), consulte UpdateRegistryFromResourceS.
Para mais informações sobre parâmetros substituíveis e scripting, consulte o artigo The ATL Registry Component (Registrar).
CComModule::UpdateRegistryFromResourceS
A partir do ATL 7.0, CComModule está obsoleto: consulte Classes de Módulos ATL para 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
[dentro] Um nome de recurso.
nResID
[dentro] Um ID de recurso.
bRegister
[dentro] Indica se o script de recurso deve ser registado.
pMapEntries
[dentro] Um ponteiro para o mapa de substituição que armazena valores associados aos parâmetros substituíveis do script. O ATL utiliza %MODULE%automaticamente . Para usar parâmetros substituíveis adicionais, consulte as Observações para mais detalhes. Caso contrário, use o valor padrão NULL.
Valor de retorno
Um valor HRESULT padrão.
Observações
Semelhante ao UpdateRegistryFromResourceD , exceto UpdateRegistryFromResourceS que cria uma ligação estática ao Componente do Registo ATL (Registrar).
UpdateRegistryFromResourceS será invocado automaticamente quando o seu mapa de objetos for processado, desde que adicione #define _ATL_STATIC_REGISTRY ao seu 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 o DECLARE_REGISTRY_RESOURCE ou DECLARE_REGISTRY_RESOURCEID macro. Em vez disso, crie-se um array de _ATL_REGMAP_ENTRIES estruturas, onde cada entrada contém um marcador de posição variável emparelhado com um valor para substituir o marcador em tempo de execução. Depois chama UpdateRegistryFromResourceS, passando o array para o parâmetro pMapEntrs . Isto adiciona todos os valores de substituição nas _ATL_REGMAP_ENTRIES estruturas ao mapa de substituição do Registrador.
Para mais informações sobre parâmetros substituíveis e scripting, consulte o artigo The ATL Registry Component (Registrar).