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