00001
00002
00003
00004
00005
00006 #if !defined(AFX_FSINTERNETFILELISTMGR_H__B6B6A23E_9022_462E_A29B_7D4978517BCB__INCLUDED_)
00007 #define AFX_FSINTERNETFILELISTMGR_H__B6B6A23E_9022_462E_A29B_7D4978517BCB__INCLUDED_
00008
00009 #if _MSC_VER > 1000
00010 #pragma once
00011 #endif
00012
00013 #include "vmsInternetSession.h"
00014
00015 enum fsInternetFileListMgrEvent
00016 {
00017 FLME_CONNECTING,
00018 FLME_CONNECTED,
00019 FLME_GETTINGLIST,
00020 FLME_DONE,
00021 FLME_DONE_FROM_CACHE,
00022 FLME_ERROR,
00023 FLME_PAUSE,
00024 FLME_CONNECTIONWASLOST_RESTORE,
00025 FLME_HTTP_LISTREAD,
00026 FLME_HTTP_STARTBUILDLIST,
00027 FLME_HTTP_FINISHBUILDLIST,
00028 FLME_STOPPED,
00029
00030 FLME_TRYINGTOUSESITEMGRLOGIN
00031 };
00032
00033 typedef void (*fsFileListMgrFunc) (class fsInternetFileListMgr*, fsInternetFileListMgrEvent ev, LPVOID);
00034
00035 class fsInternetFileListMgr
00036 {
00037 public:
00038
00039 fsInternetResult GetList (LPCSTR pszUrl, LPCSTR pszUser, LPCSTR pszPassword);
00040
00041 fsInternetResult Refresh();
00042
00043 LPCSTR GetCurrentPath();
00044
00045 void GetCurrentUrl (LPSTR pszUrl, DWORD dwLen, BOOL bIncludeUser = TRUE, BOOL bIncludePassword = TRUE);
00046
00047 void GetParentFolderUrl (LPSTR pszUrl);
00048
00049 void FolderToUrl (LPCSTR pszFolder, LPSTR pszUrl);
00050
00051 void ReadSettings();
00052
00053 void Disconnect();
00054
00055 void FtpPassiveMode (BOOL b);
00056
00057 void RetreiveInfoWhileGettingList (BOOL b);
00058 BOOL RetreiveInfoWhileGettingList ();
00059
00060 BOOL IsConnected();
00061
00062 fsInternetResult GetFullUrl (LPCSTR pszRelOrNotUrl, fsString& strUrl);
00063
00064 fsInternetResult GoFolder (LPCSTR pszFolder);
00065
00066 fsInternetResult GoParentFolder();
00067
00068 LPCSTR GetLastErrorDesc();
00069
00070 BOOL IsCurrentPathRoot ();
00071
00072 fsFileInfo* GetFileInfo (UINT uIndex);
00073
00074 UINT GetFileCount();
00075 fsInternetResult GetLastError();
00076
00077 void SetEventsFunc (fsFileListMgrFunc pfn, LPVOID lpParam);
00078
00079 BOOL IsRunning();
00080
00081 void Stop(BOOL bWaitStop = TRUE);
00082
00083 fsInternetFileListMgr();
00084 virtual ~fsInternetFileListMgr();
00085
00086 protected:
00087
00088 BOOL AskForLogin(LPCSTR pszHostName);
00089
00090 static void _HttpEvents (class fsHttpFiles* pFiles, fsHttpFilesEvent enEvent, LPVOID lpParam);
00091
00092 void SleepInterval ();
00093 BOOL m_bAbort;
00094 BOOL m_bConnected;
00095
00096 void Free(BOOL bStopBeforeFree = TRUE);
00097
00098 int FindFiles (LPCSTR pszFilesUrl);
00099 BOOL m_bCurPathIsRoot;
00100 vmsInternetSession m_session;
00101 fsInternetURLServer m_server;
00102
00103 void Event (fsInternetFileListMgrEvent ev);
00104
00105 static DWORD WINAPI _threadGetList (LPVOID lp);
00106
00107 void Start();
00108 volatile BOOL m_bThread;
00109
00110 fs::list <fsInternetURLFiles*> m_vFiles;
00111
00112 fsInternetURLFiles* m_files;
00113
00114 fsFileListMgrFunc m_pfnEvents;
00115 LPVOID m_lpEventsParam;
00116
00117 fsInternetResult m_lastError;
00118
00119 fsString _strUrl, _strUser, _strPassword;
00120
00121 fsString m_strUser, m_strPassword;
00122
00123 BOOL m_bFtpPassiveMode;
00124 BOOL m_bRetreiveInfoWhileGettingList;
00125 };
00126
00127 #endif