플러그형 터미널 이벤트 등록
이벤트 등록 프로세스는 스트림에서 터미널을 선택할 때 발생합니다. 터미널 애플리케이션의 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.