提问,回答! 关于【结构化存储】之前世今生

BlueDog 2004-11-14 10:03:11
呵呵,没办法用了这样一个题目。

其实我是一个VB菜菜,很不幸,最近要做有关结构化存储的东东。在VB问了一圈,没人知道,所以
到VC来请教各位高手了。

看了潘爱民老师的《COM原理与应用》的有关章节,但是还有很多不懂,想继续深入了解一点。
请问大家手里有没有较好的中文资料(实在不行,英文的也行)。看了MSDN,但是因为它分散
在各个地方,因此不能系统地理解它。

最好关于以下接口的资料都有
IStorage
IStream
IPropertyStorage
IPropertySetStorage
IPersistStream

另:在VB中的PictureBox控件是不是实现了IPersistStream
如果是这样的,那还有哪些VB标准控件实现了这个接口呢。

请各位大虾指教。先谢了!

分数不成敬意,请笑纳。

...全文
149 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueDog 2004-11-22
  • 打赏
  • 举报
回复
谢谢各位,不过我一直在找这方面的资料,中文资料均是语焉不祥,而英文资料则过于难懂。还是拿书边做边看吧。继续希望大家提提建议。
XXandOO 2004-11-21
  • 打赏
  • 举报
回复
《深入解析ATL》里有一章是讲ATL永久化实现的,不知对你是否有用。
其实结构化存储只是一个对象永久化规范,实现了IPersistXXX接口的COM类可以以统一的约定进行永久化(保存,恢复,更新等),没什么好说的。
用OLEVIEW可以看空件实现了哪些接口,可以通过它察看控件是否支持永久化。
天限天空 2004-11-21
  • 打赏
  • 举报
回复
少用它
kingzai 2004-11-19
  • 打赏
  • 举报
回复
潘爱民的《COM原理及应用》中的结构化存储
结构化存储就象文件里的文件系统,它有两个接口组成,IStorage(相当于文件系统的目录),IStream(相当于文件系统的文件)。
StgCreateStorageEx 创建要存储的文件, StgOpenStorageEx打开以前存储的文件,这两个函数获得IStorage接口指针。
然后通过IStorage::CreateStorage,IStorage::OpenStorage可以创建,或者打开下一级的IStorage.
通过IStorage::CreateStream, IStorage::OpenStream可以创建或打开IStream指针。
通过IStream的Read,Write,Seek等方法就可以进行你的存储了,跟文件读写差不多。
上面讲的是你自己定义的存储方法。

对于一些通用的存储,例如,ActiveX的存储,它有个标准,是通过IPersistStream::Load,IPersistStream::Save存储的,如果你希望你自己做成的控件能让标准的ActiveX包容器存储,你只需要重载这两个接口,通过它们的IStream参数,读写你所需要保存的东西,至于Storage,也就是它存储在哪里的,你不用理会,它是上级包容器给你产生的。
BlueDog 2004-11-18
  • 打赏
  • 举报
回复
没有人知道,还是高手不愿回答。
BlueDog 2004-11-15
  • 打赏
  • 举报
回复
没人回答么,自已up

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧