Freigeben über


DECLARE_IUNKNOWN

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Das DECLARE_IUNKNOWN Makro deklariert die drei Methoden der Basisschnittstelle für eine neue Schnittstelle.

Syntax

#define DECLARE_IUNKNOWN                                        \
    STDMETHODIMP QueryInterface(REFIID riid, void **ppv) {      \
        return GetOwner()->QueryInterface(riid,ppv);            \
    };                                                          \
    STDMETHODIMP_(ULONG) AddRef() {                             \
        return GetOwner()->AddRef();                            \
    };                                                          \
    STDMETHODIMP_(ULONG) Release() {                            \
        return GetOwner()->Release();                           \
    };

Bemerkungen

Wenn Sie eine neue Schnittstelle erstellen, muss sie von IUnknown abgeleitet werden, das über drei Methoden verfügt: QueryInterface, AddRef und Release. Dieses Makro vereinfacht den Deklarationsprozess, indem jede dieser Methoden für die neue Schnittstelle deklariert wird.

Dieses Makro funktioniert nur mit Klassen, die direkt oder indirekt von der CUnknown-Klasse abgeleitet sind.

Anforderungen

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

Siehe auch

COM-Hilfsfunktionen

CUnknown::GetOwner

Implementieren von IUnknown