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

📄 internetdownload.h

📁 Visual C++网络通信编程实用案例精逊配套源码 光盘中存放的是书中涉及的所有实例的源代码和经过编译后的应用程序。所有程序均经过测试
💻 H
字号:
#if !defined(__Inet_h__)
#define __Inet_h__


class MAP_FILES : public CObject
{
public:
	CString strFileName;
	int nMaxLevel;
};

typedef CMapStringToOb MAP_FILES_ARRAY;

#define MAX_INET_BUFFER	700000L

class CInternetDownload
{
private:
	HINTERNET m_hSession;
	int m_nUniqueCount;
	DWORD m_dwRet;

private:
	void DoConnect(LPCTSTR lpszURL, BOOL bFileDownload);

public:
	CInternetDownload();
	~CInternetDownload();

	typedef enum
	{
		SUCCESS,
		BAD_URL,
		BAD_FILENAME,
		LOCATION_MOVED,
		UNKNOWN_ERROR,
		ALREADY_EXISTS,
		TIMEOUT,
	} RESULTS;

	typedef enum
	{
		DRIVE = 0x0001,
		PATH = 0x0002,
		FNAME = 0x0004,
		EXT = 0x0008,
	} SPLIT;

public:
	CString GetErrorText();

	void ResetUniqueCount();
	RESULTS DoGet(CString& strURL, BYTE **pbyBuffer, int& nLen, 
									BOOL bIsTextPage);
	RESULTS GetPage(CString& strURL, BYTE **pbyBuffer, int& nLen,
									BOOL bRedirectOkay);
	RESULTS GetFile(CString& strURL, BYTE **pbyBuffer, int& nLen);
	RESULTS SaveFile(CString& strFileName, LPCTSTR lpszDirectory, 
									BYTE *pbyBuffer, int nLen);
	RESULTS OpenSession(BOOL bUseProxy, CString& strProxyName);

	void CloseSession();

	void GenerateUniqueFileName(CString& strName, CString& strFileName, 
							MAP_FILES_ARRAY &arrNameMap,
							BOOL bIsText);

	static CString SplitFileName(LPCTSTR lpszPath, int nSplit);

};

#endif

⌨️ 快捷键说明

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