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 |
---|---|
|
O pino não será bloqueado em uma chamada para Receive. |
|
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 |
|
Biblioteca |
|