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 |
---|---|
|
Erfolg. |
|
Fehler. |
|
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 |