Метод CBasePin.AgreeMediaType

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

Метод AgreeMediaType выполняет поиск типа носителя, чтобы установить соединение с закреплением.

Синтаксис

virtual HRESULT AgreeMediaType(
         IPin       *pReceivePin,
   const CMediaType *pmt
);

Параметры

pReceivePin

Указатель на интерфейс IPin принимающего контакта.

Pmt

Указатель на объект CMediaType , указывающий тип носителя или значение NULL.

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

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

Код возврата Описание
S_OK
Успешно.
VFW_E_NO_ACCEPTABLE_TYPES
Допустимый тип носителя не найден.

Комментарии

Если параметр pmt не равен NULL и полностью указывает тип носителя, этот метод пытается установить соединение с использованием этого типа мультимедиа. Если попытка завершается неудачно, метод возвращает ошибку.

Если параметр pmt имеет значение NULL или указывает частичный тип носителя, этот метод пытается использовать типы носителей в следующем порядке:

  1. Предпочитаемые типы носителей для получения пин-кода.
  2. Предпочтительные типы носителей этого закрепления.

Предпочтительные типы мультимедиа перечисляются с помощью метода CBasePin::EnumMediaTypes , а результирующий перечислитель передается методу CBasePin::TryMediaTypes .

Требования

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

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

Класс CBasePin