Метод IWbemServices::CreateClassEnum (wbemcli.h)

Метод IWbemServices::CreateClassEnum возвращает перечислитель для всех классов, соответствующих критериям выбора. Вызывающий объект должен использовать возвращаемый перечислитель для получения определений классов, вызывая метод IEnumWbemClassObject::Next для получения каждого класса или блоков классов. Он завершается вызовом метода IEnumWbemClassObject::Release.

Примечание Возвращаемый перечислитель не является ошибкой, если он имеет 0 (ноль) элементов.
 

Синтаксис

HRESULT CreateClassEnum(
  [in]  const BSTR           strSuperclass,
  [in]  long                 lFlags,
  [in]  IWbemContext         *pCtx,
  [out] IEnumWbemClassObject **ppEnum
);

Параметры

[in] strSuperclass

Если значение не равно NULL или пустое значение, указывает имя родительского класса. В перечислитель возвращаются только классы, которые являются подклассами этого класса. Если параметр имеет значение NULL или пуст, а lFlags WBEM_FLAG_SHALLOW, возвращаются только классы верхнего уровня (т. е. классы, не имеющие родительского класса). Если значение равно NULL или пусто, а lFlagsWBEM_FLAG_DEEP, возвращаются все классы в пространстве имен.

[in] lFlags

Следующие флаги влияют на поведение этого метода. Рекомендуемое значение для этого параметра — WBEM_FLAG_RETURN_IMMEDIATELY и WBEM_FLAG_FORWARD_ONLY для достижения оптимальной производительности.

WBEM_FLAG_USE_AMENDED_QUALIFIERS

Если этот флаг установлен, инструментарий WMI получает измененные квалификаторы, хранящиеся в локализованном пространстве имен языкового стандарта текущего подключения. Если значение не задано, извлекаются только квалификаторы, хранящиеся в непосредственном пространстве имен.

WBEM_FLAG_DEEP

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

WBEM_FLAG_SHALLOW

Этот флаг заставляет перечисление включать только чистые экземпляры этого класса, исключая все экземпляры подклассов, которые предоставляют свойства, не найденные в этом классе.

WBEM_FLAG_RETURN_IMMEDIATELY

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

WBEM_FLAG_FORWARD_ONLY

Этот флаг приводит к возврату перечислителя только вперед. Как правило, перечислители только вперед работают быстрее и используют меньше памяти, чем обычные перечислители, но они не допускают вызовы клонирования или сброса.

WBEM_FLAG_BIDIRECTIONAL

Этот флаг заставляет WMI сохранять указатели на объекты перечисления до тех пор, пока клиент не выпустит перечислитель. Поскольку указатели на объекты не освобождаются немедленно, этот метод может завершиться ошибкой с hrESULTWBEM_E_OUT_OF_MEMORY , если клиент пытается перечислить большое количество объектов. Этот флаг подразумевается по умолчанию, если для параметра lFlags задано значение 0 (ноль).

[in] pCtx

Обычно имеет значение NULL. В противном случае это указатель на объект IWbemContext , который может использоваться поставщиком, предоставляющим запрошенные классы. Значения в объекте контекста должны быть указаны в документации для поставщика. Дополнительные сведения об этом параметре см. в разделе Выполнение вызовов WMI.

[out] ppEnum

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

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

Этот метод возвращает HRESULT , указывающий состояние вызова метода. В следующем списке перечислены значения, содержащиеся в HRESULT.

При сбое можно получить доступные сведения из функции COM GetErrorInfo.

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

Требования

   
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header wbemcli.h (включая Wbemidl.h)
Библиотека Wbemuuid.lib
DLL Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll

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

IEnumWbemClassObject

IWbemServices

IWbemServices::CreateClassEnumAsync

Получение кода ошибки