Metodo CBaseInputPin.ReceiveCanBlock

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il ReceiveCanBlock metodo determina se le chiamate al metodo IMemInputPin::Receive potrebbero bloccarsi. Questo metodo implementa il metodo IMemInputPin::ReceiveCanBlock .

Sintassi

HRESULT ReceiveCanBlock();

Parametri

Questo metodo non presenta parametri.

Valore restituito

Restituisce un valore HRESULT . Il valore possibile include quelli elencati nella tabella seguente.

Codice restituito Descrizione
S_FALSE
Il pin non verrà bloccato in una chiamata a Receive.
S_OK
Il pin potrebbe bloccarsi in una chiamata a Receive.

Commenti

Restituisce S_FALSE se le chiamate al metodo Receive non vengono bloccate. In caso contrario, restituire S_OK o un codice di errore. Se il metodo Receive chiama Receive su un pin downstream, il pin downstream potrebbe bloccare; ReceiveCanBlock deve tenere conto di tale fattore.

Un filtro upstream può usare questo metodo per determinare la strategia di threading. Se il metodo Receive potrebbe bloccarsi, il filtro upstream potrebbe decidere di usare un thread di lavoro che memorizza nel buffer i dati. Per un'implementazione di questa strategia, vedere la classe COutputQueue .

Nella classe di base questo metodo restituisce S_OK quando uno dei valori seguenti è true:

  • Il filtro non ha pin di output.
  • Un pin di input connesso a questo filtro segnala che potrebbe bloccarsi.
  • Un pin di input connesso a questo filtro non supporta l'interfaccia IMemInputPin .

Requisiti

Requisito Valore
Intestazione
Amfilter.h (include Streams.h)
Libreria
Strmbase.lib (build retail);
Strmbasd.lib (build di debug)

Vedi anche

Classe CBaseInputPin