genericinternetview.h
上传用户:surprise9
上传日期:2007-01-04
资源大小:426k
文件大小:5k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. // GenericInternetView.h : header file
  2. //
  3. class CCaptionBar;
  4. class CDaemonInfo;
  5. class CFileProperties;
  6. class CGenericInternetView;
  7. class CGenericRemote;
  8. enum // FTP States
  9. {
  10. FTPS_NOT_CONNECTED,
  11. FTPS_DISCONNECTED,
  12. FTPS_CONNECTING,
  13. FTPS_POLL_CONNECT,
  14. FTPS_CONNECTED,
  15. FTPS_CWD,
  16. FTPS_PWD,
  17. FTPS_LIST,
  18. FTPS_IDLE,
  19. FTPS_STOR,
  20. FTPS_RECV,
  21. FTPS_DELETE,
  22. FTPS_VIEW,
  23. FTPS_HOLD, // General one-step command
  24. FTPS_INDEX,
  25. FTPS_INVALID
  26. };
  27. /////////////////////////////////////////////////////////////////////////////
  28. // CGenericInternetView view
  29. class DLL_WAR_CLIENT_ CGenericInternetView : public CListViewEx
  30. {
  31. protected:
  32. CGenericInternetView();           // protected constructor used by dynamic creation
  33. public:
  34. void SetListMode(int Mode);
  35. void SortItems(int iMode);
  36. static int CALLBACK LocalViewListCmp(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
  37. void UpdateUrl();
  38. BOOL Connect();
  39. CDaemonInfo *GetDaemonInfo();
  40. BOOL ListDir();
  41. BOOL ListLocalDir();
  42. static CString MkDOSPathWithPattern(LPCSTR Path, LPCSTR Pattern);
  43. BOOL UpdateDirList(CLinkedList& DirList);
  44. CString GetFlags(CFileProperties *pInfo);
  45. int GetImageIndex(CFileProperties *pInfo);
  46. BOOL ChDir(LPCSTR Path);
  47. void OnFailedToConnect(int nErrorCode = -1);
  48. void LogConnMsg(int LogType, int msgID, ...);
  49. void OnDisconnect(BOOL DoPoll = FALSE, BOOL AlsoOtherSide = FALSE);
  50. void OnConnect();
  51. void Process();
  52. void ProcessFTP();
  53. LONG OnProcess(WPARAM WParam, LPARAM LParam);
  54. LONG OnWmuCommand(WPARAM WParam, LPARAM LParam);
  55. BOOL CdUp();
  56. void ResetFileList();
  57. void OnDnsResolved(int nErrorCode, CDNSLookup *pDNS);
  58. BOOL OnInetLogin(long IPnum);
  59. BOOL MkValidPath(CString& cPath, CGenericInternetView *pTellHim = NULL);
  60. BOOL SendFiles(CFileProperties **ppFP, BOOL DoSend = FALSE, CGenericInternetView *FromPane = NULL);
  61. BOOL IsReady();
  62. CFileProperties **GetSelectedFiles(BOOL TestOnly = FALSE);
  63. BOOL GetFileSize(CGenericRemote *pRI);
  64. BOOL IsOnline();
  65. void Disconnect(BOOL DoPoll = FALSE);
  66. BOOL DoConnect();
  67. void OnAbort();
  68. BOOL PrepereForNewCommand();
  69. CString GetPath();
  70. void AddPathToHistory(LPCSTR Path);
  71. void ProcessLocal();
  72. void CreateDirectory(LPCSTR Path);
  73. void UpdateImage(BOOL DoOtherSideToo = TRUE);
  74. void OnIdle();
  75. BOOL AddToFileXmits(CGenericRemote *pRemote);
  76. DECLARE_DYNCREATE(CGenericInternetView)
  77. // Attributes
  78. public:
  79. CImageList *m_ImgSmall, *m_ImgLarge;
  80. int m_LocalSortMode;
  81. int m_LocalListMode;
  82. int m_TimerID;
  83. CString m_RemoteIP;
  84. CLogView *m_LogWin, *m_OtherSideLogWin;
  85. CGenericRemote *m_Server;
  86. CString m_URL;
  87. CEdit *m_URLcaption;
  88. int m_ViewNum; // 0 = left, 1 = right
  89. CString m_Path;
  90. CLinkedList m_DirList;
  91. int m_State;
  92. BOOL m_Virgin;
  93. CGenericInternetView *m_OtherSide;
  94. BOOL m_IsLocal;
  95. CString m_TimeFmt; // Time format mask
  96. HICON m_SvrIcon;
  97. HCURSOR m_WaitCursor;
  98. HCURSOR m_OfflineCursor;
  99. HCURSOR m_ConnectingCursor;
  100. CLinkedList m_PathHistory;
  101. CFileProperties **m_pFP;
  102. int m_pFPIndex;
  103. CBitmap m_StateImage[FTPS_INVALID];
  104. CWarTimer m_PollTimer;
  105. int m_PollRetryNum;
  106. BOOL m_HasPollDisconnected;
  107. BOOL m_UseFirewall;
  108. CString m_RealFTPAddress;
  109. // Operations
  110. public:
  111. // Overrides
  112. // ClassWizard generated virtual function overrides
  113. //{{AFX_VIRTUAL(CGenericInternetView)
  114. public:
  115. virtual void OnInitialUpdate();
  116. protected:
  117. virtual void OnDraw(CDC* pDC);      // overridden to draw this view
  118. //}}AFX_VIRTUAL
  119. // Implementation
  120. protected:
  121. virtual ~CGenericInternetView();
  122. #ifdef _DEBUG
  123. virtual void AssertValid() const;
  124. virtual void Dump(CDumpContext& dc) const;
  125. #endif
  126. // Generated message map functions
  127. protected:
  128. //{{AFX_MSG(CGenericInternetView)
  129. afx_msg void OnRclick(NMHDR* pNMHDR, LRESULT* pResult);
  130. afx_msg void OnViewSortAscending();
  131. afx_msg void OnViewSortBydate();
  132. afx_msg void OnViewSortByname();
  133. afx_msg void OnViewSortBysize();
  134. afx_msg void OnViewSortBytype();
  135. afx_msg void OnViewSortDescending();
  136. afx_msg void OnMenuModeLargeicons();
  137. afx_msg void OnMenuModeList();
  138. afx_msg void OnMenuModeSmallicons();
  139. afx_msg void OnMenuModeWide();
  140. afx_msg void OnSize(UINT nType, int cx, int cy);
  141. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  142. afx_msg void OnSetFocus(CWnd* pOldWnd);
  143. afx_msg void OnKillFocus(CWnd* pNewWnd);
  144. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  145. afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  146. afx_msg void OnMenuDownload();
  147. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  148. afx_msg void OnMenuRefresh();
  149. afx_msg void OnUpdateMenuRefresh(CCmdUI* pCmdUI);
  150. afx_msg void OnMenuPaneproperties();
  151. afx_msg void OnCdup();
  152. afx_msg void OnUpdateCdup(CCmdUI* pCmdUI);
  153. afx_msg void OnUpdateMenuDownload(CCmdUI* pCmdUI);
  154. afx_msg void OnMenuAbort();
  155. afx_msg void OnUpdateMenuAbort(CCmdUI* pCmdUI);
  156. afx_msg void OnMenuDelete();
  157. afx_msg void OnUpdateMenuDelete(CCmdUI* pCmdUI);
  158. afx_msg void OnMenuMakedirectorymkdir();
  159. afx_msg void OnUpdateMenuMakedirectorymkdir(CCmdUI* pCmdUI);
  160. afx_msg void OnDestroy();
  161. afx_msg void OnDropFiles(HDROP hDropInfo);
  162. afx_msg void OnShowindex();
  163. afx_msg void OnUpdateShowindex(CCmdUI* pCmdUI);
  164. //}}AFX_MSG
  165. DECLARE_MESSAGE_MAP()
  166. };
  167. /////////////////////////////////////////////////////////////////////////////
  168. #define LVM_STORE 0x10000000 // Final message from an operation.
  169. #define LVM_PING  0x20000000 // Ping