CBaseInputPin.ReceiveCanBlock-Methode

Die ReceiveCanBlock -Methode bestimmt, ob Aufrufe der IMemInputPin::Receive-Methode blockiert werden können. Diese Methode implementiert die IMemInputPin::ReceiveCanBlock-Methode.

Syntax

HRESULT ReceiveCanBlock();

Parameter

Diese Methode hat keine Parameter.

Rückgabewert

Gibt einen HRESULT-Wert zurück. Mögliche Werte sind die in der folgenden Tabelle aufgeführten Werte.

Rückgabecode Beschreibung
S _ FALSE
Die Stecknadel wird bei einem Aufruf von Receive nicht blockiert.
S _ OK
Die Stecknadel kann bei einem Aufruf von Receive blockiert werden.

Hinweise

Gibt S _ FALSE zurück, wenn Aufrufe der Receive-Methode garantiert nicht blockiert werden. Andernfalls wird S _ OK oder ein Fehlercode zurückgegeben. Wenn die Receive-Methode Receive für einen Downstreampin aufruft, wird der Downstreampin möglicherweise blockiert. ReceiveCanBlock muss diesen Faktor berücksichtigen.

Ein Upstreamfilter kann diese Methode verwenden, um seine Threadingstrategie zu bestimmen. Wenn die Receive-Methode blockiert werden kann, entscheidet sich der Upstreamfilter möglicherweise für die Verwendung eines Arbeitsthreads, der Daten puffert. Eine Implementierung dieser Strategie finden Sie in der COutputQueue-Klasse.

In der Basisklasse gibt diese Methode S OK zurück, wenn eine der folgenden Punkte _ zutrifft:

  • Der Filter verfügt über keine Ausgabepins.
  • Ein Eingabepin, der mit diesem Filter verbunden ist, signalisiert, dass er möglicherweise blockiert wird.
  • Ein Eingabepin, der mit diesem Filter verbunden ist, unterstützt die IMemInputPin-Schnittstelle nicht.

Anforderungen

Anforderung Wert
Header
Amfilter.h (include Streams.h)
Bibliothek
Strmbase.lib (Verkaufsbuilds);
Strmbasd.lib (Debugbuilds)

Weitere Informationen

CBaseInputPin-Klasse