啊,大公开大公开。有兴趣的也来帮我把没搞清楚的地方研究研究。 to MeteorRain:我这里的字段A相当于你那里的069h
对每个下载任务,有下列结构 typedef struct tag_JcdFormat { int A,B,C,D,E,F,G;//2,8+第几个,6,2,2,0,15 /*上面这一段记录的是每个下载任务的排列信息,具体含义尚不十分清楚,主要是我没仔细研究-_-|||*/ BYTE URLLength;//下载地址长度 char URL[MAX_CHAR]; /*用得着的实际长度是URLLength的值,以下凡是这样的字符串都是这样*/ int Flags; /*bit0,1,9表示任务是否开始了;2表示是否要登录;3表示是否启用替代网址;12,13始终为1*/ BYTE UserNameLength;//登录的用户名长度 char UserName[MAX_CHAR];//UserNameLength=0时无此项 BYTE PWDLength;//登录的密码长度 char PWD[MAX_CHAR];//PWDLength=0时无此项 int SaveType;//从上到下第几个存储类别 BYTE RenameLength;//重命名的长度,0为不重命名 char Rename[MAX_CHAR]; int ThreadNum;//并发线程数 BYTE SavePathLength;//存储路径长度 char SavePath[MAX_CHAR]; BYTE REMLength;//注释长度 char REM[MAX_CHAR];//REMLength=0时无此项 WORD I;//0,用途不清 WORD BeginTime;//0暂停,1立即,2计划 int J;//1,用途不清 int FileSize;//-1为未有任何下载 BYTE K;//0,用途不清 int L;//文件日期,未开始时为-1,相对于1970年1月1日0时的秒数 int H;//本地文件创建日期 int M;//完成日期? BYTE ReferenceLength;//引用网址长度 char Reference[MAX_CHAR];//ReferenceLength=0时无此项 int N;//下载总耗时,秒数 WORD O;//0,用途不清 int InsteadURLNum;//替代URL的数目 BYTE InsteadURLLength;//替代URL的长度 char InsteadURL[MAX_CHAR];//替代URL int InsteadStatus;//不太清楚,没用到时为0,以上三个字段循环InsteadURLNum次 int BlockNum;//已下载块数目 int BlockBegin;//块开始位置 int BlockEnd;//块结束位置,以上两个字段循环BlockNum次 }JcdFormat;