Поделиться через


Метод CBaseFilter.JoinFilterGraph

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Метод JoinFilterGraph уведомляет фильтр о том, что он присоединился к графу фильтра или покинул его. Этот метод реализует метод IBaseFilter::JoinFilterGraph .

Синтаксис

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

Параметры

pGraph

Указатель на интерфейс IFilterGraph диспетчера графов фильтров или значение NULL , если фильтр покидает граф.

pName [in]

Указатель на строку Юникода, содержащую имя фильтра.

Возвращаемое значение

Возвращает S_OK.

Комментарии

Этот метод присваивает переменной-члену CBaseFilter::m_pGraph значение параметра pGraph . Он также запрашивает указатель интерфейса IMediaEventSink и сохраняет его в переменной-члене CBaseFilter::m_pSink . Однако фильтр не учитывает ссылки ни на один из этих интерфейсов. Это приведет к созданию циклического счетчика ссылок, так как диспетчер графа фильтров сохраняет количество ссылок на фильтре.

Метод копирует строку, указанную параметром pName , в переменную-член CBaseFilter::m_pName .

Требования

Требование Значение
Заголовок
Amfilter.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

См. также раздел

Класс CBaseFilter