Метод CBaseInputPin.ReceiveCanBlock

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

Метод ReceiveCanBlock определяет, могут ли блокироваться вызовы метода IMemInputPin::Receive . Этот метод реализует метод IMemInputPin::ReceiveCanBlock .

Синтаксис

HRESULT ReceiveCanBlock();

Параметры

Этот метод не имеет параметров.

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

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

Код возврата Описание
S_FALSE
Закрепление не будет блокироваться при вызове метода Receive.
S_OK
Закрепление может блокироваться при вызове receive.

Комментарии

Возвращать S_FALSE, если вызовы метода Receive гарантированно не блокируются. В противном случае верните S_OK или код ошибки. Если метод Receive вызывает Receive для подчиненного контакта, нисходящий контакт может блокироваться. ReceiveCanBlock необходимо учитывать этот фактор.

Фильтр вышестоящий может использовать этот метод для определения стратегии потоков. Если метод Receive может блокироваться, фильтр вышестоящий может решить использовать рабочий поток, буферизующий данные. Сведения о реализации этой стратегии см. в разделе Класс COutputQueue .

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

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

Требования

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

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

Класс CBaseInputPin