共用方式為


DECLARE_IUNKNOWN

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

DECLARE_IUNKNOWN宏會宣告新介面之基底介面的三種方法。

語法

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

備註

當您建立新的介面時,它必須衍生自 IUnknown,其有三種方法: QueryInterfaceAddRefRelease。 這個宏會宣告新介面的每個方法,藉此簡化宣告程式。

此宏只適用于從 CUnknown 類別衍生或間接衍生的類別。

規格需求

需求
標頭
Combase.h (包含 Streams.h)
程式庫
Strmbase.lib (零售組建) ;
Strmbasd.lib (偵錯組建)

另請參閱

COM 協助程式函式

CUnknown::GetOwner

如何實作 IUnknown