次の方法で共有


ArgTraits 構造体

WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。

構文

template<typename TMemberFunction>
struct ArgTraits;

template<typename TDelegateInterface>
struct ArgTraits<HRESULT (STDMETHODCALLTYPE TDelegateInterface::*)(void)>;

template<typename TDelegateInterface, typename TArg1>
struct ArgTraits<HRESULT (STDMETHODCALLTYPE TDelegateInterface::*)(TArg1)>;

template<typename TDelegateInterface, typename TArg1, typename TArg2>
struct ArgTraits<
    HRESULT (STDMETHODCALLTYPE TDelegateInterface::*)(TArg1, TArg2)>;

template<
    typename TDelegateInterface,
    typename TArg1,
    typename TArg2,
    typename TArg3
>
struct ArgTraits<
    HRESULT (STDMETHODCALLTYPE TDelegateInterface::*)(TArg1, TArg2, TArg3)>;

template<
    typename TDelegateInterface,
    typename TArg1,
    typename TArg2,
    typename TArg3,
    typename TArg4
>
struct ArgTraits<
    HRESULT (STDMETHODCALLTYPE TDelegateInterface::*)
             (TArg1, TArg2, TArg3, TArg4)>;

template<
    typename TDelegateInterface,
    typename TArg1,
    typename TArg2,
    typename TArg3,
    typename TArg4,
    typename TArg5
>
struct ArgTraits<
    HRESULT (STDMETHODCALLTYPE TDelegateInterface::*)
             (TArg1, TArg2, TArg3, TArg4, TArg5)>;

template<
    typename TDelegateInterface,
    typename TArg1,
    typename TArg2,
    typename TArg3,
    typename TArg4,
    typename TArg5,
    typename TArg6
>
struct ArgTraits<
    HRESULT (STDMETHODCALLTYPE TDelegateInterface::*)
             (TArg1, TArg2, TArg3, TArg4, TArg5, TArg6)>;

template<
    typename TDelegateInterface,
    typename TArg1,
    typename TArg2,
    typename TArg3,
    typename TArg4,
    typename TArg5,
    typename TArg6,
    typename TArg7
>
struct ArgTraits<
    HRESULT (STDMETHODCALLTYPE TDelegateInterface::*)
             (TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7)>;

template<
    typename TDelegateInterface,
    typename TArg1,
    typename TArg2,
    typename TArg3,
    typename TArg4,
    typename TArg5,
    typename TArg6,
    typename TArg7,
    typename TArg8
>
struct ArgTraits<
    HRESULT (STDMETHODCALLTYPE TDelegateInterface::*)
             (TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8)>;

template<
    typename TDelegateInterface,
    typename TArg1,
    typename TArg2,
    typename TArg3,
    typename TArg4,
    typename TArg5,
    typename TArg6,
    typename TArg7,
    typename TArg8,
    typename TArg9
>
struct ArgTraits<
    HRESULT (STDMETHODCALLTYPE TDelegateInterface::*)
             (TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9)>;

パラメーター

TMemberFunction
どの Invoke メソッド シグネチャとも一致しない、ArgTraits 構造体の型名パラメーター。

TDelegateInterface
デリゲート インターフェイス。

TArg1
Invoke メソッドの第 1 引数の型。

TArg2
Invoke メソッドの第 2 引数の型。

TArg3
Invoke メソッドの第 3 引数の型。

TArg4
Invoke メソッドの第 4 引数の型。

TArg5
Invoke メソッドの第 5 引数の型。

TArg6
Invoke メソッドの第 6 引数の型。

TArg7
Invoke メソッドの第 7 引数の型。

TArg8
Invoke メソッドの第 8 引数の型。

TArg9
Invoke メソッドの第 9 引数の型。

解説

ArgTraits 構造体は、指定されたデリゲート インターフェイスと、指定された数のパラメーターを持つ匿名メンバー関数を宣言します。

メンバー

パブリック typedef

名前 説明
Arg1Type TArg1 の typedef。
Arg2Type TArg2 の typedef。
Arg3Type TArg3 の typedef。
Arg4Type TArg4 の typedef。
Arg5Type TArg5 の typedef。
Arg6Type TArg6 の typedef。
Arg7Type TArg7 の typedef。
Arg8Type TArg8 の typedef。
Arg9Type TArg9 の typedef。

パブリック定数

名前 説明
ArgTraits::args デリゲート インターフェイスの Invoke メソッドのパラメーター数を保持します。

継承階層

ArgTraits

必要条件

ヘッダー: event.h

名前空間: Microsoft::WRL::Details

ArgTraits::args

WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。

static const int args = -1;

解説

デリゲート インターフェイスの Invoke メソッドのパラメーター数を保持します。 args が -1 の場合、Invoke メソッド シグネチャとの一致はありません。