📄 httpdownloaddlg.h
字号:
/*
Module : HTTPDOWNLOADDLG.H
Purpose: Defines the interface for an MFC dialog which performs HTTP downloads
similiar to the Internet Explorer download dialog
Copyright (c) 1999 - 2000 by PJ Naughter.
All rights reserved.
*/
////////////////////////////////// Macros ///////////////////////////
#ifndef __HTTPDOWNLOADDLG_H__
#define __HTTPDOWNLOADDLG_H__
/////////////////////////// Classes /////////////////////////////////
class CHttpDownloadDlg : public CDialog
{
public:
//Constructors / Destructors
CHttpDownloadDlg(CWnd* pParent = NULL);
//Public Member variables
CString m_sURLToDownload;
CString m_sFileToDownloadInto;
CString m_sUserName;
CString m_sPassword;
protected:
//{{AFX_DATA(CHttpDownloadDlg)
enum { IDD = IDD_HTTPDOWNLOAD };
CStatic m_ctrlStatus;
CStatic m_ctrlTransferRate;
CStatic m_ctrlTimeLeft;
CProgressCtrl m_ctrlProgress;
CStatic m_ctrlFileStatus;
CAnimateCtrl m_ctrlAnimate;
//}}AFX_DATA
//{{AFX_VIRTUAL(CHttpDownloadDlg)
virtual void DoDataExchange(CDataExchange* pDX);
//}}AFX_VIRTUAL
//{{AFX_MSG(CHttpDownloadDlg)
virtual BOOL OnInitDialog();
afx_msg void OnDestroy();
virtual void OnCancel();
afx_msg void OnClose();
//}}AFX_MSG
afx_msg LRESULT OnThreadFinished(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
DECLARE_DYNAMIC(CHttpDownloadDlg);
static void CALLBACK _OnStatusCallBack(HINTERNET hInternet, DWORD dwContext, DWORD dwInternetStatus,
LPVOID lpvStatusInformation, DWORD dwStatusInformationLength);
void OnStatusCallBack(HINTERNET hInternet, DWORD dwInternetStatus,
LPVOID lpvStatusInformation, DWORD dwStatusInformationLength);
static UINT _DownloadThread(LPVOID pParam);
void HandleThreadErrorWithLastError(UINT nIDError, DWORD dwLastError=0);
void HandleThreadError(UINT nIDError);
void DownloadThread();
void SetPercentage(int nPercentage);
void SetTimeLeft(DWORD dwSecondsLeft, DWORD dwBytesRead, DWORD dwFileSize);
void SetProgressRange(DWORD dwFileSize);
void SetStatus(const CString& sCaption);
void SetStatus(UINT nID);
void SetStatus(UINT nID, const CString& lpsz1);
void SetTransferRate(double KbPerSecond);
void PlayAnimation();
void SetProgress(DWORD dwBytesRead);
void UpdateControlsDuringTransfer(DWORD dwStartTicks, DWORD& dwCurrentTicks, DWORD dwTotalBytesRead, DWORD& dwLastTotalBytes,
DWORD& dwLastPercentage, BOOL bGotFileSize, DWORD dwFileSize);
CString m_sError;
CString m_sServer;
CString m_sObject;
CString m_sFilename;
INTERNET_PORT m_nPort;
DWORD m_dwServiceType;
HINTERNET m_hInternetSession;
HINTERNET m_hHttpConnection;
HINTERNET m_hHttpFile;
BOOL m_bAbort;
BOOL m_bSafeToClose;
CFile m_FileToWrite;
CWinThread* m_pThread;
};
#endif //__HTTPDOWNLOADDLG_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -