Метод IGraphBuilder::AddSourceFilter (strmif.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Метод AddSourceFilter
добавляет фильтр источника для указанного файла в граф фильтра.
Синтаксис
HRESULT AddSourceFilter(
[in] LPCWSTR lpcwstrFileName,
[in] LPCWSTR lpcwstrFilterName,
[out] IBaseFilter **ppFilter
);
Параметры
[in] lpcwstrFileName
Указывает имя загружаемого файла.
[in] lpcwstrFilterName
Указывает имя исходного фильтра.
[out] ppFilter
Получает указатель на интерфейс фильтра IBaseFilter . Вызывающий объект должен освободить интерфейс .
Возвращаемое значение
Возвращает HRESULT. Ниже приведены возможные значения.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Фильтр источника не поддерживает интерфейс IFileSourceFilter . |
|
Недостаточно памяти. |
|
Аргумент указателя NULL. |
|
Не удалось загрузить исходный фильтр для этого файла. |
|
Файл или объект не найден. |
|
Тип носителя этого файла не распознался. |
Комментарии
Этот метод выполняет поиск установленного фильтра, который может считывать указанный файл. Если он находит его, метод добавляет его в граф фильтра и возвращает указатель на интерфейс фильтра IBaseFilter . Чтобы определить тип носителя и схему сжатия файла, диспетчер фильтров графов считывает первые несколько байтов файла и ищет конкретные шаблоны байтов, как описано в статье Регистрация настраиваемого типа файла.
Приложение отвечает за построение остальной части графа фильтра. Для этого вызовите IBaseFilter::EnumPins , чтобы перечислить выходные контакты в исходном фильтре. Затем используйте метод IGraphBuilder::Connect или метод IGraphBuilder::Render .
Если метод выполняется успешно, интерфейс IBaseFilter имеет число невыполненных ссылок. Вызывающий объект должен освободить интерфейс .
Чтобы отобразить файл для воспроизведения по умолчанию, используйте метод IGraphBuilder::RenderFile .
Диспетчер графов фильтров содержит счетчик ссылок в фильтре до тех пор, пока фильтр не будет удален из графа или пока диспетчер фильтров графов не будет освобожден.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | strmif.h (включая Dshow.h) |
Библиотека | Strmiids.lib |