Bagikan melalui


Terapkan Struktur

QueryInterface Mengimplementasikan dan GetIid untuk antarmuka yang ditentukan.

Sintaks

template <
    typename I0,
    typename I1 = Details::Nil,
    typename I2 = Details::Nil,
    typename I3 = Details::Nil,
    typename I4 = Details::Nil,
    typename I5 = Details::Nil,
    typename I6 = Details::Nil,
    typename I7 = Details::Nil,
    typename I8 = Details::Nil,
    typename I9 = Details::Nil
>
struct __declspec(novtable) Implements :
    Details::ImplementsHelper<
        RuntimeClassFlags<WinRt>,
        typename Details::InterfaceListHelper<
            I0, I1, I2, I3, I4, I5, I6, I7, I8, I9
        >::TypeT
    >,
    Details::ImplementsBase;

template <
    int flags,
    typename I0,
    typename I1,
    typename I2,
    typename I3,
    typename I4,
    typename I5,
    typename I6,
    typename I7,
    typename I8
>
struct __declspec(novtable) Implements<
        RuntimeClassFlags<flags>,
        I0, I1, I2, I3, I4, I5, I6, I7, I8> :
    Details::ImplementsHelper<
        RuntimeClassFlags<flags>,
        typename Details::InterfaceListHelper<
            I0, I1, I2, I3, I4, I5, I6, I7, I8
        >::TypeT
    >,
    Details::ImplementsBase;

Parameter

I0
ID antarmuka nol. (Wajib)

I1
ID antarmuka pertama. (Opsional)

I2
ID antarmuka kedua. (Opsional)

I3
ID antarmuka ketiga. (Opsional)

I4
ID antarmuka keempat. (Opsional)

I5
ID antarmuka kelima. (Opsional)

I6
ID antarmuka keenam. (Opsional)

I7
ID antarmuka ketujuh. (Opsional)

I8
ID antarmuka kedelapan. (Opsional)

I9
ID antarmuka kesembilan. (Opsional)

flags
Bendera konfigurasi untuk kelas . Satu atau beberapa enumerasi RuntimeClassType yang ditentukan dalam struktur RuntimeClassFlags .

Keterangan

Berasal dari daftar antarmuka yang ditentukan dan mengimplementasikan templat pembantu untuk QueryInterface dan GetIid.

Setiap parameter antarmuka I0 hingga I9 harus berasal dari IUnknown, , IInspectableatau templat ChainInterfaces . Parameter bendera menentukan apakah dukungan dihasilkan untuk IUnknown atau IInspectable.

Anggota

Typedef Publik

Nama Deskripsi
ClassFlags Sinonim untuk RuntimeClassFlags<WinRt>.

Metode yang Dilindungi

Nama Deskripsi
Implementasi::CanCastTo Mendapatkan penunjuk ke antarmuka yang ditentukan.
Implementasi::CastToUnknown Mendapatkan penunjuk ke antarmuka yang mendasar IUnknown .
Implementasi::FillArrayWithIid Menyisipkan ID antarmuka yang ditentukan oleh parameter templat nol saat ini ke dalam elemen array yang ditentukan.

Konstanta Terproteksi

Nama Deskripsi
Implementasi::IidCount Menyimpan jumlah ID antarmuka yang diimplementasikan.

Hierarki Warisan

I0

ChainInterfaces

I0

ImplementsBase

ImplementsHelper

Implements

Persyaratan

Header: implements.h

Namespace: Microsoft::WRL

Implementasi::CanCastTo

Mendapatkan penunjuk ke antarmuka yang ditentukan.

__forceinline HRESULT CanCastTo(
   REFIID riid,
   _Deref_out_ void **ppv
);

Parameter

riid
Referensi ke ID antarmuka.

Ppv
Jika berhasil, penunjuk ke antarmuka yang ditentukan oleh riid.

Tampilkan Nilai

S_OK jika berhasil; jika tidak, HRESULT yang menunjukkan kesalahan, seperti E_NOINTERFACE.

Keterangan

Ini adalah fungsi pembantu internal yang melakukan operasi QueryInterface.

Implementasi::CastToUnknown

Mendapatkan penunjuk ke antarmuka yang mendasar IUnknown .

__forceinline IUnknown* CastToUnknown();

Tampilkan Nilai

Operasi ini selalu berhasil dan mengembalikan IUnknown penunjuk.

Keterangan

Fungsi pembantu internal.

Implementasi::FillArrayWithIid

Menyisipkan ID antarmuka yang ditentukan oleh parameter templat nol saat ini ke dalam elemen array yang ditentukan.

__forceinline static void FillArrayWithIid(
   unsigned long &index,
   _In_ IID* iids
);

Parameter

index
Indeks berbasis nol yang menunjukkan elemen array awal untuk operasi ini. Ketika operasi ini selesai, indeks bertambah 1.

iids
Array jenis IID.

Keterangan

Fungsi pembantu internal.

Implementasi::IidCount

Menyimpan jumlah ID antarmuka yang diimplementasikan.

static const unsigned long IidCount;