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


Метод CBasePin.EnumMediaTypes

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

Метод EnumMediaTypes перечисляет предпочтительные типы мультимедиа контакта. Этот метод реализует метод IPin::EnumMediaTypes .

Синтаксис

HRESULT EnumMediaTypes(
   IEnumMediaTypes **ppEnum
);

Параметры

ppEnum

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

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

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

Код возврата Описание
S_OK
Успешно.
E_OUTOFMEMORY
Недостаточно памяти.
E_POINTER
Аргумент указателя NULL.

Комментарии

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

Интерфейс IEnumMediaTypes работает как стандартный перечислитель COM. Дополнительные сведения см. в разделе Перечисление объектов в графе фильтра. Если метод выполняется успешно, интерфейс IEnumMediaTypes имеет число невыполненных ссылок. Не забудьте освободить его, когда все будет готово.

Базовый класс CEnumMediaTypes реализует IEnumMediaTypes. Он вызывает метод CBasePin::GetMediaType контакта для перечисления типов мультимедиа.

Требования

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

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

Класс CBasePin