Compartir a través de


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

_ATL_MODULE

CAtlModule

CAtlModuleT

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).

Consulte también

Información general sobre la clase