Implements Yapısı

Belirtilen arabirimler QueryInterface için ve GetIid uygular.

Sözdizimi

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;

Parametreler

I0
Sıfırıncı arabirim kimliği. (Zorunlu)

I1
İlk arabirim kimliği. (İsteğe bağlı)

I2
İkinci arabirim kimliği. (İsteğe bağlı)

I3
Üçüncü arabirim kimliği. (İsteğe bağlı)

I4
Dördüncü arabirim kimliği. (İsteğe bağlı)

I5
Beşinci arabirim kimliği. (İsteğe bağlı)

I6
Altıncı arabirim kimliği. (İsteğe bağlı)

I7
Yedinci arabirim kimliği. (İsteğe bağlı)

I8
Sekizinci arabirim kimliği. (İsteğe bağlı)

I9
Dokuzuncu arabirim kimliği. (İsteğe bağlı)

Bayrak
Sınıfı için yapılandırma bayrakları. RuntimeClassFlags yapısında belirtilen bir veya daha fazla RuntimeClassType numaralandırması.

Açıklamalar

Belirtilen arabirimler listesinden türetilir ve ve GetIidiçin QueryInterface yardımcı şablonları uygular.

Her I0 - I9 arabirim parametresi, , IInspectableveya ChainInterfaces şablonundan IUnknowntüretilmelidir. flags parametresi, veya IInspectableiçin IUnknown destek oluşturulup oluşturulmadığını belirler.

Üyeler

Genel Tür Tanımları

Veri Akışı Adı Açıklama
ClassFlags için RuntimeClassFlags<WinRt>bir eş anlamlı.

Korumalı Yöntemler

Veri Akışı Adı Açıklama
Implements::CanCastTo Belirtilen arabirime bir işaretçi alır.
Implements::CastToUnknown Temel alınan IUnknown arabirime bir işaretçi alır.
Implements::FillArrayWithIid Geçerli sıfırıncı şablon parametresi tarafından belirtilen arabirim kimliğini belirtilen dizi öğesine ekler.

Korumalı Sabitler

Veri Akışı Adı Açıklama
Implements::IidCount Uygulanan arabirim kimliklerinin sayısını tutar.

Devralma Hiyerarşisi

I0

ChainInterfaces

I0

ImplementsBase

ImplementsHelper

Implements

Gereksinimler

Üst bilgi: implements.h

Ad Alanı: Microsoft::WRL

Implements::CanCastTo

Belirtilen arabirime bir işaretçi alır.

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

Parametreler

riid
Arabirim kimliğine başvuru.

ppv
Başarılı olursa, riid tarafından belirtilen arabirime bir işaretçi.

Dönüş Değeri

Başarılı olursa S_OK; aksi takdirde, E_NOINTERFACE gibi hatayı gösteren bir HRESULT.

Açıklamalar

Bu, QueryInterface işlemi gerçekleştiren bir iç yardımcı işlevdir.

Implements::CastToUnknown

Temel alınan IUnknown arabirime bir işaretçi alır.

__forceinline IUnknown* CastToUnknown();

Dönüş Değeri

Bu işlem her zaman başarılı olur ve işaretçiyi IUnknown döndürür.

Açıklamalar

İç yardımcı işlevi.

Implements::FillArrayWithIid

Geçerli sıfırıncı şablon parametresi tarafından belirtilen arabirim kimliğini belirtilen dizi öğesine ekler.

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

Parametreler

Dizin
Bu işlem için başlangıç dizisi öğesini gösteren sıfır tabanlı bir dizin. Bu işlem tamamlandığında dizin 1 artırılır.

iid'ler
IID türünde bir dizi.

Açıklamalar

İç yardımcı işlevi.

Implements::IidCount

Uygulanan arabirim kimliklerinin sayısını tutar.

static const unsigned long IidCount;