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


Метод IFilterGraph::AddFilter (strmif.h)

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

Метод AddFilter добавляет фильтр в граф.

Синтаксис

HRESULT AddFilter(
  [in] IBaseFilter *pFilter,
  [in] LPCWSTR     pName
);

Параметры

[in] pFilter

Указатель на интерфейс IBaseFilter добавляемого фильтра.

[in] pName

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

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

Возвращает значение HRESULT . Ниже приведены возможные значения.

Код возврата Описание
S_OK
Успешно.
VFW_S_DUPLICATE_NAME
Успешно добавлен фильтр с повторяющимся именем.
E_FAIL
Ошибка.
E_OUTOFMEMORY
Недостаточно памяти.
E_POINTER
Аргумент указателя NULL.
VFW_E_CERTIFICATION_FAILURE
Использование этого фильтра ограничивается программным ключом.
VFW_E_DUPLICATE_NAME
Не удалось добавить фильтр с повторяющимся именем.

Комментарии

Имя фильтра может иметь значение NULL, и в этом случае диспетчер фильтров графов создает имя. Если имя не равно NULL и не является уникальным, этот метод изменит имя при попытке создать новое уникальное имя. В случае успешного выполнения этот метод возвращает VFW_S_DUPLICATE_NAME. Если не удается создать уникальное имя, возвращается VFW_E_DUPLICATE_NAME.

AddFilter вызывает метод фильтра IBaseFilter::JoinFilterGraph , чтобы сообщить фильтру о его добавлении. AddFilter необходимо вызвать перед попыткой использовать метод IGraphBuilder::Connect, IFilterGraph::ConnectDirect или IGraphBuilder::Render для подключения или отрисовки контактов, принадлежащих добавленным фильтру.

Диспетчер графов фильтров содержит счетчик ссылок в фильтре до тех пор, пока фильтр не будет удален из графа или пока диспетчер фильтров графов не будет освобожден.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)
Библиотека Strmiids.lib

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

Коды ошибок и успешности

Интерфейс IFilterGraph