Метод ICaptureGraphBuilder2::SetOutputFileName (strmif.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Метод SetOutputFileName
создает раздел записи файла графа фильтра.
Синтаксис
HRESULT SetOutputFileName(
[in] const GUID *pType,
[in] LPCOLESTR lpstrFile,
[out] IBaseFilter **ppf,
[out] IFileSinkFilter **ppSink
);
Параметры
[in] pType
Указатель на GUID , представляющий либо подтип носителя выходных данных, либо идентификатор класса (CLSID) фильтра мультиплексора или фильтра записи файлов. Если указать подтип носителя, он должен быть одним из следующих:
Значение | Описание |
---|---|
MEDIASUBTYPE_Avi | Audio-Video Interleaved (AVI) |
MEDIASUBTYPE_Asf | Advanced Systems Format (ASF) |
[in] lpstrFile
Указатель на строку расширенных символов, содержащую имя выходного файла.
[out] ppf
Адрес указателя, который получает интерфейс IBaseFilter мультиплексера .
[out] ppSink
Адрес указателя, получающего интерфейс IFileSinkFilter модуля записи файлов. Может иметь значение NULL.
Возвращаемое значение
Возвращает значение HRESULT . Ниже приведены возможные значения.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Ошибка. |
|
Аргумент указателя NULL. |
Комментарии
Этот метод создает фильтр мультиплексоров на основе значения параметра pType . Для AVI создается фильтр мультиплекса AVI. Для ASF создается модуль записи WM ASF. Для других значений он создает фильтр, определяемый идентификатором CLSID. Он добавляет мультиплексор в граф фильтра и возвращает указатель на интерфейс IBaseFilter в параметре ppf .
Если мультиплексор поддерживает интерфейс IFileSinkFilter , метод вызывает IFileSinkFilter::SetFileName , чтобы задать имя выходного файла, используя значение, указанное в параметре lpwstrFile . Если мультиплексор не поддерживает интерфейс IFileSinkFilter , метод добавляет фильтр записи файлов в граф фильтра, подключает мультиплексор к записи файлов и использует интерфейс IFileSinkFilter модуля записи файлов для вызова SetFileName. Если параметр pSink не имеет значения NULL, он получает указатель на интерфейс IFileSinkFilter .
Вы можете использовать указатель на фильтр мультиплексоров, возвращаемый в параметре ppf , в качестве параметра pSink в методе ICaptureGraphBuilder2::RenderStream .
Для настраиваемых фильтров мультиплексоров метод завершается сбоем, если фильтр не поддерживает подключение к выходному контакту до подключения входных контактов. Например, это ограничение имеет пример фильтра WavDest , включенный в пакет SDK.
Если метод выполнен успешно, интерфейс IBaseFilter , возвращаемый в параметре ppf , имеет неоплаченное число ссылок. Если метод завершается успешно и pSink не имеет значения NULL, интерфейс IFileSinkFilter также имеет неоплаченное число ссылок. Не забудьте освободить оба интерфейса, когда закончите использовать их.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | strmif.h (включая Dshow.h) |
Библиотека | Strmiids.lib |