#ifndef _INC_ATHENAIMP_H #define _INC_ATHENAIMP_H // {B7AAC060-2638-11d1-83A9-00C04FBD7C09} DEFINE_GUID(CLSID_CAthena16Import, 0xb7aac060, 0x2638, 0x11d1, 0x83, 0xa9, 0x0, 0xc0, 0x4f, 0xbd, 0x7c, 0x9); #define ATH_HR_E(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, n) #define HR_FIRST 0x1000 // Put at the bottom #define hrNoMessages 780 #define hrMemory E_OUTOFMEMORY #define hrCorruptMessage ATH_HR_E(HR_FIRST + 42) #define hrReadFile ATH_HR_E(HR_FIRST + 30) typedef struct tagzMsgHeader { char ver; ULONG TotalMessages; ULONG ulTotalUnread; }MsgHeader; class CAthena16FOLDERS : public IEnumFOLDERS { private: ULONG m_cRef; EUDORANODE* m_plist; EUDORANODE* m_pnext; public: CAthena16FOLDERS(EUDORANODE *plist); ~CAthena16FOLDERS(void); STDMETHODIMP QueryInterface(REFIID, LPVOID *); STDMETHODIMP_(ULONG) AddRef(void); STDMETHODIMP_(ULONG) Release(void); STDMETHODIMP Next(IMPORTFOLDER *pfldr); STDMETHODIMP Reset(void); }; class CAthena16Import : public IMailImport { private: ULONG m_cRef; EUDORANODE *m_plist; BOOL m_bDraft; char m_szUser[MAX_PATH]; char m_szIniFile[MAX_PATH]; public: CAthena16Import(void); ~CAthena16Import(void); STDMETHODIMP QueryInterface(REFIID, LPVOID *); STDMETHODIMP_(ULONG) AddRef(void); STDMETHODIMP_(ULONG) Release(void); STDMETHODIMP InitializeImport(HWND hwnd); STDMETHODIMP GetDirectory(char *szDir, UINT cch); STDMETHODIMP SetDirectory(char *szDir); STDMETHODIMP EnumerateFolders(DWORD_PTR dwCookie, IEnumFOLDERS **ppEnum); STDMETHODIMP ImportFolder(DWORD_PTR dwCookie, IFolderImport *pImport); //class member functions HRESULT GetUserDir(char *szDir, UINT cch); }; INT_PTR CALLBACK SelectAth16UserDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); HRESULT GetAthSubFolderList(LPTSTR szInstallPath, EUDORANODE **ppList, EUDORANODE *); void GetNewRecurseFolder(LPTSTR szInstallPath, DWORD cchInstallPath, LPTSTR szDir, LPTSTR szInstallNewPath); HRESULT ProcessMessages(LPSTR szFileName, DWORD cchFileName, IFolderImport *pImport); long GetMessageCount(HANDLE hFile); HRESULT ProcessMsgList(HANDLE hFile,LPTSTR szPath, IFolderImport* pImport); HRESULT GetMsgFileName(LPCSTR szmsgbuffer, char *szfilename, DWORD cchFileName); HANDLE OpenMsgFile(LPTSTR szFileName,DWORD cchFileName); HRESULT GetFileinBuffer(HANDLE hnd,LPTSTR *szBuffer); HRESULT ProcessSingleMessage(LPTSTR szBuffer, DWORD dwFlags, IFolderImport* pImport); HRESULT ParseMsgBuffer(LPTSTR szmsgbuffer,LPTSTR szPath, IFolderImport* pImport); int GetNumUsers(char *szFile, char *szUser, DWORD cchUser); HRESULT GetMessageFlag(char *szmsgbuffer, LPDWORD pdwFlags); #endif // _INC_ATHENAIMP_H