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


Метод IPin::QueryInternalConnections (strmif.h)

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

Метод QueryInternalConnections извлекает контакты, подключенные внутренне к этому контакту (в фильтре).

Синтаксис

HRESULT QueryInternalConnections(
  [out]     IPin  **apPin,
  [in, out] ULONG *nPin
);

Параметры

[out] apPin

Адрес массива указателей IPin . Вызывающий объект выделяет массив. Метод заполняет массив указателями IPin . Если nPin равно нулю, этот параметр может иметь значение NULL.

[in, out] nPin

На входных данных указывает размер массива. На выходных данных указывает количество внутренних контактов.

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

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

Код возврата Описание
S_FALSE
Недостаточный размер массива.
S_OK
Успешно.
E_NOTIMPL
Не реализован.

Комментарии

Этот метод возвращает сведения о внутреннем сопоставлении входных контактов фильтра с выходными контактами. Другими словами, он описывает, как входные контакты доставляют данные в выходные контакты.

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

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

Вызывающий объект выделяет массив указателей IPin . Чтобы получить необходимый размер массива, вызовите метод один раз с apPin , равным NULL. Размер возвращается в параметре nPin . Затем выделите массив и снова вызовите метод , установив значение apPin равным адресу массива, а nPin — размеру массива. Затем метод заполняет массив указателями IPin . Каждый возвращаемый указатель имеет незавершенное число ссылок и должен быть освобожден вызывающим.

У этого метода есть еще одно использование, которое теперь является устаревшим: диспетчер фильтров графа обрабатывает фильтр как фильтр отрисовщика, если хотя бы один входной контакт реализует этот метод, но возвращает ноль в nPin. Однако при написании нового фильтра отрисовщика следует реализовать интерфейс IAMFilterMiscFlags , а не использовать этот метод, чтобы указать, что фильтр является отрисовщиком.

Требования

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

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

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

Интерфейс IPin