Поделиться через


Метод IPropertyStorage::WritePropertyNames (propidl.h)

Метод WritePropertyNames присваивает строковые имена IPropertyStorage указанному массиву идентификаторов свойств в текущем наборе свойств.

Синтаксис

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

Параметры

[in] cpropid

Размер входных данных массива rgpropid. Может равняться нулю. Однако при нулевом значении этот метод становится нерабоспособным.

[in] rgpropid

Массив идентификаторов свойств, для которых необходимо задать имена.

[in] rglpwstrName

Массив новых имен, присваиваемых соответствующим идентификаторам свойств в массиве rgpropid . Эти имена не могут превышать 255 символов (без учета признака конца NULL ).

Возвращаемое значение

Этот метод поддерживает стандартное возвращаемое значение E_UNEXPECTED в дополнение к следующему:

Комментарии

Дополнительные сведения о наборах свойств и управлении памятью см. в разделе Управление наборами свойств.

IPropertyStorage::WritePropertyNames назначает имена строк идентификаторам свойств, передаваемым методу в массиве rgpropid . Он связывает каждое имя строки в массиве rglpwstrName с соответствующим идентификатором свойства в rgpropid. Явно допустимо определить имя для идентификатора свойства, который в настоящее время отсутствует в объекте хранилища свойств.

Кроме того, можно изменить сопоставление для существующего имени строки (определяется совпадением без учета регистра). То есть метод WritePropertyNames можно использовать для сопоставления существующего имени с новым идентификатором свойства или для сопоставления нового имени с идентификатором свойства, у которого уже есть имя в словаре. В любом случае исходное сопоставление удаляется. Имена свойств должны быть уникальными (как и идентификаторы свойств) в наборе свойств.

Хранение имен строковых свойств сохраняет регистр. Если PROPSETFLAG_CASE_SENSITIVE не передается в IPropertySetStorage::Create, имена наборов свойств по умолчанию не учитывают регистр. При использовании наборов свойств без учета регистра строки имен, передаваемые вызывающим объектом, интерпретируются в соответствии с языковым стандартом набора свойств, как указано в свойстве PID_LOCALE . Если набор свойств не имеет свойства языкового стандарта, по умолчанию предполагается, что текущий пользователь. Длина имен строковых свойств ограничена 128 символами. Имена свойств, начинающиеся с двоичных символов Юникода 0x0001 0x001F, зарезервированы для использования в будущем.

Если значение элемента в параметре массива rgpropid равно 0xffffffff (PID_ILLEGAL), то iPropertyStorage::WritePropertyNames игнорирует соответствующее имя. Например, если этот метод вызывается с параметром cpropid 3, но первый элемент массива rgpropid[1] имеет значение PID_ILLEGAL, то записываются только два имени свойств. Элемент rgpropid[1] игнорируется.

Требования

   
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header propidl.h (включая Objbase.h, Propidlbase.h)
Библиотека Uuid.lib
DLL Ole32.dll

См. также раздел

IPropertyStorage

IPropertyStorage::ReadMultiple

IPropertyStorage::ReadPropertyNames

IPropertyStorage::WriteMultiple

Примеры

Пример WriteRead