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