Интерфейс 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

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

Пример EnumAll

Примеры