Share via


SWbemObject.SubclassesAsync_ メソッド

SWbemObjectSubclassesAsync_ メソッドは、現在のオブジェクトのサブクラスを非同期的に提供します。これはクラスである必要があります。

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

構文

SWbemObject.SubclassesAsync_( _
  ByVal objWbemSink, _
  [ ByVal iFlags ], _
  [ ByVal objWbemNamedValueSet ], _
  [ ByVal objWbemAsyncContext ] _
)

パラメーター

objWbemSink [in]

必須。 オブジェクトを非同期的に受信するオブジェクト シンク。

iFlags [in、オプション]

呼び出しの列挙の詳細度を決定します。 このパラメーターには次の値を指定することができます。

wbemQueryFlagDeep (0 (0x0))

指定した親クラスから派生したすべてのサブクラスに再帰的列挙を強制します。 親クラス自体は、列挙では返されません。

wbemQueryFlagShallow (1 (0x1))

このパラメーターの既定値。 指定した親クラスの直接サブクラスのみを列挙型に強制的に含めます。

wbemFlagSendStatus (128 (0x80))

非同期呼び出しから、オブジェクト シンクの SWbemSink.OnProgress イベント ハンドラーに状態の更新が送信されるようにします。

wbemFlagDontSendStatus (0 (0x0))

非同期呼び出しからオブジェクト シンクの OnProgress イベント ハンドラーに状態の更新が送信されないようにします。

wbemFlagUseAmendedQualifiers (131072 (0x20000))

WMI が基底クラス定義を使用してクラス変更データを返します。 修正修飾子の詳細については、「WMI クラス情報のローカライズ」を参照してください。

objWbemNamedValueSet [in、オプション]

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

objWbemAsyncContext [in, optional]

これは、元の非同期呼び出しのソースを識別するためにオブジェクト シンクに戻る SWbemNamedValueSet オブジェクトです。 同じオブジェクト シンクを使用して複数の非同期呼び出しを行う場合は、このパラメーターを使用します。 このパラメーターを使用するには、SWbemNamedValueSet オブジェクトを作成し、SWbemNamedValueSet.Add メソッドを使用して、作成する非同期呼び出しを識別する値を追加します。 この SWbemNamedValueSet オブジェクトはオブジェクト シンクに返され、呼び出しのソースは SWbemNamedValueSet.Item メソッドを使用して抽出できます。 詳細については、「メソッドの呼び出し」を参照してください。

戻り値

このメソッドは値を返しません。 成功した場合、シンクはインスタンスごとに OnObjectReady イベントを受け取ります。 最後のインスタンスの後、オブジェクト シンクは OnCompleted イベントを受け取ります。

エラー コード

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

wbemErrAccessDenied - 2147749891 (0x80041003)

現在のユーザーに、呼び出しから返される 1 つ以上のクラスを表示する権限がありません。

wbemErrFailed - 2147749889 (0x80041001)

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

wbemErrInvalidClass - 2147749904 (0x80041010)

指定されたクラスが存在しません。

wbemErrInvalidParameter - 2147749896 (0x80041008)

無効なパラメーターが指定されました。

wbemErrOutOfMemory - 2147749894 (0x80041006)

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

解説

この呼び出しはすぐに返されます。 要求されたオブジェクトと状態は、objWbemSink で指定されたシンクに配信されるコールバックを通じて呼び出し元に返されます。 各オブジェクトが到着したときにそれを処理するには、objWbemSink.OnObjectReady イベント サブルーチンを作成します。 すべてのオブジェクトが返されたら、objWbemSink.OnCompleted イベントの実装で最終的な処理を実行できます。

非同期コールバックを使用すると、認証されていないユーザーがシンクにデータを提供できます。 これにより、スクリプトとアプリケーションにセキュリティ リスクが発生します。 リスクを排除するには、半同期通信と同期通信のいずれかを使用します。 詳細については、「メソッドの呼び出し」を参照してください。

スクリプトでは、objWbemAsyncContext パラメーターを使用して、呼び出しのソースを確認することをお勧めします。

現在のオブジェクトのサブクラスがない場合、返されるコレクションに含まれる要素が 0 個であることはエラーではありません。 SubclassesAsync_ メソッドは、クラス オブジェクトに対してのみ機能します。

要件

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

関連項目

SWbemObject

SWbemObjectSet

SWbemRefreshableItem