System.Win.ComObj.TComObjectFactory.RegisterClassObject
Delphi
procedure RegisterClassObject;
C++
void __fastcall RegisterClassObject();
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
procedure function |
public | System.Win.ComObj.pas System.Win.ComObj.hpp |
System.Win.ComObj | TComObjectFactory |
Beschreibung
Registriert die mit dem Klassengenerator verbundene COM-Klasse.
RegisterClassObject registriert ein EXE-Klassenobjekt für OLE, damit andere Anwendungen eine Verbindung zu ihm herstellen können. EXE-Objektanwendungen sollten RegisterClassObject beim Start aufrufen. RegisterClassObject kann auch zur Registrierung interner Objekte für den Einsatz in derselben EXE-Anwendung bzw. einem von der EXE-Anwendung benutzten anderen Programm (z.B. einer DLL) eingesetzt werden.
Wenn RegisterClassObject fehlschlägt, wird eine EOleSysError-Exception ausgelöst. Ein Fehlercode weist auf die Ursache des Fehlers hin:
Wert | Bedeutung |
---|---|
E_INVALIDARG |
Mindestens ein Argument ist ungültig. |
E_OUTOFMEMORY |
Nicht genügend Speicher. |
E_UNEXPECTED |
Ein unerwarteter Fehler ist aufgetreten. |
CO_E_OBJISREG |
Die Klasse war bereits in der Klassenobjekttabelle registriert. |
RegisterClassObject kann nur von EXE-Objektanwendungen aufgerufen werden. Objektbehandlungsroutinen oder DLL-Objektanwendungen rufen diese Funktion nicht auf. Stattdessen implementieren und exportieren die Funktion DllGetClassObject.
Beim Start muss eine mehrfach eingesetzte EXE-Objektanwendung ein Klassenobjekt erzeugen (mit der Schnittstelle IClassFactory) und zur Registrierung des Klassenobjekts die Methode RegisterClassObject aufrufen. Objektanwendungen, die verschiedene Klassen unterstützen (z.B. unterschiedliche Arten von Objekten, die eingebettet werden können), müssen für jede Klasse ein eigenes Klassenobjekt zuweisen und registrieren.
Wenn für ein Klassenobjekt mehrere Registrierungen existieren, sind diese unabhängig voneinander und führen nicht zu einem Fehler. Jede nachfolgende Registrierung liefert einen eindeutigen Schlüssel.