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
的指针。 如果 pVal
是 null
或指向 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 类定义中创建新属性并且 pVal
是 null
或指向 VT_NULL
类型的 VARIANT
时,才使用 vtType
参数。 在这种情况下,vType
参数指定属性的 CIM 类型。 在其他所有情况下,vtType
必须为0。 如果基础对象是一个实例(即使 Val
是 null
),vtType
也必须为 0,因为属性的类型是固定的并且不能更改。
示例
有关示例,请参阅 IWbemClassObject::Put 方法。
要求
平台:请参阅系统要求。
标头:WMINet_Utils.idl
.NET Framework 版本:自 4.7.2 起可用