multconv.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:4k
- // convert.h : header file
- //
- // This file is a part of the XTREME TOOLKIT PRO MFC class library.
- // (c)1998-2008 Codejock Software, All Rights Reserved.
- //
- // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
- // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
- // CONSENT OF CODEJOCK SOFTWARE.
- //
- // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
- // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
- // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
- // SINGLE COMPUTER.
- //
- // CONTACT INFORMATION:
- // support@codejock.com
- // http://www.codejock.com
- //
- /////////////////////////////////////////////////////////////////////////////
- #ifdef CONVERTERS
- /////////////////////////////////////////////////////////////////////////////
- // CConverter
- typedef int (CALLBACK *LPFNOUT)(int cch, int nPercentComplete);
- typedef int (CALLBACK *LPFNIN)(int flags, int nPercentComplete);
- typedef BOOL (FAR PASCAL *PINITCONVERTER)(HWND hWnd, LPCSTR lpszModuleName);
- typedef BOOL (FAR PASCAL *PISFORMATCORRECT)(HANDLE ghszFile, HANDLE ghszClass);
- typedef int (FAR PASCAL *PFOREIGNTORTF)(HANDLE ghszFile, LPVOID lpv, HANDLE ghBuff,
- HANDLE ghszClass, HANDLE ghszSubset, LPFNOUT lpfnOut);
- typedef int (FAR PASCAL *PRTFTOFOREIGN)(HANDLE ghszFile, LPVOID lpv, HANDLE ghBuff,
- HANDLE ghszClass, LPFNIN lpfnIn);
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CTrackFile
- class CTrackFile : public CFile
- {
- public:
- //Construction
- CTrackFile(CFrameWnd* pWnd);
- ~CTrackFile();
- //Attributes
- int m_nLastPercent;
- DWORD m_dwLength;
- CFrameWnd* m_pFrameWnd;
- CString m_strComplete;
- CString m_strWait;
- CString m_strSaving;
- //Operations
- void OutputPercent(int nPercentComplete = 0);
- void OutputString(LPCTSTR lpsz);
- virtual UINT Read(void FAR* lpBuf, UINT nCount);
- virtual void Write(const void FAR* lpBuf, UINT nCount);
- };
- class COEMFile : public CTrackFile
- {
- public:
- COEMFile(CFrameWnd* pWnd);
- virtual UINT Read(void FAR* lpBuf, UINT nCount);
- virtual void Write(const void FAR* lpBuf, UINT nCount);
- };
- #ifdef CONVERTERS
- class CConverter : public CTrackFile
- {
- public:
- CConverter(LPCSTR pszLibName, CFrameWnd* pWnd = NULL);
- protected:
- CConverter(CFrameWnd* pWnd = NULL);
- public:
- //Attributes
- int m_nPercent;
- BOOL m_bDone;
- BOOL m_bConvErr;
- virtual ULONGLONG GetPosition() const;
- // Operations
- BOOL IsFormatCorrect(LPCTSTR pszFileName);
- BOOL DoConversion();
- virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags,
- CFileException* pError = NULL);
- void WaitForConverter();
- void WaitForBuffer();
- // Overridables
- virtual LONG Seek(LONG lOff, UINT nFrom);
- virtual ULONGLONG GetLength() const;
- virtual UINT Read(void* lpBuf, UINT nCount);
- virtual void Write(const void* lpBuf, UINT nCount);
- virtual void Abort();
- virtual void Flush();
- virtual void Close();
- // Unsupported
- virtual CFile* Duplicate() const;
- virtual void LockRange(DWORD dwPos, DWORD dwCount);
- virtual void UnlockRange(DWORD dwPos, DWORD dwCount);
- virtual void SetLength(DWORD dwNewLen);
- //Implementation
- public:
- ~CConverter();
- protected:
- int m_nBytesAvail;
- int m_nBytesWritten;
- BYTE* m_pBuf;
- HANDLE m_hEventFile;
- HANDLE m_hEventConv;
- BOOL m_bForeignToRtf;
- HGLOBAL m_hBuff;
- HGLOBAL m_hFileName;
- void LoadFunctions();
- HINSTANCE m_hLibCnv;
- PINITCONVERTER m_pInitConverter;
- PISFORMATCORRECT m_pIsFormatCorrect;
- PFOREIGNTORTF m_pForeignToRtf;
- PRTFTOFOREIGN m_pRtfToForeign;
- int CALLBACK WriteOut(int cch, int nPercentComplete);
- int CALLBACK ReadIn(int nPercentComplete);
- static HGLOBAL StringToHGLOBAL(LPCSTR pstr);
- static int CALLBACK WriteOutStatic(int cch, int nPercentComplete);
- static int CALLBACK ReadInStatic(int flags, int nPercentComplete);
- static UINT AFX_CDECL ConverterThread(LPVOID pParam);
- static CConverter *m_pThis;
- };
- #endif
- /////////////////////////////////////////////////////////////////////////////