Compartilhar via


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

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O GetEventHandle método recupera um identificador para um evento de redefinição manual que permanece sinalizado enquanto a fila contém notificações de evento.

Sintaxe

HRESULT GetEventHandle(
  [out] OAEVENT *hEvent
);

Parâmetros

[out] hEvent

Ponteiro para uma variável que recebe o identificador de evento.

Retornar valor

Returns S_OK.

Comentários

O Gerenciador de Grafo de Filtro mantém um evento de redefinição manual que reflete o estado da fila de eventos. Se a fila contiver notificações de evento, o evento de redefinição manual será sinalizado. Se a fila estiver vazia, o método IMediaEvent::GetEvent redefinirá o evento.

Um aplicativo pode usar esse evento para determinar o estado da fila. Primeira chamada GetEventHandle para obter um identificador para o evento. Aguarde até que o evento seja sinalizado, usando uma função como WaitForSingleObject. Quando o evento for sinalizado, chame o método IMediaEvent::GetEvent para recuperar a próxima notificação de evento da fila. O Gerenciador de Grafo de Filtro mantém o evento sinalizado até que a fila esteja vazia; em seguida, ele redefine o evento.

Não feche o identificador de evento retornado por esse método, pois o identificador de evento é usado internamente pelo grafo de filtro. Além disso, não use o identificador depois de liberar o Gerenciador de Grafo de Filtro, pois o identificador se torna inválido depois que o Gerenciador de Grafo de Filtro é destruído. (Para evitar esse erro, é uma boa ideia duplicar o identificador chamando DuplicateHandle e usar a duplicata em vez do identificador original. Feche o identificador duplicado quando terminar.)

Para compatibilidade de Automação, esse método usa um ponteiro para um tipo OAEVENT . No C++, declare uma variável do tipo HANDLE e converta um ponteiro OAEVENT da seguinte maneira:


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

Outra maneira de os aplicativos monitorarem a fila de eventos é chamando o método IMediaEventEx::SetNotifyWindow .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho control.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Códigos de erro e êxito

IMediaEvent Interface