Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
3.0 KiB

  1. // ProcessFileName.h: interface for the CProcessFileName class.
  2. //
  3. ////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_PROCESSFILENAME_H__CA00ED34_46D7_11D2_8DAA_204C4F4F5020__INCLUDED_)
  5. #define AFX_PROCESSFILENAME_H__CA00ED34_46D7_11D2_8DAA_204C4F4F5020__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. ////////////////////////////////////////////////////////////////////
  10. ////////////////////////////////////////////////////////////////////
  11. enum enumProcessFileName
  12. {
  13. PROCESSFILE_UNDEFINED = 0x00000000L,
  14. PROCESSFILE_NOREADLY = 0x00000001L,
  15. PROCESSFILE_PROPERFILENAME = 0x00000002L,
  16. PROCESSFILE_VERIFYDIRECTORY= 0x00000004L,
  17. PROCESSFILE_VERIFYFILENAME = 0x00000008L,
  18. PROCESSFILE_VERIFYFILEEXT = 0x00000010L,
  19. PROCESSFILE_ALLOWNEWFILES = 0x00000020L,
  20. PROCESSFILE_APPEND = 0x00000040L,
  21. PROCESSFILE_OVERWRITE = 0x00000080L,
  22. };
  23. typedef class CProcessFileName
  24. {
  25. public:
  26. CProcessFileName();
  27. CProcessFileName(CLString* pStrDefaultExt, CLString* pStrRequiredExt, ULONG ulFlags);
  28. CProcessFileName(LPCTSTR pszDefaultExt, LPCTSTR pszRequiredExt, ULONG ulFlags);
  29. virtual ~CProcessFileName();
  30. public:
  31. void SetValues(CLString* pStrDefaultExt, CLString* pStrRequiredExt, ULONG ulFlags);
  32. void SetValues(LPCTSTR pszDefaultExt, LPCTSTR pszRequiredExt, ULONG ulFlags);
  33. void ClearOutValues();
  34. void SetAllowReadOnly(bool bAllowReadOnly);
  35. public:
  36. CLString m_strDefaultExt;
  37. CLString m_strRequiredExt;
  38. CLString m_strOutputFileName; // Out parameter
  39. CLString m_strOutputDirName; // Out parameter
  40. CLString m_strOutFileTitle; // Out parameter
  41. CLString m_strOutErrorMsg; // Out parameter
  42. bool m_bNewFile;
  43. ULONG m_ulFlags;
  44. bool m_bAllowReadOnly;
  45. } CPROCESSFILENAME, FAR* LPCPROCESSFILENAME;
  46. ////////////////////////////////////////////////////////////////////
  47. ////////////////////////////////////////////////////////////////////
  48. typedef class CCheckFileName : public CProcessFileName
  49. {
  50. public:
  51. // Inline
  52. CCheckFileName()
  53. {
  54. }
  55. // Inline
  56. CCheckFileName(CLString* pStrDefaultExt, CLString* pStrRequiredExt, ULONG ulFlags)
  57. : CProcessFileName(pStrDefaultExt, pStrRequiredExt, ulFlags)
  58. {
  59. }
  60. // Inline
  61. CCheckFileName(LPCTSTR pszDefaultExt, LPCTSTR pszRequiredExt, ULONG ulFlags)
  62. : CProcessFileName(pszDefaultExt, pszRequiredExt, ulFlags)
  63. {
  64. }
  65. // inline
  66. BOOL CheckFileName(const CLString& strOriginalFileName, BOOL bAppend, UINT uAppendMsgID = 0, BOOL bDisplayMsg = true);
  67. BOOL CheckFileName(const CLString& strOriginalFileName, BOOL bAppend, CLString strErrorMessage = _T(""), BOOL bDisplayMsg =true);
  68. BOOL DoesFileExist(const CLString& strFileName, const CLString& strExt, bool bDisplayMsg = false);
  69. BOOL VerifyNewFile(const CLString& strFileName, const CLString& strExt, bool bDisplayMsg = false);
  70. private:
  71. } CCHECKFILENAME, FAR* LPCCHECKFILENAME;
  72. #endif // !defined(AFX_PROCESSFILENAME_H__CA00ED34_46D7_11D2_8DAA_204C4F4F5020__INCLUDED_)