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 或空白,且 lFlags是WBEM_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

此旗標會導致傳回順向列舉值。 一般而言,順向列舉值的速度比傳統列舉值還快,而且使用較少的記憶體,但不允許呼叫 CloneReset

WBEM_FLAG_BIDIRECTIONAL

此旗標會導致 WMI 保留列舉物件的指標,直到用戶端釋放列舉值為止。 因為物件指標不會立即釋放,所以如果用戶端嘗試列舉大量物件,此方法可能會因為 HRESULTWBEM_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)
程式庫 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

擷取錯誤碼