Clase COleObjectFactory

Implementa el generador de clases OLE, que crea objetos OLE tales como servidores, objetos de automatización y documentos.

Sintaxis

class COleObjectFactory : public CCmdTarget

Miembros

Constructores públicos

Nombre Descripción
COleObjectFactory::COleObjectFactory Construye un objeto COleObjectFactory.

Métodos públicos

Nombre Descripción
COleObjectFactory::GetClassID Devuelve el id. de clase OLE de los objetos que crea este generador.
COleObjectFactory::IsLicenseValid Determina si la licencia del control es válida.
COleObjectFactory::IsRegistered Indica si el generador de objetos está registrado con los archivos DLL del sistema OLE.
COleObjectFactory::Register Registra este generador de objetos con los archivos DLL del sistema OLE.
COleObjectFactory::RegisterAll Registra todos los generadores de objetos de la aplicación con archivos DLL del sistema OLE.
COleObjectFactory::Revoke Revoca el registro de este generador de objetos con los archivos DLL del sistema OLE.
COleObjectFactory::RevokeAll Revoca los registros de los generadores de objetos de una aplicación con los archivos DLL del sistema OLE.
COleObjectFactory::UnregisterAll Anula el registro de todos los generadores de objetos de una aplicación.
COleObjectFactory::UpdateRegistry Registra este generador de objetos con el registro del sistema OLE.
COleObjectFactory::UpdateRegistryAll Registra todos los generadores de objetos de la aplicación con el registro del sistema OLE.

Métodos protegidos

Nombre Descripción
COleObjectFactory::GetLicenseKey Solicita una clave única del archivo DLL del control.
COleObjectFactory::OnCreateObject Lo llama el marco para crear un objeto del tipo de este generador.
COleObjectFactory::VerifyLicenseKey Comprueba que la clave insertada en el control coincide con la insertada en el contenedor.
COleObjectFactory::VerifyUserLicense Comprueba que el control tiene licencia para su uso en tiempo de diseño.

Comentarios

La clase COleObjectFactory tiene funciones miembro para realizar las siguientes funciones:

  • Administrar el registro de objetos.

  • Actualizar el registro del sistema OLE, así como el registro en tiempo de ejecución que notifica a OLE que los objetos están en ejecución y listos para recibir mensajes.

  • Aplicar licencias limitando el uso del control a los desarrolladores con licencia en tiempo de diseño y a las aplicaciones con licencia en tiempo de ejecución.

  • Registrar generadores de objetos de control con el registro del sistema OLE.

Para obtener más información sobre la creación de objetos, vea los artículos Objetos de datos y orígenes de datos (OLE) y Objetos de datos y orígenes de datos: creación y destrucción. Para obtener más información sobre el registro, vea el artículo Registro.

Jerarquía de herencia

CObject

CCmdTarget

COleObjectFactory

Requisitos

Encabezado: afxdisp.h

COleObjectFactory::COleObjectFactory

Construye un objeto COleObjectFactory, lo inicializa como un generador de objetos no registrado y lo agrega a la lista de generadores.

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    LPCTSTR lpszProgID);

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    int nFlags,
    LPCTSTR lpszProgID);

Parámetros

clsid
Referencia al id. de clase OLE que representa este generador de objetos.

pRuntimeClass
Puntero a la clase en tiempo de ejecución de los objetos de C++ que este generador puede crear.

bMultiInstance
Indica si una única instancia de la aplicación puede admitir varias instancias. Si es TRUE, se inician varias instancias de la aplicación para cada solicitud para crear un objeto.

nFlags
Contiene una o varias de las marcas siguientes:

  • afxRegDefault Establece el modelo de subprocesos en ThreadingModel=Apartment.

  • afxRegInsertable Permite que el control aparezca en el cuadro de diálogo Insertar objeto para objetos OLE.

  • afxRegApartmentThreading Establece el modelo de subprocesos en el registro en ThreadingModel=Apartment.

  • afxRegFreeThreading Establece el modelo de subprocesos en el registro en ThreadingModel=Free.

    Puede combinar las dos marcas afxRegApartmentThreading y afxRegFreeThreading para establecer ThreadingModel=Both. Vea InprocServer32 en Windows SDK para obtener más información sobre el registro de modelos de subprocesos.

lpszProgID
Puntero a una cadena que contiene un identificador de programa verbal, como "Microsoft Excel".

Comentarios

Pero para usar el objeto, debe registrarlo.

Para más información, consulte Clave CLSID en Windows SDK.

COleObjectFactory::GetClassID

Devuelve una referencia al id. de clase OLE que representa este generador.

REFCLSID GetClassID() const;

Valor devuelto

Referencia al id. de clase OLE que representa este generador.

Comentarios

Para más información, consulte Clave CLSID en Windows SDK.

COleObjectFactory::GetLicenseKey

Solicita una clave de licencia única del archivo DLL del control y la almacena en el BSTR al que apunta pbstrKey.

virtual BOOL GetLicenseKey(
    DWORD dwReserved,
    BSTR* pbstrKey);

Parámetros

dwReserved
Reservado para uso futuro.

pbstrKey
Puntero a un BSTR que almacenará la clave de licencia.

Valor devuelto

Es distinto de cero si la cadena de clave de licencia no es NULL; de lo contrario, es 0.

Comentarios

La implementación predeterminada de esta función devuelve 0 y no almacena nada en el BSTR. Si usa ControlWizard de MFC ActiveX para crear el proyecto, ControlWizard proporcionará una invalidación que recupera la clave de licencia del control.

COleObjectFactory::IsLicenseValid

Determina si la licencia del control es válida.

BOOL IsLicenseValid();

Valor devuelto

TRUE si se ejecuta correctamente; de lo contrario, false.

COleObjectFactory::IsRegistered

Devuelve un valor distinto de cero si el generador está registrado con los archivos DLL del sistema OLE.

virtual BOOL IsRegistered() const;

Valor devuelto

Es distinto de cero si el generador está registrado; de lo contrario, es 0.

COleObjectFactory::OnCreateObject

Lo llama el marco de trabajo para crear un objeto.

virtual CCmdTarget* OnCreateObject();

Valor devuelto

Un puntero al objeto creado. Puede generar una excepción de memoria si se produce un error.

Comentarios

Invalide esta función para crear el objeto a partir de un valor distinto del objeto CRuntimeClass pasado al constructor.

COleObjectFactory::Register

Registra este generador de objetos con los archivos DLL del sistema OLE.

virtual BOOL Register();

Valor devuelto

Es distinto de cero si el generador se ha registrado correctamente; de lo contrario, es 0.

Comentarios

Normalmente, CWinApp::InitInstance llama a esta función cuando se inicia la aplicación.

COleObjectFactory::RegisterAll

Registra todos los generadores de objetos de la aplicación con los archivos DLL del sistema OLE.

static BOOL PASCAL RegisterAll();

Valor devuelto

Es distinto de cero si los generadores se registran correctamente; de lo contrario, es 0.

Comentarios

Normalmente, CWinApp::InitInstance llama a esta función cuando se inicia la aplicación.

COleObjectFactory::Revoke

Revoca el registro de este generador de objetos con los archivos DLL del sistema OLE.

void Revoke();

Comentarios

El marco llama a esta función automáticamente antes de que finalice la aplicación. En caso necesario, se le llama desde una invalidación de CWinApp::ExitInstance.

COleObjectFactory::RevokeAll

Revoca todos los registros de los generadores de objetos de la aplicación con los archivos DLL del sistema OLE.

static void PASCAL RevokeAll();

Comentarios

El marco llama a esta función automáticamente antes de que finalice la aplicación. En caso necesario, se le llama desde una invalidación de CWinApp::ExitInstance.

COleObjectFactory::UnregisterAll

Anula el registro de todos los generadores de objetos de una aplicación.

static BOOL PASCAL UnregisterAll();

Valor devuelto

TRUE si es correcto; en caso contrario, FALSE.

COleObjectFactory::UpdateRegistry

Registra todos los generadores de objetos de la aplicación con el registro del sistema OLE.

void UpdateRegistry(LPCTSTR lpszProgID = NULL);
virtual BOOL UpdateRegistry(BOOL bRegister);

Parámetros

lpszProgID
Puntero a una cadena que contiene el identificador de programa legible por el usuario, como "Excel.Document.5".

bRegister
Determina si se va a registrar el generador de objetos de la clase de control.

Comentarios

A continuación se describen breves análisis de las dos formas de esta función:

  • UpdateRegistry( lpszProgID ) Registra este generador de objetos con el registro del sistema OLE. Normalmente, CWinApp::InitInstance llama a esta función cuando se inicia la aplicación.

  • UpdateRegistry( bRegister ) Esta forma de la función se puede invalidar. Si bRegister es TRUE, esta función registra la clase de control con el registro del sistema. De lo contrario, anula el registro de la clase.

    Si usa ControlWizard de MFC ActiveX para crear el proyecto, ControlWizard proporciona una invalidación a esta función virtual pura.

COleObjectFactory::UpdateRegistryAll

Registra todos los generadores de objetos de la aplicación con el registro del sistema OLE.

static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);

Parámetros

bRegister
Determina si se va a registrar el generador de objetos de la clase de control.

Valor devuelto

Es distinto de cero si los generadores se actualizan correctamente; de lo contrario, es 0.

Comentarios

Normalmente, CWinApp::InitInstance llama a esta función cuando se inicia la aplicación.

COleObjectFactory::VerifyLicenseKey

Comprueba que el contenedor tiene licencia para usar el control OLE.

virtual BOOL VerifyLicenseKey(BSTR bstrKey);

Parámetros

bstrKey
BSTR que almacena la versión del contenedor de la cadena de licencia.

Valor devuelto

Es distinto de cero si la licencia en tiempo de ejecución es válida; de lo contrario, es 0.

Comentarios

La versión predeterminada llama a GetLicenseKey para obtener una copia de la cadena de licencia del control y la compara con la cadena en bstrKey. Si las dos cadenas coinciden, la función devuelve un valor distinto de cero; de lo contrario, devuelve 0.

Puede invalidar esta función para proporcionar una comprobación personalizada de la licencia.

La función VerifyUserLicense comprueba la licencia en tiempo de diseño.

COleObjectFactory::VerifyUserLicense

Comprueba la licencia en tiempo de diseño para el control OLE.

virtual BOOL VerifyUserLicense();

Valor devuelto

Es distinto de cero si la licencia en tiempo de diseño es válida; de lo contrario, es 0.

Consulte también

CCmdTarget (clase)
Gráfico de jerarquías
COleTemplateServer (clase)