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


Метод CEnumMediaTypes.Next

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

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

Синтаксис

HRESULT Next(
   ULONG         cMediaTypes,
   AM_MEDIA_TYPE **ppMediaTypes,
   ULONG         *pcFetched
);

Параметры

cMediaTypes

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

ppMediaTypes

Массив указателей на AM_MEDIA_TYPE структуры cPins размера.

pcFetched

Указатель на переменную, которая получает количество типов носителей, возвращенных методом. Может иметь значение NULL, если cMediaTypes имеет значение 1.

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

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

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

Комментарии

Если метод выполнен успешно, массив, заданный параметром ppMediaTypes , содержит указатели на AM_MEDIA_TYPE структуры. Число структур равно *pcFetched. Освободите каждый тип мультимедиа, вызвав функцию DeleteMediaType .

Этот метод вызывает метод CBasePin::GetMediaType контакта для получения типов мультимедиа.

Требования

Требование Значение
Заголовок
Amfilter.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

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

Класс CEnumMediaTypes