IWbemServices::P utClass メソッド (wbemcli.h)

IWbemServices::P utClass メソッドは、新しいクラスを作成するか、既存のクラスを更新します。 pObject パラメーターで指定されたクラスは、必要なすべてのプロパティ値で正しく初期化されている必要があります。

ユーザーは、アンダースコア (_) で始まる名前または末尾の名前を持つクラスを作成することはできません。 これはシステム クラス用に予約されています。

構文

HRESULT PutClass(
  [in]  IWbemClassObject *pObject,
  [in]  long             lFlags,
  [in]  IWbemContext     *pCtx,
  [out] IWbemCallResult  **ppCallResult
);

パラメーター

[in] pObject

有効なクラス定義を指す必要があります。 参照カウントは変更されません。

[in] lFlags

次のフラグは、このメソッドの動作に影響します。

WBEM_FLAG_USE_AMENDED_QUALIFIERS

このフラグが設定されている場合、WMI は修正されたフレーバーを持つ修飾子を格納しません。 このフラグが設定されていない場合は、このオブジェクトがローカライズされていないと見なされ、すべての修飾子がこのインスタンスと共に格納されます。

WBEM_FLAG_CREATE_OR_UPDATE

このフラグを指定すると、クラスが存在しない場合は作成され、既に存在する場合は上書きされます。

WBEM_FLAG_UPDATE_ONLY

このフラグにより、この呼び出しが更新されます。 呼び出しが成功するには、クラスが存在している必要があります。

WBEM_FLAG_CREATE_ONLY

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

WBEM_FLAG_RETURN_IMMEDIATELY

このフラグにより、これは半同期呼び出しになります。 詳細については、「メソッドの呼び出し」を参照してください。

WBEM_FLAG_OWNER_UPDATE

プッシュ プロバイダーは、 PutClass を呼び出すときにこのフラグを指定して、このクラスが変更されたことを示す必要があります。

WBEM_FLAG_UPDATE_COMPATIBLE

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

WBEM_FLAG_UPDATE_SAFE_MODE

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

WBEM_FLAG_UPDATE_FORCE_MODE

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

[in] pCtx

通常 は NULL です。 それ以外の場合、これは、クラス インスタンスを生成する動的クラス プロバイダーに必要な IWbemContext オブジェクトへのポインターです。 コンテキスト オブジェクトの値は、該当するプロバイダーのドキュメントで指定する必要があります。 このパラメーターの詳細については、「 WMI への呼び出しの作成」を参照してください。

[out] ppCallResult

NULL の場合、このパラメーターは使用されません。 lFlags パラメーターにWBEM_FLAG_RETURN_IMMEDIATELYが含まれている場合、この呼び出しはWBEM_S_NO_ERRORを使用して直ちにを返します。 ppCallResult パラメーターは、新しい IWbemCallResult オブジェクトへのポインターを受け取り、IWbemCallResult::GetCallStatus メソッドを使用して結果を取得するためにポーリングできます。

戻り値

このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。 次の一覧は、 HRESULT 内に含まれる値の一覧です。

失敗した場合は、COM 関数 GetErrorInfo から使用可能な情報を取得できます。

ネットワークの問題によって Windows Management へのリモート接続が失われると、COM 固有のエラー コードも返される可能性があります。

メモ クラス定義がクライアントまたはプロバイダーによって使用されている間にクラス定義を変更すると、予期しない動作が発生します。 IWbemServices::P utClass メソッドは、 クラスを現在使用しているクライアントまたはプロバイダーがない場合にのみ、クラスを作成または更新するために使用する必要があります。
 

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー wbemcli.h (Wbemidl.h を含む)
Library Wbemuuid.lib
[DLL] Fastprox.dll;Esscli.dll;FrameDyn.dll;FrameDynOS.dll;Ntevt.dll;Stdprov.dll;Viewprov.dll;Wbemcomn.dll;Wbemcore.dll;Wbemess.dll;Wbemsvc.dll;Wmipicmp.dll。Wmidcprv.dll;Wmipjobj.dll。Wmiprvsd.dll

こちらもご覧ください

クラスの作成

IWbemCallResult

IWbemServices

エラー コードの取得