最近简单看了一下结构化存储(Structured Storage),以及“撤销(UnDo)”/“恢复(ReDo)”的东西,没有时间深入研究,但是有些保留想法:
MS world的临时文件是干嘛用的?
猜测:
1:以临时文件的方式保存每次操作,便于“撤销”,恢复???
2:安全考虑,程序异常退出,恢复用户上次编辑信息???
3:避免磁盘碎片?用临时文件保存所有用户操作,等程序退出的时候,将变化的部分拷贝回正式文件,覆盖原来的对应部分,主要是分支的stream,storage,以避免硬盘碎片???
关于 通用的UnDo/ReDo支持
在网上找了很多资料,希望能找到好用的,通用的,无次数限制的,UnDo/ReDo逻辑框架支持的代码,但是都不如我所愿,后来发现boost中有类似的框架支持,但是到今天为止还没有时间具体研究,这里仅仅是为了给别人做个提示,也给自己做个备忘。
最初的时候我本想自己用临时文件(IStorage)来实现这个功能的,但是考虑了一下,感觉还是非常复杂的,尤其是对于动态内存数据的操作,所以还是有空好好研究一下boost中的代码比较实用