龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

高手必修:关于FoxMail的深入研究(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
FmPostcode FmStreetAddr HomeTel HomeTel2 FmFax Company OfCountry OfProvince OfCity PostCode HomeAddress OfHomePage OfPosition OfDepartment OfficeTel OfficeTel2 Fax 构造格式:名称 + 冒号 + 0A0
  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) // 判断组标志
  
  {
  continue;
  }
  
  for(i=0;i
  {
  if(recbuf[i+0x13]==0)
  
  break;


  name[i]=recbuf[i+0x13];
  }
  
  for(i=0;i
  {
  if(recbuf[i+0x34]==0)
  
  break;
  
  email[i]=recbuf[i+0x34];
  }
  
  //此处添加处理name(收件人名),email(收件人地址)的程序

  return true;
  }
  
  实例2:
  
  向地址簿中添加一条记录信息,没有给出全部代码。
  
  1. 得到文件头

  BOOL GetIndFileHead(char* szheadbuf) // 得到文件头部的函数
  
  {
  fseek(FoxWriter_pf_addr,0x0,SEEK_SET);
  
  long len=0;
  
  len=fread(szheadbuf,1,0x40,FoxWriter_pf_addr);
  
  if(len==0)
  return FALSE;
  
  return TRUE;
  
  }
  
  2. 修改项目数;
  
  int itemcount=szheadbuf[0x5];
  
  itemcount++;
  
  szheadbuf[0x5]=itemcount;
  
  3. 修改项目代号
  
  szbuf[0x0]=itemcount;
  
  4. 创建项目名称
  
  szbuf[0x12]=strlen(strItemName);

  for(i=0;i<0x20;i++)
  
  szbuf[i+0x13]=strItemName[i];
  
  5. 创建项目email
  
  szbuf[0x33]=strlen(strEmails);
  
  for(i=0;i<0x40;i++)
  
  szbuf[i+0x34]=strEmails[i];
  
  6. 构造Box文件buf
  
  (略)
  
  7. 创建项目对Box文件指针
  
  char* pbuf=szbuf;
  
  pbuf++;
  
  short* pshbuf=(short*)pbuf;
  
  pshbuf[0x2]=point;
  
  8. 创建项目字数值
  
  long len=strlen(szBoxbuf)
  
  len+=0x156;
  
  9. 保存Ind和Box文件
  
  (未完,将继续整理关于FoxMail发件箱收件箱信息提取的研究)

精彩图集

赞助商链接