Структурированное хранилище

Обзор технологии структурированного хранилища.

Для разработки структурированного хранилища вам потребуются следующие заголовки:

Рекомендации по программированию для этой технологии см. в следующих разделах:

Перечисления

 
LOCKTYPE

Значения перечисления LOCKTYPE указывают тип блокировки, запрошенной для указанного диапазона байтов. Значения используются в методах ILockBytes::LockRegion и IStream::LockRegion.
STATFLAG

Укажите, должен ли метод пытаться вернуть имя в элементе pwcsName структуры STATSTG.
STGC

Укажите условия для выполнения операции фиксации в методах IStorage::Commit и IStream::Commit.
STGMOVE

Укажите, нужно ли переместить или скопировать элемент хранилища.
STGTY

Значения перечисления STGTY используются в элементе типа структуры STATSTG для указания типа элемента хранилища. Элемент хранилища — это объект хранилища, объект потока или объект массива байтов (LOCKBYTES).
STREAM_SEEK

Значения перечисления STREAM_SEEK указывают источник, из которого вычисляется новое расположение указателя поиска.

Функции

 
BeginMonitor

Метод BeginMonitor используется для начала мониторинга при запуске операции загрузки. После завершения операции приложение должно вызвать ILayoutStorage::EndMonitor.
Clone

Создает новый перечислитель, содержащий то же состояние перечисления, что и текущий перечислитель структуры STATSTG.
Clone

Метод Clone создает новый объект потока с собственным указателем поиска, который ссылается на те же байты, что и исходный поток.
Clone

Метод IEnumSTATPROPSETSTG::Clone создает перечислитель, содержащий то же состояние перечисления, что и текущий перечислитель структуры STATPROPSETSTG.
Clone

Метод IEnumSTATPROPSTG::Clone создает перечислитель, содержащий то же состояние перечисления, что и текущий перечислитель структуры STATPROPSTG.
Clone

Метод IEnumSTATPROPSETSTG::Clone создает перечислитель, содержащий то же состояние перечисления, что и текущий перечислитель структуры STATPROPSETSTG.
Clone

Метод IEnumSTATPROPSTG::Clone создает перечислитель, содержащий то же состояние перечисления, что и текущий перечислитель структуры STATPROPSTG.
Фиксация

Метод Commit гарантирует, что все изменения, внесенные в объект хранилища, открытый в режиме транзакций, отражаются в родительском хранилище.
Фиксация

Метод Commit гарантирует, что все изменения, внесенные в объект потока, открытый в режиме транзакций, отражаются в родительском хранилище.
Фиксация

Метод IPropertyStorage::Commit сохраняет изменения, внесенные в объект хранилища свойств, в родительский объект хранилища.
Фиксация

Метод IPropertyStorage::Commit сохраняет изменения, внесенные в объект хранилища свойств, в родительский объект хранилища.
CopyTo

Копирует все содержимое открытого объекта хранилища в другой объект хранилища.
CopyTo

Копирует указанное число байтов из текущего указателя поиска в потоке до текущего указателя поиска в другом потоке.
Создание

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

Создает объект массива байтов, который использует дескриптор памяти HGLOBAL для хранения байтов, предназначенных для хранения в памяти составного файла.
CreateStorage

Создает и открывает новый объект хранилища, вложенный в этот объект хранилища с указанным именем в указанном режиме доступа.
CreateStream

Создает и открывает объект потока с указанным именем, содержащимся в этом объекте хранилища.
CreateStreamOnHGlobal

Создает объект потока, использующий дескриптор памяти HGLOBAL для хранения содержимого потока.
Удалить

Метод Delete удаляет один из наборов свойств, содержащихся в объекте хранилища набора свойств.
DeleteMultiple

Метод IPropertyStorage::D eleteMultiple удаляет столько указанных свойств, сколько существует в этом наборе свойств.
DeleteMultiple

Метод IPropertyStorage::D eleteMultiple удаляет столько указанных свойств, сколько существует в наборе свойств.
DeletePropertyNames

Метод DeletePropertyNames удаляет указанные строковые имена из текущего набора свойств. (IPropertyStorage.DeletePropertyNames)
DeletePropertyNames

Метод IPropertyStorage::D eletePropertyNames удаляет указанные строковые имена из текущего набора свойств.
DestroyElement

Удаляет указанное хранилище или поток из этого объекта хранилища.
EndMonitor

Метод EndMonitor завершает мониторинг составного файла. Должен предшествовать вызов ILayoutStorage::BeginMonitor.
Enum

Метод Enum создает объект перечислителя, содержащий сведения о наборах свойств, хранящихся в этом хранилище наборов свойств. При возврате этот метод предоставляет указатель на указатель IEnumSTATPROPSETSTG на объект перечислителя.
Enum

Метод IPropertyStorage::Enum создает объект перечислителя, предназначенный для перечисления данных типа STATPROPSTG, который содержит сведения о текущем наборе свойств.
Enum

Метод IPropertyStorage::Enum создает объект перечислителя, предназначенный для перечисления данных типа STATPROPSTG, который содержит сведения о текущем наборе свойств.
EnumElements

Метод EnumElements извлекает указатель на объект перечислителя, который можно использовать для перечисления объектов хранилища и потоков, содержащихся в этом объекте хранилища.
FillAppend

Метод FillAppend записывает новый блок байтов в конец массива байтов.
FillAt

Метод FillAt записывает новый блок данных в указанное расположение в массиве байтов.
Очистка

Метод Flush гарантирует, что все внутренние буферы, поддерживаемые реализацией ILockBytes, будут записаны в базовое физическое хранилище.
FmtIdToPropStgName

Преобразует идентификатор формата набора свойств (FMTID) в имя хранилища или потока.
FreePropVariantArray

Функция FreePropVariantArray вызывает PropVariantClear для каждой структуры PROPVARIANT в массиве rgvars, чтобы сделать значение нулевым для каждого из элементов массива.
GetConvertStg

Функция GetConvertStg возвращает текущее значение бита преобразования для указанного объекта хранения.
GetHGlobalFromILockBytes

Функция GetHGlobalFromILockBytes извлекает дескриптор глобальной памяти в объект массива байтов, созданный с помощью функции CreateILockBytesOnHGlobal.
GetHGlobalFromStream

Функция GetHGlobalFromStream извлекает дескриптор глобальной памяти в поток, созданный с помощью вызова функции CreateStreamOnHGlobal.
HaveWriteAccess

Метод HaveWriteAccess указывает, была ли выполнена блокировка записи.
LayoutScript

Метод LayoutScript предоставляет явные инструкции по переупорядочению хранилищ, потоков и элементов управления в составном файле в соответствии с порядком, в котором они будут доступны во время скачивания.
LockRegion

Метод LockRegion ограничивает доступ к указанному диапазону байтов в массиве байтов.
LockRegion

Метод LockRegion ограничивает доступ к указанному диапазону байтов в потоке.
MoveElementTo

Метод MoveElementTo копирует или перемещает вложенный журнал или поток из этого объекта хранилища в другой объект хранилища.
Вперед

Извлекает указанное количество структур STATSTG, следующих в последовательности перечисления.
Вперед

Метод IEnumSTATPROPSETSTG::Next извлекает указанное количество структур STATPROPSETSTG, которые затем следуют в последовательности перечисления.
Вперед

Метод IEnumSTATPROPSTG::Next извлекает указанное количество структур STATPROPSTG, которые затем следуют в последовательности перечисления.
Вперед

Метод IEnumSTATPROPSETSTG::Next извлекает указанное количество структур STATPROPSETSTG, которые затем следуют в последовательности перечисления.
Вперед

Метод IEnumSTATPROPSTG::Next извлекает указанное количество структур STATPROPSTG, которые затем следуют в последовательности перечисления.
OleConvertiStorageToOLESTREAM

Функция OleConvertIStorageToOLESTREAM преобразует указанный объект хранения из структурированного хранилища OLE 2 в объектную модель хранения OLE 1, но не включает данные представления. Это одна из нескольких функций совместимости.
OleConvertiStorageToOLESTREAMEx

Функция OleConvertIStorageToOLESTREAMEx преобразует указанный объект хранения из структурированного хранилища OLE 2 в объектную модель хранения OLE 1, включая данные представления.
OleConvertOLESTREAMToiStorage

Преобразует указанный объект из модели хранения OLE 1 в объект структурированного хранилища OLE 2 без указания данных представления.
OleConvertOLESTREAMToiStorageEx

Функция OleConvertOLESTREAMToIStorageEx преобразует указанный объект из модели хранения OLE 1 в структурированный объект хранения OLE 2, включая данные презентации. Это одна из нескольких функций совместимости.
Открыть

Открывает набор свойств, содержащийся в объекте хранилища набора свойств.
OpenStorage

Открывает существующий объект хранилища с указанным именем в указанном режиме доступа.
OpenStream

Открывает существующий объект потока в этом объекте хранилища в указанном режиме доступа.
PropStgNameToFmtId

Преобразует хранилище набора свойств или имя потока в идентификатор формата.
PropVariantClear

Освобождает все элементы, которые могут быть освобождены в заданной структуре PROPVARIANT.
PropVariantCopy

Функция PropVariantCopy копирует содержимое одной структуры PROPVARIANT в другую.
PropVariantInit

Функция PropVariantInit инициализирует структуру PROPVARIANT. Примечание. Эта функция реализуется в виде макроса, доступного путем включения предоставленного файла заголовка ole2.h.
Чтение

Считывает указанное количество байтов из объекта потока в память, начиная с текущего указателя поиска.
ReadAt

Метод ReadAt считывает указанное количество байтов, начиная с указанного смещения от начала объекта массива байтов.
ReadClassStg

Функция ReadClassStg считывает идентификатор CLSID, ранее записанный в объект хранилища, с помощью функции WriteClassStg.
ReadClassStm

Считывает идентификатор CLSID, записанный ранее в объект потока с помощью функции WriteClassStm.
ReadFmtUserTypeStg

Функция ReadFmtUserTypeStg возвращает формат буфера обмена и тип пользователя, ранее сохраненные с помощью функции WriteFmtUserTypeStg.
ReadMultiple

Метод IPropertyStorage::ReadMultiple считывает указанные свойства из текущего набора свойств.
ReadMultiple

Метод IPropertyStorage::ReadMultiple считывает указанные свойства из текущего набора свойств.
ReadPropertyNames

Метод IPropertyStorage::ReadPropertyNames извлекает все существующие строковые имена для указанных идентификаторов свойств.
ReadPropertyNames

Метод IPropertyStorage::ReadPropertyNames извлекает все существующие строковые имена для указанных идентификаторов свойств.
ReLayoutDocfile

Метод ReLayoutDocfile переписывает составной файл с помощью скрипта макета, полученного в результате мониторинга или предоставленного с помощью явного скрипта макета, для создания нового составного файла.
ReLayoutDocfileOnILockBytes

Не реализуется. При вызове возвращается STG_E_UNIMPLEMENTEDFUNCTION.
ReleaseWriteAccess

Метод ReleaseWriteAccess освобождает ранее полученную блокировку записи.
RenameElement

Метод RenameElement переименовывает указанный вложенный журнал или поток в этом объекте хранилища.
Сброс

Сбрасывает последовательность перечисления в начало массива структуры STATSTG.
Сброс

Метод IEnumSTATPROPSETSTG::Reset сбрасывает последовательность перечисления до начала массива структуры STATPROPSETSTG.
Сброс

Метод IEnumSTATPROPSTG::Reset сбрасывает последовательность перечисления до начала массива структуры STATPROPSTG.
Сброс

Метод IEnumSTATPROPSETSTG::Reset сбрасывает последовательность перечисления до начала массива структуры STATPROPSETSTG.
Сброс

Метод IEnumSTATPROPSTG::Reset сбрасывает последовательность перечисления до начала массива структуры STATPROPSTG.
Отменить

Метод Revert отменяет все изменения, внесенные в объект хранилища с момента последней операции фиксации.
Отменить

Метод Revert отменяет все изменения, внесенные в поток транзакций с момента последнего вызова IStream::Commit. Этот метод не оказывает никакого влияния на потоки, открытые в прямом режиме, и потоки, использующие реализацию составного com-файла IStream::Revert.
Отменить

Метод IPropertyStorage::Revert отменяет все изменения именованного набора свойств с момента последнего открытия или отменяет изменения, которые были зафиксированы в последнее время в наборе свойств.
Отменить

Метод IPropertyStorage::Revert отменяет все изменения именованного набора свойств с момента последнего открытия или отменяет изменения, которые были зафиксированы в последнее время в наборе свойств.
Seek

Изменяет указатель поиска на новое расположение. Новое расположение относится либо к началу потока, либо к концу потока, либо к текущему указателю поиска.
SetClass

Метод SetClass назначает указанный идентификатор класса (CLSID) этому объекту хранилища.
SetClass

Метод IPropertyStorage::SetClass назначает новый идентификатор CLSID текущему объекту хранилища свойств и постоянно сохраняет CLSID вместе с объектом .
SetClass

Метод IPropertyStorage::SetClass назначает новый идентификатор CLSID текущему объекту хранилища свойств и постоянно сохраняет CLSID вместе с объектом .
SetConvertStg

Функция SetConvertStg задает бит преобразования в объекте хранилища, чтобы указать, что объект должен быть преобразован в новый класс при его открытии. Параметр можно получить с помощью вызова функции GetConvertStg.
SetElementTimes

Метод SetElementTimes задает время изменения, доступа и создания указанного элемента хранения, если базовая файловая система поддерживает этот метод.
SetFillSize

Метод SetFillSize задает ожидаемый размер массива байтов.
Setsize

Метод SetSize изменяет размер массива байтов.
Setsize

Изменяет размер объекта-потока.
SetStateBits

Метод SetStateBits хранит до 32 бит сведений о состоянии в этом объекте хранилища.
SetTimes

Метод IPropertyStorage::SetTimes задает время изменения, доступа и создания этого набора свойств, если поддерживается реализацией.
SetTimes

Метод IPropertyStorage::SetTimes задает время изменения, доступа и создания этого набора свойств, если поддерживается реализацией.
Skip

Пропускает указанное число структур STATSTG в последовательности перечисления.
Skip

Метод IEnumSTATPROPSETSTG::Skip пропускает указанное число структур STATPROPSETSTG в последовательности перечисления. (IEnumSTATPROPSETSTG.Skip)
Skip

Метод IEnumSTATPROPSTG::Skip пропускает указанное число структур STATPROPSTG в последовательности перечисления. (IEnumSTATPROPSTG.Skip)
Skip

Метод IEnumSTATPROPSETSTG::Skip пропускает указанное число структур STATPROPSETSTG в последовательности перечисления.
Skip

Метод IEnumSTATPROPSTG::Skip пропускает указанное число структур STATPROPSTG в последовательности перечисления.
Stat

Метод Stat извлекает структуру STATSTG, содержащую сведения для этого объекта массива байтов.
Stat

Метод Stat извлекает структуру STATSTG для этого открытого объекта хранилища.
Stat

Метод Stat извлекает структуру STATSTG для этого потока.
Stat

Метод IPropertyStorage::Stat извлекает сведения о текущем наборе открытых свойств. (IPropertyStorage.Stat)
Stat

Метод IPropertyStorage::Stat извлекает сведения о текущем наборе открытых свойств. (IPropertyStorage.Stat)
StgConvertPropertyToVariant

Преобразует тип данных SERIALIZEDPROPERTYVALUE в тип данных PROPVARIANT.
StgConvertVariantToProperty

Преобразует тип данных PROPVARIANT в тип данных SERIALIZEDPROPERTYVALUE.
StgCreateDocfile

Создает новый объект хранилища составных файлов, используя предоставленную COM-реализацию составного файла для интерфейса IStorage.
StgCreateDocfileOnILockBytes

Создает и открывает новый объект хранилища составных файлов поверх объекта массива байтов, предоставленного вызывающим объектом.
StgCreatePropSetStg

Создает объект хранения набора свойств из указанного объекта хранилища.
StgCreatePropStg

Создает и открывает набор свойств в указанном объекте хранилища или потока.
StgCreateStorageEx

Создает новый объект хранилища, используя предоставленную реализацию для интерфейсов IStorage или IPropertySetStorage.
StgDeserializePropVariant

Функция StgDeserializePropVariant преобразует тип данных SERIALIZEDPROPERTYVALUE в тип данных PROPVARIANT.
StgGetIFillLockBytesOnFile

Открывает объект-оболочку во временном файле.
StgGetIFillLockBytesOnILockBytes

Создает новый объект-оболочку для объекта массива байтов, предоставленного вызывающим объектом.
StgIsStorageFile

Функция StgIsStorageFile указывает, содержит ли конкретный файл диска объект хранилища.
StgIsStorageILockBytes

Функция StgIsStorageILockBytes указывает, содержит ли указанный массив байтов объект хранилища.
StgOpenAsyncDocfileOnIFillLockBytes

Открывает существующий корневой асинхронный объект хранилища в объекте-оболочке массива байтов, предоставленном вызывающим объектом.
StgOpenLayoutDocfile

Открывает составной файл в реализации ILockBytes, которая может отслеживать данные сектора.
StgOpenPropStg

Открывает заданный набор свойств в указанном объекте хранилища или потока.
StgOpenStorage

Открывает существующий корневой объект хранилища в файловой системе.
StgOpenStorageEx

Открывает существующий корневой объект хранилища в файловой системе. Используйте эту функцию для открытия составных и обычных файлов.
StgOpenStorageOnILockBytes

Функция StgOpenStorageOnILockBytes открывает существующий объект хранилища, который не находится в файле диска, а имеет базовый массив байтов, предоставленный вызывающим объектом.
StgPropertyLengthAsVariant

Функция StgPropertyLengthAsVariant проверяет значение SERIALIZEDPROPERTYVALUE и возвращает объем памяти, который это свойство будет занимать как PROPVARIANT.
StgSerializePropVariant

Функция StgSerializePropVariant преобразует тип данных PROPVARIANT в тип данных SERIALIZEDPROPERTYVALUE.
StgSetTimes

Функция StgSetTimes задает время создания, доступа и изменения указанного файла, если оно поддерживается базовой файловой системой.
SwitchToFile

Метод SwitchToFile копирует текущий файл, связанный с объектом хранилища, в новый файл.
Завершение

Метод Terminate сообщает массиву байтов о том, что скачивание было завершено успешно или неудачно.
UnlockRegion

Метод UnlockRegion удаляет ограничение доступа для ранее заблокированного диапазона байтов.
UnlockRegion

Метод UnlockRegion удаляет ограничение доступа к диапазону байтов, ранее ограниченному с помощью IStream::LockRegion.
WaitForWriteAccess

Метод WaitForWriteAccess получает монопольный доступ на запись к объекту хранилища.
запись

Записывает указанное число байтов в объект потока, начиная с текущего указателя поиска.
WriteAt

Метод WriteAt записывает указанное количество байтов, начиная с указанного смещения от начала массива байтов.
WriteClassStg

Функция WriteClassStg сохраняет указанный идентификатор класса (CLSID) в объекте хранилища.
WriteClassStm

Функция WriteClassStm сохраняет указанный идентификатор CLSID в потоке.
WriteFmtUserTypeStg

Функция WriteFmtUserTypeStg записывает формат буфера обмена и тип пользователя в объект хранилища.
WriteMultiple

Метод IPropertyStorage::WriteMultiple записывает указанную группу свойств в текущий набор свойств.
WriteMultiple

Метод IPropertyStorage::WriteMultiple записывает указанную группу свойств в текущий набор свойств.
WritePropertyNames

Метод IPropertyStorage::WritePropertyNames присваивает строковое значение IPropertyStoragenames указанному массиву идентификаторов свойств в текущем наборе свойств.
WritePropertyNames

Метод IPropertyStorage::WritePropertyNames присваивает строковое значение IPropertyStoragenames указанному массиву идентификаторов свойств в текущем наборе свойств.

Интерфейсы

 
IDirectWriterLock

Интерфейс IDirectWriterLock позволяет одному модулю записи получить монопольный доступ на запись к корневому объекту хранилища, открытому в прямом режиме, обеспечивая одновременный доступ для нескольких модулей чтения.
IEnumSTATPROPSETSTG

Интерфейс IEnumSTATPROPSETSTG выполняет итерацию по массиву структур STATPROPSETSTG, содержащих статистические данные о наборах свойств, управляемых текущим экземпляром IPropertySetStorage.
IEnumSTATPROPSETSTG

Интерфейс IEnumSTATPROPSETSTG выполняет итерацию по массиву структур STATPROPSETSTG, содержащих статистические данные о наборах свойств, управляемых текущим экземпляром IPropertySetStorage.
IEnumSTATPROPSTG

Интерфейс IEnumSTATPROPSTG выполняет итерацию по массиву структур STATPROPSTG. Структуры STATPROPSTG содержат статистические данные о свойствах в наборе свойств.
IEnumSTATPROPSTG

Интерфейс IEnumSTATPROPSTG выполняет итерацию по массиву структур STATPROPSTG, содержащих статистические данные о свойствах в наборе свойств.
IEnumSTATSTG

Перечисляет массив структур STATSTG.
IFillLockBytes

Интерфейс IFillLockBytes позволяет скачивать код для асинхронной записи данных в массив байтов структурированного хранилища.
ILayoutStorage

Интерфейс ILayoutStorage позволяет приложению оптимизировать макет своих составных файлов для эффективного скачивания по медленному каналу.
ILockBytes

Интерфейс ILockBytes реализуется в объекте массива байтов, который поддерживается физическим хранилищем, например файлом диска, глобальной памятью или базой данных.
IPropertySetStorage

Интерфейс IPropertySetStorage создает, открывает, удаляет и перечисляет хранилища наборов свойств, которые поддерживают экземпляры интерфейса IPropertyStorage.
IPropertyStorage

Интерфейс IPropertyStorage управляет постоянными свойствами одного набора свойств. (интерфейс IPropertyStorage)
IPropertyStorage

Интерфейс IPropertyStorage управляет постоянными свойствами одного набора свойств. (интерфейс IPropertyStorage)
IRootStorage

Интерфейс IRootStorage содержит один метод, который переключает объект хранилища на другой базовый файл и сохраняет объект хранилища в этом файле.
ISequentialStream

Интерфейс ISequentialStream поддерживает упрощенный последовательный доступ к объектам потоковой передачи. Интерфейс IStream наследует методы Read и Write от ISequentialStream.
IStorage

Интерфейс IStorage поддерживает создание объектов структурированного хранилища и управление ими.
IStream

Интерфейс IStream позволяет считывать и записывать данные в объекты потоковой передачи.

Структуры

 
PROPSPEC

Структура PROPSPEC используется многими методами IPropertyStorage для указания свойства по идентификатору свойства (ID) или связанному имени строки.
PROPSPEC

Структура PROPSPEC используется многими методами IPropertyStorage для указания свойства по идентификатору свойства (ID) или связанному имени строки.
PROPVARIANT

Структура PROPVARIANT используется в методах ReadMultiple и WriteMultiple iPropertyStorage для определения тега типа и значения свойства в наборе свойств.
PROPVARIANT

Структура PROPVARIANT используется в методах ReadMultiple и WriteMultiple iPropertyStorage для определения тега типа и значения свойства в наборе свойств.
RemSNB

Структура RemSNB используется для маршалинга типа данных SNB. Определяется в интерфейсе IStorage (Storag.idl).
STATPROPSETSTG

Структура STATPROPSETSTG содержит сведения о наборе свойств. (структура STATPROPSETSTG)
STATPROPSETSTG

Структура STATPROPSETSTG содержит сведения о наборе свойств. (структура STATPROPSETSTG)
STATPROPSTG

Структура STATPROPSTG содержит данные об одном свойстве в наборе свойств. Эти данные являются идентификатором свойства и тегом типа, а также необязательным строковым именем, которое может быть связано со свойством.
STATPROPSTG

Структура STATPROPSTG содержит данные об одном свойстве в наборе свойств. Эти данные являются идентификатором свойства и тегом типа, а также необязательным строковым именем, которое может быть связано со свойством.
STATSTG

Содержит статистические данные об открытом хранилище, потоке или объекте массива байтов.
STGOPTIONS

Указывает функции объекта хранилища, такие как размер сектора, в функциях StgCreateStorageEx и StgOpenStorageEx.
StorageLayout

Описывает один блок данных, включая его имя, расположение и длину.