Metodo IBaseFilter::JoinFilterGraph (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 JoinFilterGraph metodo notifica al filtro aggiunto o lasciato il grafico del filtro.

Sintassi

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

Parametri

[in] pGraph

Puntatore all'interfaccia IFilterGraph di Filter Graph Manager o NULL se il filtro lascia il grafico.

[in] pName

Puntatore a una stringa di caratteri wide che specifica un nome per il filtro.

Valore restituito

Restituisce S_OK se ha esito positivo o un valore HRESULT che indica la causa dell'errore.

Commenti

Quando Filter Graph Manager aggiunge un filtro al grafico del filtro, chiama questo metodo con un puntatore a se stesso. Assegna un nome per questa istanza del filtro tramite il parametro pName . Il nome può essere recuperato chiamando il metodo IBaseFilter::QueryFilterInfo .

Quando Filter Graph Manager rimuove il filtro dal grafico, chiama questo metodo con un puntatore NULL .

Le applicazioni non devono mai chiamare questo metodo. Per aggiungere un filtro al grafico, chiamare il metodo IFilterGraph::AddFilter nella gestione grafo del filtro.

Filtrare gli sviluppatori: il filtro può archiviare il puntatore dell'interfaccia IFilterGraph ed eseguirne una query per altre interfacce di Filter Graph Manager. Tuttavia, non deve mai contenere un conteggio dei riferimenti in Filter Graph Manager. In questo modo viene creato un conteggio di riferimenti circolare, perché Filter Graph Manager mantiene un conteggio dei riferimenti sul filtro. Un conteggio di riferimenti circolari impedisce il rilascio corretto dell'interfaccia, che può causare un deadlock. L'interfaccia IFilterGraph è garantita per essere valida fino a quando Filter Graph Manager chiama di nuovo questo metodo con il valore NULL. Per un'implementazione di questo metodo, vedere il metodo CBaseFilter::JoinFilterGraph .

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 IBaseFilter