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