Partager via


Inscription aux événements de terminal enfichable

Le processus d’inscription d’événement a lieu lorsque le terminal est sélectionné par un flux. Dans l’implémentation de l’application terminale de la méthode SelectTerminal , nous pouvons utiliser l’interface ITTerminal du terminal qui a été attaché au flux et appeler QueryInterface pour rechercher ITPluggableTerminalEventSinkRegistration.

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

Si l’appel QueryInterface réussit, nous pouvons appeler la méthode RegisterSink . À cet effet, nous devons créer un objet qui implémente l’interface ITPluggableTerminalEventSink . Nous transmettons cette interface en tant que paramètre de la méthode 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. 

Le terminal qui implémente l’appel ITPluggableTerminalEventSinkRegistration stocke l’interface. Le pointeur est utilisé lorsque le terminal déclenche un événement.

Le récepteur d’événements peut être désinscrit à l’aide de UnregisterSink.

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