SWbemServices.InstancesOfAsync メソッド
SWbemServices オブジェクトの InstancesOfAsync メソッドを使用すると、ユーザー指定の条件に従って、指定したクラスのインスタンスを取得できます。
このメソッドは、非同期モードで呼び出されます。 詳細については、メソッドの呼び出しに関するページを参照してください。
構文の説明については、「スクリプト API のドキュメント規則」を参照してください。
構文
SWbemServices.InstancesOfAsync( _
ByVal ObjWbemSink, _
ByVal strClass, _
[ ByVal iFlags ], _
[ ByVal objWbemNamedValueSet ], _
[ ByVal objWbemAsyncContext ] _
)
パラメーター
-
ObjWbemSink
-
インスタンスを非同期的に受け取るオブジェクト シンク。 オブジェクトを受信する SWbemSink オブジェクトを作成します。
-
strClass
-
必須。 必要なインスタンスのクラスの名前を含む文字列。 このパラメーターを空白にすることはできません。
-
iFlags [省略可能]
-
呼び出し列挙の深さと、呼び出しがすぐに返されるかどうかを決定します。 このパラメーターには次の値を指定できます。
-
wbemQueryFlagShallow (1 (0x1))
-
指定した親クラスの直接サブクラスのみが強制的に列挙に含まれます。
-
wbemQueryFlagDeep (0 (0x0))
-
このパラメーターの既定値。 この値を使用すると、階層内のすべてのクラスが強制的に列挙に含まれます。
-
wbemFlagSendStatus (128 (0x80))
-
非同期呼び出しからオブジェクト シンクの OnProgress イベント ハンドラーに状態更新が送信されるようにします。
-
wbemFlagDontSendStatus (0 (0x0))
-
非同期呼び出しからオブジェクト シンクの OnProgress イベント ハンドラーに状態の更新が送信されないようにします。
-
wbemFlagUseAmendedQualifiers (131072 (0x20000))
-
WMI がクラス変更データと基底クラス定義を返すようにします。 詳細については、「WMI クラス情報のローカライズ」を参照してください。
objWbemNamedValueSet [省略可能]
通常、これは未定義です。 それ以外の場合、これは、要求を処理しているプロバイダーで使用可能なコンテキスト情報を表す要素を持つ SWbemNamedValueSet オブジェクトです。 コンテキスト情報をサポートまたは必要とするプロバイダーを使用して、認識された値名、値のデータ型、許可された値、セマンティクスを文書化する必要があります。
objWbemAsyncContext [オプション]
SWbemNamedValueSet オブジェクトであり、元の非同期呼び出しのソースを識別するためにオブジェクト シンクに返されます。 同じオブジェクト シンクを使用して複数の非同期呼び出しを実行している場合は、このパラメーターを使用します。 このパラメータを使用するには、SWbemNamedValueSet オブジェクトを作成し、SWbemNamedValueSet.Add メソッドを使用して、実行する非同期呼び出しを識別する値を追加します。 この SWbemNamedValueSet オブジェクトはオブジェクト シンクに返され、呼び出しのソースは SWbemNamedValueSet.Item メソッドを使用して抽出できます。
戻り値
このメソッドは値を返しません。 成功した場合、シンクはインスタンスごとに OnObjectReady イベントを受け取ります。 最後のインスタンスの後、オブジェクト シンクは OnCompleted イベントを受け取ります。
エラー コード
InstancesOfAsync メソッドが完了すると、Err オブジェクトに次の一覧のいずれかのエラー コードが含まれる場合があります。
-
wbemErrAccessDenied - 2147749891 (0x80041003)
-
現在のユーザーには、指定されたクラスのインスタンスを表示する権限がありません。
-
wbemErrFailed - 2147749889 (0x80041001)
-
未指定のエラーが発生しました。
-
wbemErrInvalidClass - 2147749904 (0x80041010)
-
指定されたクラスが無効です。
-
wbemErrInvalidParameter - 2147749896 (0x80041008)
-
指定されたパラメータが無効です。
-
wbemErrOutOfMemory - 2147749894 (0x80041006)
-
操作を完了させるための十分なメモリがありません。
解説
この呼び出しはすぐに返されます。 要求されたオブジェクトと状態は、objWbemSink で指定されたシンクに配信されるコールバックを通じて呼び出し元に返されます。 オブジェクトが返されたら、それぞれを都度処理するには、objWbemSink.OnObjectReady イベント サブルーチンを作成します。 すべてのオブジェクトが返されたら、objWbemSink.OnCompleted イベントの実装で最終処理を実行できます。
非同期コールバックを使用すると、認証されていないユーザーがシンクにデータを提供できます。 これにより、スクリプトとアプリケーションにセキュリティ リスクが発生します。 リスクを排除するには、「非同期呼び出しでのセキュリティの設定」を参照してください
InstancesOfAsync メソッドは、クラス オブジェクトに対してのみ機能します。 返された列挙子に要素が含まれていないことは、エラーではありません。
必要条件
要件 | Value |
---|---|
サポートされている最小のクライアント |
Windows Vista |
サポートされている最小のサーバー |
Windows Server 2008 |
ヘッダー |
|
タイプ ライブラリ |
|
[DLL] |
|
CLSID |
CLSID_SWbemServices |
IID |
IID_ISWbemServices |