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