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


Метод SWbemServices.SubclassesOfAsync

Метод SubclassesOfAsync объекта SWbemServices возвращает коллекцию подклассов для указанного класса. Используйте этот метод только для объектов класса.

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

Описание этого синтаксиса см. в разделе Соглашения о документах для API сценариев.

Синтаксис

SWbemServices.SubclassesOfAsync( _
  ByVal ObjWbemSink, _
  [ ByVal strSuperclass ], _
  [ ByVal iFlags ], _
  [ ByVal objwbemNamedValueSet ], _
  [ ByVal objWbemAsyncContext ] _
)

Параметры

ObjWbemSink

Обязательный. Приемник объекта, получающий подклассы асинхронно. Создайте объект SWbemSink для получения объектов.

strSuperclass [необязательно]

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

iFlags [необязательно]

Определяет глубину перечисления вызовов. Значение по умолчанию для этого параметра — wbemQueryFlagDeep. Этот параметр может принимать следующие значения.

wbemQueryFlagShallow (1 (0x1))

Принудительное включение перечисления только непосредственных подклассов указанного родительского класса.

wbemQueryFlagDeep (0 (0x0))

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

wbemFlagSendStatus (128 (0x80))

Вызывает асинхронные вызовы для отправки обновлений состояния в обработчик событий OnProgress для приемника объекта.

wbemFlagDontSendStatus (0 (0x0))

Запрещает асинхронным вызовам отправлять обновления состояния в обработчик событий OnProgress для приемника объектов.

wbemFlagUseAmendedQualifiers (131072 (0x20000))

Заставляет WMI возвращать данные о поправках класса с определением базового класса. Дополнительные сведения см. в разделе Локализация сведений о классе WMI.

objwbemNamedValueSet [необязательно]

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

objWbemAsyncContext [необязательно]

Объект SWbemNamedValueSet , возвращающийся в приемник объекта для идентификации источника исходного асинхронного вызова. Используйте этот параметр для выполнения нескольких асинхронных вызовов с использованием одного и того же приемника объектов. Чтобы использовать этот параметр, создайте объект SWbemNamedValueSet и используйте метод SWbemNamedValueSet.Add , чтобы добавить значение, определяющее асинхронный вызов, который вы выполняете. Этот объект SWbemNamedValueSet возвращается в приемник объекта, а источник вызова можно извлечь с помощью метода SWbemNamedValueSet.Item . Дополнительные сведения см. в разделе Вызов метода .

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

Этот метод не возвращает значение. В случае успешного выполнения приемник получает событие OnObjectReady для каждого экземпляра . После последнего экземпляра приемник объекта получает событие OnCompleted .

Коды ошибок

После завершения метода SubclassesOfAsync объект Err может содержать один из кодов ошибок в следующем списке.

Примечание

Возвращаемая коллекция с нулевыми элементами не является ошибкой.

wbemErrAccessDenied — 2147749891 (0x80041003)

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

wbemErrFailed — 2147749889 (0x80041001)

Незаданная ошибка.

wbemErrInvalidClass — 2147749904 (0x80041010)

Указанный класс не существует.

wbemErrInvalidParameter — 2147749896 (0x80041008)

Указан недопустимый параметр.

wbemErrOutOfMemory — 2147749894 (0x80041006)

Недостаточно памяти для завершения операции.

Комментарии

Этот вызов возвращается немедленно. Запрошенные объекты и состояние возвращаются вызывающей объекту с помощью обратных вызовов, доставленных в приемник, указанный в objWbemSink. Чтобы обработать каждый объект при его поступлении, создайте objWbemSink. Подпрограмма события OnObjectReady . После возврата всех объектов можно выполнить окончательную обработку в реализации objWbemSink. Событие OnCompleted .

Асинхронный обратный вызов позволяет пользователю, не прошедшему проверку подлинности, предоставлять данные в приемник. Это создает угрозу безопасности для сценариев и приложений. Сведения об устранении рисков см. в статье Настройка безопасности при асинхронном вызове.

Требования

Требование Значение
Минимальная версия клиента
Windows Vista
Минимальная версия сервера
Windows Server 2008
Заголовок
Wbemdisp.h
Библиотека типов
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemServices
IID
IID_ISWbemServices

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

SWbemServices

SWbemObjectSet