ArgTraits Structure

Supports the WRL infrastructure and is not intended to be used directly from your code.

Syntax

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)>;

Parameters

TMemberFunction
Typename parameter for an ArgTraits structure that cannot match any Invoke method signature.

TDelegateInterface
A delegate interface.

TArg1
The type of the first argument of the Invoke method.

TArg2
The type of the second argument of the Invoke method.

TArg3
The type of the third argument of the Invoke method.

TArg4
The type of the fourth argument of the Invoke method.

TArg5
The type of the fifth argument of the Invoke method.

TArg6
The type of the sixth argument of the Invoke method.

TArg7
The type of the seventh argument of the Invoke method.

TArg8
The type of the eighth argument of the Invoke method.

TArg9
The type of the ninth argument of the Invoke method.

Remarks

The ArgTraits structure declares a specified delegate interface and an anonymous member function that has a specified number of parameters.

Members

Public Typedefs

Name Description
Arg1Type The typedef for TArg1.
Arg2Type The typedef for TArg2.
Arg3Type The typedef for TArg3.
Arg4Type The typedef for TArg4.
Arg5Type The typedef for TArg5.
Arg6Type The typedef for TArg6.
Arg7Type The typedef for TArg7.
Arg8Type The typedef for TArg8.
Arg9Type The typedef for TArg9.

Public Constants

Name Description
ArgTraits::args Keeps count of the number of parameters on the Invoke method of a delegate interface.

Inheritance Hierarchy

ArgTraits

Requirements

Header: event.h

Namespace: Microsoft::WRL::Details

ArgTraits::args

Supports the WRL infrastructure and is not intended to be used directly from your code.

static const int args = -1;

Remarks

Keeps count of the number of parameters on the Invoke method of a delegate interface. When args equals -1, there can be no match for the Invoke method signature.