⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stdafx.h

📁 类似flashget下载工具代码 本来想在完善了上传的
💻 H
字号:
// stdafx.h : include file for standard system include files,
//  or project specific include files that are used frequently, but
//      are changed infrequently
//

#if !defined(AFX_STDAFX_H__C3752ABF_DBA9_4226_99CD_7816D7F0DE8F__INCLUDED_)
#define AFX_STDAFX_H__C3752ABF_DBA9_4226_99CD_7816D7F0DE8F__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


//#ifndef _WIN32_IE			// 允许使用 IE 4.0 或更高版本的特定功能。
#define _WIN32_IE 0x0500	//为 IE 5.0 及更新版本改变为适当的值。
//#endif

#define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers

#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions
#include <afxadv.h>
#include <afxdisp.h>        // MFC Automation classes
#include <afxdtctl.h>		// MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>			// MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT

#pragma warning( disable : 4786 183 168)  // Disable warning messages 
#include <wininet.h>


//切换
#define WM_SWITCH_PAND (WM_USER + 1000)
//using namespace std;
typedef struct _URL
{
  CString m_url;
  CString m_Coment;

}*PURL,URL;

#define WM_DROPWINPOS  (WM_USER + 1001)
#define WM_STASRTDOWN  (WM_USER + 1002)

#define WM_CREATETAB   (WM_USER + 1003) //创建tabs
#define WM_SETTESTSERVER (WM_USER + 1004) //连接服务器信息
#define WM_PALYSOUND   (WM_USER + 1005)

#define WM_SETTHREADLOG (WM_USER + 1006) //下在线程日志

#define WM_SETLISTLOG  (WM_USER + 1007)

#define WM_STARTCLOCK (WM_USER + 1008) //下栽计时


#define WM_ICON_NOTIFY  (WM_USER+10) //托盘信息

#define WM_UPDATAPROGRESS (WM_USER + 1009) //更新下在信息

#define WM_SETNEWTYPE  (WM_USER+1010) //新建下载类别


#define MYWM_NOTIFYICON (WM_USER+1011) //下载完毕提示信息

#define WM_DOWNLOAD_FINISH (WM_USER+1012) //下在完毕通知
#include <afxole.h>
#include <BCGCBProInc.h>			// BCGControlBar Pro
#include <vector>
#include <map>

#include "winsock2.h"
#include <afxinet.h>
#include <afxsock.h>		// MFC socket extensions

using namespace std;

class CBreakPointDown;

typedef struct _ProxyInfo
{
    CString Name;//名称
	CString ProxyAddr; //代理IP
	int     port;      //代理端口
	CString type; //代理类型
	int     Default; //是否被使用

}ProxyInfo,*LPProxyInfo;

typedef struct tagTIME_LIST{
	int      nPID;              //主线程号
	int      nItem;             //列表框行号初始为:0
	int      eHH;               //小时hh:mm:ss
	int      eMM;               //分钟
	int      eSS;               //钞
	CString  strRegPath;        //注册表路径
	CWnd     *the;              //CHttpDownLoad指针
}TIME_LIST;

typedef struct _Percent
{
   int PID;
   int CID;
   long size;
}Percent,*LPPercent;
typedef struct _TIME_BEGIN{
	int      nPID;                  //主线程号
	int      nItem;                 //列表框行号初始为:0
	int      nHH;                   //小时hh:mm:ss
	int      nMM;                   //分钟
	int      nSS;                   //钞
}TIME_BEGIN,*LPTIME_BEGIN;
//下载信息结构
typedef struct _DownLoadIndo
{   
	long    PID;    //线程ID
    CString finish; //已经下载
	CString downloadtime;//下载时间
    CString resettime; //剩余时间
	CString speed;    //下载速度
	TIME_BEGIN m_usetime; //下载时间
	long    filesize; //文件大小
	CString progress; //进度
    vector<long>size;//保存每个线程下载字节
}DownLoadIndo,*LPDownLoadIndo;

typedef struct tagLEOSOCKET_TYPE{
	CString    strAcceptType;  //接收数据类型:*/*
	CString    strServer;      //保存服务器名:www.xxx.xxx
	int        nTimeOut;       //Socket超时设置
}LEOSOCKET_TYPE;

typedef struct tagLEODOWN_INFO{
	CString    strFilePath;          //文件绝对路径 
	//CString    strAutoFilePath;      //自动更名后的路径
	CString    strComment;           //链接的提示信息
	CString    strLocationUrl;       //下载文件的网址
	CString    priLocationUrl;       //原始URL
	CString    strRegSubPath;        //注册表路径
	float      fPercent;             //百分比数 100%
	double     fSpeed;               //下载速率 30kb/s
	long       lFileLength;          //文件长度
	long       lFromeByte;           //开始长度*
	long       lToByte;              //结束长度*
	long       lBreakPointByte;      //断点开始长度*
	int        nSvrState;            //服务器状态值
	int        nSocketLinkNum;       //测试Socket连接次数
	int        nPID;                 //主线程号
	int        nCID;                 //子线程号(0~4)
	int        nBreakRev;            //1:以前没有完成的任务 or 0:新任务 
	//int        nImage;               //图示类型共3种
	BOOL       bIsFileDown;          //文件是否下载完
	//BOOL       bRename;              //自动更名
	CWnd       *the;                 //CHttpDownLoad指针
	CWnd       *pMainFrame;          //CMainFrame指针
	LEOSOCKET_TYPE stSocketType;     //LEOSOCKET_TYPE结构变量
    //HANDLE     Handlestop;          //用于暂停下载
	
}DOWN_INFO,*LPDOWN_INFO;



typedef struct _HttpDown
{
   CWnd* m_the;
   HWND  m_Hand;

}strHttpDown,*LPHttpDown;

typedef struct _TestSrvLog
{    
	 int Num;  //行号
     CString log;


}TestSrvLog,*LPTestSrvLog;

//list控件
typedef struct _INSERTLISTlog
{  
   int m_nitem;
   int nSubItem;
   CString m_Log;

}INSERTLISTlog,*LPINSERTLISTlog;




typedef struct _CLOCK
{
   UINT ID;
   int  time;
   
}CLOCK,*LPCLOCK;

typedef struct tagHTTPDL_INFO{
	struct BREAK_INFO0{
		   long  BreakLength0;      //断点开始长度
		   long  lFromeByte;        //开始长度*
	       long  lToByte;           //结束长度*
		   float lSpeed0;           //0线程下载速率
		   int   nCID;              //子线程号 
		   BOOL  bRevData0;         //子线程是否下载完毕
		   BOOL  bSpeed;            //子线程是否已经有了速率数
		   bool  exit;              //是否退出线程
	}BreakInfo0;
	struct BREAK_INFO1{
		   long  BreakLength1;
		   long  lFromeByte;           
	       long  lToByte;              
		   float lSpeed1;
		   int   nCID;    
		   BOOL  bRevData1;
		   BOOL  bSpeed;
		   bool  exit;              //是否退出线程
	}BreakInfo1;
	struct BREAK_INFO2{
		   long  BreakLength2;
		   long  lFromeByte;           
	       long  lToByte;              
		   float lSpeed2;
		   int   nCID;   
		   BOOL  bRevData2;
		   BOOL  bSpeed;
		   bool  exit;              //是否退出线程
	}BreakInfo2;
	struct BREAK_INFO3{
		   long  BreakLength3;
		   long  lFromeByte;      
	       long  lToByte;         
		   float lSpeed3;
		   int   nCID;    
		   BOOL  bRevData3;
		   BOOL  bSpeed;
		   bool  exit;              //是否退出线程
	}BreakInfo3;
	struct BREAK_INFO4{
		   long  BreakLength4;
		   long  lFromeByte;       
	       long  lToByte;          
		   float lSpeed4;
		   int   nCID;    
		   BOOL  bRevData4;
		   BOOL  bSpeed;
		   bool  exit;              //是否退出线程
	}BreakInfo4;
	long  lFileLength;    //文件长度
	long  Completed;      //以下在完成数
	float fSpeed;         //下载速率
	BOOL  bSpeed;
	CString time;         //下载时间
	//CString  strRegPath;  //注册表路径
	CString m_Filename; //文件名字
	CBreakPointDown* CFG;
    HANDLE m_HandleStop;  //用于暂停下载
	bool m_Stop;          //暂停状态 false表示暂停
//	CString sGUID;        //区分其他下载
//	int PID;              //下在组标志
    LPVOID m_HTTPDOWNCLS; //父类
	HANDLE m_Break_handle; //当为断点下载时候有信号
	CString CFG_PATH;

}HTTPDL_INFO,*LPHTTPDL_INFO;

//新建类别
typedef struct _NewType
{
     CString TypeName;
	 CString Path;

}NewType,*LPNewType;


//下在完毕提示信息
typedef struct _DownLoadFinish
{
   CString caption;
   CString info;

}DownLoadFinish,*LPDownLoadFinish;

extern bool sure;

UINT TestServerState(LPVOID lParam);
UINT HttpDown(LPVOID lParam);
UINT StartDownLoad(LPVOID lParam);
extern void WriteDownLoadLog(int item,int subitem,CString log);
extern void FormatTime(int ihh,int imm,int iss,char sz[]);
void ChangeFileName(CString& filename);
extern void CalueSpareTimer(long &hh,long &mm,long &ss,long lComp,long lbps);
extern CString CreateGUID();
extern void CreateDir(const char* dirPath);
//判断下载的文件是否存在
extern bool FindFile(const char* sPath);


extern long finish;
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__C3752ABF_DBA9_4226_99CD_7816D7F0DE8F__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -