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