IPropertyStorage::WritePropertyNames 方法 (propidlbase.h)

WritePropertyNames 方法将字符串 IPropertyStorage 名称分配给当前属性集中的指定属性 ID 数组。

语法

HRESULT WritePropertyNames(
  [in] ULONG             cpropid,
  [in] const PROPID []   rgpropid,
  [in] const LPOLESTR [] rglpwstrName
);

参数

[in] cpropid

数组 rgpropid 的输入大小。 可以为零。 但是,将其设置为零会导致此方法不可操作。

[in] rgpropid

要为其设置名称的属性 ID 的数组。

[in] rglpwstrName

要分配给 rgpropid 数组中的相应属性 ID 的新名称数组。 这些名称不能超过 255 个字符, (不包括 NULL 终止符) 。

返回值

除以下项外,此方法还支持标准返回值 E_UNEXPECTED

注解

有关属性集和内存管理的详细信息,请参阅 管理属性集

IPropertyStorage::WritePropertyNames 将字符串名称分配给传递到 rgpropid 数组中方法的属性 ID。 它将 rglpwstrName 数组中的每个字符串名称与 rgpropid 中相应的属性 ID 相关联。 为属性存储对象中当前不存在的属性 ID 定义名称是显式有效的。

更改由不区分大小写的匹配) 确定的现有字符串名称 (映射也是有效的。 也就是说,可以使用 WritePropertyNames 方法将现有名称映射到新的属性 ID,或将新名称映射到字典中已有名称的属性 ID。 在任一情况下,将删除原始映射。 属性名称 (属性集内) 属性 ID 必须是唯一的。

字符串属性名称的存储将保留大小写。 除非 PROPSETFLAG_CASE_SENSITIVE 传递到 IPropertySetStorage::Create,否则属性集名称默认不区分大小写。 使用不区分大小写的属性集时,调用方传递的名称字符串根据属性集的区域设置解释,由 PID_LOCALE 属性指定。 如果属性集没有区域设置属性,则默认假定为当前用户。 字符串属性名称的长度限制为 128 个字符。 以 0x001F 0x0001二进制 Unicode 字符开头的属性名称保留供将来使用。

如果 rgpropid 数组参数中元素的值设置为 0xffffffff (PID_ILLEGAL) , 则 IPropertyStorage::WritePropertyNames 将忽略相应的名称。 例如,如果使用 cpropid 参数 3 调用此方法,但数组的第一个元素 rgpropid[1] 设置为 PID_ILLEGAL,则只写入两个属性名称。 忽略 rgpropid[1] 元素。

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 propidlbase.h (包括 Objbase.h、Propidlbase.h)
Library Uuid.lib
DLL Ole32.dll

另请参阅

IPropertyStorage

IPropertyStorage::ReadMultiple

IPropertyStorage::ReadPropertyNames

IPropertyStorage::WriteMultiple

示例

WriteRead 示例