Freigeben über


IPersist::GetClassID-Methode (objidl.h)

Ruft den Klassenbezeichner (CLSID) des -Objekts ab.

Syntax

HRESULT GetClassID(
  [out] CLSID *pClassID
);

Parameter

[out] pClassID

Ein Zeiger auf den Speicherort, der die CLSID bei der Rückgabe empfängt. Die CLSID ist ein GUID (Globally Unique Identifier) der eindeutig eine Objektklasse darstellt, die den Code definiert, der die Daten des Objekts bearbeiten kann.

Rückgabewert

Wenn die Methode erfolgreich ist, wird der Rückgabewert S_OK. Andernfalls ist es E_FAIL.

Hinweise

Die GetClassID-Methode ruft den Klassenbezeichner (CLSID) für ein Objekt ab, das in späteren Vorgängen verwendet wird, um objektspezifischen Code in den Kontext des Aufrufers zu laden.

Hinweise für Anrufer

Eine Containeranwendung kann diese Methode aufrufen, um die ursprüngliche CLSID eines Objekts abzurufen, das als eine andere Klasse behandelt wird. Ein solcher Aufruf wäre erforderlich, wenn ein Benutzer einen Bearbeitungsvorgang ausgeführt hat, bei dem das Objekt gespeichert werden muss. Wenn der Container ihn mit der treat-as-CLSID speichern würde, könnte die ursprüngliche Anwendung das Objekt nicht mehr bearbeiten. In der Regel ruft der Container in diesem Fall die OleSave-Hilfsfunktion auf, die alle erforderlichen Schritte ausführt. Aus diesem Grund müssen die meisten Containeranwendungen diese Methode nicht direkt aufrufen.

Die Ausnahme wäre ein Container, der einen Objekthandler für bestimmte Objekte bereitstellt. Insbesondere sollte eine Containeranwendung die CLSID eines Objekts nicht abrufen und dann verwenden, um klassenspezifische Informationen aus der Registrierung abzurufen. Stattdessen sollte der Container IOleObject - und IDataObject-Schnittstellen verwenden, um solche klassenspezifischen Informationen direkt aus dem Objekt abzurufen.

Hinweise für Implementierer

In der Regel stellen Implementierungen dieser Methode einfach eine konstante CLSID für ein Objekt bereit. Wenn der TreatAs-Registrierungsschlüssel des Objekts jedoch von einer Anwendung festgelegt wurde, die Emulation unterstützt (und daher das Objekt als eine andere Klasse behandelt), muss ein Aufruf von GetClassID die im TreatAs-Schlüssel angegebene CLSID bereitstellen. Weitere Informationen zur Emulation finden Sie unter CoTreatAsClass.

Wenn sich ein Objekt im Ausführungszustand befindet, ruft der Standardhandler eine Implementierung von GetClassID auf, die den Aufruf an die -Implementierung im -Objekt delegiert. Wenn das Objekt nicht ausgeführt wird, ruft der Standardhandler stattdessen die ReadClassStg-Funktion auf, um die CLSID zu lesen, die im Speicher des Objekts gespeichert ist.

Wenn Sie einen benutzerdefinierten Objekthandler für Ihr Objekt schreiben, können Sie diese Methode einfach an die Standardhandlerimplementierung delegieren (siehe OleCreateDefaultHandler).

URL-Moniker-Hinweise

Diese Methode gibt CLSID_StdURLMoniker zurück.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile objidl.h

Weitere Informationen

IBaseFilter

Ipersist

IPersistFolder