描述
IWbemServices.CreateClassEnum方法为满足选择条件的所有类返回枚举器。调用者必须使用返回的枚举器来检索类定义,调用IEnumWbemClassObject.Next以获取每个类或类的块。通过致电IEnumWbemClassObject.Release完成。
注意返回的枚举器具有0(零)元素不是错误。
C++ 语法
HRESULT CreateClassEnum( [in] const BSTR strSuperclass, [in] LONG lFlags, [in] IWbemContext *pCtx, [out] IEnumWbemClassObject **ppEnum ); |
PowerBASIC 语法
METHOD CreateClassEnum ( _ BYVAL strSuperclass AS DWORD, _ BYVAL lFlags AS LONG, _ BYVAL pCtx AS IWbemContext, _ BYREF ppEnum AS IEnumWbemClassObject _ ) AS LONG |
参数
strSuperclass
如果不是NULL或空白,则指定父类名称。这个类的子类只能在枚举器中返回。如果它是NULL或空白,并且LFLAGS是WBEM_FLAG_SHALLOW,则只返回顶级类(即,没有父类的类)。如果是NULL或空白,并且LFLAGS是WBEM_FLAG_DEEP,则返回命名空间内的所有类。
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保留指向枚举对象的指针,直到客户端释放枚举器。由于对象指针不会立即释放,如果客户端尝试枚举大量对象,则此方法可能会失败,并显示WBEM_E_OUT_OF_MEMORY的HRESULT。如果将LFLAGS参数设置为0(零),则默认隐含此标志。 |
pCtx
通常为NULL。否则,这是一个指向IWbemContext对象的指针,该对象可供提供者提供所请求的类使用。必须在提供程序的文档中指定上下文对象中的值。
ppEnum
接收到枚举器的指针。返回的对象具有正的引用计数。当不再需要时,调用者必须在指针上调用Release。
返回值
此方法返回一个HRESULT,指示方法调用的状态。下表列出了HRESULT中包含的值。
失败后,您可以从COM功能GetErrorInfo获取可用的信息。
如果网络问题导致您失去与Windows Management的远程连接,也可以返回COM特定的错误代码。
退货代码 |
描述 |
WBEM_E_ACCESS_DENIED |
当前用户没有权限查看呼叫可以返回的一个或多个类。 |
WBEM_E_FAILED |
这表示其他未指定的错误。 |
WBEM_E_INVALID_CLASS |
指定的类不存在。 |
WBEM_E_INVALID_PARAMETER |
指定了无效参数。 |
WBEM_E_OUT_OF_MEMORY |
没有足够的内存来完成操作。 |
WBEM_E_SHUTTING_DOWN |
WMI可能已停止并重新启动。需要新的电话ConnectServer. |
WBEM_E_TRANSPORT_FAILURE |
这表示当前进程和WMI之间的远程过程调用(RPC)链接失败。 |
WBEM_S_NO_ERROR |
通话成功。 |
要求
客户 |
需要Windows Vista,Windows XP,Windows 2000 Professional,Windows NT Workstation 4.0 SP4及更高版本,Windows Me,Windows 98或Windows 95。 |
服务器 |
需要Windows Server 2008,Windows Server 2003,Windows 2000 Server或Windows NT Server 4.0 SP4及更高版本。 |
头 |
在Wbemcli.inc中声明。 |
DLL |
需要Fastprox.dll。 需要Esscli.dll。 需要Framedyn.dll。 需要Ntevt.dll。 需要Stdprov.dll。 需要Viewprov.dll。 需要Wbemcomn.dll。 需要Wbemcore.dll。 需要Wbemess.dll。 需要Wbemsvc.dll。 需要Wmipicmp.dll。 需要Wmidcprv.dll。 需要Wmipjobj.dll。 需要Wmiprvsd.dll。 |