Bagikan melalui


Struktur ChainInterfaces

Menentukan fungsi verifikasi dan inisialisasi yang dapat diterapkan ke sekumpulan ID antarmuka.

Sintaks

template <
    typename I0,
    typename I1,
    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 ChainInterfaces : I0;

template <
    typename DerivedType,
    typename BaseType,
    bool hasImplements,
    typename I1,
    typename I2,
    typename I3,
    typename I4,
    typename I5,
    typename I6,
    typename I7,
    typename I8,
    typename I9
>
struct ChainInterfaces<
    MixIn<
        DerivedType,
        BaseType,
        hasImplements
    >, I1, I2, I3, I4, I5, I6, I7, I8, I9
>;

Parameter

I0
(Diperlukan) ID Antarmuka 0.

I1
(Diperlukan) ID Antarmuka 1.

I2
(Opsional) ID Antarmuka 2.

I3
(Opsional) ID Antarmuka 3.

I4
(Opsional) ID Antarmuka 4.

I5
(Opsional) ID Antarmuka 5.

I6
(Opsional) ID Antarmuka 6.

I7
(Opsional) ID Antarmuka 7.

I8
(Opsional) ID Antarmuka 8.

I9
(Opsional) ID Antarmuka 9.

DerivedType
Jenis turunan.

BaseType
Jenis dasar dari jenis turunan.

hasImplements
Nilai Boolean yang jika true, berarti Anda tidak dapat menggunakan struktur MixIn dengan kelas yang tidak berasal dari struktur Implements .

Anggota

Metode yang Dilindungi

Nama Deskripsi
ChainInterfaces::CanCastTo Menunjukkan apakah ID antarmuka yang ditentukan dapat ditransmisikan ke setiap spesialisasi yang ditentukan oleh ChainInterface parameter templat.
ChainInterfaces::CastToUnknown Mentransmisikan penunjuk antarmuka jenis yang ditentukan oleh parameter templat I0 ke penunjuk ke IUnknown.
ChainInterfaces::FillArrayWithIid Menyimpan ID antarmuka yang ditentukan oleh parameter templat I0 ke lokasi tertentu dalam array ID antarmuka tertentu.
ChainInterfaces::Verify Memverifikasi bahwa setiap antarmuka yang ditentukan oleh parameter templat I0 hingga I9 mewarisi dari IUnknown dan/atau IInspectable, dan bahwa I0 mewarisi dari I1 hingga I9.

Konstanta Terproteksi

Nama Deskripsi
ChainInterfaces::IidCount Jumlah total ID antarmuka yang terkandung dalam antarmuka yang ditentukan oleh parameter templat I0 hingga I9.

Hierarki Warisan

I0

ChainInterfaces

Persyaratan

Header: implements.h

Namespace: Microsoft::WRL

ChainInterfaces::CanCastTo

Menunjukkan apakah ID antarmuka yang ditentukan dapat ditransmisikan ke setiap spesialisasi yang ditentukan oleh parameter templat non-default.

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

Parameter

riid
ID antarmuka.

ppv
Penunjuk ke ID antarmuka terakhir yang berhasil dilemparkan.

Tampilkan Nilai

true jika semua operasi pemeran berhasil; jika tidak, false.

ChainInterfaces::CastToUnknown

Mentransmisikan penunjuk antarmuka jenis yang ditentukan oleh parameter templat I0 ke penunjuk ke IUnknown.

__forceinline IUnknown* CastToUnknown();

Tampilkan Nilai

Pointer ke IUnknown.

ChainInterfaces::FillArrayWithIid

Menyimpan ID antarmuka yang ditentukan oleh parameter templat I0 ke lokasi tertentu dalam array ID antarmuka tertentu.

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

Parameter

index
Penunjuk ke nilai indeks ke dalam array iids .

iids
Array ID antarmuka.

ChainInterfaces::IidCount

Jumlah total ID antarmuka yang terkandung dalam antarmuka yang ditentukan oleh parameter templat I0 hingga I9.

static const unsigned long IidCount = Details::InterfaceTraits<I0>::IidCount + Details::InterfaceTraits<I1>::IidCount + Details::InterfaceTraits<I2>::IidCount + Details::InterfaceTraits<I3>::IidCount + Details::InterfaceTraits<I4>::IidCount + Details::InterfaceTraits<I5>::IidCount + Details::InterfaceTraits<I6>::IidCount + Details::InterfaceTraits<I7>::IidCount + Details::InterfaceTraits<I8>::IidCount + Details::InterfaceTraits<I9>::IidCount;

Tampilkan Nilai

Jumlah total ID antarmuka.

Keterangan

Parameter templat I0 dan I1 diperlukan, dan parameter I2 hingga I9 bersifat opsional. Jumlah IID dari setiap antarmuka biasanya 1.

ChainInterfaces::Verify

Memverifikasi bahwa setiap antarmuka yang ditentukan oleh parameter templat I0 hingga I9 mewarisi dari IUnknown dan/atau IInspectable, dan bahwa I0 mewarisi dari I1 hingga I9.

WRL_NOTHROW __forceinline static void Verify();

Keterangan

Jika operasi verifikasi gagal, memancarkan static_assert pesan kesalahan yang menjelaskan kegagalan.

Parameter templat I0 dan I1 diperlukan, dan parameter I2 hingga I9 bersifat opsional.