CDynamicOutputPin.StartUsingOutputPin-Methode

Die StartUsingOutputPin -Methode erhält Zugriff auf den Pin für einen Streamingvorgang.

Syntax

virtual HRESULT StartUsingOutputPin();

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 _ OK
Erfolg.
E _ UNEXPECTED
Unerwarteter Fehler.
VFW _ E _ STATE _ CHANGED
Der Filter wurde beendet, oder der Stecknadel wurde geleert.

Hinweise

Rufen Sie diese Methode auf, bevor Sie Methoden aufrufen, die Daten an den verbundenen Eingabepin übermitteln oder den Medientyp der Verbindung ändern. Diese Regel gilt beispielsweise für die folgenden Methoden:

Rufen Sie anschließend die CDynamicOutputPin::StopUsingOutputPin-Methode auf, um den Zugriff auf den Pin freizugeben.

Wenn die Stecknadel blockiert ist, StartUsingOutputPin wartet darauf, dass die Blockierung der Stecknadel aufgehoben wird. Wenn der Filter beendet wird, während die Methode wartet, gibt die Methode sofort VFW _ E _ STATE CHANGED _ zurück. Der Pin behält die Anzahl der Aufrufe StartUsingOutputPin ohne entsprechenden Aufruf von StopUsingOutputPin bei. Wenn ein anderer Thread versucht, den Pin zu blockieren, während diese Anzahl ungleich 0 (null) ist, legt der Pin seinen Blockierungsstatus auf "Ausstehend" fest. Der Pin wird blockiert, sobald alle Streamingvorgänge abgeschlossen sind, im letzten Aufruf von StopUsingOutputPin.

Halten Sie den kritischen Abschnitt CDynamicOutputPin::m _ BlockStateLock nicht bei, wenn Sie diese Methode aufrufen. Andernfalls kann die Blockierung der Stecknadel niemals aufgehoben werden, was zu einem Deadlock führt.

Anforderungen

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

Siehe auch

CDynamicOutputPin-Klasse