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

所需屬性的名稱。 它會被視為唯讀。

[in] lFlags

保留的。 此參數必須是 0 (零) 。

[out] pVal

成功時,此參數會為限定符指派正確的類型和值,並在 pVal 上呼叫 VariantInit 函式。 當不需要值時,呼叫端必須負責在 pVal 上呼叫 VariantClear。 如果發生錯誤, 則不會修改 pVal 指向的值。 如果未初始化 的 pVal 值傳遞至 方法,則呼叫端必須檢查方法的傳回值,而且只有在方法成功時才會呼叫 VariantClear

[out, optional] pType

可以是 NULL。 如果不是 NULL,它會接收 屬性的 CIM 類型,也就是其中一個 CIM 類型常數,例如 CIM_SINT32CIM_STRING等等。 如需這些值的詳細資訊,請參閱 CIMTYPE_ENUMERATION。 這表示封裝至 VARIANT 之屬性值的 CIM 語意。

[out, optional] plFlavor

可以是 NULL。 如果不是 NULL,則指向的 LONG 值會接收屬性來源的相關信息。 如需詳細資訊,請參閱 限定符類別WBEM_FLAVOR_TYPE

WBEM_FLAVOR_ORIGIN_SYSTEM

屬性是標準系統屬性。

WBEM_FLAVOR_ORIGIN_PROPAGATED

僅適用於類別。 屬性繼承自父類別。

僅適用於 實例。 屬性繼承自父類別,但尚未在實例層級修改。

WBEM_FLAVOR_ORIGIN_LOCAL

僅適用於類別。 屬性屬於衍生子類別。

僅適用於 實例。 屬性會在實例層級修改,也就是提供值,或新增或修改限定符。

傳回值

這個方法會傳回 HRESULT ,指出方法呼叫的狀態。 下列清單列出 HRESULT 中包含的值。 如需一般 HRESULT 值,請參閱 系統錯誤碼

備註

如果屬性的類型是物件路徑、日期/時間字串或其他特殊類型,則 VARIANT 中傳回的值不包含足夠的資訊來識別 true 類型。 pvtType out 參數表示這一點。

若要取得屬性的通用資訊模型 (CIM) 類型的字串形式,必須取得屬性的 IWbemQualifierSet 指標,並擷取 Cimtype 限定符。 該限定符是 CIM 類型的字串形式,例如 sint32CIM_SINT32,這是數值常數。

注意 當您使用 IWbemClassObject::SpawnInstance 建立新的物件時,請務必注意,在物件寫入 Windows Management Instrumentation (WMI) 之前,不會設定某些系統屬性。 在所有情況下, 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 系統屬性