Свойства и наборы свойств
Хотя типы свойств времени выполнения, которые предлагают службы автоматизации и элементов управления Microsoft ActiveX, важны, они не напрямую устраняют необходимость хранения информации с объектами, постоянно хранящимися в файловой системе. Эти сущности могут включать файлы (структурированные, составные и т. д.), каталоги и сводные каталоги. COM предоставляет стандартный сериализованный формат для этих постоянных свойств, а также набор интерфейсов и функций, позволяющих создавать и управлять наборами свойств и их свойствами.
Постоянные свойства хранятся в виде наборов, а один или несколько наборов могут быть связаны с сущностью файловой системы. Эти постоянные наборы свойств предназначены для хранения данных, которые подходят для представления в виде коллекции точных значений. Они не предназначены для использования в качестве большой базы данных. Их можно использовать для хранения сводной информации об объекте в системе, к которому затем можно получить доступ любому другому объекту, который понимает, как интерпретировать этот набор свойств.
Предыдущие версии COM указали очень мало в отношении свойств и их использования, но определили сериализованный формат, который позволил разработчикам хранить свойства и наборы свойств в экземпляре IStorage. Идентификаторы свойств и семантика одного набора свойств, используемые для сводной информации о документе, также определены. В то время необходимо было создать и управлять этой структурой непосредственно в виде потока данных. См. формат сериализованного набора свойств для структурированного хранилища.
Теперь COM определяет два основных интерфейса для управления наборами свойств:
Больше не требуется иметь дело с сериализованным форматом непосредственно при реализации этих интерфейсов в объекте, поддерживающем интерфейс IStorage (например, составные файлы). Написание свойств с помощью IPropertySetStorage и IPropertyStorage создает данные, которые точно соответствуют формату набора свойств COM, как показано в методах IStorage. Обратный также имеет значение true: свойства, записанные в формат набора свойств COM с помощью IStorage, отображаются через IPropertySetStorage и IPropertyStorage (хотя вы не можете ожидать, чтобы записать IStream и иметь свойства через IPropertyStorage немедленно доступны или наоборот).
ИнтерфейсIPropertySetStorageопределяет методы, которые создают наборы свойств и управляют ими. ИнтерфейсIPropertyStorage напрямую управляет свойствами в наборе свойств. Вызывая методы этих интерфейсов, разработчик приложения может управлять любыми наборами свойств, подходящими для заданной сущности файловой системы. Использование этих интерфейсов обеспечивает одну настроенную реализацию чтения и записи для свойств, а не реализацию в каждом приложении, где могут быть узкие места производительности, такие как непрекращающиеся поиски. Вы можете реализовать интерфейсы для повышения производительности, чтобы свойства можно было читать и записывать быстрее, например более эффективное кэширование. Кроме того, IPropertyStorage и IPropertySetStorage позволяют управлять свойствами сущностей, которые не поддерживают IStorage, хотя в целом большинство приложений этого не делают.
В этом разделе содержатся следующие разделы:
- набор свойств сводной информации
- предопределенные идентификаторы формата набора свойств
- наборы свойств DocumentSummaryInformation и UserDefined
Связанные разделы
-
реализации наборов свойств в COM
-
Вопросы набора свойств