Метод 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 . Возможные значения включают значения, приведенные в следующей таблице.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Время ожидания истекло. |
Комментарии
Если в очереди нет события, этот метод ожидает до миллисекунда msTimeout для получения события. Избегайте использования интервала ожидания INFINITE, так как потоки не могут обрабатывать сообщения во время ожидания в GetEvent
. При вызове GetEvent
из того же потока, который обрабатывает сообщения Windows, укажите только небольшое время ожидания, чтобы реагировать на ввод данных пользователем.
После вызова GetEvent
вызовите метод IMediaEvent::FreeEventParams , чтобы освободить все ресурсы, выделенные для параметров события.
Список кодов уведомлений и значений параметров событий см. в разделе Коды уведомлений о событиях.
Так как этот метод удаляет событие из очереди событий графа фильтров, несколько клиентов не могут отслеживать события из одного графа.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | control.h (включая Dshow.h) |
Библиотека | Strmiids.lib |