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

Ftp客户端

开发平台:

Visual C++

  1. // DaemonFileBrowser.h : header file
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. // CDaemonFileBrowser dialog
  5. class DLL_WAR_CLIENT_ CFileProperties
  6. {
  7. public:
  8. CString m_Name;
  9. CString m_Comment;
  10. DWORD m_Flags;
  11. __int64 m_Size;
  12. __int64 m_Date;
  13. USER m_Owner;
  14. USER m_Class;
  15. CFileProperties();
  16. ~CFileProperties();
  17. };
  18. class DLL_WAR_CLIENT_ CDaemonFileBrowser : public CDialog
  19. {
  20. // Construction
  21. public:
  22. CDaemonFileBrowser(CWnd* pParent = NULL);   // standard constructor
  23. ~CDaemonFileBrowser();
  24. BOOL RemoteReq(LPCSTR Command, CString& cSvrReply);
  25. BOOL ListDir(LPCSTR Path, CLinkedList& List);
  26. int BldTree(HTREEITEM pFather);
  27. void AddFilesToTree(HTREEITEM pFather, CLinkedList& List, BOOL SuspendDelete = FALSE);
  28. BOOL SetAccessState(HTREEITEM hNode, CFileProperties *pInfo);
  29. static int GetImageIndex(BOOL IsRoot, CFileProperties *pInfo, BOOL Selected = FALSE);
  30. CFileProperties *GetCurrentDir();
  31. static int CALLBACK LocalViewListCmp(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
  32. void SortItems(int iMode);
  33. BOOL DoChangeDirs();
  34. void SetListMode(int Mode);
  35. BOOL GetPath(HTREEITEM Current, CString& cPath);
  36. BOOL GetFlags(CFileProperties *pInfo, CString& cFlags);
  37. void AddSelection(CWnd *pWin, CFileProperties *pInfo);
  38. void RemoveSelection(CFileProperties *pInfo);
  39. void UpdateSelections();
  40. int SetSelectionFlag(int DlgId, DWORD Flag);
  41. BOOL chmod(LPCSTR Path, int SetMode, int SetOwner, 
  42. int SetClass, LPCSTR SetComment, int DefDirMode, 
  43. int DefFileMode);
  44. void UpdatePath();
  45. void UpdatePermissions();
  46. BOOL HasExecAccess(CFileProperties *pInfo);
  47. void DoUpdateTreePermissions(HTREEITEM Current, BOOL HasAccess);
  48. void DoUpdateSelections();
  49. void DoUpdatePermissions();
  50. void Schedule(DWORD Flags);
  51. static BOOL RunDialog(CRemoteInterface *pRI);
  52. #ifdef DLL_WAR_CLIENT_EXPORT
  53. // Dialog Data
  54. //{{AFX_DATA(CDaemonFileBrowser)
  55. enum { IDD = IDD_FILE_BROWSER };
  56. CButton m_ctlTakeOwnershipClass;
  57. CButton m_ctlTakeOwnershipOwner;
  58. CStatic m_ctlsClass;
  59. CStatic m_ctlsOwner;
  60. CButton m_ctlEditComment;
  61. CEdit m_ctlComment;
  62. CComboBox m_ctlUser;
  63. CComboBox m_ctlClass;
  64. CButton m_ctlCancel;
  65. CButton m_ctlOK;
  66. CEdit m_ctlPath;
  67. CListCtrl m_List;
  68. CTreeCtrl m_Tree;
  69. CString m_Path;
  70. //}}AFX_DATA
  71. #else
  72. CButton m_ctlTakeOwnershipClass;
  73. CButton m_ctlTakeOwnershipOwner;
  74. CStatic m_ctlsClass;
  75. CStatic m_ctlsOwner;
  76. CButton m_ctlEditComment;
  77. CEdit m_ctlComment;
  78. CComboBox m_ctlUser;
  79. CComboBox m_ctlClass;
  80. CButton m_ctlCancel;
  81. CButton m_ctlOK;
  82. CEdit m_ctlPath;
  83. CListCtrl m_List;
  84. CTreeCtrl m_Tree;
  85. CString m_Path;
  86. #endif
  87. CImageList *m_ImgLarge, *m_ImgSmall;
  88. CRemoteUsr *m_pUserInfo;
  89. CRemoteInterface *m_Remote;
  90. USER m_Class, m_User; // Current selections
  91. int m_LocalSortMode;
  92. int m_LocalListMode;
  93. CLinkedList m_Selections;
  94. CWnd *m_pSelWin;
  95. DWORD m_Flags;
  96. int m_TimerID;
  97. // Overrides
  98. // ClassWizard generated virtual function overrides
  99. //{{AFX_VIRTUAL(CDaemonFileBrowser)
  100. protected:
  101. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  102. //}}AFX_VIRTUAL
  103. // Implementation
  104. protected:
  105. // Generated message map functions
  106. //{{AFX_MSG(CDaemonFileBrowser)
  107. afx_msg void OnAx();
  108. afx_msg void OnAf();
  109. afx_msg void OnAh();
  110. afx_msg void OnAr();
  111. afx_msg void OnAw();
  112. afx_msg void OnCx();
  113. afx_msg void OnCf();
  114. afx_msg void OnCh();
  115. afx_msg void OnCr();
  116. afx_msg void OnOx();
  117. afx_msg void OnOf();
  118. afx_msg void OnOh();
  119. afx_msg void OnOr();
  120. afx_msg void OnOw();
  121. virtual BOOL OnInitDialog();
  122. virtual void OnOK();
  123. afx_msg void OnSelchangeClass();
  124. afx_msg void OnSelchangeUser();
  125. afx_msg void OnEditComment();
  126. afx_msg void OnRclickDirs(NMHDR* pNMHDR, LRESULT* pResult);
  127. afx_msg void OnSetfocusDirs(NMHDR* pNMHDR, LRESULT* pResult);
  128. afx_msg void OnSelchangedDirs(NMHDR* pNMHDR, LRESULT* pResult);
  129. afx_msg void OnItemexpandingDirs(NMHDR* pNMHDR, LRESULT* pResult);
  130. afx_msg void OnDblclkFiles(NMHDR* pNMHDR, LRESULT* pResult);
  131. afx_msg void OnRclickFiles(NMHDR* pNMHDR, LRESULT* pResult);
  132. afx_msg void OnViewSortAscending();
  133. afx_msg void OnViewSortBydate();
  134. afx_msg void OnViewSortByname();
  135. afx_msg void OnViewSortBysize();
  136. afx_msg void OnViewSortBytype();
  137. afx_msg void OnViewSortDescending();
  138. afx_msg void OnDeleteitemDirs(NMHDR* pNMHDR, LRESULT* pResult);
  139. afx_msg void OnMenuModeLargeicons();
  140. afx_msg void OnMenuModeList();
  141. afx_msg void OnMenuModeSmallicons();
  142. afx_msg void OnMenuModeWide();
  143. afx_msg void OnSize(UINT nType, int cx, int cy);
  144. virtual void OnCancel();
  145. afx_msg void OnDeleteitemFiles(NMHDR* pNMHDR, LRESULT* pResult);
  146. afx_msg void OnItemchangedFiles(NMHDR* pNMHDR, LRESULT* pResult);
  147. afx_msg void OnKillfocusFiles(NMHDR* pNMHDR, LRESULT* pResult);
  148. afx_msg void OnCw();
  149. afx_msg void OnSetfocusFiles(NMHDR* pNMHDR, LRESULT* pResult);
  150. afx_msg void OnTimer(UINT nIDEvent);
  151. afx_msg void OnDropdownClass();
  152. afx_msg void OnDropdownUser();
  153. afx_msg void OnTakeOOwner();
  154. afx_msg void OnTakeOClass();
  155. //}}AFX_MSG
  156. DECLARE_MESSAGE_MAP()
  157. };
  158. enum // Bitmaps
  159. {
  160. BIM_BACK,
  161. BIM_SYSTEM,
  162. BIM_FILE,
  163. BIM_FOLDER,
  164. BIM_SELECTED_FOLDER,
  165. BIM_DRIVE,
  166. BIM_DENIED,
  167. BIM_LINK,
  168. BIM_SHARE,
  169. BIM_INVALID
  170. };
  171. enum // Overlay images
  172. {
  173. BOI_DENIED = 1,
  174. BOI_LINK,
  175. BOI_FREE, // Share
  176. BOI_INVALID
  177. };
  178. // Flags
  179. #define DO_UPD_PERMS 0x0001
  180. #define DO_UPD_SEL 0x0002
  181. #define TIMER_ACTIVE 0x0004