FileTorrent.h
上传用户:lds876
上传日期:2013-05-25
资源大小:567k
文件大小:2k
源码类别:

P2P编程

开发平台:

Visual C++

  1. // FileTorrent.h: interface for the CFileTorrent class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_FILETORRENT_H__7982010F_5734_496B_B8F8_F0B5A82CC6A9__INCLUDED_)
  5. #define AFX_FILETORRENT_H__7982010F_5734_496B_B8F8_F0B5A82CC6A9__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "FileInfo.h"
  10. class CVal;
  11. #define WM_FILE_TORRENT_OPENED WM_USER + 1002
  12. class CFileTorrent  
  13. {
  14. public:
  15. CFileTorrent();
  16. virtual ~CFileTorrent();
  17. long GetOpenIndex();
  18. bool IsBad();
  19. string GetBadMsg();
  20. void Close();
  21. bool IsOpen();
  22. bool OpenFileEx(string strFileName, string strSaveAs, HWND hWnd);
  23. bool OpenFile(string strFileName, string strSaveAs = "");
  24. bool CreateDir(string strSaveAs = "");
  25. bool QuerySubFiles(vector<CFileInfo>& vFiles, bool& bDir, BLONG & lTotalSize);
  26. bool QueryDir();
  27. CVal* GetResponse();
  28. CVal* GetInfo();
  29. memstream& GetInfohash();
  30. string GetInfohashString();
  31. memstream& GetMyId();
  32. vector<CFileInfo>& GetFileInfo();
  33. vector<char*>& GetPieces();
  34. string GetUrl();
  35. string GetComment();
  36. // call by gui.
  37. string GetTorrentFileName();
  38. string GetSaveName();
  39. BLONG GetFileLength();
  40. bool m_bDirectory;
  41. private:
  42. static DWORD WINAPI OpenFileExProc(void *pParam);
  43. void ExtractFile(long lOpenIndex);
  44. void ExtractFileData();
  45. string ChooseFile(string strDefaultName, unsigned long lsize, string strSaveas, bool bDir);
  46. bool MakeDir(string strFileName, bool bForceDir = false);
  47. long getpid();
  48. void MakeMyid();
  49. void MakeInfohash();
  50. void MakePieces();
  51. CVal* m_pResponse;
  52. vector<char*> m_vPieces;
  53. vector<CFileInfo> m_vFiles;
  54. memstream m_memMyid;
  55. memstream m_memInfohash;
  56. string m_strTorrentFileName;
  57. string m_strSaveName;
  58. BLONG m_lSize;
  59. bool m_bOpened;
  60. bool m_bBad;
  61. string m_strBad;
  62. HWND m_hWnd;
  63. HANDLE m_hCancel;
  64. HANDLE m_hFileOpenDone;
  65. long m_lOpenIndex;
  66. };
  67. #endif // !defined(AFX_FILETORRENT_H__7982010F_5734_496B_B8F8_F0B5A82CC6A9__INCLUDED_)