multconv.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:4k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // convert.h : header file
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #ifdef CONVERTERS
  21. /////////////////////////////////////////////////////////////////////////////
  22. // CConverter
  23. typedef int (CALLBACK *LPFNOUT)(int cch, int nPercentComplete);
  24. typedef int (CALLBACK *LPFNIN)(int flags, int nPercentComplete);
  25. typedef BOOL (FAR PASCAL *PINITCONVERTER)(HWND hWnd, LPCSTR lpszModuleName);
  26. typedef BOOL (FAR PASCAL *PISFORMATCORRECT)(HANDLE ghszFile, HANDLE ghszClass);
  27. typedef int (FAR PASCAL *PFOREIGNTORTF)(HANDLE ghszFile, LPVOID lpv, HANDLE ghBuff,
  28. HANDLE ghszClass, HANDLE ghszSubset, LPFNOUT lpfnOut);
  29. typedef int (FAR PASCAL *PRTFTOFOREIGN)(HANDLE ghszFile, LPVOID lpv, HANDLE ghBuff,
  30. HANDLE ghszClass, LPFNIN lpfnIn);
  31. #endif
  32. /////////////////////////////////////////////////////////////////////////////
  33. // CTrackFile
  34. class CTrackFile : public CFile
  35. {
  36. public:
  37. //Construction
  38. CTrackFile(CFrameWnd* pWnd);
  39. ~CTrackFile();
  40. //Attributes
  41. int m_nLastPercent;
  42. DWORD m_dwLength;
  43. CFrameWnd* m_pFrameWnd;
  44. CString m_strComplete;
  45. CString m_strWait;
  46. CString m_strSaving;
  47. //Operations
  48. void OutputPercent(int nPercentComplete = 0);
  49. void OutputString(LPCTSTR lpsz);
  50. virtual UINT Read(void FAR* lpBuf, UINT nCount);
  51. virtual void Write(const void FAR* lpBuf, UINT nCount);
  52. };
  53. class COEMFile : public CTrackFile
  54. {
  55. public:
  56. COEMFile(CFrameWnd* pWnd);
  57. virtual UINT Read(void FAR* lpBuf, UINT nCount);
  58. virtual void Write(const void FAR* lpBuf, UINT nCount);
  59. };
  60. #ifdef CONVERTERS
  61. class CConverter : public CTrackFile
  62. {
  63. public:
  64. CConverter(LPCSTR pszLibName, CFrameWnd* pWnd = NULL);
  65. protected:
  66. CConverter(CFrameWnd* pWnd = NULL);
  67. public:
  68. //Attributes
  69. int m_nPercent;
  70. BOOL m_bDone;
  71. BOOL m_bConvErr;
  72. virtual ULONGLONG  GetPosition() const;
  73. // Operations
  74. BOOL IsFormatCorrect(LPCTSTR pszFileName);
  75. BOOL DoConversion();
  76. virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags,
  77. CFileException* pError = NULL);
  78. void WaitForConverter();
  79. void WaitForBuffer();
  80. // Overridables
  81. virtual LONG Seek(LONG lOff, UINT nFrom);
  82. virtual ULONGLONG GetLength() const;
  83. virtual UINT Read(void* lpBuf, UINT nCount);
  84. virtual void Write(const void* lpBuf, UINT nCount);
  85. virtual void Abort();
  86. virtual void Flush();
  87. virtual void Close();
  88. // Unsupported
  89. virtual CFile* Duplicate() const;
  90. virtual void LockRange(DWORD dwPos, DWORD dwCount);
  91. virtual void UnlockRange(DWORD dwPos, DWORD dwCount);
  92. virtual void SetLength(DWORD dwNewLen);
  93. //Implementation
  94. public:
  95. ~CConverter();
  96. protected:
  97. int m_nBytesAvail;
  98. int m_nBytesWritten;
  99. BYTE* m_pBuf;
  100. HANDLE m_hEventFile;
  101. HANDLE m_hEventConv;
  102. BOOL m_bForeignToRtf;
  103. HGLOBAL m_hBuff;
  104. HGLOBAL m_hFileName;
  105. void LoadFunctions();
  106. HINSTANCE m_hLibCnv;
  107. PINITCONVERTER m_pInitConverter;
  108. PISFORMATCORRECT m_pIsFormatCorrect;
  109. PFOREIGNTORTF m_pForeignToRtf;
  110. PRTFTOFOREIGN m_pRtfToForeign;
  111. int CALLBACK WriteOut(int cch, int nPercentComplete);
  112. int CALLBACK ReadIn(int nPercentComplete);
  113. static HGLOBAL StringToHGLOBAL(LPCSTR pstr);
  114. static int CALLBACK WriteOutStatic(int cch, int nPercentComplete);
  115. static int CALLBACK ReadInStatic(int flags, int nPercentComplete);
  116. static UINT AFX_CDECL ConverterThread(LPVOID pParam);
  117. static CConverter *m_pThis;
  118. };
  119. #endif
  120. /////////////////////////////////////////////////////////////////////////////