次の方法で共有


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

成功した場合、このパラメーターには修飾子の正しい型と値が割り当てられ、 VariantInit 関数は pVal で呼び出されます。 値が必要ない場合は、呼び出し元が pValVariantClear を呼び出す必要があります。 エラーが発生した場合、 pVal が指す値は変更されません。 初期化されていない pVal 値が メソッドに渡された場合、呼び出し元は メソッドの戻り値をチェックし、メソッドが成功した場合にのみ VariantClear を呼び出す必要があります。

[out, optional] pType

NULL を指定できます。 NULL でない場合は、プロパティの CIM 型 、つまり、CIM_SINT32CIM_STRINGなどの CIM 型定数の 1 つを受け取ります。 これらの値の詳細については、「 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 の戻り値には、真の型を識別するのに十分な情報が含まれていません。 pvtType out パラメーターは、これを示します。

プロパティの共通情報モデル (CIM) 型の文字列形式を取得するには、プロパティの IWbemQualifierSet ポインターを取得し、 Cimtype 修飾子を取得する必要があります。 この修飾子は、数値定数である sint32CIM_SINT32などの CIM 型の文字列形式です。

メモ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 を含む)
Library 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 システムのプロパティ