统计 |
blog名称:人在旅途 日志总数:175 评论数量:505 留言数量:13 访问次数:1660984 建立时间:2005年12月7日 |
生命是过客,人在旅途。奶奶是信基督教的,没啥文化,却养育了四子二女,还带过九个孙辈。老人家对生命的看法就是“人都是客人,迟早要回去的。”就以《人在旅途》来纪念她。

« | July 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | |
|
公告 |
本人上传的源程序中可能引用或使用了第三方的库或程序,也可能是修改了第三方的例程甚至是源程序.所以本人上传的源程序禁止在以单纯学习为目的的任何以外场合使用,不然如果引起任何版权问题,本人不负任何责任. | |

|
本站首页 管理页面 写新日志 退出
调整中...
[完成项目]<Card Project>一个管理和操作Windows系统的CompoundDocument的ActiveX控件--VC,VB |
人在旅途 发表于 2006/1/21 21:06:44 | 微软的Office的Word或Excel等文档都在一个文件中保存复杂有层次的情报,这就是CompoundDocument技术,就是在一个文件中有整个文件系统的功能,如子文件夹(Storage)和子文件(Stream),也有路径.为了方便操作CompoundDocument文件,我用ATL开发了个ActiveX控件(automation server),程序如下:
1. Card project have three parts: ZjjCardBase, ZjjDiaryCard and ZjjEncrypt.
2. 1999/4/1 a new DLL project named ZjjBookCard is created for dealing with the electronic book. And in this project I will try the function of EXCEPTION, CComQIPtr. 1999/4/10 the book card dll project is finished(include test), here is the project:
3. 1999/4/23, I begin to update the ZjjBookCard to version 1.1. In this version a new interface named IZjjBookCardChapters will be supported. And this new interface will implement the enumerator functions, so you can enum one chapter by one chapter(in VB, for each ... in ...).
1999/4/25, I find a strange problem that only the properties and methords defined in main interface will be exposed by the object's dispatch interface. That means the dispatch interface is only belongs to it's main interface, so I can't implement the enumerator functions now. Maybe there is some solution for this, but this time I will just halt it and attach the new zip file here for later studying. 4. 1999/7/16 I find something must be mentioned as important. That is when you call the GetStreamInfoIn or GetStorageInfoIn, you will get a failure if this stream or storage has been already opened.
5. 1999/7/17 Today I find a problem in the ZjjCardBase. The problem is that the m_liststream is incorrect after I add a new string(stream name) to it when I create a new stream. So everytime I add a new stream I will do "EnumStorage", and that will change the sequence of the storage and stream in the m_liststream and m_storagestream. So try not to use the GetStreamByIndex or GetStorageByIndex, and you can use the GetStreamByName or GetStorageByName.And I have checked the influence to the past project by this change, I found nothing is wrong. though in the ZjjDiary project, I have used the GetStorageByIndex after I create a new storage, but because I haven't call the "EnumStorage" after creating a new storage, so it is ok. Be careful that never do the change as calling the "EnumStorage" after creating a new storage in the future.
6. 1999/9/14: I resemble the project file and document file here:
文档:500)this.width=500'>_Doc.zip
加密:500)this.width=500'>_Encrypt.zip
基础COM:500)this.width=500'>_CardBase.zip
日记COM:500)this.width=500'>_CardDiary.zip
书类COM:500)this.width=500'>_CardBook.zip
|
阅读全文(5681) | 回复(0) | 编辑 | 精华 |
|