📄 stdafx.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 + -