Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Метод CreateClassEnumerator создает перечислитель для указанной категории устройств.
Синтаксис
HRESULT CreateClassEnumerator(
[in] REFCLSID clsidDeviceClass,
[out] IEnumMoniker **ppEnumMoniker,
[in] DWORD dwFlags
);
Параметры
[in] clsidDeviceClass
Указывает идентификатор класса (CLSID) категории устройств. См . раздел Категории фильтров.
[out] ppEnumMoniker
Получает указатель на интерфейс IEnumMoniker . Вызывающий объект должен освободить интерфейс .
[in] dwFlags
Побитовая комбинация нулевых или более флагов. Если значение равно нулю, метод перечисляет каждый фильтр в категории. Если установлены какие-либо флаги, перечисление включает только фильтры, соответствующие указанным флагам. Определены следующие флаги:
| Flag | Описание |
|---|---|
| CDEF_DEVMON_CMGR_DEVICE | Перечисление аудио- или видеокодеков с помощью диспетчера сжатия аудио (ACM) или диспетчера сжатия видео (VCM). |
| CDEF_DEVMON_DMO | Перечисление объектов мультимедиа DirectX (DMOS). |
| CDEF_DEVMON_FILTER | Перечисление собственных фильтров DirectShow. |
| CDEF_DEVMON_PNP_DEVICE | Перечисление Plug and Play аппаратных устройств. |
Возвращаемое значение
Возвращает одно из следующих значений HRESULT .
| Код возврата | Описание |
|---|---|
|
Успешно. |
|
Недостаточно памяти. |
|
Категория, указанная классом clsidDeviceClass , не существует или пуста. |
|
Аргумент указателя NULL. |
Комментарии
Если категория не существует или пуста, возвращаемое значение S_FALSE, а параметр ppEnumMoniker получает значение NULL. Поэтому проверьте возвращаемое значение S_OK вместо макроса SUCCEEDED :
| C++ |
|---|
IEnumMoniker *pEnum = NULL;
hr = pSysDevEnum->CreateClassEnumerator(
CLSID_VideoCompressorCategory, &pEnum, 0);
if (hr == S_OK)
{
// Safe to dereference pEnum.
pEnum->Release();
}
|
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
| Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
| Целевая платформа | Windows |
| Header | strmif.h (включая Dshow.h) |
| Библиотека | Strmiids.lib |