Константы PROPSETFLAG

Константы PROPSETFLAG определяют характеристики набора свойств. Значения, перечисленные в следующей таблице, используются в параметре grfFlags методов IPropertySetStorage , функции StgCreatePropStg и функции StgOpenPropStg .

Константа или значение Описание
PROPSETFLAG_DEFAULT
0
Если значение не указано, по умолчанию в набор свойств могут записываться только простые значения свойств. Использование простых значений свойств предотвращает транзакцию наборов свойств в составном файле и автономных реализациях IPropertySetStorage. Значения свойств, отличных от e, должны использоваться для этой цели.
PROPSETFLAG_NONSIMPLE
1
Если задано, значения свойств nonsimple можно записать в набор свойств, а набор свойств сохраняется в объекте хранения. Не простые значения свойств включают значения с типом VARTYPE VT_STORAGE, VT_STREAM, VT_STORED_OBJECT или VT_STREAMED_OBJECT. Если этот флаг не указан, не простые типы не могут быть записаны в набор свойств. В составных файлах и автономных реализациях наборы свойств могут выполняться только в том случае, если указан PROPSETFLAG_NONSIMPLE .
PROPSETFLAG_ANSI
2
При указании все строковые значения в наборе свойств, которые не являются явным образом Юникодом, т. е. не VT_LPWSTR, сохраняются на текущей системной кодовой странице ANSI. Дополнительные сведения см. в разделе GetACP. Использование этого значения не рекомендуется. Дополнительные сведения см. в подразделе "Примечания".
Если это значение отсутствует, строковые значения в новом наборе свойств хранятся в Юникоде. Степень контроля, которую предоставляет это значение, необходима, чтобы клиенты, использующие интерфейсы, связанные со свойствами, могли взаимодействовать со стандартными наборами свойств, такими как сводная информация OLE2, которая может существовать на кодовой странице ANSI.
PROPSETFLAG_UNBUFFERED
4
Используется только с функциями StgCreatePropStg и StgOpenPropStg ; то есть в автономных реализациях интерфейсов набора свойств. Если они указаны в этих функциях, изменения в наборе свойств не буферичены. Вместо этого изменения всегда записываются непосредственно в набор свойств. Вызовы методов IPropertyStorage набора свойств изменят его. Однако по умолчанию изменения буферизуются во внутреннем кэше набора свойств и впоследствии записываются в набор свойств при вызове метода IPropertyStorage::Commit .
Установка PROPSETFLAG_UNBUFFERED снижает производительность, так как внутренний буфер набора свойств автоматически очищается после каждого изменения набора свойств. Однако написание изменений напрямую предотвратит проблемы координации. Например, если объект хранилища открыт в режиме транзакций и набор свойств буферичен. Затем, если вызвать метод IStorage::Commit для объекта хранилища, изменения набора свойств не будут выбраны как часть транзакции, так как они находятся в буфере, который еще не был удален. Перед вызовом IStorage::Commit необходимо вызвать IStorage::Commit для очистки буфера набора свойств перед фиксацией изменений в хранилище. В качестве альтернативы двум вызовам можно задать PROPSETFLAG_UNBUFFERED , чтобы изменения всегда записывался непосредственно в набор свойств и никогда не буферизовывался во внутреннем кэше набора свойств. После этого изменения будут выбраны при фиксации транзакционного хранилища.
PROPSETFLAG_CASE_SENSITIVE
8
При указании имена свойств чувствительны к регистру. Имена свойств с учетом регистра возможны только в формате сериализации набора свойств версии 1. Дополнительные сведения см. в разделе "Сериализация набора свойств".

Remarks

Эти значения можно задать и проверить с помощью побитовых операций, которые определяют, как создаются и открываются наборы свойств. Наборы свойств создаются с помощью метода IPropertySetStorage::Create или функции StgCreatePropStg . Они открываются с помощью метода IPropertySetStorage::Open или функции StgOpenPropStg .

Рекомендуется создавать наборы свойств в виде Юникода, не устанавливая флаг PROPSETFLAG_ANSI в параметре grfFlags . Кроме того, рекомендуется избегать использования VT_LPSTR значений и вместо этого использовать VT_LPWSTR значения. Если кодовая страница набора свойств — Юникод, VT_LPSTR строковые значения преобразуются в Юникод при хранении и преобразуются обратно в многобайтовые строковые значения при извлечении. Если кодовая страница набора свойств не является Юникодом, имена свойств, VT_BSTR строки и значения свойств nonsimple преобразуются в многобайтовые строки при хранении и преобразуются обратно в Юникод при извлечении, все используют текущую системную кодовую страницу ANSI.

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Propidl.h

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

FmtIdToPropStgName

IPropertySetStorage::Create

IPropertySetStorage::Open

PropStgNameToFmtId

StgCreatePropSetStg

StgCreatePropStg

StgOpenPropStg