Condividi tramite


Metodo IMediaEvent::GetEventHandle (control.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il GetEventHandle metodo recupera un handle per un evento di reimpostazione manuale che rimane segnalato mentre la coda contiene notifiche di evento.

Sintassi

HRESULT GetEventHandle(
  [out] OAEVENT *hEvent
);

Parametri

[out] hEvent

Puntatore a una variabile che riceve l'handle eventi.

Valore restituito

Restituisce S_OK.

Commenti

Filter Graph Manager mantiene un evento di reimpostazione manuale che riflette lo stato della coda di eventi. Se la coda contiene notifiche di evento, viene segnalato l'evento di reimpostazione manuale. Se la coda è vuota, il metodo IMediaEvent::GetEvent reimposta l'evento.

Un'applicazione può usare questo evento per determinare lo stato della coda. Prima chiamata GetEventHandle per ottenere un handle all'evento. Attendere che l'evento venga segnalato usando una funzione come WaitForSingleObject. Quando l'evento viene segnalato, chiamare il metodo IMediaEvent::GetEvent per recuperare la notifica dell'evento successivo dalla coda. Filter Graph Manager mantiene l'evento segnalato fino a quando la coda non è vuota; quindi reimposta l'evento.

Non chiudere l'handle di eventi restituito da questo metodo, perché l'handle eventi viene usato internamente dal grafico del filtro. Inoltre, non usare l'handle dopo aver rilasciato Filter Graph Manager, perché l'handle diventa non valido dopo l'eliminazione di Filter Graph Manager. Per evitare questo errore, è consigliabile duplicare l'handle chiamando DuplicateHandle e usare il duplicato anziché l'handle originale. Chiudere l'handle duplicato al termine.

Per la compatibilità di Automazione, questo metodo accetta un puntatore a un tipo OAEVENT . In C++, dichiarare una variabile di tipo HANDLE e eseguirne il cast un puntatore OAEVENT , come indicato di seguito:


HANDLE hEvent;
GetEventHandle( (OAEVENT*) &hEvent );

Un altro modo per monitorare la coda di eventi consiste nel chiamare il metodo IMediaEventEx::SetNotifyWindow .

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione control.h (includere Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici errore e esito positivo

Interfaccia IMediaEvent