Compartilhar via


Método ICaptureGraphBuilder2::SetOutputFileName (strmif.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O SetOutputFileName método cria a seção de gravação de arquivo do grafo de filtro.

Sintaxe

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

Parâmetros

[in] pType

Ponteiro para um GUID que representa o subtipo de mídia da saída ou o CLSID (identificador de classe) de um filtro multiplexer ou filtro de gravador de arquivos. Se você especificar um subtipo de mídia, ele deverá ser um dos seguintes:

Valor Descrição
MEDIASUBTYPE_Avi Audio-Video Interleaved (AVI)
MEDIASUBTYPE_Asf Advanced Systems Format (ASF)

[in] lpstrFile

Ponteiro para uma cadeia de caracteres largos que contém o nome do arquivo de saída.

[out] ppf

Endereço de um ponteiro que recebe a interface IBaseFilter do multiplexer.

[out] ppSink

Endereço de um ponteiro que recebe a interface IFileSinkFilter do gravador de arquivos. Pode ser NULL.

Retornar valor

Retorna um valor HRESULT . Os possíveis valores incluem os seguintes.

Código de retorno Descrição
S_OK
Êxito.
E_FAIL
Falha.
E_POINTER
Argumento de ponteiro NULL.

Comentários

Esse método cria um filtro multiplexer com base no valor do parâmetro pType . Para a AVI, ele cria o Filtro AVI Mux. Para o ASF, ele cria o Gravador ASF do WM. Para outros valores, ele cria o filtro identificado pelo CLSID. Ele adiciona o multiplexer ao grafo de filtro e retorna um ponteiro para sua interface IBaseFilter no parâmetro ppf .

Se o multiplexer der suporte à interface IFileSinkFilter , o método chamará IFileSinkFilter::SetFileName para definir o nome do arquivo de saída, usando o valor fornecido no parâmetro lpwstrFile . Se o multiplexer não der suporte à interface IFileSinkFilter , o método adicionará o Filtro de Gravador de Arquivo ao grafo de filtro, conectará o multiplexer ao gravador de arquivos e usará a interface IFileSinkFilter do gravador de arquivos para chamar SetFileName. Se o parâmetro pSink não for NULL, ele receberá um ponteiro para a interface IFileSinkFilter .

Você pode usar o ponteiro para o filtro multiplexer, retornado no parâmetro ppf , como o parâmetro pSink no método ICaptureGraphBuilder2::RenderStream .

Para filtros multiplexer personalizados, o método falhará se o filtro não oferecer suporte a uma conexão em seu pino de saída antes que seus pinos de entrada sejam conectados. Por exemplo, o Exemplo de Filtro WavDest incluído no SDK tem essa limitação.

Se o método for bem-sucedido, a interface IBaseFilter retornada no parâmetro ppf terá uma contagem de referência pendente. Se o método for bem-sucedido e pSink não for NULL, a interface IFileSinkFilter também terá uma contagem de referência pendente. Certifique-se de liberar ambas as interfaces quando terminar de usá-las.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho strmif.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Códigos de erro e êxito

ICaptureGraphBuilder2 Interface