Как сохранить IPropertyBag на диске

Я успешно получил IPropertyBagдля состояния просмотра папки. Я получил это используяSHGetViewStatePropertyBag, и я подтвердил, что пакет действителен, проверив некоторые значения свойств.

Что я хотел бы сделать сейчас, так это по возможности сохранить пакет свойств на диске в виде большого двоичного объекта. Я бегалQueryInterfaceна сумке, и мне не удалось получить никаких полезных интерфейсов. К сожалению, похоже, что сумка с недвижимостью не поддерживаетIPersistStreamинтерфейс. И я не смог успешно запроситьIPersistPropertyBag интерфейс тоже.

Есть ли способ получить какой-то постоянный интерфейс для пакета свойств? Или свойства, по сути, должны быть сохранены индивидуально, специальным образом? Заранее благодарим за любые рекомендации.

1 ответ

Вызов Write на IPropertyBag должен автоматически записать изменение на диск.

Как правило, интерфейс IPersistXXX реализуется объектами, которые могут сохранять себя в XXX (где XXX - это либо Stream, либо PropertyBag), в то время как IPropertyBag а также IStream ожидается, что они будут поддерживаться чем-то - диском, блоком памяти или сокетом.

Или вы хотите забрать все имущество из мешка и как-то сохранить его в другом месте? В этом случае вам нужно запроситьIPropertyBag2 и перечислите их.

Другие вопросы по тегам