Интерфейс IStorage (objidl.h)
Интерфейс IStorage поддерживает создание объектов структурированного хранилища и управление ими. Структурированное хранилище обеспечивает иерархическое хранение информации в одном файле и часто называется файловой системой в файле. Элементы структурированного объекта хранения являются хранилищами и потоками. Хранилища аналогичны каталогам, а потоки — файлам. В структурированном хранилище будет находиться основной объект хранилища, который может содержать вложенные журналы и потоки. Хранилища предоставляют структуру объекта, а потоки содержат данные, которыми управляет интерфейс IStream .
Интерфейс IStorage предоставляет методы для создания корневого объекта хранилища, дочерних объектов хранилища и потоковых объектов и управления ими. Эти методы могут создавать, открывать, перечислять, перемещать, копировать, переименовывать или удалять элементы в объекте хранилища.
Приложение должно освободить свои указатели IStorage после завершения работы с объектом хранилища для освобождения используемой памяти. Существуют также методы изменения даты и времени элемента.
Существует несколько различных режимов, в которых можно открыть объект хранилища и его элементы, которые определяются установкой значений из констант STGM. Одним из аспектов этого является способ фиксации изменений. Можно задать прямой режим, в котором изменения объекта немедленно записываются в него, или режим транзакций, в котором изменения записываются в буфер до явной фиксации. Интерфейс IStorage предоставляет методы для фиксации изменений и восстановления к последней зафиксированной версии. Например, поток можно открыть в режиме только для чтения или чтения и записи. Дополнительные сведения см. в разделе Константы STGM.
Другие методы предоставляют доступ к сведениям об объекте хранения и его элементах с помощью структуры STATSTG .
Наследование
Интерфейс IStorage наследуется от интерфейса IUnknown . IStorage также имеет следующие типы элементов:
Методы
Интерфейс IStorage содержит следующие методы.
IStorage::Commit Метод Commit гарантирует, что все изменения, внесенные в объект хранилища, открытый в режиме транзакций, отражаются в родительском хранилище. |
IStorage::CopyTo Копирует все содержимое открытого объекта хранилища в другой объект хранилища. |
IStorage::CreateStorage Создает и открывает новый объект хранилища, вложенный в этот объект хранилища с указанным именем в указанном режиме доступа. |
IStorage::CreateStream Создает и открывает объект потока с указанным именем, содержащимся в этом объекте хранилища. |
IStorage::D etraitsElement Удаляет указанное хранилище или поток из этого объекта хранилища. |
IStorage::EnumElements Метод EnumElements извлекает указатель на объект перечислителя, который можно использовать для перечисления объектов хранилища и потоков, содержащихся в этом объекте хранилища. |
IStorage::MoveElementTo Метод MoveElementTo копирует или перемещает вложенный журнал или поток из этого объекта хранилища в другой объект хранилища. |
IStorage::OpenStorage Открывает существующий объект хранилища с указанным именем в указанном режиме доступа. |
IStorage::OpenStream Открывает существующий объект потока в этом объекте хранилища в указанном режиме доступа. |
IStorage::RenameElement Метод RenameElement переименовывает указанный вложенный журнал или поток в этом объекте хранилища. |
IStorage::Revert Метод Revert отменяет все изменения, внесенные в объект хранилища с момента последней операции фиксации. |
IStorage::SetClass Метод SetClass назначает указанный идентификатор класса (CLSID) этому объекту хранилища. |
IStorage::SetElementTimes Метод SetElementTimes задает время изменения, доступа и создания указанного элемента хранилища, если базовая файловая система поддерживает этот метод. |
IStorage::SetStateBits Метод SetStateBits хранит до 32 бит сведений о состоянии в этом объекте хранилища. |
IStorage::Stat Метод Stat извлекает структуру STATSTG для этого открытого объекта хранилища. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | objidl.h |