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


Метод CBasePin.ReceiveConnection

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

Метод ReceiveConnection принимает подключение из другого контакта. Этот метод реализует метод IPin::ReceiveConnection .

Синтаксис

HRESULT ReceiveConnection(
   IPin          *pConnector,
   AM_MEDIA_TYPE *pmt
);

Параметры

pConnector

Указатель на интерфейс IPin соединительного контакта.

Pmt

Указатель на структуру AM_MEDIA_TYPE , указывающую тип носителя.

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

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

Код возврата Описание
S_OK
Успешно.
E_POINTER
Аргумент указателя NULL.
VFW_E_ALREADY_CONNECTED
Закрепление уже подключено.
VFW_E_NOT_STOPPED
Фильтр активен, а закрепление не поддерживает динамическое повторное подключение.
VFW_E_TYPE_NOT_ACCEPTED
Указанный тип носителя недопустим.

Комментарии

Выходной контакт вызывает этот метод для входного контакта. Если входной пин-код возвращает код ошибки, подключение завершается сбоем.

В базовом классе этот метод выполняет следующие действия:

  • Проверяет, подключен ли контакт.
  • Проверяет, остановлен ли фильтр.
  • Вызывает метод CBasePin::CheckConnect , чтобы проверить, подходит ли соединительная закрепка.
  • Вызывает метод CBasePin::CheckMediaType для проверки допустимости типа мультимедиа.

Если все эти шаги будут выполнены успешно, метод вызывает методы CBasePin::CompleteConnect и SetMediaType для завершения подключения. Эти методы сохраняют тип носителя и указатель на выходную закрепку.

В случае сбоя CheckConnect или CheckMediaType базовый класс вызывает метод CBasePin::BreakConnect , чтобы разорвать подключение, а затем возвращает код ошибки из ReceiveConnection.

Требования

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

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

Класс CBasePin