注册可插入终端事件

当流选择终端时,将发生事件注册过程。 在 终端应用程序的 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.