プラグ可能なターミナル イベントの登録
イベント登録プロセスは、ストリームによってターミナルが選択されたときに行われます。 ターミナル アプリケーションの SelectTerminal メソッドの実装では、ストリームに接続されたターミナルの ITTerminal インターフェイスを使用し、 QueryInterface を 呼び出して ITPluggableTerminalEventSinkRegistration を見つけることができます。
HRESULT hr = E_FAIL;
ITPluggableTerminalEventSinkRegistration* pEventRegistration = NULL;
hr = pTerminal->QueryInterface(
IID_ITPluggableTerminalEventSinkRegistration,
(void**)& pEventRegistration
);
QueryInterface 呼び出しが成功した場合は、RegisterSink メソッドを呼び出すことができます。 このためには、 ITPluggableTerminalEventSink インターフェイスを実装するオブジェクトを作成する必要があります。 このインターフェイスを RegisterSink メソッドのパラメーターとして渡します。
ITPluggableTerminalEventSink* pEventSink;
HRESULT hr = CreateEventSink( &pEventSink);
// If (hr != S_OK) process the error here.
hr = pEventRegistration->RegisterSink( pEventSink );
// If (hr != S_OK) process the error here.
ITPluggableTerminalEventSinkRegistration 呼び出しを実装するターミナルには、インターフェイスが格納されます。 ポインターは、ターミナルがイベントを発生するときに使用されます。
イベント シンクは、 UnregisterSink を使用して登録解除できます。
hr = pEventRegistration->UnregisterSink();
// If (hr != S_OK) process the error here.