Condividi tramite


Metodo ICaptureGraphBuilder2::SetOutputFileName (strmif.h)

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il SetOutputFileName metodo crea la sezione di scrittura del file del grafico del filtro.

Sintassi

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

Parametri

[in] pType

Puntatore a un GUID che rappresenta il sottotipo multimediale dell'output o l'identificatore di classe (CLSID) di un filtro multiplexer o del writer di file. Se si specifica un sottotipo multimediale, deve essere uno dei seguenti:

Valore Descrizione
MEDIASUBTYPE_Avi Audio-Video Interleaved (AVI)
MEDIASUBTYPE_Asf Advanced Systems Format (ASF)

[in] lpstrFile

Puntatore a una stringa di caratteri wide contenente il nome del file di output.

[out] ppf

Indirizzo di un puntatore che riceve l'interfaccia IBaseFilter di multiplexer.

[out] ppSink

Indirizzo di un puntatore che riceve l'interfaccia IFileSinkFilter del writer del file. Può essere NULL.

Valore restituito

Restituisce un valore HRESULT . Di seguito sono indicati alcuni valori possibili.

Codice restituito Descrizione
S_OK
Operazione completata.
E_FAIL
Esito negativo.
E_POINTER
Argomento puntatore NULL.

Commenti

Questo metodo crea un filtro multiplexer in base al valore del parametro pType . Per AVI, crea il filtro MUX AVI. Per ASF, crea il writer WM ASF. Per altri valori, crea il filtro identificato da CLSID. Aggiunge il multiplexer al grafico del filtro e restituisce un puntatore alla relativa interfaccia IBaseFilter nel parametro ppf .

Se multiplexer supporta l'interfaccia IFileSinkFilter , il metodo chiama IFileSinkFilter::SetFileName per impostare il nome del file di output, usando il valore specificato nel parametro lpwstrFile . Se il multiplexer non supporta l'interfaccia IFileSinkFilter , il metodo aggiunge il filtro del writer file al grafico del filtro, connette il multiplexer al writer di file e usa l'interfaccia IFileSinkFilter del file writer per chiamare SetFileName. Se il parametro pSink non è NULL, riceve un puntatore all'interfaccia IFileSinkFilter .

È possibile usare il puntatore al filtro multiplexer, restituito nel parametro ppf , come parametro pSink nel metodo ICaptureGraphBuilder2::RenderStream .

Per i filtri multiplexer personalizzati, il metodo ha esito negativo se il filtro non supporta una connessione sul pin di output prima che i pin di input siano connessi. Ad esempio, l'esempio di filtro WavDest incluso nell'SDK ha questa limitazione.

Se il metodo ha esito positivo, l'interfaccia IBaseFilter restituita nel parametro ppf ha un numero di riferimenti in sospeso. Se il metodo ha esito positivo e pSink non è NULL, l'interfaccia IFileSinkFilter ha anche un numero di riferimenti in sospeso. Assicurarsi di rilasciare entrambe le interfacce al termine dell'uso.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione strmif.h (include Dshow.h)
Libreria Strmiids.lib

Vedi anche

Codici errore e esito positivo

Interfaccia ICaptureGraphBuilder2