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


Метод IEnumMediaTypes::Next (strmif.h)

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

Метод Next извлекает указанное количество типов мультимедиа.

Синтаксис

HRESULT Next(
  [in]  ULONG         cMediaTypes,
  [out] AM_MEDIA_TYPE **ppMediaTypes,
  [out] ULONG         *pcFetched
);

Параметры

[in] cMediaTypes

Количество извлекаемых типов мультимедиа.

[out] ppMediaTypes

Адрес массива указателей AM_MEDIA_TYPE . Число элементов в массиве задается в параметре cMediaTypes .

[out] pcFetched

Получает количество типов мультимедиа, возвращаемых в ppMediaTypes. Этот параметр может иметь значение NULL, если cMediaTypes имеет значение 1.

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

Возвращает одно из следующих значений HRESULT .

Код возврата Описание
S_FALSE
Не удалось получить столько типов мультимедиа, сколько запрошено.
S_OK
Успешно.
E_INVALIDARG
Недопустимый аргумент.
E_POINTER
Аргумент указателя NULL.
VFW_E_ENUM_OUT_OF_SYNC
Состояние закрепления изменилось и теперь несовместимо с перечислителем.

Комментарии

Вызывающий объект передает массив указателей AM_MEDIA_TYPE в ppMediaTypes. Метод выделяет число AM_MEDIA_TYPE структур, равное cMediaTypes или числу типов мультимедиа, оставшихся в перечислении, в зависимости от того, какие из них меньше. Число выделенных структур возвращается в pcFetched. Удалите каждую структуру, вызвав функцию DeleteMediaType .

Если набор типов мультимедиа изменяется, перечислитель становится несогласованным с закреплением-владельцем. В этом случае метод возвращает VFW_E_ENUM_OUT_OF_SYNC. Отмените все данные, полученные при предыдущих вызовах перечислителя, так как они могут быть недопустимыми. Обновите перечислитель, вызвав метод IEnumMediaTypes::Reset . Затем можно безопасно вызвать метод Next .

Требования

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

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

Перечисление типов мультимедиа

Коды ошибок и успешного выполнения

Интерфейс IEnumMediaTypes