wbemcli.h (IEnumWbemClassObject 介面)
IEnumWbemClassObject介面是用來列舉通用訊息模型 (CIM) 物件,類似于標準 COM 列舉值。
從呼叫下列方法,收到 IEnumWbemClassObject 類型的物件:
- IWbemServices::ExecQuery
- IWbemServices::CreateInstanceEnum
- IWbemServices::CreateClassEnum
- IWbemServices::ExecNotificationQuery
繼承
IEnumWbemClassObject介面繼承自IUnknown介面。 IEnumWbemClassObject 也有下列類型的成員:
方法
IEnumWbemClassObject介面具有這些方法。
IEnumWbemClassObject::Clone IEnumWbemClassObject::Clone 方法會建立整個列舉值的邏輯複本,並在列舉中保留其目前的位置。 |
IEnumWbemClassObject::Next 使用 IEnumWbemClassObject::Next 方法來取得從列舉中目前位置開始的一或多個物件。 |
IEnumWbemClassObject::NextAsync 當需要物件到接收的受控制非同步擷取時,請使用 NextAsync 方法。 |
IEnumWbemClassObject::Reset IEnumWbemClassObject::Reset 方法會將列舉序列重設為開頭。 因為 CIM 物件是動態的,所以呼叫這個方法不一定會傳回您先前取得的相同物件清單。 |
IEnumWbemClassObject::Skip 您可以使用 IEnumWbemClassObject::Skip 方法,將列舉中的目前位置向前移動指定的物件數目。 此外,這會影響 NextAsync 的後續呼叫,但不會影響從 NextAsync 開始的擱置傳遞。 |
備註
IEnumWbemClassObject 是從 WMI 查詢傳回的物件,可用來列舉傳回的值。 如需如何使用這個類別的詳細資訊,請參閱 查詢 WMI 和 列舉 WMI。
範例
下列 C++ 程式碼範例說明如何擷取 IEnumWbemClassObject。
void ExecQuerySync(IWbemServices *pSvc)
{
// Query for all users and groups.
BSTR Language = SysAllocString(L"WQL");
BSTR Query = SysAllocString(L"SELECT * FROM __Namespace");
// Initialize the IEnumWbemClassObject pointer.
IEnumWbemClassObject *pEnum = 0;
// Issue the query.
HRESULT hRes = pSvc->ExecQuery(
Language,
Query,
WBEM_FLAG_FORWARD_ONLY, // Flags
0, // Context
&pEnum
);
SysFreeString(Query);
SysFreeString(Language);
if (hRes != 0)
{
printf("Error\n");
return;
}
ULONG uTotal = 0;
// Retrieve the objects in the result set.
for (;;)
{
IWbemClassObject *pObj = 0;
ULONG uReturned = 0;
hRes = pEnum->Next(
0, // Time out
1, // One object
&pObj,
&uReturned
);
uTotal += uReturned;
if (uReturned == 0)
break;
// Use the object.
// ...
// Release it.
// ===========
pObj->Release(); // Release objects not owned.
}
// All done.
pEnum->Release();
}
規格需求
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | wbemcli.h (包含 Wbemidl.h) |