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


Метод IGraphConfig::P ushThroughData (strmif.h)

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

Метод PushThroughData передает данные через граф фильтра в указанный контакт.

Синтаксис

HRESULT PushThroughData(
  [in] IPin           *pOutputPin,
  [in] IPinConnection *pConnection,
  [in] HANDLE         hEventAbort
);

Параметры

[in] pOutputPin

Указатель на интерфейс IPin выходного контакта в графе фильтра.

[in] pConnection

Указатель на интерфейс IPinConnection входного контакта в графе фильтра. Этот параметр может принимать значение NULL.

[in] hEventAbort

Дескриптор события. Если вызывающий объект является фильтром, вызывающим в одном из потоков обработки данных, этот параметр должен быть дескриптором события, которое будет показано при переводе фильтра в остановленное состояние. В противном случае этот параметр может иметь значение NULL. Дополнительные сведения см. в подразделе "Примечания".

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

В случае успешного выполнения возвращает S_OK. В противном случае возвращает код ошибки, который может быть одним из следующих значений или другими значениями, не указанными в списке.

Код возврата Описание
E_OUTOFMEMORY
Не удалось выделить необходимую память.
VFW_E_NOT_FOUND
Не удалось найти потенциальный входной контакт.
VFW_E_STATE_CHANGED
Состояние фильтра изменилось во время операции.

Комментарии

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

Если фильтр вызывает этот метод в одном из собственных потоков обработки данных, это создает вероятность взаимоблокировки. Метод получает блокировку графа фильтра, которая может блокировать остановку фильтра при получении вызова IMediaFilter::Stop. Чтобы избежать этой ситуации, метод принимает дескриптор объекта события, предоставленного фильтром. Фильтр должен сигнализировать о событии, если он получает вызов метода Stop .

Требования

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

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

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

Интерфейс IGraphConfig