Метод CBaseInputPin.ReceiveCanBlock

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

Синтаксис

HRESULT ReceiveCanBlock();

Параметры

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

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

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

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

Remarks

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

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

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

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

Требования

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

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

Класс CBaseInputPin