Метод IFilterMapper2::EnumMatchingFilters (strmif.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Метод EnumMatchingFilters
перечисляет зарегистрированные фильтры, соответствующие указанным требованиям.
Синтаксис
HRESULT EnumMatchingFilters(
[out] IEnumMoniker **ppEnum,
[in] DWORD dwFlags,
[in] BOOL bExactMatch,
[in] DWORD dwMerit,
[in] BOOL bInputNeeded,
[in] DWORD cInputTypes,
[in] const GUID *pInputTypes,
[in] const REGPINMEDIUM *pMedIn,
[in] const CLSID *pPinCategoryIn,
[in] BOOL bRender,
[in] BOOL bOutputNeeded,
[in] DWORD cOutputTypes,
[in] const GUID *pOutputTypes,
[in] const REGPINMEDIUM *pMedOut,
[in] const CLSID *pPinCategoryOut
);
Параметры
[out] ppEnum
Получает указатель на интерфейс IEnumMoniker . Используйте этот указатель интерфейса для получения моникеров фильтра из перечисления . Вызывающий объект должен освободить интерфейс .
[in] dwFlags
Зарезервировано, должно быть равно нулю.
[in] bExactMatch
Логическое значение, указывающее, требуется ли точное соответствие. Дополнительные сведения см. в разделе "Примечания".
[in] dwMerit
Минимальное значение заслуг. Перечисление исключает фильтры с меньшим значением заслуг. Список значений заслуг см. в разделе Merit. Если значение dwMerit превышает MERIT_DO_NOT_USE, перечисление также исключает фильтры, категория которых имеет значение меньше или равно MERIT_DO_NOT_USE. (См . раздел Категории фильтров.)
[in] bInputNeeded
Логическое значение, указывающее, должен ли фильтр иметь входной контакт. Если значение равно TRUE, фильтр должен иметь по крайней мере один входной контакт.
[in] cInputTypes
Количество типов входных носителей, указанных в pInputTypes.
[in] pInputTypes
Указатель на массив пар GUID, определяющих основные типы и подтипы, для сопоставления входных контактов. Размер массива составляет 2 * cInputTypes. Массив может иметь значение NULL. Отдельные элементы массива могут быть GUID_NULL, которые соответствуют любому типу. (См. раздел Типы мультимедиа.)
[in] pMedIn
Указатель на структуру REGPINMEDIUM , указывающую среду для входных контактов. Если это не требуется, задайте значение NULL .
[in] pPinCategoryIn
Указатель на GUID, указывающий категорию входных контактов. (См . раздел Закрепление набора свойств.) Если это не требуется, задайте значение NULL .
[in] bRender
Логическое значение, указывающее, должен ли фильтр отображать входные данные. Если задано значение TRUE, указанный фильтр должен отображать свои входные данные. (Это значение соответствует полю bRendered в структуре REGFILTERPINS , которая используется для регистрации сведений о контактах фильтра.)
[in] bOutputNeeded
Логическое значение, указывающее, должен ли фильтр иметь выходную закрепку. Если задано значение TRUE, фильтр должен иметь по крайней мере один вывод.
[in] cOutputTypes
Количество типов входных носителей, указанных в pOutputTypes.
[in] pOutputTypes
Указатель на массив пар GUID, определяющих основные типы и подтипы, для сопоставления выходных контактов. Размер массива составляет 2 * cOutputTypes. Массив может иметь значение NULL. Отдельные элементы массива могут быть GUID_NULL, которые соответствуют любому типу.
[in] pMedOut
Указатель на структуру REGPINMEDIUM , указывающую среду для выходных контактов. Если это не требуется, задайте значение NULL .
[in] pPinCategoryOut
Указатель на GUID, указывающий выходную категорию контактов. (См . раздел Закрепление набора свойств.) Если это не требуется, задайте значение NULL .
Возвращаемое значение
Возвращает значение HRESULT . Возможные значения включают значения, показанные в следующей таблице.
Код возврата | Описание |
---|---|
|
Успешное завершение |
|
Failure |
|
Недостаточно памяти |
|
Аргумент указателя NULL |
Комментарии
Чтобы найти фильтры, входные контакты которых соответствуют заданному набору типов мультимедиа, объявите массив с GUID основного типа и идентификаторами GUID подтипа, упорядоченными по парам. Передайте адрес массива в параметре pInputTypes и задайте параметр cInputTypes равным количеству пар (то есть половине размера массива):
C++ |
---|
GUID arrayInTypes[2]; arrayInTypes[0] = MEDIATYPE_Video; arrayInTypes[1] = GUID_NULL; |
Если значение параметра bExactMatch равно TRUE, этот метод ищет фильтры, которые точно соответствуют значениям, указанным для типа носителя, категории закрепления и среды закрепления. Если значение равно FALSE, фильтры, регистрирующие значение NULL для любого из этих элементов, считаются совпадением. (Фактически значение NULL в реестре выступает в качестве подстановочного знака.)
Если для типа носителя, категории контактов или среды закрепления задано ЗНАЧЕНИЕ NULL , любой фильтр считается соответствующим для этого параметра.
Если закрепление не зарегистрировал типы носителей, этот метод не будет считать его соответствующим типом носителя.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | strmif.h (включая Dshow.h) |
Библиотека | Strmiids.lib |