Структурированное хранилище
Обзор технологии структурированного хранилища.
Для разработки структурированного хранилища вам потребуются следующие заголовки:
Рекомендации по программированию для этой технологии см. в следующих разделах:
Перечисления
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 Описывает один блок данных, включая его имя, расположение и длину. |