Compartir a través de


DECLARE_IUNKNOWN

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

La macro DECLARE_IUNKNOWN declara los tres métodos de la interfaz base para una nueva interfaz.

Sintaxis

#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();                           \
    };

Observaciones

Al crear una nueva interfaz, debe derivarse de IUnknown, que tiene tres métodos: QueryInterface, AddRef y Release. Esta macro simplifica el proceso de declaración declarando cada uno de estos métodos para la nueva interfaz.

Esta macro solo funciona con clases que derivan, directa o indirectamente, de la clase CUnknown .

Requisitos

Requisito Value
Encabezado
Combase.h (include Streams.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)

Consulte también

Funciones auxiliares COM

CUnknown::GetOwner

Cómo implementar IUnknown