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_SINT32、 CIM_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 類型的字串形式,例如 sint32 與 CIM_SINT32,這是數值常數。
範例
如需在 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 |