AfxOleRegisterControlClass

Registriert die Steuerelementklasse mit der Windows-Registrierungsdatenbank.

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

Parameter

  • hInstance
    Das Instanzenhandle des Moduls zugeordnete der Steuerelementklasse.

  • clsid
    Die eindeutige Klassen-ID des Steuerelements.

  • pszProgID
    Die eindeutige Programm-ID des Steuerelements.

  • idTypeName
    Die Ressourcen-ID der Zeichenfolge, die einen für den Benutzer lesbare Typnamen für das Steuerelement enthält.

  • idBitmap
    Die Ressourcen-ID der Bitmap verwendet, um das OLE-Steuerelement in einer Symbolleiste oder Palette darstellt.

  • nRegFlags
    Enthält eine oder mehrere der folgenden Flags:

    • afxRegInsertable ermöglicht es dem Steuerelement, um im EINFG-Objektdialogfeld für OLE-Objekte angezeigt.

    • afxRegApartmentThreading Legt das Threadingmodell in der Registrierung auf ThreadingModel=Apartment fest.

    • afxRegFreeThreading Legt das Threadingmodell in der Registrierung auf ThreadingModel=Free fest.

      Sie können die zwei Flags afxRegApartmentThreading und afxRegFreeThreading kombinieren, um ThreadingModel=Both festzulegen. Siehe InprocServer32 in Windows SDK zu Informationen über Threadingmodellregistrierung.

    Hinweis

    In MFC-Versionen vor MFC 4.2, konnte der int nRegFlags-Parameter ein BOOL-Parameter, bInsertable, der zulässigen oder ungeeignet den vom EINFG-Objektdialogfeld einzufügende Steuerelement.

  • dwMiscStatus
    Enthält eine oder mehrere der folgenden Statusflags (für eine Beschreibung der Flags, siehe OLEMISC-Enumeration in 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
    Die eindeutige ID der Steuerelementklasse.

  • wVerMajor
    Die Hauptversionsnummer der Steuerelementklasse.

  • wVerMinor
    Die Nebenversionsnummer der Steuerelementklasse.

Rückgabewert

Wert ungleich 0 (null), wenn die Steuerelementklasse registriert wurde; 0 andernfalls.

Hinweise

Dies ermöglicht das durch Container verwendet werden, die, Steuerelement, das nicht OLE-Steuerelement sind. AfxOleRegisterControlClass aktualisiert die Registrierung mit dem Namen und den Speicherort des Steuerelements auf dem System und wird das Threadingmodell ab, das das Steuerelement in die Registrierung unterstützt. Weitere Informationen finden Sie unter Technischer Hinweis 64, Apartmentmodellthreading "in den OLE-Steuerelementen", und Übergreifend Prozesse und Threads in Windows SDK.

Beispiel

// 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);
}

Das obige Beispiel zeigt, wie AfxOleRegisterControlClass mit dem Flag für einfügbares und dem Flag für ORed Apartmentmodell zusammen aufgerufen wird, um den 6. Parameter zu erstellen:

            afxRegInsertable | afxRegApartmentThreading,

Das Steuerelement zeigt oben im EINFG-Objektdialogfeld für aktivierte Container, und es ist das Modell-bewusste Apartment. Modell-bewusste Steuerelemente für Apartments müssen sicherstellen, dass statische Klassendaten über Sperren geschützt werden, sodass, während ein Steuerelement in einem Apartment auf die statischen Daten zugreift, es nicht vom Planer deaktiviert wird, bevor er beendet wird, und eine andere Instanz derselben Klassenanfänge mithilfe derselben statischen Daten. Alle Zugriffe auf statische Daten werden durch Code des kritischen Abschnitts eingeschlossen.

Anforderungen

Header: <afxctl.h>

Siehe auch

Referenz

AfxOleRegisterPropertyPageClass

AfxOleRegisterTypeLib

AfxOleUnregisterClass

AfxOleUnregisterTypeLib

Konzepte

MFC-Makros, globale Funktionen und globale Variablen