BOOL AFXAPI AfxOleRegisterControlClass (HINSTANCE hInstance, REFCLSID clsid, LPCTSTR pszProgID, UINT idTypeName, UINT idBitmap, int nRegFlags, DWORD dwMiscStatus, REFGUID tlid, WORD wVerMajor, palabra wVerMinor );
# include lt;afxctl.h>
Valor devuelto
Distinto de cero si se registró la clase de control; caso contrario 0.
Parámetros
hInstance
El identificador de instancia del módulo asociado a la clase de control.
clsid
El ID de clase exclusivo del control.
pszProgID
El ID del programa único de control.
idTypeName
El identificador de recurso de la cadena que contiene un nombre de tipo legible para el usuario para el control.
idBitmap
El identificador de recurso de mapa de bits utilizado para representar el control OLE en una barra de herramientas o paleta.
nRegFlags
Contiene uno o más de los siguientes indicadores:
&Notanbsp; En MFC versiones anteriores a la 4.2 de MFC, el parámetro denRegFlags intera un parámetro BOOL , bInsertable, que permite o no permite el control para ser insertados desde el cuadro de diálogo Insertar objeto .
dwMiscStatus
Contiene uno o más de los siguientes indicadores de Estado (para obtener una descripción de los indicadores, véase OLEMISC enumeración en la referencia del programador de OLE):
tlid
El identificador exclusivo de la clase del control.
wVerMajor
El número de versión principal de la clase del control.
wVerMinor
El número de versión menor de la clase del control.
Observaciones
Registra la clase de control con la base de datos del registro de Windows. Esto permite al control que utilizarán los contenedores que son consciente de control OLE. AfxOleRegisterControlClass actualiza el registro con el nombre y la ubicación en el sistema de control y también establece el modelo de subprocesamiento que admite el control en el registro. Para obtener más información, consulte 64 de nota técnica, "Modelo de apartamento Threading en controles OLE," y sobre procesos y subprocesos en el SDK de Win32.
Ejemplo
/ / Implementación de la función de miembro de clase COleObjectFactory::UpdateRegistry / /
BOOL CMyApartmentAwareCtrl::CApartmentCtrlFactory::UpdateRegistry(BOOL bRegister)
{
/ / TODO: compruebe que el control sigue / / modelo de apartamento threading reglas.
/ Véase nota 64 de MFC para obtener más información.
/ / Si el control no se ajustan a la / / reglas del apartamento modelo, entonces usted debe modificar el
/ / código a continuación, cambiar el parámetro 6 de
/ / afxRegInsertable | afxRegApartmentThreading a
/ / afxRegInsertable.
nbsp; Si (bRegister)
volver a AfxOleRegisterControlClass()
AfxGetInstanceHandle(),
m_clsid,
m_lpszProgID,
IDS_APARTME&NT,
IDB_APARTMENT,
afxRegInsertable | afxRegApartmentThreading,
_dwApartmentOleMisc,
_tlid,
_wVerMajor,
_wVerMinor);
otra cosa
volver a AfxOleUnregisterClass (m_clsid, m_lpszProgID)
El ejemplo anterior muestra cómo AfxOleRegisterControlClass se denomina con la bandera de insertable y la bandera para el modelo de apartamento ORed juntos para crear el sexto parámetro:
afxRegInsertable | afxRegApartmentThreading
El control se mostrará en el cuadro de diálogo Insertar objeto para contenedores habilitados, y será apartamento modelo consciente. Controles conscientes para el modelo de apartamento deben asegurarse de clase estática datos está protegidas por los bloqueos, por lo que mientras que un control en un apartamento es acceder a los datos estáticos, no es desactivado por el programador antes de que termine, y otra instancia de la misma clase comienza usando los mismos datos estáticos. Cualquier acceso a los datos estáticos estará rodeado por código de la sección crítica.
Vea tambié&nnbsp;AfxOleRegisterPropertyPageClass, AfxOleRegisterTypeLib, AfxOleUnregisterClass, AfxOleUnregisterTypeLib