Condividi tramite


Registrazione per gli eventi del terminale pluggable

Il processo di registrazione eventi viene eseguito quando il terminale viene selezionato da un flusso. Nell'implementazione dell'applicazione terminale del metodo SelectTerminal è possibile usare l'interfaccia ITTerminal del terminale collegata al flusso e chiamare QueryInterface per trovare ITPluggableTerminalEventSinkRegistration.

HRESULT hr = E_FAIL;
ITPluggableTerminalEventSinkRegistration* pEventRegistration = NULL;
hr = pTerminal->QueryInterface( 
    IID_ITPluggableTerminalEventSinkRegistration,
    (void**)& pEventRegistration
);

Se la chiamata QueryInterface ha esito positivo, è possibile chiamare il metodo RegisterSink . A questo scopo, è necessario creare un oggetto che implementa l'interfaccia ITPluggableTerminalEventSink . Questa interfaccia viene passata come parametro del metodo 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. 

Il terminale che implementa la chiamata ITPluggableTerminalEventSinkRegistration archivierà l'interfaccia. Il puntatore verrà usato quando il terminale attiverà un evento.

È possibile annullare la registrazione del sink di eventi usando UnregisterSink.

hr = pEventRegistration->UnregisterSink();
// If (hr != S_OK) process the error here.