Метод IPropertySetStorage::Create (propidl.h)

Метод Create создает и открывает новый набор свойств в объекте хранилища набора свойств.

Синтаксис

HRESULT Create(
  [in]  REFFMTID         rfmtid,
  [in]  const CLSID      *pclsid,
  [in]  DWORD            grfFlags,
  [in]  DWORD            grfMode,
  [out] IPropertyStorage **ppprstg
);

Параметры

[in] rfmtid

FMTID создаваемого свойства. Сведения о хорошо известных и предопределенных в пакете SDK для платформы FMTID см. в разделе Предопределенные идентификаторы формата набора свойств.

[in] pclsid

Указатель на идентификатор начального класса CLSID для этого набора свойств. Может иметь значение NULL, и в этом случае ему присваивается значение всех нулей. CLSID — это ИДЕНТИФИКАТОР CLSID класса, который отображает и /или предоставляет программный доступ к значениям свойств. Если такого класса нет, рекомендуется использовать FMTID.

[in] grfFlags

Значения из констант PROPSETFLAG.

[in] grfMode

Режим доступа, в котором открывается только что созданный набор свойств, взятый из определенных значений STGM_Constants, как описано в следующем разделе Примечания.

[out] ppprstg

Указатель на выходную переменную, которая получает указатель интерфейса IPropertyStorage .

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

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

Комментарии

IPropertySetStorage::Create создает и открывает новый подобъект набора свойств (поддерживающий интерфейс IPropertyStorage ), содержащийся в этом объекте хранилища набора свойств. Набор свойств автоматически содержит свойства кодовой страницы и идентификатора языкового стандарта. Для них задано значение Юникода и текущего пользователя по умолчанию соответственно.

Параметр grfFlags представляет собой сочетание значений, взятых из констант PROPSETFLAG. Если используется значение PROPSETFLAG_ANSI из этого перечисления, для кодовой страницы устанавливается текущее системное значение по умолчанию, а не Юникод.

Параметр grfMode указывает режим доступа, в котором будет открыт только что созданный набор. Значения для этого параметра соответствуют значению параметра grfMode для IPropertySetStorage::Open с добавлением значений, перечисленных в следующей таблице.

Значение Значение
STGM_FAILIFTHERE Если существует другое свойство, заданное с указанным параметром fmtid , вызов завершается ошибкой. Это действие по умолчанию; то есть, если не указан STGM_CREATE, подразумевается STGM_FAILIFTHERE.
STGM_CREATE Если другое свойство, заданное с указанным параметром fmtid , уже существует, оно удаляется и заменяется этим новым.
 

Созданный набор свойств по умолчанию прост, но вызывающий объект может запросить набор неимпляемых свойств, указав значение PROPSETFLAG_NONSIMPLE в параметре grfFlags . Дополнительные сведения о простых и неимпляемых наборах свойств см. в разделе Storage and Stream Objects for a Property Set.

Этот метод регулируется ограничениями базового IStorage::CreateStream (для простых наборов свойств) или IStorage::CreateStorage (для неимпляных наборов свойств). Например, при использовании реализации файла IPropertySetStorage-Compound укажите STGM_SHARE_EXCLUSIVE в параметре grfModeдля IPropertySetStorage::Create. И наоборот, при использовании изолированной реализации IPropertySetStorageна IPropertySetStorage::Create распространяются ограничения, которые применяются к IStorage, указанному вызывающим объектом.

Требования

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

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

IPropertySetStorage

IPropertySetStorage::Open

Константы PROPSETFLAG

Примеры

Пример StgCreatePropSetStg

Пример WriteRead