AfxOleRegisterControlClass

BOOL AFXAPI AfxOleRegisterControlClass (HINSTANCE hInstance, REFCLSID Clsid, LPCTSTR PszProgID, UINT IdTypeName, UINT IdBitmap, Int nRegFlags, DWORD DwMiscStatus, REFGUID Tlid, Wort wVerMajorWort wVerMinor );

# include lt;afxctl.h>

Rückgabewert

Ungleich NULL, wenn die Control-Klasse registriert wurde; andernfalls 0.

Parameter

hInstance

Das Instanzenhandle des Moduls verbunden mit der Control-Klasse.

clsid

Die einzigartige Klassen-ID des Steuerelements.

pszProgID

Die einzigartige Programm-ID des Steuerelements.

idTypeName

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

idBitmap

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

nRegFlags

Enthält eine oder mehrere der folgenden flags:

Hinweis&Nbsp;  In MFC-Versionen vor MFC 4.2 wurde der Parameter Int nRegFlags ein BOOL -Parameter, bInsertable, die zulässig oder unzulässig das Steuerelement im Dialogfeld Objekt einfügen eingefügt werden soll.

dwMiscStatus

Enthält eine oder mehrere der folgenden Statusflags (für eine Beschreibung der Flags, siehe OLEMISC -Enumeration in der OLE Programmer's Reference):

tlid

Die eindeutige ID der Control-Klasse.

wVerMajor

Die Hauptversionsnummer der Control-Klasse.

wVerMinor

Die Nebenversionsnummer der Control-Klasse.

Bemerkungen

Registriert die Control-Klasse mit der Windows-Registrierungsdatenbank. Dadurch kann das Steuerelement von Containern verwendet werden, die OLE-Steuerelement bewusst sind. AfxOleRegisterControlClass aktualisiert die Registrierung mit Name und Speicherort auf dem System des Steuerelements und legt auch das threading-Modell, das das Steuerelement in der Registrierung unterstützt. Weitere Informationen finden Sie unter technischer Hinweis 64, "Modell-Apartment Threading in OLE Controls," und über Prozesse und Threads im Win32-SDK.

Beispiel

/ / Implementierung der Memberfunktion class COleObjectFactory::UpdateRegistry / /
BOOL CMyApartmentAwareCtrl::CApartmentCtrlFactory::UpdateRegistry(BOOL bRegister)
{
/ / TODO: Überprüfen Sie, ob das Steuerelement folgt / / Apartment-Modell threading Regeln.
/ / Weitere Informationen finden Sie in MFC Tech&Note 64.
/ / Wenn das Steuerelement nicht entspricht der / / Apartment-Modell Regeln, dann Sie müssen ändern der
/ / Code unten, Ändern des 6. Parameters aus
/ / afxRegInsertable ändern | AfxRegApartmentThreading zu
/ / afxRegInsertable ändern.

Nbsp; Wenn (bRegistrieren Sie sich)
      zurück AfxOleRegisterControlClass()
         AfxGetInstanceHandle(),
         M_clsid,
         M_lpszProgID,
         IDS_APARTMENT,
         IDB_APARTMENT,
         afxRegInsertable ändern | AfxRegApartmentThreading,
         _dwApartmentOleMisc,
         _tlid,
         _wVerMajor,
         _wVerMinor);
   anderes
      Rückkehr AfxOleUnregisterClass (M_clsid, M_lpszProgID)

Das obige Beispiel veranschaulicht, wie AfxOleRegisterControlClass mit dem Flag für einfügbar aufgerufen wird und das Flag für Apartmentmodell ORed zusammen, um den sechsten Parameter erstellen:

   afxRegInsertable ändern | afxRegApartmentThreading

Das Steuerelement wird im Dialogfeld Objekt einfügen für aktivierte Container angezeigt, und es werden Wohnung Modell-bewusst. Wohnung Modell-fähige Steuerelemente müssen diese statische Klasse, die Daten durch Sperren geschützt ist sicherstellen, so dass während ein Steuerelements in einem Appartement die statischen Daten zugreift, sie ist nicht durch den Scheduler deaktiviert bevor es fertig ist, und eine andere Instanz derselben Klasse beginnt mit denselben statischen Daten. Alle Zugriffe auf die statischen Daten werden von kritischen Abschnitt Code umgeben zu sein.

Siehe auch&Nbsp;AfxOleRegisterPropertyPageClass, AfxOleRegisterTypeLib, AfxOleUnregisterClass, AfxOleUnregisterTypeLib

Index