Поделиться через


Управление наборами свойств

Постоянный набор свойств содержит связанные данные в качестве свойств. Каждый набор свойств идентифицируется с помощью FMTID и глобально уникального идентификатора (GUID), который позволяет приложениям, обращаюсь к набору свойств, идентифицировать набор свойств. С помощью этой идентификации приложение интерпретирует свойства, содержащиеся в наборе.

Например, свойства форматирования символов в текстовом процессоре или атрибуты отрисовки элемента в программе рисования являются наборами свойств.

COM определяет интерфейс IPropertySetStorage для упрощения управления наборами свойств. С помощью методов этого интерфейса можно создать новый набор свойств, открыть или удалить существующий набор свойств. Кроме того, он предоставляет метод, который создает перечислитель и предоставляет указатель на его интерфейс IEnumSTATPROPSETSTG . Методы этого интерфейса можно вызвать для перечисления структур STATPROPSETSTG в объекте , которые будут предоставлять сведения обо всех наборах свойств в объекте .

Создание или открытие экземпляра IPropertyStorage аналогично открытию объекта, поддерживающего IStorage или IStream, так как необходимо указать режим хранения, в котором открывается интерфейс. Для IStorage к ним относятся режим транзакций, режим чтения и записи и режим общего доступа.

При создании набора свойств с помощью вызова метода IPropertySetStorage::Create укажите, должен ли набор свойств быть простым или неисчерпаемым. Простой набор свойств содержит типы, которые могут быть полностью записаны в поток набора свойств, размер которого должен быть ограничен и не может превышать 256 КБ в Windows NT 4.0 и более ранних версий или 1 МБ в Windows 2000, Windows XP и Windows Server 2003. Тем не менее, если необходимо сохранить больший объем информации в наборе свойств, можно указать, что набор свойств не является набором свойств. Это позволяет использовать один или несколько типов, указывающих только указатель на объект хранилища или потока. К этим типам относятся VT_STREAM, VT_STREAMED OBJECT, VT_STORAGE и VT_STORED_OBJECT.

Данные, хранящиеся в этих свойствах, не учитываются при ограничении размера набора свойств в 256 КБ в Windows NT 4.0 или более ранних версиях или в 1 МБ в Windows 2000, Windows XP и Windows Server 2003. Однако данные о свойстве, такие как его имя, применяются. Кроме того, если требуется обновление с помощью транзакций, набор свойств должен быть несимплейным. При открытии этих типов, конечно, существует определенный уровень снижения производительности, так как для этого требуется открыть поток или объект хранилища, на который у вас есть указатель.

Если приложение использует составные файлы, можно использовать предоставленную COM реализацию этих интерфейсов, которые реализуются в объекте хранилища составных файлов COM.

Каждый набор свойств состоит в основном из логически связанной группы свойств, как описано в разделе Управление свойствами.

Дополнительные сведения о наборах свойств в COM см. в разделе: