SWbemServicesEx.Put メソッド

SWbemServicesEx オブジェクトの Put メソッドでは、そのオブジェクトにバインドされている名前空間にオブジェクトを保存し、データが書き込まれたオブジェクトのパスを含む SWbemObjectPath オブジェクトを返します。

このメソッドは、半同期モードで呼び出されます。 詳細については、メソッドの呼び出しに関するページを参照してください。

この構文の説明については、「スクリプト API のドキュメント規則」を参照してください。

構文

objObjectPath = .Put( _
  ByVal objWbemObject, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ] _
)

パラメーター

objWbemObject

必須。 名前空間に配置する新しいオブジェクト。 これは、新しく作成されたオブジェクトまたは変更されたオブジェクトのどちらかです。

iFlags [省略可能]

このパラメーターでは、呼び出しでオブジェクトを作成または更新するかどうか、および呼び出しがすぐに戻るかどうかを決定します。 このパラメーターには次の値を指定することができます。

wbemChangeFlagUpdateCompatible (0 (0x0))

そのクラスの派生クラスもインスタンスも存在しない場合に、クラスの更新を許可します。 また、重要でない修飾子 (Description 修飾子など) のみを変更する場合も、すべての更新を許可します。 これは、この呼び出しの既定の動作であり、以前のバージョンの WMI との互換性のために使用されます。 クラスにインスタンスがある場合、更新は失敗します。

wbemChangeFlagUpdateSafeMode (32 (0x20))

子クラスが存在している場合でも、変更によって子クラスで競合が発生しない場合には、クラスの更新を許可します。 それまでにどの子クラスでも言及されていない基底クラスに新しいプロパティを追加する場合に、このフラグを使用できます。 クラスにインスタンスがある場合、更新は失敗します。

wbemChangeFlagUpdateForceMode (64 (0x40))

このフラグでは、競合する子クラスが存在する場合に、強制的にクラスを更新します。 たとえば、子クラスでクラス修飾子が定義されていて、基底クラスで既存の修飾子と競合する同じ修飾子を追加しようとする場合、このフラグによって強制的に更新が行われます。 強制モードでは、子クラスの競合している修飾子を削除することで、この競合が解決されます。 クラスにインスタンスがある場合、更新は失敗します。

強制モードを使用して静的クラスを更新すると、そのクラスのすべてのインスタンスが削除されます。 プロバイダー クラスの強制更新では、クラスのインスタンスは削除されません。

wbemChangeFlagCreateOrUpdate (0 (0x0))

クラスまたはインスタンスが存在しない場合は作成され、既に存在する場合は上書きされます。

wbemChangeFlagCreateOnly (2 (0x2))

作成にのみ使用されます。 クラスまたはインスタンスが既に存在する場合、呼び出しは失敗します。

wbemChangeFlagUpdateOnly (1 (0x1))

この呼び出しでは更新のみを実行します。 この呼び出しを成功させるには、クラスまたはインスタンスが存在している必要があります。

wbemFlagReturnImmediately (16 (0x10))

呼び出しはすぐに戻ります。

wbemFlagReturnWhenComplete (0 (0x0))

操作が完了するまで、この呼び出しをブロックします。 このフラグでは、メソッドを同期モードで呼び出します。

wbemFlagUseAmendedQualifiers (131072 (0x20000))

WMI でクラス変更データと基底クラス定義が書き込まれるようにします。 詳細については、「WMI クラス情報のローカライズ」を参照してください。

objWbemNamedValueSet [オプション]

通常、これは未定義です。 そうでない場合は、要求を処理するプロバイダーで使用できるコンテキスト情報を表す要素を持つ SWbemNamedValueSet オブジェクトです。 このような情報をサポートする、または必要とするプロバイダーは、認識された値名、値のデータ型、許可された値、セマンティクスを文書化する必要があります。

戻り値

呼び出しが成功した場合は、SWbemObjectPath オブジェクトが返されます。 このオブジェクトには、WMI に正常にコミットされたインスタンスまたはクラスのオブジェクト パスが含まれます。

エラー コード

Put メソッドの完了後に、Err オブジェクトに次のリストのいずれかのエラー コードが含まれる場合があります。

wbemErrAccessDenied - 2147749891 (0x80041003)

現在のユーザーに、その操作のアクセス許可がありません。

wbemErrAlreadyExists - 2147749913 (0x80041019)

wbemChangeFlagCreateOnly フラグが指定されましたが、インスタンスは既に存在します。

wbemErrFailed - 2147749889 (0x80041001)

未定義のエラーが発生しました。

wbemErrIllegalNull - 2147749898 (0x8004100A)

NULL であってはならないプロパティに対して値 NULL が指定されました。 このようなプロパティの例としては、KeyIndexed、または Not_Null 修飾子でマークされているプロパティがあります。

wbemErrInvalidObject - 2147749908 (0x80041014)

指定されたオブジェクトが無効です。

wbemErrInvalidParameter - 2147749896 (0x80041008)

指定されたパラメータが無効です。

wbemErrNotFound - 2147749890 (0x80041002)

wbemChangeFlagUpdateOnly フラグが指定されましたが、インスタンスまたはクラスが存在しません。

wbemErrIncompleteClass - 2147749920 (0x80041020)

クラスの必須プロパティがすべて設定されていません。

wbemErrOutOfMemory - 2147749894 (0x80041006)

操作を完了させるための十分なメモリがありません。

要件

要件
サポートされている最小のクライアント
Windows Vista
サポートされている最小のサーバー
Windows Server 2008
Header
Wbemdisp.h
タイプ ライブラリ
Wbemdisp.tlb
[DLL]
Wbemdisp.dll
CLSID
CLSID_ISWbemServicesEx
IID
IID_ISWbemServicesEx