Compartir a través de


AfxOleRegisterControlClass

Registra la clase control con la base de datos del registro de Windows.

BOOL AFXAPI AfxOleRegisterControlClass(
   HINSTANCE hInstance,
   REFCLSID clsid,
   LPCTSTR pszProgID,
   UINT idTypeName,
   UINT idBitmap,
   int nRegFlags,
   DWORD dwMiscStatus,
   REFGUID tlid,
   WORD wVerMajor,
   WORD wVerMinor 
);

Parámetros

  • hInstance
    Identificador de instancia del módulo asociado a la clase de control.

  • clsid
    Identificador único de la clase del control.

  • pszProgID
    Identificador único de El programa del control.

  • idTypeName
    El Id. de recurso de cadena que contiene un nombre de tipo usuario-legible para el control.

  • idBitmap
    El Id. de recurso de mapa de bits utilizado para representar el control OLE en una barra de herramientas o una tabla.

  • nRegFlags
    Contiene uno o más de los siguientes indicadores:

    • afxRegInsertable Permitir el control mostrado en el cuadro de diálogo de objeto INSERT para objetos OLE.

    • afxRegApartmentThreading establece el modelo de subprocesos del registro a ThreadingModel=Apartment.

    • afxRegFreeThreading establece el modelo de subprocesos del registro a ThreadingModel=Free.

      Puede combinar los dos marcadores afxRegApartmentThreading y afxRegFreeThreading para establecer ThreadingModel=Both.Vea InprocServer32 en Windows SDK para más información en el registro del modelo de subprocesos.

    [!NOTA]

    En las versiones de MFC antes de MFC 4,2, el parámetro de intnRegFlags es un parámetro de BOOL , bInsertable, que le permita o denegado el control que se va a insertar el cuadro de diálogo del objeto INSERT.

  • dwMiscStatus
    Contiene uno o más de los siguientes indicadores de estado (para obtener una descripción de los indicadores, vea la enumeración de OLEMISC en Windows SDK):

    • OLEMISC_RECOMPOSEONRESIZE

    • OLEMISC_ONLYICONIC

    • OLEMISC_INSERTNOTREPLACE

    • OLEMISC_STATIC

    • OLEMISC_CANTLINKINSIDE

    • OLEMISC_CANLINKBYOLE1

    • OLEMISC_ISLINKOBJECT

    • OLEMISC_INSIDEOUT

    • OLEMISC_ACTIVATEWHENVISIBLE

    • OLEMISC_RENDERINGISDEVICEINDEPENDENT

    • OLEMISC_INVISIBLEATRUNTIME

    • OLEMISC_ALWAYSRUN

    • OLEMISC_ACTSLIKEBUTTON

    • OLEMISC_ACTSLIKELABEL

    • OLEMISC_NOUIACTIVATE

    • OLEMISC_ALIGNABLE

    • OLEMISC_IMEMODE

    • OLEMISC_SIMPLEFRAME

    • OLEMISC_SETCLIENTSITEFIRST

  • tlid
    Identificador único de la clase del control.

  • wVerMajor
    El número de la clase de control.

  • wVerMinor
    El número de versión secundaria de la clase de control.

Valor devuelto

Distinto de cero si la clase control se registrada; si no 0.

Comentarios

Esto permite que el control usa contenedores que son controles activex monitores.AfxOleRegisterControlClass actualiza el registro con el nombre y la ubicación del control en el sistema y también establece el modelo de subprocesos que el control admite en el registro.Para obtener más información, vea nota técnica 64, “subprocesamiento de Apartamento-Modelo en controles OLE,” y Sobre los procesos y subprocesos en Windows SDK.

Ejemplo

// Member function implementation of class COleObjectFactory::UpdateRegistry 
//
BOOL CMyAxCtrl::CMyAxCtrlFactory::UpdateRegistry(BOOL bRegister)
{
    // TODO: Verify that your control follows apartment-model threading rules.
    // Refer to MFC TechNote 64 for more information.
    // If your control does not conform to the apartment-model rules, then
    // you must modify the code below, changing the 6th parameter from
    // afxRegInsertable | afxRegApartmentThreading to afxRegInsertable.

    if (bRegister)
        return AfxOleRegisterControlClass(
            AfxGetInstanceHandle(),
            m_clsid,
            m_lpszProgID,
            IDS_NVC_MFCAXCTL,
            IDB_NVC_MFCAXCTL,
            afxRegInsertable | afxRegApartmentThreading,
            _dwMyOleMisc,
            _tlid,
            _wVerMajor,
            _wVerMinor);
    else
        return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
}

El ejemplo anterior muestra cómo AfxOleRegisterControlClass es el indicador para insertable y el marcador para el modelo ORed de apartamento juntos para crear el sexto parámetro:

            afxRegInsertable | afxRegApartmentThreading,

El control aparecerá en el cuadro de diálogo de objeto INSERT para los contenedores habilitado, y se apartamento modelo-enterado.Los controles modelo-enterados de apartamento deben asegurarse de que la clase estática que los datos están protegidos por interbloqueo, de modo que aunque un control en un apartamento obtiene acceso a los datos estáticos, no está deshabilitada por el programador antes de que termine, y otra instancia de la misma clase comienza utilizando los mismos datos estáticos.Tener acceso a los datos estáticos se rodeado por código de sección crítico.

Requisitos

Header: <afxctl.h>

Vea también

Referencia

AfxOleRegisterPropertyPageClass

AfxOleRegisterTypeLib

AfxOleUnregisterClass

AfxOleUnregisterTypeLib

Conceptos

Macros y funciones globales de MFC