Share via


C++ でのパラメータ オブジェクトの作成

実行しているメソッドに入力引数がある場合、IWbemServices::ExecMethod または ExecMethodAsync メソッドでは、pInParams のコンテナーとして __PARAMETERS システム クラスが必要です。

次の手順では、パラメータ情報を保持する __PARAMETERS システム クラスのインスタンスを作成する方法について説明します。

__PARAMETERS のインスタンスを作成するには

  1. メソッド定義を含むクラスのクラス パスを確認します。

  2. IWbemProviderInit::Initialize から渡されるクラス パスと IWbemServices ポインターを使用して、IWbemClassObject::GetMethod を呼び出して、入力および出力パラメータ クラスを取得します。

    GetMethod メソッドでは、これらの各クラスにアクセスするための IWbemClassObject ポインターを返します。

  3. 出力クラスに IWbemClassObject ポインターを使用して、IWbemClassObject::SpawnInstance を呼び出して、クラスのインスタンスを作成します。

  4. 出力値に対応するプロパティを設定し、メソッドの戻り値がある場合は ReturnValue プロパティを設定して、クラス インスタンスを設定します。

  5. IWbemObjectSink::Indicate メソッドを使用して、__PARAMETERS インスタンスを呼び出し元に戻します。

入力パラメータが正しいとメソッド プロバイダーで判断した後も、strMethodName が指すメソッドは引き続き合格または失敗する可能性があります。 一部のメソッド プロバイダーでは、メソッドを実装するために 2 番目のスレッドを生成し、メソッドの実際の成功または失敗が IWbemObjectSink::SetStatus を介して呼び出し元に報告されるようにします。 IWbemObjectSink::SetStatus ではプロバイダー メソッドのリターン コードを受け取らないことに注意してください。 ただし、実際の呼び出し戻しメカニズムのリターン コードは受け取ります。これは、呼び出しが発生したこと、または機械的な理由で失敗したことを確認する場合にのみ役立ちます。

メソッドの呼び出し

IWbemCallResult::GetResultObject

IWbemServices::ExecMethodAsync

IWbemServices::ExecMethod