Как сохранить IPropertyBag на диске
Я успешно получил IPropertyBag
для состояния просмотра папки. Я получил это используяSHGetViewStatePropertyBag
, и я подтвердил, что пакет действителен, проверив некоторые значения свойств.
Что я хотел бы сделать сейчас, так это по возможности сохранить пакет свойств на диске в виде большого двоичного объекта. Я бегалQueryInterface
на сумке, и мне не удалось получить никаких полезных интерфейсов. К сожалению, похоже, что сумка с недвижимостью не поддерживаетIPersistStream
интерфейс. И я не смог успешно запроситьIPersistPropertyBag
интерфейс тоже.
Есть ли способ получить какой-то постоянный интерфейс для пакета свойств? Или свойства, по сути, должны быть сохранены индивидуально, специальным образом? Заранее благодарим за любые рекомендации.
1 ответ
Вызов Write
на IPropertyBag
должен автоматически записать изменение на диск.
Как правило, интерфейс IPersistXXX реализуется объектами, которые могут сохранять себя в XXX (где XXX - это либо Stream, либо PropertyBag), в то время как IPropertyBag
а также IStream
ожидается, что они будут поддерживаться чем-то - диском, блоком памяти или сокетом.
Или вы хотите забрать все имущество из мешка и как-то сохранить его в другом месте? В этом случае вам нужно запроситьIPropertyBag2
и перечислите их.