共用方式為


在 C++ 中建立 Parameters 物件

IWbemServices::ExecMethodExecMethodAsync 方法需要 __PARAMETERS 系統類別作為容器,如果他們執行的方法有任何輸入參數,則需放在 pInParams 中。

下列程序說明如何建立 __PARAMETERS 系統類別的實例來保存參數資訊。

若要建立 __PARAMETERS 的實例

  1. 判斷包含方法定義的類別的類別路徑。

  2. 使用類別路徑和 IWbemServicesIWbemProviderInit::Initialize傳入的指標,呼叫 IWbemClassObject::GetMethod 來擷取輸入和輸出參數類別。

    GetMethod 方法會傳回 IWbemClassObject 指標,以存取每個類別。

  3. 使用輸出類別的 IWbemClassObject 指標,呼叫 IWbemClassObject::SpawnInstance 來建立 類別的實例。

  4. 藉由設定對應輸出值的屬性來填充類別實例,並且如果該方法有傳回值,則設置 ReturnValue 屬性。

  5. 透過 IWbemObjectSink::Indicate 方法,將 __PARAMETERS 實例傳回呼叫端。

在方法提供者判斷輸入參數正確之後,strMethodName 所指向的方法 可能仍會傳遞或失敗。 某些方法提供者會繁衍第二個線程來實作 方法,讓方法的實際成功或失敗最終透過 IWbemObjectSink::SetStatus回報給呼叫者。 請注意,IWbemObjectSink::SetStatus 不會接收提供者方法的傳回碼。 不過,它會接收實際呼叫傳回機制的傳回碼,而且只適用於驗證呼叫發生或因機械原因而失敗。

呼叫方法

IWbemCallResult:GetResultObject

IWbemServices::ExecMethodAsync

IWbemServices::ExecMethod