订阅所有文章
文章搜索

高级搜索这是社么?这是顶尖最新推出的文章增强型搜索功能!
全网 本站
您现在的位置: 顶尖设计 >> IT学院 >> 编程开发 >> VC >> 文章正文

关于FoxMail的研究

作者:ganenpin…  来源:CSDN  点击  更新:2006-12-19 7:07:28  编辑: 画王w  字体

    现在使用FoxMail的用户越来越多了,但是FoxMail却不像OutLook一样给编程人员提供开发接口。我认为这对一个好的软件的推广来说是很不利的。前几个月小弟由于开发需要对FoxMail进行了以下研究,这几天闲下来将材料整理了一下,供大家参考。我使用FoxMail4.2进行研究,但是在FoxMail5.0推出后,我也进行了测试,仍然使用。

 

FoxMail的数据保存,都是由两个文件组成 .Ind 和 .Box的文件,Ind 文件主要记录简单信息,以及详细信息在.Box文件中的起始位置。

 

地址簿:

默认情况下,FoxMail的地址簿由两个文件组成,Address.ind 和 Address.box。

Address.Ind文件

文件头的范围为00H-39H,共64个字节。

05H保存纪录的个数,12H-21H记录地址薄名称。

记录部分40H开始是第一条记录,每条记录长B0H

每条记录的00H是记录号(从01开始顺序编号),04H是删除标记,该字节为1表明此记录被用户删除(由此可见在FoxMail中删除的信息没有被真正的删除)

05H06H纪录在.BOX中的地址如 [05H]=01,[06H]=EA 那么该项纪录的详细信息被保存在Address.Box文件中起始位置为01FA

09H0AH此记录在.Box文件中详细信息的字节数目加上156H(记录整条记录在Box文件中的总长度)

11H是组记录,该字节为1表明此记录为一条组记录;(我没有对此项进行详细研究)

12H是此项纪录名称的长度,最大为20H;

13H-32H是此项纪录名称的内容

33H是邮件地址长度,最大为40H

34H-73H是邮件地址内容

Address.Box文件

每条记录由“_____________S”开始,后加一回车符(0A0D)

紧接着是详细信息,分别由以下几项组成(按顺序排列)

Emails

Mobile

PagerNum

OICQ

ICQ

HomePage

Sex

Birthday

FmCountry

FmProvince

FmCity

FmPostcode

FmStreetAddr

HomeTel

HomeTel2

FmFax

Company

OfCountry

OfProvince

OfCity

PostCode

HomeAddress

OfHomePage

OfPosition

OfDepartment

OfficeTel

OfficeTel2

Fax

构造格式:名称 + 冒号 + 0A0D + 信息内容 + 0A0D

最后一项构造完成 要加入2个 0A0D

实例1:

从FoxMail中遍历地址簿联系人姓名和EMail信息:

bool GoAll(char *szFileNameOfInd)

char headbuf[0x41];        // 头buf

char recbuf[0xb1];           // 内容buf

        FILE* pf=fopen(szFileNameOfInd,"rb");

        fseek(pf,0x40,SEEK_SET);        // 到项目开始

        while(!feof(pf))

        {

                char name[0x21],email[0x41]; // 定义存储姓名和email的字符数组

                for(i=0;i<0x21;i++)

                        name[i]='\0';

                for(i=0;i<0x41;i++)

                        email[i]='\0';

                fread(recbuf,1,0xb0,pf);                // 读取一条记录

                if(recbuf[0x4]==1)                              // 判断删除标志

                {

                       continue;

               }

                if(recbuf[0x11]==1)                     // 判断组标志

                {

                &nb

[1] [2] [3] 下一页

  • 上一篇文章:

  • 下一篇文章:
  •      
    热门文章  
    推荐文章  
    相关文章    
     发表评论
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备05002835号