다음을 통해 공유


EventSource 클래스

Agile이 아닌 이벤트를 나타냅니다. EventSource 멤버 함수는 이벤트 처리기를 추가, 삭제 및 호출합니다. Agile 이벤트의 경우 AgileEventSource를 사용합니다.

구문

template<typename TDelegateInterface>
class EventSource;

매개 변수

TDelegateInterface
이벤트 처리기를 나타내는 대리자의 인터페이스입니다.

멤버

공용 생성자

속성 설명
EventSource::EventSource EventSource 클래스의 새 인스턴스를 초기화합니다.

공용 메서드

이름 설명
EventSource::Add 지정된 대리자 인터페이스가 나타내는 이벤트 처리기를 현재 EventSource 개체의 이벤트 처리기 집합에 추가합니다.
EventSource::GetSize 현재 EventSource 개체와 연결된 이벤트 처리기 수를 검색합니다.
EventSource::InvokeAll 지정된 인수 형식 및 인수를 사용하여 현재 EventSource 개체와 연결된 각 이벤트 처리기를 호출합니다.
EventSource::Remove 지정된 이벤트 등록 토큰이 나타내는 이벤트 처리기를 현재 EventSource 개체와 연결된 이벤트 처리기 집합에서 삭제합니다.

보호된 데이터 멤버

속성 설명
EventSource::addRemoveLock_ 이벤트 처리기를 추가, 제거 또는 호출할 때 targets_ 배열에 대한 액세스를 동기화합니다.
EventSource::targets_ 하나 이상의 이벤트 처리기 배열입니다.
EventSource::targetsPointerLock_ 이 EventSource의 이벤트 처리기를 추가, 삭제 또는 호출하는 동안에도 내부 데이터 멤버에 대한 액세스를 동기화합니다.

상속 계층 구조

EventSource

요구 사항

헤더: event.h

네임스페이스: Microsoft::WRL

EventSource::Add

지정된 대리자 인터페이스가 나타내는 이벤트 처리기를 현재 EventSource 개체의 이벤트 처리기 집합에 추가합니다.

HRESULT Add(
   _In_ TDelegateInterface* delegateInterface,
   _Out_ EventRegistrationToken* token
);

매개 변수

delegateInterface
이벤트 처리기를 나타내는 대리자 개체에 대한 인터페이스입니다.

token
이 작업이 완료되면 이벤트를 나타내는 핸들입니다. 이 토큰을 Remove() 메서드의 매개 변수로 사용하여 이벤트 처리기를 삭제합니다.

Return Value

성공하면 S_OK이고, 그렇지 않으면 오류를 나타내는 HRESULT입니다.

EventSource::addRemoveLock_

이벤트 처리기를 추가, 제거 또는 호출할 때 targets_ 배열에 대한 액세스를 동기화합니다.

Wrappers::SRWLock addRemoveLock_;

EventSource::EventSource

EventSource 클래스의 새 인스턴스를 초기화합니다.

EventSource();

EventSource::GetSize

현재 EventSource 개체와 연결된 이벤트 처리기 수를 검색합니다.

size_t GetSize() const;

Return Value

targets_ 이벤트 처리기의 수입니다.

EventSource::InvokeAll

지정된 인수 형식 및 인수를 사용하여 현재 EventSource 개체와 연결된 각 이벤트 처리기를 호출합니다.

void InvokeAll();
template <
   typename T0
>
void InvokeAll(
   T0arg0
);
template <
   typename T0,
   typename T1
>
void InvokeAll(
   T0arg0,
   T1arg1
);
template <
   typename T0,
   typename T1,
   typename T2
>
void InvokeAll(
   T0arg0,
   T1arg1,
   T2arg2
);
template <
   typename T0,
   typename T1,
   typename T2,
   typename T3
>
void InvokeAll(
   T0arg0,
   T1arg1,
   T2arg2,
   T3arg3
);
template <
   typename T0,
   typename T1,
   typename T2,
   typename T3,
   typename T4
>
void InvokeAll(
   T0arg0,
   T1arg1,
   T2arg2,
   T3arg3,
   T4arg4
);
template <
   typename T0,
   typename T1,
   typename T2,
   typename T3,
   typename T4,
   typename T5
>
void InvokeAll(
   T0arg0,
   T1arg1,
   T2arg2,
   T3arg3,
   T4arg4,
   T5arg5
);
template <
   typename T0,
   typename T1,
   typename T2,
   typename T3,
   typename T4,
   typename T5,
   typename T6
>
void InvokeAll(
   T0arg0,
   T1arg1,
   T2arg2,
   T3arg3,
   T4arg4,
   T5arg5,
   T6arg6
);
template <
   typename T0,
   typename T1,
   typename T2,
   typename T3,
   typename T4,
   typename T5,
   typename T6,
   typename T7
>
void InvokeAll(
   T0arg0,
   T1arg1,
   T2arg2,
   T3arg3,
   T4arg4,
   T5arg5,
   T6arg6,
   T7arg7
);
template <
   typename T0,
   typename T1,
   typename T2,
   typename T3,
   typename T4,
   typename T5,
   typename T6,
   typename T7,
   typename T8
>
void InvokeAll(
   T0arg0,
   T1arg1,
   T2arg2,
   T3arg3,
   T4arg4,
   T5arg5,
   T6arg6,
   T7arg7,
   T8arg8
);
template <
   typename T0,
   typename T1,
   typename T2,
   typename T3,
   typename T4,
   typename T5,
   typename T6,
   typename T7,
   typename T8,
   typename T9
>
void InvokeAll(
   T0arg0,
   T1arg1,
   T2arg2,
   T3arg3,
   T4arg4,
   T5arg5,
   T6arg6,
   T7arg7,
   T8arg8,
   T9arg9
);

매개 변수

T0
0번째 이벤트 처리기 인수 형식입니다.

T1
첫 번째 이벤트 처리기 인수 형식입니다.

T2
두 번째 이벤트 처리기 인수 형식입니다.

T3
세 번째 이벤트 처리기 인수 형식입니다.

T4
네 번째 이벤트 처리기 인수 형식입니다.

T5
다섯 번째 이벤트 처리기 인수 형식입니다.

T6
여섯 번째 이벤트 처리기 인수 형식입니다.

T7
일곱 번째 이벤트 처리기 인수 형식입니다.

T8
여덟 번째 이벤트 처리기 인수의 형식입니다.

T9
아홉 번째 이벤트 처리기 인수 형식입니다.

arg0
0번째 이벤트 처리기 인수입니다.

arg1
첫 번째 이벤트 처리기 인수입니다.

arg2
두 번째 이벤트 처리기 인수입니다.

arg3
세 번째 이벤트 처리기 인수입니다.

arg4
네 번째 이벤트 처리기 인수입니다.

arg5
다섯 번째 이벤트 처리기 인수입니다.

arg6
여섯 번째 이벤트 처리기 인수입니다.

arg7
일곱 번째 이벤트 처리기 인수입니다.

arg8
여덟 번째 이벤트 처리기 인수입니다.

arg9
아홉 번째 이벤트 처리기 인수입니다.

EventSource::Remove

지정된 이벤트 등록 토큰이 나타내는 이벤트 처리기를 현재 EventSource 개체와 연결된 이벤트 처리기 집합에서 삭제합니다.

HRESULT Remove(
   EventRegistrationToken token
);

매개 변수

token
이벤트 처리기를 나타내는 핸들입니다. 이 토큰은 이벤트 처리기가 Add() 메서드에 의해 등록되었을 때 반환되었습니다.

Return Value

성공하면 S_OK이고, 그렇지 않으면 오류를 나타내는 HRESULT입니다.

설명

구조체 EventRegistrationToken 에 대한 자세한 내용은 Windows 런타임 참조 설명서의 Windows::Foundation::EventRegistrationToken Structure 항목을 참조하세요.

EventSource::targets_

하나 이상의 이벤트 처리기 배열입니다.

ComPtr<Details::EventTargetArray> targets_;

설명

현재 EventSource 개체가 나타내는 이벤트가 발생하면 이벤트 처리기가 호출됩니다.

EventSource::targetsPointerLock_

이에 EventSource 대한 이벤트 처리기가 추가, 제거 또는 호출되는 동안에도 내부 데이터 멤버에 대한 액세스를 동기화합니다.

Wrappers::SRWLock targetsPointerLock_;