Creación de objetos de parámetro en C++
Los métodos IWbemServices::ExecMethod o ExecMethodAsync requieren la clase del sistema __PARAMETERS como contenedor en pInParams si el método que están ejecutando tiene argumentos de entrada.
En este procedimiento se describe cómo crear una instancia de la clase del sistema __PARAMETERS para contener información de parámetros.
Procedimientos para crear una instancia de __PARAMETERS
Determine el trazado de clase de la clase que contiene la definición del método.
Con el trazado de clase y el puntero IWbemServices pasados desde IWbemProviderInit::Initialize, llame a IWbemClassObject::GetMethod para recuperar las clases de parámetros de entrada y salida.
El método GetMethod devuelve un puntero IWbemClassObject para tener acceso a cada una de estas clases.
Con el puntero IWbemClassObject para la clase de salida, llame a IWbemClassObject::SpawnInstance para crear una instancia de la clase.
Rellene la instancia de clase mediante el establecimiento de las propiedades correspondientes a los valores de salida y, si hay un valor devuelto para el método, la propiedad ReturnValue.
Vuelva a pasar la instancia __PARAMETERS al autor de la llamada mediante el método IWbemObjectSink::Indicate.
Después de que un proveedor de métodos determine que los parámetros de entrada son correctos, el método al que apunta strMethodName podría seguir pasando o producir un error. Algunos proveedores de métodos generan un segundo subproceso para implementar el método de modo que su éxito o error reales terminen siendo notificados al autor de la llamada mediante IWbemObjectSink::SetStatus. Tenga en cuenta que IWbemObjectSink::SetStatus no recibe el código de retorno del método de proveedor. Pero recibe el código de retorno del mecanismo real de devolución de llamada y solo es útil para comprobar que se produjo la llamada o que se produjo un error por motivos mecánicos.
Temas relacionados