分享方式:


Implements 結構

針對指定的介面實作 QueryInterfaceGetIid

語法

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;

參數

I0
第零個介面標識碼。 (強制性)

I1
第一個介面標識碼。 (選擇性)

I2
第二個介面標識碼。 (選擇性)

I3
第三個介面標識碼。 (選擇性)

I4
第四個介面標識碼。 (選擇性)

I5
第五個介面標識碼。 (選擇性)

I6
第六個介面標識碼。 (選擇性)

I7
第七個介面標識碼。 (選擇性)

I8
第八個介面標識碼。 (選擇性)

I9
第九個介面標識碼。 (選擇性)

flags
類別的組態旗標。 RuntimeClassFlags 結構中指定的一或多個 RuntimeClassType 列舉。

備註

衍生自指定的介面清單,並實作 和GetIidQueryInterface協助程序範本。

每個 I0I9 介面參數都必須衍生自 IUnknownIInspectableChainInterfaces 範本。 flags 參數會決定是否為 或 IInspectable產生IUnknown支援。

成員

公用 Typedefs

名稱 描述
ClassFlags RuntimeClassFlags<WinRt> 的同義字。

受保護的方法

名稱 描述
Implements::CanCastTo 取得指定介面的指標。
Implements::CastToUnknown 取得基礎 IUnknown 介面的指標。
Implements::FillArrayWithIid 將目前第零個樣板參數指定的介面識別碼插入指定的陣列元素中。

受保護的常數

名稱 描述
Implements::IidCount 保存已實作介面標識碼的數目。

繼承階層架構

I0

ChainInterfaces

I0

ImplementsBase

ImplementsHelper

Implements

需求

標頭: implements.h

命名空間: Microsoft::WRL

Implements::CanCastTo

取得指定介面的指標。

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

參數

riid
介面識別碼的參考。

ppv
如果成功,則為riid所指定介面的指標。

傳回值

如果成功,S_OK;否則,表示錯誤的 HRESULT,例如E_NOINTERFACE。

備註

這是執行 QueryInterface 作業的內部協助程式函式。

Implements::CastToUnknown

取得基礎 IUnknown 介面的指標。

__forceinline IUnknown* CastToUnknown();

傳回值

這項作業一律會成功並傳 IUnknown 回指標。

備註

內部協助程式函式。

Implements::FillArrayWithIid

將目前第零個樣板參數指定的介面識別碼插入指定的陣列元素中。

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

參數

index
以零起始的索引,表示這項作業的起始數位專案。 當此作業完成時, 索引 會遞增 1。

iids
IID 類型的陣列。

備註

內部協助程式函式。

Implements::IidCount

保存已實作介面標識碼的數目。

static const unsigned long IidCount;