Put 函数

将命名属性设置为新值。

注意

此 API 仅供内部使用。 不应从开发人员代码中使用。

语法

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

参数

vFunc
[in] 未使用此参数。

ptr
[in] 指向 IWbemClassObject 实例的指针。

wszName
[in] 属性的名称。 此参数不能为 null

lFlags
[in] 保留。 此参数必须为 0。

pVal
[in] 指向成为新属性值的有效 VARIANT 的指针。 如果 pValnull 或指向 VT_NULL 类型的 VARIANT,则该属性设置为 null

vtType
[in] pVal 指向的 VARIANT 的类型。 有关详细信息,请参阅备注部分。

返回值

此函数返回的以下值是在 WbemCli.h 头文件中定义的,你也可以在代码中将这些值定义为常数:

常数 Value 说明
WBEM_E_FAILED 0x80041001 发生一般性故障。
WBEM_E_INVALID_PARAMETER 0x80041008 一个或多个参数无效。
WBEM_E_INVALID_PROPERTY_TYPE 0x8004102a 无法识别属性类型。 如果类已经存在,则在创建类实例时返回此值。
WBEM_E_OUT_OF_MEMORY 0x80041006 没有足够的可用内存来完成该操作。
WBEM_E_TYPE_MISMATCH 0x80041005 对于实例:指示 pVal 指向属性类型不正确的 VARIANT
对于类定义:父类中已存在该属性,且新 COM 类型不同于旧 COM 类型。
WBEM_S_NO_ERROR 0 函数调用成功。

注解

此函数包装对 IWbemClassObject::Put 方法的调用。

此函数始终使用新的属性值覆盖当前属性值。 如果 IWbemClassObject 指向类定义,则 Put 创建或更新属性值。 当 IWbemClassObject 指向 CIM 实例时,Put 仅更新属性值;Put 无法创建属性值。

__CLASS 系统属性仅在类创建期间(此时该属性不能留空)可写。 所有其他系统属性均为只读。

用户不能创建名称以下划线字符(“_”)开头或结尾的属性。 此为系统类和属性保留。

如果父类中存在由 Put 函数设置的属性,则除非属性类型与父类类型不匹配,否则将更改属性的默认值。 如果该属性不存在,且并非类型不匹配,则创建该属性。

仅当在 CIM 类定义中创建新属性并且 pValnull 或指向 VT_NULL 类型的 VARIANT 时,才使用 vtType 参数。 在这种情况下,vType 参数指定属性的 CIM 类型。 在其他所有情况下,vtType 必须为0。 如果基础对象是一个实例(即使 Valnull),vtType 也必须为 0,因为属性的类型是固定的并且不能更改。

示例

有关示例,请参阅 IWbemClassObject::Put 方法。

要求

平台:请参阅系统要求

标头:WMINet_Utils.idl

.NET Framework 版本:自 4.7.2 起可用

另请参阅