我已经成功获取了文件夹 View 状态的IPropertyBag
。我使用SHGetViewStatePropertyBag
获得了它,并且通过检查一些属性值来确认袋子是有效的。
我现在想做的是,如果可能的话,将属性包作为blob持久保存到磁盘。我一直在袋子上运行QueryInterface
,但无法获得任何有用的界面。不幸的是,似乎该属性包不支持IPersistStream
接口(interface)。而且我也无法成功查询IPersistPropertyBag
接口(interface)。
是否有一种技巧可以为属性包获得某种持久接口(interface)?还是本质上必须以临时方式单独保存属性?在此先感谢您的指导。
最佳答案
在Write
上调用IPropertyBag
应该自动将更改写入磁盘。
通常,IPersistXXX接口(interface)由可以将自身保存到XXX(其中XXX是Stream或PropertyBag)的对象实现,同时IPropertyBag
和IStream
预期由某种东西(磁盘,内存块或套接字)支持。
还是想从包中拿走所有属性(property)并以某种方式将其保存到其他地方?在这种情况下,您需要查询IPropertyBag2
并枚举它们。
关于c++ - 如何将IPropertyBag持久保存到磁盘,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62456006/