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 で呼び出されます。 値が必要ない場合は、呼び出し元が pVal で VariantClear を呼び出す必要があります。 エラーが発生した場合、 pVal が指す値は変更されません。 初期化されていない pVal 値が メソッドに渡された場合、呼び出し元は メソッドの戻り値をチェックし、メソッドが成功した場合にのみ VariantClear を呼び出す必要があります。
[out, optional] pType
NULL を指定できます。 NULL でない場合は、プロパティの CIM 型 、つまり、CIM_SINT32、CIM_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 修飾子を取得する必要があります。 この修飾子は、数値定数である sint32 と CIM_SINT32などの CIM 型の文字列形式です。
例
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 |