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.