Klassenfabriken und Lizenzierung

Zum Erstellen einer Instanz Ihres OLE-Steuerelements ruft eine Containeranwendung eine Memberfunktion der Klassenfactory des Steuerelements auf. Da ihr Steuerelement ein tatsächliches OLE-Objekt ist, ist die Klassenfactory für das Erstellen von Instanzen Ihres Steuerelements verantwortlich. Jede OLE-Steuerelementklasse muss über eine Klassenfactory verfügen.

Ein weiteres wichtiges Feature von OLE-Steuerelementen ist die Möglichkeit, eine Lizenz zu erzwingen. Mit ControlWizard können Sie die Lizenzierung während der Erstellung Ihres Steuerungsprojekts integrieren. Weitere Informationen zur Steuerelementlizenzierung finden Sie im Artikel ActiveX-Steuerelemente: Lizenzierung eines ActiveX-Steuerelements.

In der folgenden Tabelle sind mehrere Makros und Funktionen aufgeführt, die zum Deklarieren und Implementieren der Klassenfactory Ihres Steuerelements und zur Lizenz ihres Steuerelements verwendet werden.

Klassenfabriken und Lizenzierung

Makro oder Funktion Beschreibung
DECLARE_OLECREATE_EX Deklariert die Klassenfactory für ein OLE-Steuerelement oder eine Eigenschaftenseite.
IMPLEMENT_OLECREATE_EX Implementiert die Funktion des GetClassID Steuerelements und deklariert eine Instanz der Klassenfactory.
BEGIN_OLEFACTORY Beginnt die Deklaration aller Lizenzierungsfunktionen.
END_OLEFACTORY Beendet die Deklaration aller Lizenzierungsfunktionen.
AfxVerifyLicFile Überprüft, ob ein Steuerelement für die Verwendung auf einem bestimmten Computer lizenziert ist.

DECLARE_OLECREATE_EX

Deklariert eine Klassenfactory und die GetClassID Memberfunktion Ihrer Steuerelementklasse.

DECLARE_OLECREATE_EX(class_name)

Parameter

class_name
Der Name der Steuerelementklasse.

Hinweise

Verwenden Sie dieses Makro in der Steuerelementklassenkopfdatei für ein Steuerelement, das keine Lizenzierung unterstützt.

Beachten Sie, dass dieses Makro denselben Zweck wie das folgende Codebeispiel erfüllt:

BEGIN_OLEFACTORY(CMyAxCtrl)
END_OLEFACTORY(CMyAxCtrl)

Anforderungen

Header afxctl.h

IMPLEMENT_OLECREATE_EX

Implementiert die Klassenfactory des Steuerelements und die GetClassID Memberfunktion Ihrer Steuerelementklasse.

IMPLEMENT_OLECREATE_EX(
   class_name,
    external_name,
    l,
    w1,
    w2,
    b1,
    b2,
    b3,
    b4,
    b5,
    b6,
    b7,
    b8)

Parameter

class_name
Der Name der Steuerelementeigenschaftenseitenklasse.

external_name
Der Objektname, der anwendungen verfügbar gemacht wird.

l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8
Komponenten der Klasse CLSID. Weitere Informationen zu diesen Parametern finden Sie in den Hinweisen für IMPLEMENT_OLECREATE.

Hinweise

Dieses Makro muss in der Implementierungsdatei für jede Steuerelementklasse angezeigt werden, die das DECLARE_OLECREATE_EX Makro oder die BEGIN_OLEFACTORY Makros verwendet END_OLEFACTORY . Der externe Name ist der Bezeichner des OLE-Steuerelements, das für andere Anwendungen verfügbar gemacht wird. Container verwenden diesen Namen, um ein Objekt dieser Steuerelementklasse anzufordern.

Anforderungen

Header afxctl.h

BEGIN_OLEFACTORY

Beginnt die Deklaration Ihrer Klassenfactory in der Headerdatei Der Steuerelementklasse.

BEGIN_OLEFACTORY(class_name)

Parameter

class_name
Gibt den Namen der Steuerelementklasse an, deren Klassenfactory dies ist.

Hinweise

Deklarationen von Klassenfactory-Lizenzierungsfunktionen sollten unmittelbar nach BEGIN_OLEFACTORY.

Anforderungen

Header afxctl.h

END_OLEFACTORY

Beendet die Deklaration der Klassenfactory Ihres Steuerelements.

END_OLEFACTORY(class_name)

Parameter

class_name
Der Name der Steuerelementklasse, deren Klassenfactory dies ist.

Anforderungen

Header afxctl.h

AfxVerifyLicFile

Rufen Sie diese Funktion auf, um zu überprüfen, ob die von dem OLE-Steuerelement benannte pszLicFileName Lizenzdatei gültig ist.

BOOL AFXAPI AfxVerifyLicFile(
    HINSTANCE  hInstance,
    LPCTSTR  pszLicFileName,
    LPOLESTR  pszLicFileContents,
    UINT cch = -1);

Parameter

hInstance
Das Instanzhandle der DLL, die dem lizenzierten Steuerelement zugeordnet ist.

pszLicFileName
Verweist auf eine mit Null beendete Zeichenfolge, die den Lizenzdateinamen enthält.

pszLicFileContents
Verweist auf eine Bytesequenz, die mit der Sequenz übereinstimmen muss, die am Anfang der Lizenzdatei gefunden wurde.

cch
Anzahl der Zeichen in pszLicFileContents.

Rückgabewert

Nonzero, wenn die Lizenzdatei vorhanden ist und mit der Zeichensequenz in pszLicFileContents beginnt; andernfalls 0.

Hinweise

Wenn cch -1 ist, verwendet diese Funktion Folgendes:

_tcslen(pszLicFileContents);

Anforderungen

Header afxctl.h

Siehe auch

Makros und Globalen