在 C++ 中建立 Parameters 物件
IWbemServices::ExecMethod 或 ExecMethodAsync 方法需要 __PARAMETERS 系統類別作為容器,如果他們執行的方法有任何輸入參數,則需放在 pInParams 中。
下列程序說明如何建立 __PARAMETERS 系統類別的實例來保存參數資訊。
若要建立 __PARAMETERS 的實例
判斷包含方法定義的類別的類別路徑。
使用類別路徑和 IWbemServices 從 IWbemProviderInit::Initialize傳入的指標,呼叫 IWbemClassObject::GetMethod 來擷取輸入和輸出參數類別。
GetMethod 方法會傳回 IWbemClassObject 指標,以存取每個類別。
使用輸出類別的 IWbemClassObject 指標,呼叫 IWbemClassObject::SpawnInstance 來建立 類別的實例。
藉由設定對應輸出值的屬性來填充類別實例,並且如果該方法有傳回值,則設置 ReturnValue 屬性。
透過 IWbemObjectSink::Indicate 方法,將 __PARAMETERS 實例傳回呼叫端。
在方法提供者判斷輸入參數正確之後,strMethodName 所指向的方法 可能仍會傳遞或失敗。 某些方法提供者會繁衍第二個線程來實作 方法,讓方法的實際成功或失敗最終透過 IWbemObjectSink::SetStatus回報給呼叫者。 請注意,IWbemObjectSink::SetStatus 不會接收提供者方法的傳回碼。 不過,它會接收實際呼叫傳回機制的傳回碼,而且只適用於驗證呼叫發生或因機械原因而失敗。
相關主題