Метод IPropertySetStorage::Open (propidl.h)
Метод Open открывает набор свойств, содержащийся в объекте хранилища набора свойств.
Синтаксис
HRESULT Open(
[in] REFFMTID rfmtid,
[in] DWORD grfMode,
[out] IPropertyStorage **ppprstg
);
Параметры
[in] rfmtid
Идентификатор формата (FMTID) открываемого свойства. Дополнительные сведения об известных и предопределенных FMTID в пакете SDK для платформы см. в разделе Predefined Property Set Format Identifiers.
[in] grfMode
Режим доступа, в котором открывается только что созданный набор свойств. Эти флаги взяты из констант STGM. Флаги, которые могут использоваться, и их значения в контексте этого метода описаны в следующем разделе примечаний.
[out] ppprstg
Указатель на переменную указателя IPropertyStorage , которая получает указатель интерфейса на вложенный объект хранилища запрошенных свойств.
Возвращаемое значение
Этот метод поддерживает стандартное возвращаемое значение E_UNEXPECTED, а также следующее:
Комментарии
Режим открытия набора свойств указывается в параметре grfMode. Эти флаги взяты из констант STGM, но для этого метода юридические значения и их значения приведены ниже (допустимы только определенные сочетания этих значений флагов).
Значение | Значение |
---|---|
STGM_DIRECT | Открывает набор свойств без дополнительного уровня вложения транзакций. Это значение по умолчанию (поведение, если не указано ни STGM_DIRECT, ни STGM_TRANSACTED). |
STGM_TRANSACTED | Открывает набор свойств с дополнительным уровнем вложенности транзакций (за пределами транзакции, если она есть, в этом объекте хранилища набора свойств). Режим транзакций доступен только для неимплированных наборов свойств. Изменения в наборе свойств должны быть зафиксированы с помощью вызова метода IPropertyStorage::Commit , прежде чем они станут видимы для транзакции в этом хранилище наборов свойств. |
STGM_READ | Открывает набор свойств с доступом на чтение. Для хранилища набора свойств требуется разрешение на чтение. |
STGM_WRITE | Открывает набор свойств с доступом на запись. Не все реализации IPropertyStorage поддерживают этот режим. |
STGM_READWRITE | Открывает набор свойств с доступом на чтение и запись. Имейте в виду, что этот флаг не является двоичным ИЛИ значений STGM_READ и STGM_WRITE. |
STGM_SHARE_DENY_NONE | Последующим открытиям набора свойств из этого хранилища набора свойств не запрещается доступ на чтение или запись. (Доступно не во всех реализациях.) |
STGM_SHARE_DENY_READ | Последующим открытиям набора свойств из этого хранилища набора свойств запрещается доступ на чтение. Доступно не во всех реализациях. |
STGM_SHARE_DENY_WRITE | Последующим открытиям набора свойств из этого хранилища набора свойств запрещается доступ на запись. Это значение обычно используется в режиме транзакций, чтобы предотвратить создание ненужных копий объекта, открытых несколькими пользователями. То есть, если STGM_TRANSACTED указано, но это значение не указано, выполняется snapshot, независимо от того, имеются ли последующие отверстия. Таким образом, можно повысить производительность, указав это значение. Доступно не во всех реализациях. |
STGM_SHARE_EXCLUSIVE | Последующие открытия набора свойств из хранилища этого набора свойств невозможны. Имейте в виду, что это значение не является простым двоичным ИЛИ элементов STGM_SHARE_DENY_READ и STGM_SHARE_DENY_WRITE. |
Этот метод зависит от ограничений базового IStorage::OpenStream (для простых наборов свойств) или IStorage::OpenStorage (для неимпляных наборов свойств). Дополнительные сведения о простых и неимпляемых наборах свойств см. в разделе Storage and Stream Objects for a Property Set. Например, при использовании реализации файла IPropertySetStorage-Compound необходимо указать STGM_SHARE_EXCLUSIVE в параметре grfModeдля IPropertySetStorage::Open. И наоборот, при использовании изолированной реализации IPropertySetStorageна IPropertySetStorage::Open распространяются ограничения, которые применяются к IStorage, указанному вызывающим объектом.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | propidl.h (включая Objbase.h) |
Библиотека | Uuid.lib |
DLL | Ole32.dll |