Partager via


DECLARE_IUNKNOWN

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

La macro DECLARE_IUNKNOWN déclare les trois méthodes de l’interface de base pour une nouvelle interface.

Syntaxe

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

Notes

Lorsque vous créez une interface, elle doit dériver de IUnknown, qui a trois méthodes : QueryInterface, AddRef et Release. Cette macro simplifie le processus de déclaration en déclarant chacune de ces méthodes pour la nouvelle interface.

Cette macro fonctionne uniquement avec les classes qui dérivent, directement ou indirectement, de la classe CUnknown .

Configuration requise

Condition requise Valeur
En-tête
Combase.h (include Streams.h)
Bibliothèque
Strmbase.lib (builds de vente au détail) ;
Strmbasd.lib (builds de débogage)

Voir aussi

Fonctions d’assistance COM

CUnknown::GetOwner

Comment implémenter IUnknown