次の方法で共有


EventSource クラス

非アジャイル イベントを表します。 EventSource メンバー関数は、イベント ハンドラーの追加、削除、および呼び出しを実行します。 アジャイル イベントの場合は、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_ 1 つ以上のイベント ハンドラーの配列。
EventSource::targetsPointerLock_ この EventSource のイベント ハンドラーが追加、削除、または呼び出されている間でも、内部データ メンバーへのアクセスを同期します。

継承階層

EventSource

要件

ヘッダー: event.h

名前空間: Microsoft::WRL

EventSource::Add

指定したデリゲート インターフェイスによって表されるイベント ハンドラーを、現在の EventSource オブジェクトのイベント ハンドラーのセットに追加します。

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

パラメーター

delegateInterface
イベント ハンドラーを表すデリゲート オブジェクトへのインターフェイス。

token
この操作の完了時の、イベントを表すハンドル。 このトークンを Remove() メソッドのパラメーターとして使用して、イベント ハンドラーを破棄します。

戻り値

成功した場合は S_OK、そうでない場合はエラーを示す HRESULT。

EventSource::addRemoveLock_

イベント ハンドラーを追加、削除、または呼び出す際に、targets_ 配列へのアクセスを同期します。

Wrappers::SRWLock addRemoveLock_;

EventSource::EventSource

EventSource クラスの新しいインスタンスを初期化します。

EventSource();

EventSource::GetSize

現在の EventSource オブジェクトに関連付けられているイベント ハンドラーの数を取得します。

size_t GetSize() const;

戻り値

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
1 番目のイベント ハンドラー引数の型。

T2
2 番目のイベント ハンドラー引数の型。

T3
3 番目のイベント ハンドラー引数の型。

T4
4 番目のイベント ハンドラー引数の型。

T5
5 番目のイベント ハンドラー引数の型。

T6
6 番目のイベント ハンドラー引数の型。

T7
7 番目のイベント ハンドラー引数の型。

T8
8 番目のイベント ハンドラー引数の型。

T9
9 番目のイベント ハンドラー引数の型。

arg0
0 番目のイベント ハンドラー引数。

arg1
1 番目のイベント ハンドラー引数。

arg2
2 番目のイベント ハンドラー引数。

arg3
3 番目のイベント ハンドラー引数。

arg4
4 番目のイベント ハンドラー引数。

arg5
5 番目のイベント ハンドラー引数。

arg6
6 番目のイベント ハンドラー引数。

arg7
7 番目のイベント ハンドラー引数。

arg8
8 番目のイベント ハンドラー引数。

arg9
9 番目のイベント ハンドラー引数。

EventSource::Remove

現在の EventSource オブジェクトに関連付けられているイベント ハンドラーのセットから、指定したイベント登録トークンによって表されるイベント ハンドラーを削除します。

HRESULT Remove(
   EventRegistrationToken token
);

パラメーター

token
イベント ハンドラーを表すハンドル。 このトークンは、イベント ハンドラーが Add () メソッドによって登録されたときに返されます。

戻り値

成功した場合は S_OK、そうでない場合はエラーを示す HRESULT。

解説

EventRegistrationToken 構造体の詳細については、Windows ランタイムのリファレンス ドキュメントの Windows::Foundation::EventRegistrationToken 構造体のトピックを参照してください。

EventSource::targets_

1 つ以上のイベント ハンドラーの配列。

ComPtr<Details::EventTargetArray> targets_;

解説

現在 EventSource オブジェクトによって表されるイベントが発生すると、イベント ハンドラーが呼び出されます。

EventSource::targetsPointerLock_

この EventSource のイベント ハンドラーが追加、削除、または呼び出されている間でも、内部データ メンバーへのアクセスを同期します。

Wrappers::SRWLock targetsPointerLock_;