IEnumWbemClassObject インターフェイス (wbemcli.h)
IEnumWbemClassObject インターフェイスは、共通情報モデル (CIM) オブジェクトを列挙するために使用され、標準の COM 列挙子に似ています。
IEnumWbemClassObject 型のオブジェクトは、次のメソッドの呼び出しから受信されます。
- IWbemServices::ExecQuery
- IWbemServices::CreateInstanceEnum
- IWbemServices::CreateClassEnum
- IWbemServices::ExecNotificationQuery
継承
IEnumWbemClassObject インターフェイスは、IUnknown インターフェイスから継承されます。 IEnumWbemClassObject には、次の種類のメンバーもあります。
メソッド
IEnumWbemClassObject インターフェイスには、これらのメソッドがあります。
IEnumWbemClassObject::Clone IEnumWbemClassObject::Clone メソッドは列挙子全体の論理コピーを作成し、列挙体の現在位置を保持します。 |
IEnumWbemClassObject::Next 列挙体の現在の位置から 1 つ以上のオブジェクトを取得するには、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 を含む) |