Método CBaseInputPin.ReceiveCanBlock

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O ReceiveCanBlock método determina se as chamadas para o método IMemInputPin::Receive podem ser bloqueadas. Esse método implementa o método IMemInputPin::ReceiveCanBlock .

Sintaxe

HRESULT ReceiveCanBlock();

Parâmetros

Esse método não tem parâmetros.

Retornar valor

Retorna um valor HRESULT . O valor possível inclui aqueles listados na tabela a seguir.

Código de retorno Descrição
S_FALSE
O pino não será bloqueado em uma chamada para Receive.
S_OK
O pino pode ser bloqueado em uma chamada para Receive.

Comentários

Retornar S_FALSE se houver garantia de que as chamadas para o método Receive não serão bloqueadas. Caso contrário, retorne S_OK ou um código de erro. Se o método Receive chamar Receive em um pin downstream, o pin downstream poderá ser bloqueado; ReceiveCanBlock deve levar esse fator em conta.

Um filtro upstream pode usar esse método para determinar sua estratégia de threading. Se o método Receive puder ser bloqueado, o filtro upstream poderá decidir usar um thread de trabalho que armazena dados em buffer. Consulte a classe COutputQueue para obter uma implementação dessa estratégia.

Na classe base, esse método retorna S_OK quando qualquer um dos seguintes são verdadeiros:

  • O filtro não tem pinos de saída.
  • Um pino de entrada conectado a esse filtro sinaliza que ele pode ser bloqueado.
  • Um pino de entrada conectado a esse filtro não dá suporte à interface IMemInputPin .

Requisitos

Requisito Valor
parâmetro
Amfilter.h (inclua Streams.h)
Biblioteca
Strmbase.lib (builds de varejo);
Strmbasd.lib (builds de depuração)

Confira também

Classe CBaseInputPin