COleObjectFactory-Klasse
Implementiert die OLE-Klassenfactory, die OLE-Objekte wie Server, Automatisierungsobjekte und Dokumente erstellt.
Syntax
class COleObjectFactory : public CCmdTarget
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
COleObjectFactory::COleObjectFactory | Erstellt ein COleObjectFactory -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
COleObjectFactory::GetClassID | Gibt die OLE-Klassen-ID der Objekte zurück, die von dieser Factory erstellt werden. |
COleObjectFactory::IsLicenseValid | Bestimmt, ob die Lizenz des Steuerelements gültig ist. |
COleObjectFactory::IsRegistered | Gibt an, ob die Objektfactory bei den OLE-System-DLLs registriert ist. |
COleObjectFactory::Register | Registriert diese Objektfactory mit den OLE-System-DLLs. |
COleObjectFactory::RegisterAll | Registriert alle Objektfabriken der Anwendung mit OLE-System-DLLs. |
COleObjectFactory::Revoke | Widerruft die Registrierung dieser Objektfactory bei den OLE-System-DLLs. |
COleObjectFactory::RevokeAll | Widerruft die Registrierungen der Objektfabriken einer Anwendung mit den OLE-System-DLLs. |
COleObjectFactory::UnregisterAll | Hebt die Registrierung aller Objektfabriken einer Anwendung auf. |
COleObjectFactory::UpdateRegistry | Registriert diese Objektfactory bei der OLE-Systemregistrierung. |
COleObjectFactory::UpdateRegistryAll | Registriert alle Objektfabriken der Anwendung bei der OLE-Systemregistrierung. |
Geschützte Methoden
Name | Beschreibung |
---|---|
COleObjectFactory::GetLicenseKey | Fordert einen eindeutigen Schlüssel aus der DLL des Steuerelements an. |
COleObjectFactory::OnCreateObject | Vom Framework aufgerufen, um ein neues Objekt des Typs dieser Factory zu erstellen. |
COleObjectFactory::VerifyLicenseKey | Überprüft, ob der in das Steuerelement eingebettete Schlüssel mit dem im Container eingebetteten Schlüssel übereinstimmt. |
COleObjectFactory::VerifyUserLicense | Überprüft, ob das Steuerelement für die Entwurfszeitverwendung lizenziert ist. |
Hinweise
Die COleObjectFactory
Klasse verfügt über Memberfunktionen zum Ausführen der folgenden Funktionen:
Verwalten der Registrierung von Objekten.
Aktualisieren des OLE-Systemregisters sowie die Laufzeitregistrierung, die OLE informiert, dass Objekte ausgeführt werden und bereit zum Empfangen von Nachrichten sind.
Erzwingen der Lizenzierung durch Beschränken der Verwendung des Steuerelements auf lizenzierte Entwickler zur Entwurfszeit und auf lizenzierte Anwendungen zur Laufzeit.
Registrieren von Steuerelementobjektfabriken bei der OLE-Systemregistrierung.
Weitere Informationen zur Objekterstellung finden Sie in den Artikeln Data Objects and Data Sources (OLE) und Data Objects and Data Sources: Creation and Destruction. Weitere Informationen zur Registrierung finden Sie im Artikel Registrierung.
Vererbungshierarchie
COleObjectFactory
Anforderungen
Header: afxdisp.h
COleObjectFactory::COleObjectFactory
Erstellt ein COleObjectFactory
Objekt, initialisiert es als nicht registrierte Objektfactory und fügt es der Liste der Fabriken hinzu.
COleObjectFactory(
REFCLSID clsid,
CRuntimeClass* pRuntimeClass,
BOOL bMultiInstance,
LPCTSTR lpszProgID);
COleObjectFactory(
REFCLSID clsid,
CRuntimeClass* pRuntimeClass,
BOOL bMultiInstance,
int nFlags,
LPCTSTR lpszProgID);
Parameter
clsid
Verweis auf die OLE-Klassen-ID, die diese Objektfactory darstellt.
pRuntimeClass
Zeiger auf die Laufzeitklasse der C++-Objekte, die diese Factory erstellen kann.
bMultiInstance
Gibt an, ob eine einzelne Instanz der Anwendung mehrere Instanziierungen unterstützen kann. Wenn WAHR, werden für jede Anforderung mehrere Instanzen der Anwendung gestartet, um ein Objekt zu erstellen.
nFlags
Enthält ein oder mehrere der folgenden Flags:
afxRegDefault
Legt das Threadingmodell auf ThreadingModel=Apartment fest.afxRegInsertable
Ermöglicht das Anzeigen des Steuerelements im Dialogfeld "Objekt einfügen" für OLE-Objekte.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 beiden Flags
afxRegApartmentThreading
kombinieren undafxRegFreeThreading
ThreadingModel=Both festlegen. Weitere Informationen zur Threadingmodellregistrierung finden Sie unter InprocServer32 im Windows SDK.
lpszProgID
Zeigen Sie auf eine Zeichenfolge, die einen verbalen Programmbezeichner enthält, z. B. "Microsoft Excel".
Hinweise
Um das Objekt zu verwenden, müssen Sie es jedoch registrieren.
Weitere Informationen finden Sie unter CLSID-Schlüssel im Windows SDK.
COleObjectFactory::GetClassID
Gibt einen Verweis auf die OLE-Klassen-ID zurück, die diese Factory darstellt.
REFCLSID GetClassID() const;
Rückgabewert
Verweis auf die OLE-Klassen-ID, die diese Factory darstellt.
Hinweise
Weitere Informationen finden Sie unter CLSID-Schlüssel im Windows SDK.
COleObjectFactory::GetLicenseKey
Fordert einen eindeutigen Lizenzschlüssel aus der DLL des Steuerelements an und speichert ihn im BSTR, auf den pbstrKey verweist.
virtual BOOL GetLicenseKey(
DWORD dwReserved,
BSTR* pbstrKey);
Parameter
dwReserved
Für die zukünftige Verwendung reserviert.
pbstrKey
Zeiger auf einen BSTR, der den Lizenzschlüssel speichert.
Rückgabewert
Nonzero, wenn die Lizenzschlüsselzeichenfolge nicht NULL ist; andernfalls 0.
Hinweise
Die Standardimplementierung dieser Funktion gibt 0 zurück und speichert nichts im BSTR. Wenn Sie MFC ActiveX ControlWizard zum Erstellen Ihres Projekts verwenden, stellt ControlWizard eine Außerkraftsetzung bereit, die den Lizenzschlüssel des Steuerelements abruft.
COleObjectFactory::IsLicenseValid
Bestimmt, ob die Lizenz des Steuerelements gültig ist.
BOOL IsLicenseValid();
Rückgabewert
TRUE, wenn erfolgreich; andernfalls "false".
COleObjectFactory::IsRegistered
Gibt einen Wert ungleich Null zurück, wenn die Factory bei den OLE-System-DLLs registriert ist.
virtual BOOL IsRegistered() const;
Rückgabewert
Nonzero, wenn die Fabrik registriert ist; andernfalls 0.
COleObjectFactory::OnCreateObject
Vom Framework aufgerufen, um ein neues Objekt zu erstellen.
virtual CCmdTarget* OnCreateObject();
Rückgabewert
Ein Zeiger auf das erstellte Objekt. Eine Speicher ausnahme kann ausgelöst werden, wenn ein Fehler auftritt.
Hinweise
Überschreiben Sie diese Funktion, um das Objekt aus einem anderen Objekt als der an den Konstruktor übergebenen CRuntimeClass zu erstellen.
COleObjectFactory::Register
Registriert diese Objektfactory mit den OLE-System-DLLs.
virtual BOOL Register();
Rückgabewert
Nonzero, wenn die Fabrik erfolgreich registriert ist; andernfalls 0.
Hinweise
Diese Funktion wird in der Regel von CWinApp::InitInstance aufgerufen, wenn die Anwendung gestartet wird.
COleObjectFactory::RegisterAll
Registriert alle Objektfabriken der Anwendung mit den OLE-System-DLLs.
static BOOL PASCAL RegisterAll();
Rückgabewert
Nonzero, wenn die Fabriken erfolgreich registriert werden; andernfalls 0.
Hinweise
Diese Funktion wird in der Regel von CWinApp::InitInstance aufgerufen, wenn die Anwendung gestartet wird.
COleObjectFactory::Revoke
Widerruft die Registrierung dieser Objektfactory bei den OLE-System-DLLs.
void Revoke();
Hinweise
Das Framework ruft diese Funktion automatisch auf, bevor die Anwendung beendet wird. Rufen Sie es bei Bedarf aus einer Außerkraftsetzung von CWinApp::ExitInstance auf.
COleObjectFactory::RevokeAll
Widerruft alle Objektfabriken der Anwendung bei den OLE-System-DLLs.
static void PASCAL RevokeAll();
Hinweise
Das Framework ruft diese Funktion automatisch auf, bevor die Anwendung beendet wird. Rufen Sie es bei Bedarf aus einer Außerkraftsetzung von CWinApp::ExitInstance auf.
COleObjectFactory::UnregisterAll
Hebt die Registrierung aller Objektfabriken einer Anwendung auf.
static BOOL PASCAL UnregisterAll();
Rückgabewert
TRUE, wenn erfolgreich, andernfalls FALSE.
COleObjectFactory::UpdateRegistry
Registriert alle Objektfabriken der Anwendung bei der OLE-Systemregistrierung.
void UpdateRegistry(LPCTSTR lpszProgID = NULL);
virtual BOOL UpdateRegistry(BOOL bRegister);
Parameter
lpszProgID
Zeigen Sie auf eine Zeichenfolge, die den lesbaren Programmbezeichner enthält, z. B. "Excel.Document.5".
bRegister
Bestimmt, ob die Objektfactory der Steuerelementklasse registriert werden soll.
Hinweise
Kurze Diskussionen über die beiden Formen für diese Funktion folgen:
UpdateRegistry(
lpszProgID
) Registriert diese Objektfactory mit der OLE-Systemregistrierung. Diese Funktion wird in der Regel von CWinApp::InitInstance aufgerufen, wenn die Anwendung gestartet wird.UpdateRegistry(
bRegister
) Diese Form der Funktion kann überschrieben werden. Wenn bRegister WAHR ist, registriert diese Funktion die Steuerelementklasse bei der Systemregistrierung. Andernfalls wird die Registrierung der Klasse aufgehoben.Wenn Sie MFC ActiveX ControlWizard zum Erstellen Ihres Projekts verwenden, stellt ControlWizard eine Außerkraftsetzung für diese reine virtuelle Funktion bereit.
COleObjectFactory::UpdateRegistryAll
Registriert alle Objektfabriken der Anwendung bei der OLE-Systemregistrierung.
static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);
Parameter
bRegister
Bestimmt, ob die Objektfactory der Steuerelementklasse registriert werden soll.
Rückgabewert
Nonzero, wenn die Fabriken erfolgreich aktualisiert werden; andernfalls 0.
Hinweise
Diese Funktion wird in der Regel von CWinApp::InitInstance aufgerufen, wenn die Anwendung gestartet wird.
COleObjectFactory::VerifyLicenseKey
Überprüft, ob der Container für die Verwendung des OLE-Steuerelements lizenziert ist.
virtual BOOL VerifyLicenseKey(BSTR bstrKey);
Parameter
bstrKey
Ein BSTR, der die Version des Containers der Lizenzzeichenfolge speichert.
Rückgabewert
Nonzero, wenn die Laufzeitlizenz gültig ist; andernfalls 0.
Hinweise
Die Standardversion ruft GetLicenseKey auf, um eine Kopie der Lizenzzeichenfolge des Steuerelements abzurufen und sie mit der Zeichenfolge in bstrKey zu vergleichen. Wenn die beiden Zeichenfolgen übereinstimmen, gibt die Funktion einen Wert ungleich Null zurück. andernfalls wird 0 zurückgegeben.
Sie können diese Funktion außer Kraft setzen, um eine angepasste Überprüfung der Lizenz bereitzustellen.
Die Funktion VerifyUserLicense überprüft die Entwurfszeitlizenz.
COleObjectFactory::VerifyUserLicense
Überprüft die Entwurfszeitlizenz für das OLE-Steuerelement.
virtual BOOL VerifyUserLicense();
Rückgabewert
Nonzero, wenn die Entwurfszeitlizenz gültig ist; andernfalls 0.
Siehe auch
CCmdTarget-Klasse
Hierarchiediagramm
COleTemplateServer-Klasse