Compartir a través de


Put (función)

Establece una propiedad con nombre en un valor nuevo.

Nota

Esta API es solo para uso interno. No está pensada para usarla desde código del desarrollador.

Sintaxis

HRESULT Put (
   [in] int               vFunc,
   [in] IWbemClassObject* ptr,
   [in] LPCWSTR           wszName,
   [in] LONG              lFlags,
   [in] VARIANT*          pVal,
   [in] CIMTYPE           vtType
);

Parámetros

vFunc
[in] Este parámetro no se usa.

ptr
[in] Puntero a una instancia de IWbemClassObject.

wszName
[in] Nombre de la propiedad. Este parámetro no puede ser null.

lFlags
[in] Reservado. El valor de este parámetro deberá ser 0.

pVal
[in] El valor de esta propiedad de entrada se corresponde con un puntero que apunta a un valor válido de un elemento VARIANT, que se convertirá en el nuevo valor de propiedad. Si el valor de la propiedad pVal es null o apunta a un elemento VARIANT de tipo VT_NULL, el valor de esta propiedad se establecerá en null.

vtType
[in] El valor de esta propiedad de entrada se corresponde con el tipo de elemento VARIANT al que apunta el puntero de la propiedad pVal. Consulte la sección Comentarios para obtener más información.

Valor devuelto

Los siguientes valores que devuelve esta función se definen en el archivo de encabezado WbemCli.h, aunque también puede definirlos como constantes en el código. Puede consultarlos a continuación:

Constante Value Descripción
WBEM_E_FAILED 0x80041001 Si se devuelve este valor, significará que se ha producido un error general.
WBEM_E_INVALID_PARAMETER 0x80041008 Si se devuelve este valor, significará que uno o más parámetros no son válidos.
WBEM_E_INVALID_PROPERTY_TYPE 0x8004102a No se reconoce el tipo de propiedad. Este valor se devuelve cuando se intenta crear instancias de clases que ya existen.
WBEM_E_OUT_OF_MEMORY 0x80041006 Memoria insuficiente para completar la operación.
WBEM_E_TYPE_MISMATCH 0x80041005 Para instancias: este valor significará que el puntero del parámetro pVal apunta a un elemento VARIANT de un tipo que no es correcto para la propiedad en cuestión.
Para definiciones de clase: este valor significará que la propiedad en cuestión ya existe en la clase primaria y que el nuevo tipo COM es diferente del tipo COM anterior.
WBEM_S_NO_ERROR 0 Si se devuelve este valor, significará que la llamada a la función se realizó correctamente.

Comentarios

Al usar esta función, se ajusta una llamada al método IWbemClassObject::Put.

El uso de esta función siempre causa que se sobrescriba el valor de propiedad actual con uno nuevo. Si el objeto de tipo IWbemClassObject apunta a una definición de clase, el método Put creará o actualizará el valor de propiedad. Si el objeto de tipo IWbemClassObject apunta a una instancia de CIM, el método Put solo actualizará el valor de propiedad. Esto se debe a que Put no puede crear un valor de propiedad.

La propiedad del sistema __CLASS solo se puede escribir durante el proceso de creación de la clase, ya que entonces este no puede dejarse en blanco. El resto de las propiedades del sistema son de sólo lectura.

Un usuario no puede crear propiedades con nombres que comiencen o terminen con un carácter de subrayado ("_"). Esto se reserva para las clases y las propiedades del sistema.

Si la propiedad que estableció la función Put ya existe en la clase primaria, el valor predeterminado de la propiedad se cambiará a menos que el tipo de propiedad no coincida con el tipo de clase primario. Si la propiedad no existe y no se trata de un error de coincidencia de tipos, esta se creará.

Use el parámetro vtType únicamente para crear nuevas propiedades en una definición de clase CIM cuando el valor de la propiedad pVal sea null o apunte a un elemento VARIANT de tipo VT_NULL. En este caso, el tipo de CIM de la propiedad se especificará mediante el valor del parámetro vType. En todos los demás casos, el valor del parámetro vtType deberá ser 0. El valor del parámetro vtType también deberá ser 0 si el objeto subyacente es una instancia (incluso aunque el valor del elemento Val sea null) ya que el tipo de la propiedad es fijo y no se puede cambiar.

Ejemplo

Para obtener un ejemplo, consulte el método IWbemClassObject::Put.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: WMINet_Utils.idl

Versiones de .NET Framework: está disponible desde la versión 4.7.2

Consulte también