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
b3
b2
b1
, b4
, , b5
, , , b7
b6
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