ChainInterfaces Yapısı

Bir arabirim kimlikleri kümesine uygulanabilecek doğrulama ve başlatma işlevlerini belirtir.

Sözdizimi

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
>;

Parametreler

I0
(Gerekli) Arabirim Kimliği 0.

I1
(Gerekli) Arabirim Kimliği 1.

I2
(İsteğe bağlı) Arabirim Kimliği 2.

I3
(İsteğe bağlı) Arabirim Kimliği 3.

I4
(İsteğe bağlı) Arabirim Kimliği 4.

I5
(İsteğe bağlı) Arabirim Kimliği 5.

I6
(İsteğe bağlı) Arabirim Kimliği 6.

I7
(İsteğe bağlı) Arabirim Kimliği 7.

I8
(İsteğe bağlı) Arabirim Kimliği 8.

I9
(İsteğe bağlı) Arabirim Kimliği 9.

DerivedType
Türetilmiş bir tür.

BaseType
Türetilmiş türün temel türü.

hasImplements
isetrue, bir MixIn yapısını Implements yapısından türetilmeyen bir sınıfla kullanamamanızı sağlayan boole değeri.

Üyeler

Korumalı Yöntemler

Veri Akışı Adı Açıklama
ChainInterfaces::CanCastTo Belirtilen arabirim kimliğinin şablon parametreleri tarafından tanımlanan özelleştirmelerin her birine yayınlanıp düzenlenemeyeceğini ChainInterface gösterir.
ChainInterfaces::CastToUnknown I0 şablon parametresi tarafından tanımlanan türün arabirim işaretçisini işaretçisine döndürürIUnknown.
ChainInterfaces::FillArrayWithIid I0 şablon parametresi tarafından tanımlanan arabirim kimliğini belirtilen arabirim kimlikleri dizisinde belirtilen bir konumda depolar.
ChainInterfaces::Verify I0 ile I9 arasında şablon parametreleri tarafından tanımlanan her arabirimin ve/veya IInspectable'den IUnknown devraldığını ve I0'nin I1'den I9'a kadar devraldığını doğrular.

Korumalı Sabitler

Veri Akışı Adı Açıklama
ChainInterfaces::IidCount I0 ile I9 arasında şablon parametreleri tarafından belirtilen arabirimlerde bulunan arabirim kimliklerinin toplam sayısı.

Devralma Hiyerarşisi

I0

ChainInterfaces

Gereksinimler

Üst bilgi: implements.h

Ad Alanı: Microsoft::WRL

ChainInterfaces::CanCastTo

Belirtilen arabirim kimliğinin varsayılan olmayan şablon parametreleri tarafından tanımlanan özelleştirmelerin her birine verilip verilemeyeceğini gösterir.

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

Parametreler

riid
Arabirim kimliği.

ppv
Başarılı bir şekilde yayınlanan son arabirim kimliğini gösteren bir işaretçi.

Dönüş Değeri

true tüm atama işlemleri başarılı olduysa; aksi takdirde , false.

ChainInterfaces::CastToUnknown

I0 şablon parametresi tarafından tanımlanan türün arabirim işaretçisini işaretçisine döndürürIUnknown.

__forceinline IUnknown* CastToUnknown();

Dönüş Değeri

için bir işaretçi IUnknown.

ChainInterfaces::FillArrayWithIid

I0 şablon parametresi tarafından tanımlanan arabirim kimliğini belirtilen arabirim kimlikleri dizisinde belirtilen bir konumda depolar.

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

Parametreler

Dizin
iids dizisinde bir dizin değerinin işaretçisi.

iid'ler
Arabirim kimlikleri dizisi.

ChainInterfaces::IidCount

I0 ile I9 arasında şablon parametreleri tarafından belirtilen arabirimlerde bulunan arabirim kimliklerinin toplam sayısı.

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;

Dönüş Değeri

Arabirim kimliklerinin toplam sayısı.

Açıklamalar

Şablon parametreleri I0 ve I1 gereklidir ve I2 ile I9 arasında parametreler isteğe bağlıdır. Her arabirimin IID sayısı genellikle 1'dir.

ChainInterfaces::Verify

I0 ile I9 arasında şablon parametreleri tarafından tanımlanan her arabirimin ve/veya IInspectable'den IUnknown devraldığını ve I0'nin I1'den I9'a kadar devraldığını doğrular.

WRL_NOTHROW __forceinline static void Verify();

Açıklamalar

Doğrulama işlemi başarısız olursa, hatanın static_assert açıklandığı bir hata iletisi yayar.

Şablon parametreleri I0 ve I1 gereklidir ve I2 ile I9 arasında parametreler isteğe bağlıdır.