Share via


Método IMediaEvent::GetEventHandle (control.h)

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El GetEventHandle método recupera un identificador de un evento de restablecimiento manual que permanece señalado mientras la cola contiene notificaciones de eventos.

Sintaxis

HRESULT GetEventHandle(
  [out] OAEVENT *hEvent
);

Parámetros

[out] hEvent

Puntero a una variable que recibe el identificador de eventos.

Valor devuelto

Devuelve S_OK.

Comentarios

Filter Graph Manager mantiene un evento de restablecimiento manual que refleja el estado de la cola de eventos. Si la cola contiene notificaciones de eventos, se señala el evento de restablecimiento manual. Si la cola está vacía, el método IMediaEvent::GetEvent restablece el evento.

Una aplicación puede usar este evento para determinar el estado de la cola. En primer lugar, llame GetEventHandle a para obtener un identificador para el evento. Espere a que se señale el evento mediante una función como WaitForSingleObject. Cuando se señale el evento, llame al método IMediaEvent::GetEvent para recuperar la siguiente notificación de evento de la cola. El Administrador de gráficos de filtros mantiene el evento señalado hasta que la cola está vacía; a continuación, restablece el evento.

No cierre el identificador de eventos devuelto por este método, porque el gráfico de filtros usa internamente el identificador de eventos. Además, no use el identificador después de liberar el Administrador de gráficos de filtros, ya que el identificador deja de ser válido después de destruir el Administrador de gráficos de filtros. (Para evitar este error, es recomendable duplicar el identificador mediante una llamada a DuplicateHandle y usar el duplicado en lugar del identificador original. Cierre el identificador duplicado cuando haya terminado).

Para la compatibilidad con Automation, este método toma un puntero a un tipo OAEVENT . En C++, declare una variable de tipo HANDLE y convierta en un puntero OAEVENT , como se indica a continuación:


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

Otra manera de que las aplicaciones supervisen la cola de eventos es llamar al método IMediaEventEx::SetNotifyWindow .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado control.h (incluir Dshow.h)
Library Strmiids.lib

Consulte también

Códigos de error y éxito

IMediaEvent (Interfaz)