Compartilhar via


Método IBaseFilter::JoinFilterGraph (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 JoinFilterGraph método notifica o filtro de que ele ingressou ou deixou o grafo de filtro.

Sintaxe

HRESULT JoinFilterGraph(
  [in] IFilterGraph *pGraph,
  [in] LPCWSTR      pName
);

Parâmetros

[in] pGraph

Ponteiro para a interface IFilterGraph do Filter Graph Manager ou NULL se o filtro estiver saindo do grafo.

[in] pName

Ponteiro para uma cadeia de caracteres largos que especifica um nome para o filtro.

Retornar valor

Retorna S_OK se tiver êxito ou um valor HRESULT que indica a causa do erro.

Comentários

Quando o Gerenciador de Grafo de Filtro adiciona um filtro ao grafo de filtro, ele chama esse método com um ponteiro para si mesmo. Ele atribui um nome para essa instância do filtro por meio do parâmetro pName . O nome pode ser recuperado chamando o método IBaseFilter::QueryFilterInfo .

Quando o Gerenciador de Grafo de Filtro remove o filtro do grafo, ele chama esse método com um ponteiro NULL .

Os aplicativos nunca devem chamar esse método. Para adicionar um filtro ao grafo, chame o método IFilterGraph::AddFilter no gerenciador de grafo de filtro.

Filtrar desenvolvedores: o filtro pode armazenar o ponteiro da interface IFilterGraph e consultá-lo para outras interfaces do Gerenciador de Grafo de Filtro. No entanto, ele nunca deve manter uma contagem de referência no Gerenciador de Grafo de Filtro. Isso cria uma contagem de referência circular, pois o Gerenciador de Grafo de Filtro mantém uma contagem de referência no filtro. Uma contagem de referência circular impede que a interface seja liberada corretamente, o que pode levar a um deadlock. A interface IFilterGraph tem a garantia de ser válida até que o Gerenciador de Grafo de Filtro chame esse método novamente com o valor NULL. Para obter uma implementação desse método, consulte o método CBaseFilter::JoinFilterGraph .

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

IBaseFilter Interface