註冊插入式終端機事件

當資料流程選取終端機時,就會發生事件註冊程式。 在終端機應用程式的 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.