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


Метод IAMGraphStreams::FindUpstreamInterface (strmif.h)

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

Метод FindUpstreamInterface выполняет поиск указанного интерфейса в графе фильтра, вышестоящий из указанного контакта.

Синтаксис

HRESULT FindUpstreamInterface(
  [in]  IPin   *pPin,
  [in]  REFIID riid,
  [out] void   **ppvInterface,
  [in]  DWORD  dwFlags
);

Параметры

[in] pPin

Указатель на интерфейс IPin контакта. Закрепление должно принадлежать фильтру в графе фильтров.

[in] riid

Ссылка на идентификатор интерфейса (IID), указывающий интерфейс для поиска.

[out] ppvInterface

Адрес указателя void. Если метод выполняется успешно, эта переменная получает указатель на интерфейс, указанный riid.

[in] dwFlags

Сочетание флагов из перечисления AM_INTF_SEARCH_FLAGS , указывающее, что искать (закрепление или фильтры).

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

Возвращает одно из следующих значений HRESULT .

Код возврата Описание
E_NOINTERFACE
Интерфейс не найден.
E_POINTER
Недопустимый указатель.
S_OK
Успешно.

Комментарии

Если значение dwFlags равно нулю, этот метод выполняет поиск интерфейса в следующем порядке:

  1. Он запрашивает пин-код, указанный параметром pPin.
  2. Если pPin является входным контактом, он вызывает FindUpstreamInterface рекурсивно для выходного контакта, подключенного к pPin, если таковой имеется.

    Если pPin является выходным контактом, он запрашивает фильтр, которому принадлежит pPin. Затем он создает список входных контактов в фильтре, имеющих внутренние подключения к pPin, и вызывает FindUpstreamInterface рекурсивно для этих входных контактов.

    Чтобы создать список входных контактов с внутренними подключениями, метод выполняет следующие действия:

Он останавливается на первом объекте, который поддерживает интерфейс . Вы можете ограничить объекты, в которых выполняется поиск (фильтры, входные или выходные контакты), задав dwFlags ненулевое значение.
Примечание Метод ICaptureGraphBuilder2::FindInterface реализует более общий подход к этой проблеме, и в большинстве случаев является предпочтительным.
 

Требования

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

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

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

Интерфейс IAMGraphStreams