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