c++ - 如何将 IPropertyBag 持久化到磁盘

标签 c++ winapi persist propertybag

我已成功获得IPropertyBag用于文件夹的 View 状态。我使用 SHGetViewStatePropertyBag 获得它,并且我通过检查一些属性值确认包是有效的。

如果可能的话,我现在想做的是将属性包作为 blob 保存到磁盘上。我一直在跑QueryInterface在包上,我一直无法获得任何有用的接口(interface)。不幸的是,属性包似乎不支持 IPersistStream界面。而且我一直没能成功查询到IPersistPropertyBag界面也可以。

为属性包获取某种持久接口(interface)是否有技巧?还是本质上必须以临时方式单独保存属性?提前感谢您的任何指导。

最佳答案

调用WriteIPropertyBag应该自动将更改写入磁盘。

一般情况下,IPersistXXX 接口(interface)是由可以将自己保存到 XXX 中的对象实现的(其中 XXX 是 Stream 或 PropertyBag),同时 IPropertyBagIStream期望得到某种东西的支持——磁盘、内存块或套接字。

还是想从袋子里拿出所有属性(property)并以某种方式将它们保存在其他地方?在这种情况下,您需要查询 IPropertyBag2并列举它们。

关于c++ - 如何将 IPropertyBag 持久化到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62456006/

相关文章:

java - 是否需要开始事务才能在数据库中查找对象?

c++ - QFileSystemWatcher 不发送 fileChanged() 信号

C++ 使用 ShowWindow 恢复窗口会禁用其最小化功能

jpa - 插入具有复合主键的对象

java - JPA 的持续调用是否区分具有单个 PK 列的实体和具有复合 PK 的实体?

WPF 和 Win32 消息传递

c++ - Concepts-Lite 将如何与可变参数模板交互?

c++ - 如何将 Boost 与 Eclipse 一起使用?

c++ - CMake 链接问题

asp.net - 对于Rich Text编辑器并转换为HTML,有什么好的免费解决方案?