Freigeben über


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.

Hinweis Wenn Sie ein neues Objekt mit IWbemClassObject::SpawnInstance erstellen, ist es wichtig zu beachten, dass einige Systemeigenschaften erst festgelegt werden, wenn das Objekt in die Windows-Verwaltungsinstrumentation (WMI) geschrieben wurde. In allen Fällen kann IWbemClassObject::Get erfolgreich auf die angeforderte Systemeigenschaft zugreifen, aber die zurückgegebene VARIANT kann VT_NULL enthalten.
 

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

Weitere Informationen

IWbemClassObject

IWbemClassObject::GetPropertyQualifierSet

WMI-Qualifizierer

WMI-Systemklassen

WMI-Systemeigenschaften