IWbemClassObject::Get 메서드(wbemcli.h)

IWbemClassObject::Get 메서드는 지정된 속성 값(있는 경우)을 검색합니다. 이 메서드는 시스템 속성을 반환할 수도 있습니다.

구문

HRESULT Get(
  [in]            LPCWSTR wszName,
  [in]            long    lFlags,
  [out]           VARIANT *pVal,
  [out, optional] CIMTYPE *pType,
  [out, optional] long    *plFlavor
);

매개 변수

[in] wszName

desired 속성의 이름입니다. 읽기 전용으로 처리됩니다.

[in] lFlags

예약되어 있습니다. 이 매개 변수는 0이어야 합니다.

[out] pVal

성공하면 이 매개 변수에 한정자의 올바른 형식과 값이 할당되고 pVal에서 VariantInit 함수가 호출됩니다. 값이 필요하지 않은 경우 pVal에서 VariantClear를 호출하는 것은 호출자의 책임입니다. 오류가 있는 경우 pVal 이 가리키는 값은 수정되지 않습니다. 초기화되지 않은 pVal 값이 메서드에 전달되는 경우 호출자는 메서드의 반환 값을 검사 메서드가 성공할 때만 VariantClear를 호출해야 합니다.

[out, optional] pType

NULL일 수 있습니다. NULL이 아닌 경우 속성의 CIM 형식, 즉 CIM_SINT32, CIM_STRING 등의 CIM 형식 상수 중 하나를 받습니다. 이러한 값에 대한 자세한 내용은 CIMTYPE_ENUMERATION 참조하세요. 이는 VARIANT로 압축된 속성 값의 CIM 의미 체계를 나타냅니다.

[out, optional] plFlavor

NULL일 수 있습니다. NULL이 아닌 경우 가리키는 LONG 값은 속성의 원본에 대한 정보를 받습니다. 자세한 내용은 한정자 버전 및 WBEM_FLAVOR_TYPE 참조 하세요.

WBEM_FLAVOR_ORIGIN_SYSTEM

이 속성은 표준 시스템 속성입니다.

WBEM_FLAVOR_ORIGIN_PROPAGATED

클래스에만 해당합니다. 속성은 부모 클래스에서 상속되었습니다.

인스턴스에만 해당합니다. 속성은 부모 클래스에서 상속되지만 instance 수준에서 수정되지 않았습니다.

WBEM_FLAVOR_ORIGIN_LOCAL

클래스에만 해당합니다. 속성은 파생된 자식 클래스에 속합니다.

인스턴스에만 해당합니다. 속성은 instance 수준에서 수정됩니다. 즉, 값이 제공되었거나 한정자가 추가되거나 수정되었습니다.

반환 값

이 메서드는 메서드 호출의 상태를 나타내는 HRESULT를 반환합니다. 다음 목록에는 HRESULT에 포함된 값이 나열되어 있습니다. 일반적인 HRESULT 값은시스템 오류 코드를 참조하세요.

설명

속성의 형식이 개체 경로, 날짜/시간 문자열 또는 기타 특수 형식인 경우 VARIANT 의 반환된 값에 실제 형식을 식별할 수 있는 충분한 정보가 포함되지 않습니다. pvtType out 매개 변수는 이를 나타냅니다.

속성에 대한 CIM(Common Information Model) 형식의 문자열 형식을 가져오려면 속성에 대한 IWbemQualifierSet 포인터를 가져와야 하며 Cimtype 한정자를 검색해야 합니다. 해당 한정자는 숫자 상수인 sint32CIM_SINT32 같은 CIM 형식의 문자열 형식입니다.

참고IWbemClassObject::SpawnInstance를 사용하여 새 개체를 만들 때는 개체가 WMI(Windows Management Instrumentation)에 기록될 때까지 일부 시스템 속성이 설정되지 않는다는 점에 유의해야 합니다. 모든 경우에 IWbemClassObject::Get 은 요청된 시스템 속성에 액세스하는 데 성공하지만 반환된 VARIANT 에는 VT_NULL 포함될 수 있습니다.
 

예제

C++ 및 WMI에서 쿼리를 만드는 확장 토론 및 예제는 CodeProject 에서 C++에서 WMI 쿼리 만들기를 참조하세요.

다음 C++ 예제에서는 시스템 속성 __CLASS 사용하여 개체에서 CIM 클래스 이름을 검색하는 방법을 보여줍니다 . 코드를 컴파일하려면 다음 #include 문 및 참조가 필요합니다.
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
//Assumes that pObj is defined as a pointer
// to an IWbemClassObject object.

VARIANT v;
BSTR strClassProp = SysAllocString(L"__CLASS");
HRESULT hr;
hr = pObj->Get(strClassProp, 0, &v, 0, 0);
SysFreeString(strClassProp);

// check the HRESULT to see if the action succeeded.

if (SUCCEEDED(hr) && (V_VT(&v) == VT_BSTR))
{
    wprintf(L"The class name is %s\n.", V_BSTR(&v));
}
else
{
    wprintf(L"Error in getting specified object\n");
}
VariantClear(&v);



요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 wbemcli.h(Wbemidl.h 포함)
라이브러리 WbemUuid.lib
DLL CIMWin32.dll; Esscli.dll; Fastprox.dll; FrameDyn.dll; FrameDynOS.dll; Krnlprov.dll; Ncprov.dll; Wbemcore.dll; Wbemess.dll; Wmipiprt.dll

추가 정보

IWbemClassObject

IWbemClassObject::GetPropertyQualifierSet

WMI 한정자

WMI 시스템 클래스

WMI 시스템 속성