Freigeben über


CBaseObject-Klasse

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die CBaseObject-Klasse ist eine abstrakte Klasse zum Implementieren von DirectShow-Objekten. Um COM-Objekte (Component Object Model) zu implementieren, verwenden Sie die CUnknown-Klasse , die von CBaseObject abgeleitet wird.

Klassenmethoden BESCHREIBUNG
CBaseObject Konstruktormethode.
~CBaseObject Destruktormethode.
ObjectsActive Ruft die Anzahl der aktiven Objekte ab.

Bemerkungen

Die meisten DirectShow-Basisklassen leiten von CBaseObject ab. Diese Klasse bietet Unterstützung beim Debuggen, indem die Anzahl aller DirectShow-Objekte während der Laufzeit aktiv bleibt. Die Objektanzahl wird in einer klassen statischen Membervariablen gespeichert:

class CBaseObject
{
private:
    static LONG m_cObjects;  // Total number of objects active. 
/* ... */
};

In Debugbuilds gibt die DLL an, wenn sie entladen wird, während die Objektanzahl größer als 0 ist. Dies erleichtert das Auffinden von Lecks, die durch Probleme mit der Referenzzählung verursacht werden.

Der CBaseObject-Konstruktor akzeptiert ein Argument, einen Debugnamen für das Objekt. Dieser Name wird in einer globalen Tabelle in der DLL gespeichert. Die DbgDumpObjectRegister-Funktion formatiert eine Liste der in der DLL aktiven Objekte und sendet sie an die Debugausgabe.

Anforderungen

Anforderung Wert
Header
Combase.h (Streams.h einschließen)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

DirectShow-Basisklassen