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


Метод IAsyncReader::WaitForNext (strmif.h)

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

Метод WaitForNext ожидает завершения следующего ожидающего запроса на чтение.

Синтаксис

HRESULT WaitForNext(
  [in]  DWORD        dwTimeout,
  [out] IMediaSample **ppSample,
  [out] DWORD_PTR    *pdwUser
);

Параметры

[in] dwTimeout

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

[out] ppSample

Адрес переменной, получающей указатель интерфейса IMediaSample .

[out] pdwUser

Указатель на переменную, которая получает значение параметра dwUser, указанное в методе IAsyncReader::Request .

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

Возвращает значение HRESULT . Ниже приведены возможные значения.

Код возврата Описание
VFW_E_TIMEOUT
Истекло время ожидания или закрепление сбрасывается.
VFW_E_WRONG_STATE
Штырь очищается.
E_FAIL
Произошла ошибка чтения.
S_OK
Успешно.
S_FALSE
Достигнут конец файла; получено меньше байтов, чем запрошено.

Комментарии

Если метод завершается успешно, параметр ppSample содержит указатель на образец носителя, буфер которого содержит запрошенные данные. Вызовите метод IMediaSample::GetTime и разделите результаты на 10 000 000, чтобы определить начальные и стоп-байты. Примеры могут возвращаться не по порядку. Отпустите пример, когда завершите обработку данных.

Метод завершается ошибкой, если контакт выполняет очистку. Однако он может вернуть пустой образец в ppSample. Если параметр *ppSample не равен NULL, отпустите пример и удалите его. Дополнительные сведения см. в разделе IAsyncReader::BeginFlush.

При возникновении ошибки чтения исходный фильтр отправляет событие ошибки в диспетчер фильтров графов; вызывающий объект не должен сигнализировать об ошибке.

Требования

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

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

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

Интерфейс IAsyncReader