ShellFileOp.h
上传用户:tjfeida
上传日期:2013-03-10
资源大小:1917k
文件大小:4k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. // ShellFileOp.h: interface for the CShellFileOp class.
  2. //
  3. // Tim Johnson timj@progsoc.uts.edu.au
  4. // Written : July 1998
  5. //
  6. // Copyright 1998
  7. //
  8. //////////////////////////////////////////////////////////////////////
  9. #if !defined(AFX_SHELLFILEOP_H__DA3A3661_1EF3_11D2_9E56_444553540000__INCLUDED_)
  10. #define AFX_SHELLFILEOP_H__DA3A3661_1EF3_11D2_9E56_444553540000__INCLUDED_
  11. #if _MSC_VER >= 1000
  12. #pragma once
  13. #endif // _MSC_VER >= 1000
  14. //constats for use in iSrcDest arguements
  15. const int SH_SRC_FILE = 0;
  16. const int SH_DEST_FILE = 1;
  17. class CShellFileOp  
  18. {
  19. public:
  20. //
  21. //simple constructor
  22. //
  23. CShellFileOp();
  24. //
  25. //complex constructor - performs the operation straight away
  26. //
  27. CShellFileOp( const HWND phWnd, 
  28.   const UINT wFunc,
  29.   const CString sFrom,
  30.   const CString sTo,
  31.   const FILEOP_FLAGS fFlags,
  32.   const CString sProgressTitle);
  33. //
  34. //destructor
  35. //
  36. virtual ~CShellFileOp();
  37. public: //operations
  38. //
  39. // Function to perform copy operation
  40. //
  41. long CopyFiles();
  42. //
  43. // Function to perform delete operation
  44. //
  45. long DeleteFiles();
  46. //
  47. // Function to perform move operation
  48. //
  49. long MoveFiles();
  50. //
  51. // Function to perform rename operation
  52. //
  53. long RenameFiles();
  54. //
  55. // Adds another filename to the end of the current string
  56. //
  57. void AddFile(const int iSrcDest, const CString sFile);
  58. //
  59. // Clears a list of files
  60. //
  61. void ClearFiles(const int iSrcDest);
  62. //
  63. // Function to pre-allocate string memory to prevent 
  64. //  lots of re-allocations
  65. //
  66. void SetMaxCount(const int iSrcDest, const long lMax);
  67. //
  68. // Function to set the dialog title
  69. //  sTitle is a string to be used
  70. //  nTitle is a resource ID to get the string from
  71. void SetTitle(CString sTitle);
  72. void SetTitle(const int nTitle);
  73. //
  74. // Function to set the parent HWND of the dialog
  75. //
  76. void SetParent(const HWND phWnd);
  77. //
  78. // Function to get Abort flag
  79. //
  80. BOOL AnyOperationsAborted() const;
  81. //
  82. // Functions to get/set the operation flags
  83. //
  84. // Flags that control the file operation. This member can be a combination of the 
  85. // following values: 
  86. //
  87. // FOF_ALLOWUNDO Preserves undo information, if possible. 
  88. //
  89. // FOF_CONFIRMMOUSE Not implemented. 
  90. //
  91. // FOF_FILESONLY Performs the operation only on files if a wildcard 
  92. // filename (*.*) is specified. 
  93. //
  94. // FOF_MULTIDESTFILES Indicates that the pTo member specifies multiple destination 
  95. // files (one for each source file) rather than one directory 
  96. // where all source files are to be deposited. 
  97. //
  98. // FOF_NOCONFIRMATION Responds with "yes to all" for any dialog box that is 
  99. // displayed. 
  100. //
  101. // FOF_NOCONFIRMMKDIR Does not confirm the creation of a new directory if the 
  102. // operation requires one to be created. 
  103. //
  104. // FOF_RENAMEONCOLLISION Gives the file being operated on a new name (such as 
  105. // "Copy #1 of...") in a move, copy, or rename operation if a 
  106. // file of the target name already exists. 
  107. //
  108. // FOF_SILENT Does not display a progress dialog box. 
  109. //
  110. // FOF_SIMPLEPROGRESS Displays a progress dialog box, but does not show the 
  111. // filenames. 
  112. FILEOP_FLAGS GetFlags() const;
  113. void SetFlags(const FILEOP_FLAGS fNewFlags);
  114. private: //operations
  115. // function to grab some string space memory
  116. void GrabMem(const int iSrcDest, const long lNum);
  117. private: //attributes
  118. //max no. char in source string
  119. long m_lMaxSrcCount;
  120. //max no. char in dest string
  121. long m_lMaxDestCount;
  122. //current no. char in source string
  123. long m_lCurSrcCount;
  124. //current no. char in dest string
  125. long m_lCurDestCount;
  126. //structure for shell call
  127. SHFILEOPSTRUCT m_FileOp;
  128. //pointer to start of source string
  129. char * m_pTo;
  130. //pointer to start of dest string
  131. char * m_pFrom;
  132. //current pointer in source string
  133. char * m_pSrc;
  134. //current pointer in dest string
  135. char * m_pDest;
  136. //title to be used on dialog
  137. char * m_pTitle;
  138. };
  139. #endif // !defined(AFX_SHELLFILEOP_H__DA3A3661_1EF3_11D2_9E56_444553540000__INCLUDED_)