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


Метод ICaptureGraphBuilder::SetOutputFileName (strmif.h)

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

Примечание Интерфейс ICaptureGraphBuilder не рекомендуется использовать. Вместо этого используйте ICaptureGraphBuilder2 .
 
Создает раздел отрисовки графа фильтра, который будет сохранять биты на диск с указанным именем файла.

Синтаксис

HRESULT SetOutputFileName(
  [in]  const GUID      *pType,
  [in]  LPCOLESTR       lpstrFile,
  [out] IBaseFilter     **ppf,
  [out] IFileSinkFilter **ppSink
);

Параметры

[in] pType

Указатель на GUID , представляющий подтип носителя. Этот параметр должен содержать значение &MEDIASUBTYPE_Avi.

[in] lpstrFile

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

[out] ppf

Адрес указателя на интерфейс IBaseFilter , представляющий фильтр мультиплексера. Этот метод увеличивает количество ссылок в интерфейсе IBaseFilter , поэтому при использовании фильтра необходимо уменьшать количество ссылок с помощью метода Release для этого параметра.

[out] ppSink

Адрес указателя на интерфейс IFileSinkFilter , представляющий модуль записи файлов. Этот метод увеличивает количество ссылок в интерфейсе IFileSinkFilter, поэтому при использовании фильтра необходимо уменьшать число ссылок с помощью Release .

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

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

Код возврата Описание
E_FAIL
Ошибка.
E_INVALIDARG
Недопустимый аргумент. Audio-Video с чередованием (AVI) является единственным поддерживаемым форматом вывода.
E_OUTOFMEMORY
Недостаточно памяти.
E_POINTER
Аргумент указателя NULL.
E_UNEXPECTED
Произошла непредвиденная ошибка.
NOERROR
Успешно.
S_OK
Экземпляр фильтра мультиплексоров AVI успешно создан.

Комментарии

Этот метод вставляет мультиплексор и модуль записи файлов в граф фильтра и вызывает IFileSinkFilter::SetFileName , чтобы задать имя выходного файла.

Параметр ppf , возвращаемый этим методом, можно использовать в качестве параметра pfRenderer в вызовах RenderStream.

Параметр pSink из этого метода можно использовать в вызове SetFileName , чтобы изменить имя файла, заданное параметром ICaptureGraphBuilder::SetOutputFileName.

Требования

Требование Значение
Минимальная версия клиента Справка:_Dshowh
Целевая платформа Windows
Header strmif.h
DLL Quartz.dll

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

Коды ошибок и успешного выполнения

Интерфейс ICaptureGraphBuilder