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