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