IEnumWbemClassObject 인터페이스(wbemcli.h)

IEnumWbemClassObject 인터페이스는 CIM(Common Information Model) 개체를 열거하는 데 사용되며 표준 COM 열거자와 유사합니다.

IEnumWbemClassObject 형식의 개체는 다음 메서드에 대한 호출에서 수신됩니다.

CIM 개체는 Next 메서드를 호출하여 IWbemClassObject 형식의 개체로 열거형에서 검색됩니다. Reset 메서드를 호출하여 열거형을 다시 시작으로 다시 설정할 수 있습니다.

상속

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 포함)

추가 정보

WMI용 COM API

WMI 열거