IWbemClassObject::Get-Methode (wbemcli.h)
Die IWbemClassObject::Get-Methode ruft den angegebenen Eigenschaftswert ab, sofern er vorhanden ist. Diese Methode kann auch Systemeigenschaften zurückgeben.
Syntax
HRESULT Get(
[in] LPCWSTR wszName,
[in] long lFlags,
[out] VARIANT *pVal,
[out, optional] CIMTYPE *pType,
[out, optional] long *plFlavor
);
Parameter
[in] wszName
Name der gewünschten Eigenschaft. Sie wird als schreibgeschützt behandelt.
[in] lFlags
Reserviert. Dieser Parameter muss 0 (null) sein.
[out] pVal
Bei erfolgreicher Ausführung wird diesem Parameter der richtige Typ und der richtige Wert für den Qualifizierer zugewiesen, und die VariantInit-Funktion wird für pVal aufgerufen. Es liegt in der Verantwortung des Aufrufers , VariantClear auf pVal aufzurufen, wenn der Wert nicht benötigt wird. Wenn ein Fehler vorliegt, wird der Wert, auf den pVal verweist, nicht geändert. Wenn ein nicht initialisierter pVal-Wert an die -Methode übergeben wird, muss der Aufrufer den Rückgabewert der Methode überprüfen und VariantClear nur aufrufen, wenn die Methode erfolgreich ist.
[out, optional] pType
Kann NULL sein. Wenn es nicht NULL ist, empfängt es den CIM-Typ der Eigenschaft, d. h. eine der CIM-Typkonstanten, z. B. CIM_SINT32, CIM_STRING usw. Weitere Informationen zu diesen Werten finden Sie unter CIMTYPE_ENUMERATION. Dies gibt die CIM-Semantik des in VARIANT gepackten Eigenschaftswerts an.
[out, optional] plFlavor
Kann NULL sein. Wenn nicht NULL, empfängt der LONG-Wert, auf den verwiesen wird, Informationen über den Ursprung der Eigenschaft. Weitere Informationen finden Sie unter Qualifier Flavors and WBEM_FLAVOR_TYPE.
WBEM_FLAVOR_ORIGIN_SYSTEM
Die Eigenschaft ist eine standardmäßige Systemeigenschaft.
WBEM_FLAVOR_ORIGIN_PROPAGATED
Nur für Klassen. Die Eigenschaft wurde von der übergeordneten Klasse geerbt.
Nur für Instanzen. Die Eigenschaft wird von der übergeordneten Klasse geerbt, wurde aber nicht auf instance Ebene geändert.
WBEM_FLAVOR_ORIGIN_LOCAL
Nur für Klassen. Die -Eigenschaft gehört zur abgeleiteten untergeordneten Klasse.
Nur für Instanzen. Die Eigenschaft wird auf instance Ebene geändert, d. h. ein Wert wurde angegeben oder ein Qualifizierer wurde hinzugefügt oder geändert.
Rückgabewert
Diese Methode gibt ein HRESULT zurück, das den Status des Methodenaufrufs angibt. In der folgenden Liste wird der wert aufgeführt, der in einem HRESULT enthalten ist. Allgemeine HRESULT-Werte finden Sie unter Systemfehlercodes.
Hinweise
Wenn der Typ der Eigenschaft ein Objektpfad, eine Datums-/Uhrzeitzeichenfolge oder ein anderer spezieller Typ ist, enthalten die zurückgegebenen Werte im VARIANT nicht genügend Informationen, um den wahren Typ zu identifizieren. Der parameter pvtType out gibt dies an.
Um die Zeichenfolgenform des CIM-Typs (Common Information Model) für die -Eigenschaft abzurufen, muss der IWbemQualifierSet-Zeiger für die Eigenschaft abgerufen und der Cimtype-Qualifizierer abgerufen werden. Dieser Qualifizierer ist die Zeichenfolgenform des CIM-Typs, z. B . sint32 versus CIM_SINT32, bei der es sich um eine numerische Konstante handelt.
Beispiele
Eine ausführliche Diskussion und ein Beispiel zum Erstellen von Abfragen in C++ und WMI finden Sie unter Erstellen von WMI-Abfragen in C++ in CodeProject.
Das folgende C++-Beispiel zeigt, wie Sie den CIM-Klassennamen aus einem Objekt mithilfe der Systemeigenschaft __CLASS abrufen. Für den Code sind die folgenden #include-Anweisungen und Verweise erforderlich, um zu kompilieren.#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);
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | wbemcli.h (include Wbemidl.h) |
Bibliothek | WbemUuid.lib |
DLL | CIMWin32.dll; Esscli.dll; Fastprox.dll; FrameDyn.dll; FrameDynOS.dll; Krnlprov.dll; Ncprov.dll; Wbemcore.dll; Wbemess.dll; Wmipiprt.dll |