Condividi tramite


Creazione di oggetti Parameters in C++

I metodi IWbemServices::ExecMethod o ExecMethodAsync richiedono la classe di sistema __PARAMETERS come contenitore in pInParams se il metodo in esecuzione ha argomenti di input.

La procedura seguente descrive come creare un'istanza della classe di sistema __PARAMETERS per contenere le informazioni sui parametri.

Per creare un'istanza di __PARAMETERS

  1. Determinare il percorso della classe contenente la definizione del metodo.

  2. Usando il percorso della classe e il puntatore IWbemServices passati da IWbemProviderInit::Initialize, chiamare IWbemClassObject::GetMethod per recuperare le classi di parametri di input e output.

    Il metodo GetMethod restituisce un puntatore IWbemClassObject per l'accesso a ognuna di queste classi.

  3. Usando il puntatore IWbemClassObject per la classe di output, chiamare IWbemClassObject::SpawnInstance per creare un'istanza della classe .

  4. Popolare l'istanza della classe impostando le proprietà corrispondenti ai valori di output e, se è presente un valore restituito per il metodo , la proprietà ReturnValue .

  5. Passare di nuovo l'istanza di __PARAMETERS al chiamante tramite il metodo IWbemObjectSink::Indicate .

Dopo che un provider di metodi determina che i parametri di input sono corretti, il metodo a cui punta strMethodName potrebbe comunque passare o non riuscire. Alcuni provider di metodi generano un secondo thread per implementare il metodo in modo che l'esito positivo o negativo effettivo del metodo venga segnalato al chiamante tramite IWbemObjectSink::SetStatus. Si noti che IWbemObjectSink::SetStatus non riceve il codice restituito del metodo provider. Tuttavia, riceve il codice restituito del meccanismo di restituzione della chiamata effettiva ed è utile solo per verificare che la chiamata si sia verificata o che non sia riuscita per motivi meccanici.

Chiamata di un metodo

IWbemCallResult::GetResultObject

IWbemServices::ExecMethodAsync

IWbemServices::ExecMethod