IWbemServices::CreateClassEnum 方法 (wbemcli.h)
IWbemServices::CreateClassEnum 方法返回满足选择条件的所有类的枚举器。 调用方必须使用返回的枚举器来检索类定义,调用 IEnumWbemClassObject::Next 以获取每个类或类块。 它通过调用 IEnumWbemClassObject::Release 完成。
语法
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
此标志会导致返回仅向前枚举器。 通常,仅前向枚举器比传统枚举器更快,使用的内存更少,但它们不允许调用 Clone 或 Reset。
WBEM_FLAG_BIDIRECTIONAL
此标志会导致 WMI 保留指向枚举对象的指针,直到客户端释放枚举器。 由于对象指针不会立即释放,因此,如果客户端尝试枚举大量对象,此方法可能会失败,且 HRESULT为 WBEM_E_OUT_OF_MEMORY 。 如果将 lFlags 参数设置为 0 (零) ,则默认隐含此标志。
[in] pCtx
通常 为 NULL。 否则,这是指向 IWbemContext 对象的指针,该对象可由提供所请求类的提供程序使用。 必须在提供程序的文档中指定上下文对象中的值。 有关此参数的详细信息,请参阅 调用 WMI。
[out] ppEnum
接收指向枚举器的指针。 返回的对象具有正引用计数。 当不再需要指针时,调用方必须对指针调用 Release 。
返回值
此方法返回一个 HRESULT ,指示方法调用的状态。 以下列表列出了 HRESULT 中包含的值。
失败时,可以从 COM 函数 GetErrorInfo 获取可用信息。
如果网络问题导致你失去与 Windows 管理的远程连接,也可以返回特定于 COM 的错误代码。
要求
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | wbemcli.h (包括 Wbemidl.h) |
Library | 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 |