Freigeben über


ICaptureGraphBuilder2::SetOutputFileName-Methode (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die SetOutputFileName -Methode erstellt den Abschnitt zum Schreiben der Datei des Filterdiagramms.

Syntax

HRESULT SetOutputFileName(
  [in]  const GUID      *pType,
  [in]  LPCOLESTR       lpstrFile,
  [out] IBaseFilter     **ppf,
  [out] IFileSinkFilter **ppSink
);

Parameter

[in] pType

Zeiger auf eine GUID , die entweder den Medienuntertyp der Ausgabe oder den Klassenbezeichner (CLSID) eines Multiplexerfilters oder Dateischreiberfilters darstellt. Wenn Sie einen Medienuntertyp angeben, muss er einer der folgenden sein:

Wert BESCHREIBUNG
MEDIASUBTYPE_Avi Audio-Video Interleaved (AVI)
MEDIASUBTYPE_Asf Advanced Systems Format (ASF)

[in] lpstrFile

Zeiger auf eine Breitzeichenzeichenfolge, die den Namen der Ausgabedatei enthält.

[out] ppf

Adresse eines Zeigers, der die IBaseFilter-Schnittstelle des Multiplexers empfängt.

[out] ppSink

Adresse eines Zeigers, der die IFileSinkFilter-Schnittstelle des Dateischreibers empfängt. Kann NULL sein.

Rückgabewert

Gibt einen HRESULT-Wert zurück. Die folgenden Werte sind möglich.

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
E_FAIL
Fehler.
E_POINTER
NULL-Zeigerargument.

Hinweise

Diese Methode erstellt einen Multiplexerfilter basierend auf dem Wert des pType-Parameters . Für AVI wird der AVI Mux-Filter erstellt. Für ASF wird der WM ASF Writer erstellt. Für andere Werte wird der filter erstellt, der von der CLSID identifiziert wird. Er fügt den Multiplexer dem Filterdiagramm hinzu und gibt einen Zeiger auf die IBaseFilter-Schnittstelle im ppf-Parameter zurück.

Wenn der Multiplexer die IFileSinkFilter-Schnittstelle unterstützt, ruft die Methode IFileSinkFilter::SetFileName auf, um den Ausgabedateinamen unter Verwendung des im lpwstrFile-Parameter angegebenen Werts festzulegen. Wenn der Multiplexer die IFileSinkFilter-Schnittstelle nicht unterstützt, fügt die Methode dem Filterdiagramm den Dateischreiberfilter hinzu, verbindet den Multiplexer mit dem Dateischreiber und verwendet die IFileSinkFilter-Schnittstelle des Dateischreibers, um SetFileName aufzurufen. Wenn der pSink-Parameter nicht NULL ist, empfängt er einen Zeiger auf die IFileSinkFilter-Schnittstelle .

Sie können den Zeiger auf den Multiplexerfilter verwenden, der im ppf-Parameter zurückgegeben wird, als pSink-Parameter in der ICaptureGraphBuilder2::RenderStream-Methode .

Bei benutzerdefinierten Multiplexerfiltern schlägt die Methode fehl, wenn der Filter keine Verbindung an seinem Ausgabepin unterstützt, bevor die Eingabestifte verbunden werden. Beispielsweise weist das im SDK enthaltene WavDest-Filterbeispiel diese Einschränkung auf.

Wenn die Methode erfolgreich ist, weist die im ppf-Parameter zurückgegebene IBaseFilter-Schnittstelle eine ausstehende Verweisanzahl auf. Wenn die Methode erfolgreich ist und pSink nicht NULL ist, weist die IFileSinkFilter-Schnittstelle auch eine ausstehende Verweisanzahl auf. Stellen Sie sicher, dass Sie beide Schnittstellen freigeben, wenn Sie sie verwenden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile strmif.h (include Dshow.h)
Bibliothek Strmiids.lib

Weitere Informationen

Fehler- und Erfolgscodes

ICaptureGraphBuilder2-Schnittstelle