CComModule (clase)
A partir de ATL 7.0, CComModule
está en desuso: consulte Clases de módulo ATL para más detalles.
Importante
Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.
Sintaxis
class CComModule : public _ATL_MODULE
Miembros
Métodos públicos
Nombre | Descripción |
---|---|
CComModule::GetClassObject | Crea un objeto de un CLSID especificado. Solo para archivos DLL. |
CComModule::GetModuleInstance | Devuelve m_hInst . |
CComModule::GetResourceInstance | Devuelve m_hInstResource . |
CComModule::GetTypeLibInstance | Devuelve m_hInstTypeLib . |
CComModule::Init | Inicializa miembros de datos. |
CComModule::RegisterClassHelper | Escribe el registro de clase estándar de un objeto en el registro del sistema. |
CComModule::RegisterClassObjects | Registra el objeto de clase. Solo para EXE. |
CComModule::RegisterServer | Novedades el registro del sistema para cada objeto del mapa de objetos. |
CComModule::RegisterTypeLib | Registra una biblioteca de tipos. |
CComModule::RevokeClassObjects | Revoca el objeto de clase. Solo para EXE. |
CComModule::Term | Libera miembros de datos. |
CComModule::UnregisterClassHelper | Quita el registro de clase estándar de un objeto del registro del sistema. |
CComModule::UnregisterServer | Anula el registro de todos los objetos del mapa de objetos. |
CComModule::UpdateRegistryClass | Registra o anula el registro de clase estándar de un objeto. |
CComModule::UpdateRegistryFromResourceD | Ejecuta el script contenido en un recurso especificado para registrar o anular el registro de un objeto. |
CComModule::UpdateRegistryFromResourceS | Vincula estáticamente al componente del registro ATL. Ejecuta el script contenido en un recurso especificado para registrar o anular el registro de un objeto. |
Miembros de datos públicos
Nombre | Descripción |
---|---|
CComModule::m_csObjMap | Garantiza el acceso sincronizado a la información del mapa de objetos. |
CComModule::m_csTypeInfoHolder | Garantiza el acceso sincronizado a la información de la biblioteca de tipos. |
CComModule::m_csWindowCreate | Garantiza el acceso sincronizado a la información de clase de ventana y a los datos estáticos utilizados durante la creación de la ventana. |
CComModule::m_hInst | Contiene el identificador de la instancia del módulo. |
CComModule::m_hInstResource | De forma predeterminada, contiene el identificador de la instancia del módulo. |
CComModule::m_hInstTypeLib | De forma predeterminada, contiene el identificador de la instancia del módulo. |
CComModule::m_pObjMap | Apunta al mapa de objetos mantenido por la instancia del módulo. |
Comentarios
Nota:
Esta clase está en desuso y los asistentes de generación de código ATL ahora usan las clases derivadas CAtlAutoThreadModule y CAtlModule. Consulte Clases de módulo ATL para más información. La información siguiente es para su uso con las aplicaciones creadas con versiones anteriores de ATL. CComModule
todavía forma parte de ATL para la funcionalidad hacia atrás.
CComModule
implementa un módulo de servidor COM, lo que permite a un cliente acceder a los componentes del módulo. CComModule
admite módulos DLL (en proceso) y EXE (local).
Una instancia de CComModule
usa un mapa de objetos para mantener un conjunto de definiciones de objeto de clase. Este mapa de objetos se implementa como una matriz de estructuras _ATL_OBJMAP_ENTRY
y contiene información para:
Escribir y quitar descripciones de objetos en el registro del sistema.
Crear instancias de objetos a través de un generador de clases.
Establecer la comunicación entre un cliente y el objeto raíz en el componente.
Realizar la administración de la duración de los objetos de clase.
Al ejecutar COM AppWizard de ATL, el asistente genera _Module
automáticamente, una instancia global de CComModule
o una clase derivada de ella. Para obtener más información sobre el Asistente para proyectos ATL, consulte el artículo Crear un proyecto ATL.
Además de CComModule
, ATL proporciona CComAutoThreadModule, que implementa un módulo de modelo de apartamento para archivos EXE y servicios de Windows. Derive el módulo de CComAutoThreadModule
cuando desee crear objetos en varios apartamentos.
Jerarquía de herencia
CComModule
Requisitos
Encabezado: atlbase.h
CComModule::GetClassObject
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HRESULT GetClassObject(
REFCLSID rclsid,
REFIID riid,
LPVOID* ppv) throw();
Parámetros
rclsid
[in] CLSID del objeto que se va a crear.
riid
[in] El IID de la interfaz solicitada.
ppv
[out] Puntero al puntero de interfaz identificado por riid. Si el objeto no admite esta interfaz, ppv se establece como NULL.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Crea un objeto del CLSID especificado y recupera un puntero de interfaz a este objeto.
GetClassObject
solo está disponible para los archivos DLL.
CComModule::GetModuleInstance
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HINSTANCE GetModuleInstance() throw();
Valor devuelto
HINSTANCE que identifica este módulo.
Comentarios
Devuelve el miembro de datos m_hInst.
CComModule::GetResourceInstance
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HINSTANCE GetResourceInstance() throw();
Valor devuelto
HINSTANCE.
Comentarios
Devuelve el miembro de datos m_hInstResource.
CComModule::GetTypeLibInstance
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HINSTANCE GetTypeLibInstance() const throw();
Valor devuelto
HINSTANCE.
Comentarios
Devuelve el miembro de datos m_hInstTypeLib.
CComModule::Init
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HRESULT Init(
_ATL_OBJMAP_ENTRY* p,
HINSTANCE h,
const GUID* plibid = NULL) throw();
Parámetros
p
[in] Puntero a una matriz de entradas de mapa de objetos.
h
[in] Elemento HINSTANCE que se ha pasado a DLLMain
o WinMain
.
plibid
[in] Puntero al LIBID de la biblioteca de tipos asociada al proyecto.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Inicializa todos los miembros de datos.
CComModule::m_csObjMap
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
CRITICAL_SECTION m_csObjMap;
Comentarios
Garantiza el acceso sincronizado al mapa de objetos.
CComModule::m_csTypeInfoHolder
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
CRITICAL_SECTION m_csTypeInfoHolder;
Comentarios
Garantiza el acceso sincronizado a la biblioteca de tipos.
CComModule::m_csWindowCreate
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
CRITICAL_SECTION m_csWindowCreate;
Comentarios
Garantiza el acceso sincronizado a la información de clase de ventana y a los datos estáticos usados durante la creación de la ventana.
CComModule::m_hInst
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HINSTANCE m_hInst;
Comentarios
Contiene el identificador de la instancia del módulo.
El método Init establece m_hInst
en el identificador pasado a DLLMain
o WinMain
.
CComModule::m_hInstResource
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HINSTANCE m_hInstResource;
Comentarios
De forma predeterminada, contiene el identificador de la instancia del módulo.
El método Init establece m_hInstResource
en el identificador pasado a DLLMain
o WinMain
. Puede establecer m_hInstResource
explícitamente en el identificador en un recurso.
El método GetResourceInstance devuelve el identificador almacenado en m_hInstResource
.
CComModule::m_hInstTypeLib
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HINSTANCE m_hInstTypeLib;
Comentarios
De forma predeterminada, contiene el identificador de la instancia del módulo.
El método Init establece m_hInstTypeLib
en el identificador pasado a DLLMain
o WinMain
. Puede establecer m_hInstTypeLib
explícitamente en el identificador en una biblioteca de tipos.
El método GetTypeLibInstance devuelve el identificador almacenado en m_hInstTypeLib
.
CComModule::m_pObjMap
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
_ATL_OBJMAP_ENTRY* m_pObjMap;
Comentarios
Apunta al mapa de objetos mantenido por la instancia del módulo.
CComModule::RegisterClassHelper
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
ATL_DEPRECATED HRESULT RegisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
UINT nDescID,
DWORD dwFlags);
Parámetros
clsid
[in] CLSID del objeto que se va a registrar.
lpszProgID
[in] ProgID asociado al objeto .
lpszVerIndProgID
[in] ProgID independiente de la versión asociado al objeto.
nDescID
[in] Identificador de un recurso de cadena para la descripción del objeto.
dwFlags
[in] Especifica el modelo de subprocesos que se va a escribir en el registro. Los valores posibles son THREADFLAGS_APARTMENT, THREADFLAGS_BOTH o AUTPRXFLAG.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Escribe el registro de clase estándar de un objeto en el registro del sistema.
El método UpdateRegistryClass llama a RegisterClassHelper
.
CComModule::RegisterClassObjects
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
Parámetros
dwClsContext
[in] Especifica el contexto en el que se va a ejecutar el objeto de clase. Los valores posibles son CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER o CLSCTX_LOCAL_SERVER. Para obtener una descripción de estos valores, consulte CLSCTX en Windows SDK.
dwFlags
[in] Determina los tipos de conexión al objeto de clase. Los valores posibles son REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE, o REGCLS_MULTI_SEPARATE. Para obtener una descripción de estos valores, consulte REGCLS en Windows SDK.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Registra un objeto de clase EXE con OLE para que otras aplicaciones puedan conectarse a él. Este método solo está disponible para EXE.
CComModule::RegisterServer
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HRESULT RegisterServer(
BOOL bRegTypeLib = FALSE,
const CLSID* pCLSID = NULL) throw();
Parámetros
bRegTypeLib
[in] Indica si se registrará la biblioteca de tipos. El valor predeterminado es FALSE.
pCLSID
[in] Apunta al CLSID del objeto que se va a registrar. Si es NULL (el valor predeterminado), se registrarán todos los objetos del mapa de objetos.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Según el parámetro pCLSID, actualiza el registro del sistema para un solo objeto de clase o para todos los objetos del mapa de objetos.
Si bRegTypeLib es TRUE, también se actualizará la información de la biblioteca de tipos.
Consulte OBJECT_ENTRY_AUTO para obtener información sobre cómo agregar una entrada al mapa de objetos.
RegisterServer
lo llamará automáticamente DLLRegisterServer
para un archivo DLL o WinMain
para una ejecución de un archivo exe con la opción de línea de comandos /RegServer
.
CComModule::RegisterTypeLib
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();
Parámetros
lpszIndex
[in] Cadena con el formato "\\N"
, donde N
es el índice entero del recurso TYPELIB.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Agrega información sobre una biblioteca de tipos al registro del sistema.
Si la instancia del módulo contiene varias bibliotecas de tipos, use la segunda versión de este método para especificar qué biblioteca de tipos se debe usar.
CComModule::RevokeClassObjects
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HRESULT RevokeClassObjects() throw();
Valor devuelto
Valor HRESULT estándar.
Comentarios
Quita el objeto de clase. Este método solo está disponible para EXE.
CComModule::Term
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
void Term() throw();
Comentarios
Libera todos los miembros de datos.
CComModule::UnregisterClassHelper
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
ATL_DEPRECATED HRESULT UnregisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID);
Parámetros
clsid
[in] CLSID del objeto que se va a anular el registro.
lpszProgID
[in] ProgID asociado al objeto .
lpszVerIndProgID
[in] ProgID independiente de la versión asociado al objeto.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Quita el registro de clase estándar de un objeto del registro del sistema.
El método UpdateRegistryClass llama a UnregisterClassHelper
.
CComModule::UnregisterServer
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
HRESULT UnregisterServer(const CLSID* pCLSID = NULL) throw ();
inline HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID* pCLSID = NULL) throw ();
Parámetros
bUnRegTypeLib
Si es TRUE, también se anula el registro de la biblioteca de tipos.
pCLSID
Apunta al CLSID del objeto del que se va a anular el registro. Si es NULL (el valor predeterminado), se anulará el registro de todos los objetos del mapa de objetos.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Según el parámetro pCLSID, anula el registro de un único objeto de clase o de todos los objetos del mapa de objetos.
UnregisterServer
lo llamará automáticamente DLLUnregisterServer
para un archivo DLL o WinMain
para una ejecución de un archivo exe con la opción de línea de comandos /UnregServer
.
Consulte OBJECT_ENTRY_AUTO para obtener información sobre cómo agregar una entrada al mapa de objetos.
CComModule::UpdateRegistryClass
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
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
CLSID del objeto que se va a registrar o anular el registro.
lpszProgID
ProgID asociado al objeto.
lpszVerIndProgID
ProgID independiente de la versión asociado al objeto.
nDescID
Identificador del recurso de cadena para la descripción del objeto.
szDesc
Cadena que contiene la descripción del objeto.
dwFlags
Especifica el modelo de subprocesos que se va a escribir en el registro. Los valores posibles son THREADFLAGS_APARTMENT, THREADFLAGS_BOTH o AUTPRXFLAG.
bRegister
Indica si se debe registrar el objeto.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Si bRegister es TRUE, este método escribe el registro de clase estándar del objeto en el registro del sistema.
Si bRegister es FALSE, quita el registro del objeto.
Según el valor de bRegister, UpdateRegistryClass
llama a RegisterClassHelper o a UnregisterClassHelper.
Al especificar la macro DECLARE_REGISTRY, se invocará automáticamente a UpdateRegistryClass
cuando se procese el mapa de objetos.
CComModule::UpdateRegistryFromResourceD
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
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
[in] Un nombre de recurso.
nResID
[in] Un identificador de recurso.
bRegister
[in] Indica si el objeto debe registrarse.
pMapEntries
[in] Puntero al mapa de reemplazo que almacena los valores asociados a los parámetros reemplazables del script. ATL usa %MODULE%
automáticamente. Para usar parámetros reemplazables adicionales, consulte los comentarios para obtener más información. De lo contrario, use el valor predeterminado NULL.
Valor devuelto
Valor HRESULT estándar.
Comentarios
Ejecuta el script contenido en el recurso especificado por lpszRes o nResID.
Si bRegister es TRUE, este método registra el objeto en el registro del sistema; de lo contrario, anula el registro del objeto.
Al especificar la macro DECLARE_REGISTRY_RESOURCE o DECLARE_REGISTRY_RESOURCEID, UpdateRegistryFromResourceD
se invocará automáticamente cuando se procese el mapa de objetos.
Nota:
Para sustituir los valores de reemplazo en tiempo de ejecución, no especifique la macro DECLARE_REGISTRY_RESOURCE o DECLARE_REGISTRY_RESOURCEID. En su lugar, cree una matriz de estructuras _ATL_REGMAP_ENTRIES
, donde cada entrada contiene un marcador de posición variable emparejado con un valor para reemplazar el marcador de posición en tiempo de ejecución. A continuación, llame a UpdateRegistryFromResourceD
, pasando la matriz para el parámetro pMapEntries. Esto agrega todos los valores de reemplazo de las estructuras _ATL_REGMAP_ENTRIES
al mapa de reemplazo del registrador.
Nota:
Para vincular estáticamente al componente del registro ATL (registrador), consulte UpdateRegistryFromResourceS.
Para obtener más información sobre los parámetros reemplazables y el scripting, consulte el artículo Componente del Registro ATL (Registrador).
CComModule::UpdateRegistryFromResourceS
A partir de ATL 7.0, CComModule
está obsoleto: consulte Clases de módulo ATL para obtener más detalles.
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] Un nombre de recurso.
nResID
[in] Un identificador de recurso.
bRegister
[in] Indica si se debe registrar el script de recursos.
pMapEntries
[in] Puntero al mapa de reemplazo que almacena los valores asociados a los parámetros reemplazables del script. ATL usa %MODULE%
automáticamente. Para usar parámetros reemplazables adicionales, consulte los comentarios para obtener más información. De lo contrario, use el valor predeterminado NULL.
Valor devuelto
Valor HRESULT estándar.
Comentarios
De forma similar a UpdateRegistryFromResourceD, excepto UpdateRegistryFromResourceS
crea un vínculo estático al componente del registro ATL (registrador).
UpdateRegistryFromResourceS
se invocará automáticamente cuando se procese el mapa de objetos, siempre que agregue #define _ATL_STATIC_REGISTRY
a pch.h (stdafx.h en Visual Studio 2017 y versiones anteriores).
Nota:
Para sustituir los valores de reemplazo en tiempo de ejecución, no especifique la macro DECLARE_REGISTRY_RESOURCE o DECLARE_REGISTRY_RESOURCEID. En su lugar, cree una matriz de estructuras _ATL_REGMAP_ENTRIES
, donde cada entrada contiene un marcador de posición variable emparejado con un valor para reemplazar el marcador de posición en tiempo de ejecución. A continuación, llame a UpdateRegistryFromResourceS
, pasando la matriz para el parámetro pMapEntries. Esto agrega todos los valores de reemplazo de las estructuras _ATL_REGMAP_ENTRIES
al mapa de reemplazo del registrador.
Para obtener más información sobre los parámetros reemplazables y el scripting, consulte el artículo Componente del Registro ATL (Registrador).