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 한정자를 검색해야 합니다. 해당 한정자는 숫자 상수인 sint32 와 CIM_SINT32 같은 CIM 형식의 문자열 형식입니다.
예제
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 |