다음을 통해 공유


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 구조체의 Typename 매개 변수입니다.

TDelegateInterface
대리자 인터페이스입니다.

TArg1
메서드의 첫 번째 인수 형식입니다 Invoke .

TArg2
메서드의 두 번째 인수 형식입니다 Invoke .

TArg3
메서드의 세 번째 인수 형식입니다 Invoke .

TArg4
메서드의 네 번째 인수 형식입니다 Invoke .

TArg5
메서드의 다섯 번째 인수 형식입니다 Invoke .

TArg6
메서드의 여섯 번째 인수 형식입니다 Invoke .

TArg7
메서드의 일곱 번째 인수 형식입니다 Invoke .

TArg8
메서드의 여덟 번째 인수 형식입니다 Invoke .

TArg9
메서드의 아홉 번째 인수 형식입니다 Invoke .

설명

이 구조체는 ArgTraits 지정된 수의 매개 변수가 있는 지정된 대리자 인터페이스와 익명 멤버 함수를 선언합니다.

멤버

공용 Typedefs

이름 설명
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::D etails

ArgTraits::args

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

static const int args = -1;

설명

대리자 인터페이스 메서드의 매개 변수 Invoke 수를 유지합니다. -1이면 args 메서드 시그니처와 Invoke 일치할 수 없습니다.