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 方法的第一个参数的类型。

TArg2
Invoke 方法的第二个参数的类型。

TArg3
Invoke 方法的第三个参数的类型。

TArg4
Invoke 方法的第四个参数的类型。

TArg5
Invoke 方法的第五个参数的类型。

TArg6
Invoke 方法的第六个参数的类型。

TArg7
Invoke 方法的第七个参数的类型。

TArg8
Invoke 方法的第八个参数的类型。

TArg9
Invoke 方法的第九个参数的类型。

备注

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 方法签名。