Compartilhar via


Método IGraphBuilder::AddSourceFilter (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 AddSourceFilter método adiciona um filtro de origem para um arquivo especificado ao grafo de filtro.

Sintaxe

HRESULT AddSourceFilter(
  [in]  LPCWSTR     lpcwstrFileName,
  [in]  LPCWSTR     lpcwstrFilterName,
  [out] IBaseFilter **ppFilter
);

Parâmetros

[in] lpcwstrFileName

Especifica o nome do arquivo a ser carregado.

[in] lpcwstrFilterName

Especifica um nome para o filtro de origem.

[out] ppFilter

Recebe um ponteiro para a interface IBaseFilter do filtro. O chamador deve liberar a interface.

Retornar valor

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

Código de retorno Descrição
S_OK
Êxito.
E_NOINTERFACE
O filtro de origem não dá suporte à interface IFileSourceFilter .
E_OUTOFMEMORY
Memória insuficiente.
E_POINTER
Argumento de ponteiro NULL.
VFW_E_CANNOT_LOAD_SOURCE_FILTER
Não foi possível carregar o filtro de origem para esse arquivo.
VFW_E_NOT_FOUND
Arquivo ou objeto não encontrado.
VFW_E_UNKNOWN_FILE_TYPE
O tipo de mídia desse arquivo não foi reconhecido.

Comentários

Esse método pesquisa um filtro instalado que pode ler o arquivo especificado. Se encontrar um, o método o adicionará ao grafo de filtro e retornará um ponteiro para a interface IBaseFilter do filtro. Para determinar o tipo de mídia e o esquema de compactação do arquivo, o Gerenciador de Grafo de Filtro lê os primeiros bytes do arquivo, procurando padrões específicos de bytes, conforme documentado no artigo Registrando um tipo de arquivo personalizado.

O aplicativo é responsável por criar o restante do grafo de filtro. Para fazer isso, chame IBaseFilter::EnumPins para enumerar os pinos de saída no filtro de origem. Em seguida, use o método IGraphBuilder::Connect ou o método IGraphBuilder::Render .

Se o método for bem-sucedido, a interface IBaseFilter terá uma contagem de referência pendente. O chamador deve liberar a interface.

Para renderizar um arquivo para reprodução padrão, use o método IGraphBuilder::RenderFile .

O Gerenciador de Grafo de Filtro mantém uma contagem de referência no filtro até que o filtro seja removido do grafo ou o Gerenciador de Grafo de Filtro seja liberado.

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

IGraphBuilder Interface