IWbemClassObject::P utMethod メソッド (wbemcli.h)
IWbemClassObject::P utMethod は、メソッドの作成に使用されます。 この呼び出しは、現在のオブジェクトが CIM クラス定義である場合にのみサポートされます。 CIM インスタンスを指す IWbemClassObject ポインターからは、メソッド操作を使用できません。
ユーザーは、アンダースコアで始まる名前または末尾の名前を持つメソッドを作成できません。 これは、システム クラスおよびプロパティ用に予約されています。
構文
HRESULT PutMethod(
[in] LPCWSTR wszName,
[in] long lFlags,
[in] IWbemClassObject *pInSignature,
[in] IWbemClassObject *pOutSignature
);
パラメーター
[in] wszName
作成されるメソッド名。
[in] lFlags
予約済み。 このパラメーターは 0 (ゼロ) である必要があります。
[in] pInSignature
メソッドの in パラメーターを含む __Parameters システム クラスのコピーへのポインター。 NULL に設定されている場合、このパラメーターは無視されます。
[in] pOutSignature
オブジェクトの出力パラメーターを含む __Parameters システム クラスのコピーへのポインター。 NULL に設定されている場合、このパラメーターは無視されます。
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。 次の一覧は、 HRESULT 内に含まれる値の一覧です。 一般的な HRESULT 値については、「 システム エラー コード」を参照してください。
注釈
メソッドの場合、in パラメーターと out パラメーターは IWbemClassObject オブジェクトのプロパティとして記述されます。
たとえば、次の方法を考えてみましょう。
Class MyClass{
[key] string KeyVal;
sint32 PropVal;
sint32 ExampleMethod([in] sint32 Param1, [in] uint32 Param2,
[out] string Param3);
HRESULT ReturnValue;
};
前の例では、 クラスには 1 つのメソッドがあります。 プログラムでメソッドを作成するために、ユーザーは pInSignature パラメーターを使用して IWbemClassObject::P utMethod を呼び出します。このパラメーターは、Param1 と Param2 の 2 つのプロパティを含むシステム クラス __Parametersのコピーを指します。 pOutSignature は、Param3 と ReturnValue の 2 つのプロパティを含むシステム クラス __Parametersのコピーを指します。
pOutSignature が指すオブジェクトの ReturnValue プロパティによって、メソッドの戻り値の型が決まります。 pOutSignature が NULL に設定されている場合、戻り値の型は VOID と見なされます。
[入力/出力] パラメーターは、pInSignature パラメーターと pOutSignature パラメーターが指す両方のオブジェクトに同じプロパティを追加することで定義できます。 この場合、プロパティは同じ ID 修飾子値を共有します。
ReturnValue 以外の__Parameters クラス オブジェクトの各プロパティには、パラメーターが表示される順序を識別する 0 から始まる数値の ID 修飾子が必要です。 この例では、 Param1 は 0、 Param2 1、 Param3 2 です。 2 つのパラメーターの ID 値を同じにすることはできません。また、ID 値をスキップすることもできません。 いずれかの条件が発生した場合、 IWbemClassObject::P utMethod は WBEM_E_NONCONSECUTIVE_PARAMETER_IDSを返します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | 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 |