Метод 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::ReadMultiple
IPropertyStorage::ReadPropertyNames