Поделиться через


Метод IMediaEvent::GetEvent (control.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Метод GetEvent извлекает следующее уведомление о событии из очереди событий.

Синтаксис

HRESULT GetEvent(
  [out] long     *lEventCode,
  [out] LONG_PTR *lParam1,
  [out] LONG_PTR *lParam2,
  [in]  long     msTimeout
);

Параметры

[out] lEventCode

Указатель на переменную, получающую код события.

[out] lParam1

Указатель на переменную, которая получает первый параметр события.

[out] lParam2

Указатель на переменную, которая получает второй параметр события.

[in] msTimeout

Интервал времени ожидания в миллисекундах. Используйте infinite, чтобы блокировать, пока не возникнет событие.

Возвращаемое значение

Возвращает значение HRESULT . Возможные значения включают значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Успешно.
E_ABORT
Время ожидания истекло.

Комментарии

Если в очереди нет события, этот метод ожидает до миллисекунда msTimeout для получения события. Избегайте использования интервала ожидания INFINITE, так как потоки не могут обрабатывать сообщения во время ожидания в GetEvent. При вызове GetEvent из того же потока, который обрабатывает сообщения Windows, укажите только небольшое время ожидания, чтобы реагировать на ввод данных пользователем.

После вызова GetEventвызовите метод IMediaEvent::FreeEventParams , чтобы освободить все ресурсы, выделенные для параметров события.

Список кодов уведомлений и значений параметров событий см. в разделе Коды уведомлений о событиях.

Так как этот метод удаляет событие из очереди событий графа фильтров, несколько клиентов не могут отслеживать события из одного графа.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header control.h (включая Dshow.h)
Библиотека Strmiids.lib

См. также раздел

Коды ошибок и успешности

Интерфейс IMediaEvent

IMediaEventEx