Freigeben über


CBaseInputPin.ReceiveCanBlock-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

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 Pin wird bei einem Anruf von Receive nicht blockiert.
S_OK
Die Anheftung kann bei einem Aufruf von Receive blockiert werden.

Bemerkungen

Gibt S_FALSE zurück, wenn Aufrufe der Receive-Methode garantiert nicht blockiert werden. Andernfalls geben Sie S_OK oder einen Fehlercode zurück. Wenn die Receive-MethodeReceive über einen Downstream-Pin aufruft, kann der Downstream-Pin blockiert werden. ReceiveCanBlock muss diesen Faktor berücksichtigen.

Ein Upstream Filter kann diese Methode verwenden, um seine Threadingstrategie zu bestimmen. Wenn die Receive-Methode möglicherweise blockiert wird, entscheidet sich der Upstream Filter möglicherweise für die Verwendung eines Workerthreads, 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 mit diesem Filter verbundener Eingabenadel signalisiert, dass er blockiert werden kann.
  • Ein mit diesem Filter verbundener Eingabenadel unterstützt die IMemInputPin-Schnittstelle nicht.

Anforderungen

Anforderung Wert
Header
Amfilter.h (streams.h einschließen)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CBaseInputPin-Klasse