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

CObject

CCmdTarget

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 und afxRegFreeThreading 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