Bagikan melalui


DECLARE_IUNKNOWN

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine , dan Pengambilan Audio/Video di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Makro DECLARE_IUNKNOWN mendeklarasikan tiga metode antarmuka dasar untuk antarmuka baru.

Sintaks

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

Keterangan

Saat Anda membuat antarmuka baru, antarmuka tersebut harus berasal dari IUnknown, yang memiliki tiga metode: QueryInterface, AddRef, dan Release. Makro ini menyederhanakan proses deklarasi dengan mendeklarasikan masing-masing metode ini untuk antarmuka baru.

Makro ini hanya berfungsi dengan kelas yang berasal, langsung atau tidak langsung, dari kelas CUnknown .

Persyaratan

Persyaratan Nilai
Header
Combase.h (termasuk Streams.h)
Pustaka
Strmbase.lib (build ritel);
Strmbasd.lib (build debug)

Lihat juga

Fungsi Pembantu COM

CUnknown::GetOwner

Cara Menerapkan IUnknown