Метод IPropertyStorage::WritePropertyNames (propidlbase.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 propidlbase.h (включая Objbase.h, Propidlbase.h)
Библиотека Uuid.lib
DLL Ole32.dll

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

IPropertyStorage

IPropertyStorage::ReadMultiple

IPropertyStorage::ReadPropertyNames

IPropertyStorage::WriteMultiple

Примеры

Пример WriteRead