WINFTP.H
上传用户:dansui
上传日期:2007-01-04
资源大小:71k
文件大小:14k
源码类别:

Ftp客户端

开发平台:

WINDOWS

  1. /*
  2.   MODULE: WINFTP.H   (main program header file)
  3. */
  4. #include <windows.h>
  5. #include <windowsx.h>
  6. #include <stdlib.h>
  7. #include "resource.h"
  8. // **** Dialog box names
  9. // #define DLG_ABOUT                 510
  10. // #define DLG_HOST                  520
  11. // #define DLG_INPUT                 530
  12. // #define DLG_STATUS                540
  13. // **** debug window menu definitions
  14. // may be used by other functions!
  15. // under COMMAND popup menu
  16. #define CMD_CONNECT                 1010
  17. #define CMD_CLOSE                   1020
  18. #define CMD_CWD                     1040
  19. #define CMD_DELE                    1050
  20. #define CMD_HELP                    1060
  21. #define CMD_LIST                    1070
  22. #define CMD_MKD                     1080
  23. #define CMD_NLST                    1090
  24. #define CMD_PWD                     1100
  25. #define CMD_QUOTE                   1110
  26. #define CMD_RETR                    1120
  27. #define CMD_RMD                     1130
  28. #define CMD_STATUS                  1140
  29. #define CMD_STOR                    1150
  30. #define CMD_TYPE_I                  1170
  31. #define CMD_TYPE_A                  1180
  32. #define CMD_SHFLAGS                 1200
  33. // under OPTIONS popup menu
  34. #define OPT_SETVIEWER               1410
  35. #define IDM_ABOUT                   1500
  36. #define IDM_EXIT                    1600
  37. #define IDM_DROPFILES               1610
  38. // **** main window child window identifiers
  39. // TXT = static text windows
  40. // LST = list boxes
  41. // BTN = push buttons
  42. // RB  = radio buttons
  43. // local side child windows
  44. #define LST_DELFILES                2095
  45. #define EDT_LFILETYPE               2105
  46. #define TXT_LDIRECTORY              2110
  47. #define LST_LDIRS                   2120
  48. #define LST_LDIRLST                 2125
  49. #define LST_LFILES                  2130
  50. #define BTN_LCHANGE                 2140
  51. #define BTN_LMKDIR                  2150
  52. #define BTN_LRMDIR                  2160
  53. #define BTN_LREFRESH                2175
  54. #define BTN_LHISTORY                2185
  55. #define BTN_LDISPLAY                2170
  56. #define BTN_LRENAME                 2180
  57. #define BTN_LDELETE                 2190
  58. // remote side child windows
  59. #define TXT_HOSTNAME                2200
  60. #define EDT_RFILETYPE               2205
  61. #define TXT_RDIRECTORY              2210
  62. #define LST_RDIRS                   2220
  63. #define LST_RDIRLST                 2225
  64. #define LST_RFILES                  2230
  65. #define BTN_RCHANGE                 2240
  66. #define BTN_RMKDIR                  2250
  67. #define BTN_RRMDIR                  2260
  68. #define BTN_RREFRESH                2275
  69. #define BTN_RHISTORY                2285
  70. #define BTN_RDISPLAY                2270
  71. #define BTN_RRENAME                 2280
  72. #define BTN_RDELETE                 2290
  73. // transfer buttons
  74. #define BTN_LOCAL_TO_REMOTE         2310
  75. #define BTN_REMOTE_TO_LOCAL         2320
  76. // configuration buttons
  77. #define RB_ASCII                    2410
  78. #define RB_BINARY                   2411
  79. #define RB_L8                       2412
  80. // information text windows
  81. #define TXT_STATUS                  2510
  82. #define TXT_RBYTES                  2520
  83. #define TXT_LBYTES                  2530
  84. // control buttons
  85. #define BTN_CONNECT                 2610
  86. #define BTN_CLOSE                   2620
  87. #define BTN_LONG                    2630
  88. #define BTN_ABORT                   2635
  89. #define BTN_OPTION                  2640
  90. #define BTN_ABOUT                   2645
  91. #define BTN_EXIT                    2650
  92. // input dialog controls
  93. #define DLG_PROMPT                  3010
  94. #define DLG_EDIT                    3020
  95. // **** connect dialog box controls
  96. #define DLG_EDT_HOST                4010
  97. #define DLG_EDT_USERID              4020
  98. #define DLG_EDT_PASSWD              4030
  99. #define DLG_HOST_TIMEOUT            4040
  100. // **** status dlg identifiers
  101. #define CKB_BELL                    5010
  102. #define CKB_CRSTRIP                 5020
  103. #define CKB_GLOBBING                5030
  104. #define CKB_HASH                    5040
  105. #define CKB_PROMPT                  5050
  106. #define CKB_INTERACTIVE             5060
  107. #define CKB_MCASE                   5070
  108. #define CKB_PORT_CMDS               5080
  109. #define CKB_RECV_UNIQUE             5090
  110. #define CKB_STOR_UNIQUE             5100
  111. #define CKB_VERBOSE                 5110
  112. #define CKB_AUTOSTART               5120
  113. #define BTN_OPTIONS                 5130
  114. #define DLG_MAILADDR                5250
  115. #define RB_SHOWCHECKS 8100
  116. // **** misc definitions
  117. #define TYPE_I 'I'
  118. #define TYPE_A 'A'
  119. #define TYPE_E 'E'
  120. #define TYPE_L 'L'
  121. #define FORM_N 'N'
  122. #define FORM_T 'T'
  123. #define FORM_C 'C'
  124. #define MODE_S 'S'
  125. #define MODE_B 'B'
  126. #define MODE_C 'C'
  127. #define DBUGWNDCLASS "WSDBUGWNDCLASS"
  128. struct win_info 
  129. {
  130.   HWND hWnd;
  131.   int nLineHeight;
  132.   int nScreenRows;
  133.   int nMemPtr;
  134.   int nVpos;
  135.   LPSTR lpDebugMsg;
  136.   LPSTR lpMem[100];
  137. };
  138. typedef struct HostConfig
  139. {
  140.   char szConfig[80];
  141.   char szHostName[80];
  142. } HOSTCONFIG, * LPHOSTCONFIG;
  143. typedef struct HostInfo
  144. {
  145.   char szConfig[80];
  146.   char szHostName[80];
  147.   char szUserID[80];
  148.   char szPassword[80];
  149.   char szInitDir[80];
  150.   char szScript[80];
  151.   int  nType;
  152.   BOOL bSaveDir;
  153.   BOOL bFireWall;
  154.   UINT nTimeOut;
  155. } HOSTINFO, * LPHOSTINFO;
  156. typedef struct 
  157. {
  158.   char szViewer[80];
  159.   char szDir[80];
  160.   char szExt[10];
  161.   char nTyp;
  162. } VIEWERCFG, *LPVIEWERCFG;
  163. // **** function prototypes
  164. // in ws_child.c
  165. int CreateSubWindows (HWND,HWND);
  166. int GetLocalDirForWnd (HWND);
  167. int GetRemoteDirForWnd(HWND);
  168. int ReadProcessHelp (HWND, SOCKET);
  169. int DoMainPaint (HWND hWnd);
  170. int GetButtonStatus (int);
  171. int GetButtonMsgStatus (int);
  172. int SetButtonStatus (int, int);
  173. int FindButtonClicked (int, int);
  174. int DoPaintButton (HWND, int, int);
  175. int GetButtonID (int);
  176. int SetStatus (HWND, LPSTR);
  177. int ScrollStatus (HWND, int);
  178. int UnsetStatusLines();
  179. int GetChildWindowID (LPARAM);
  180. int GetMaxStatusLines();
  181. BOOL SetButtonEnabledStatus (int, BOOL);
  182. BOOL GetButtonEnabledStatus (int);
  183. void ShowOurFlags (void);
  184. void CreateButtonPens (void);
  185. void DeleteButtonPens (void);
  186. void BoxIt (HDC, int, int, int, int, BOOL);
  187. LPSTR FindName (LPSTR);
  188. LPSTR GetStatusLine (int nLine);
  189. // in ws_con.c
  190. int getreply (SOCKET, LPSTR, BOOL);
  191. int command (SOCKET socket, char *fmt,...);
  192. int DoSTAT (SOCKET);
  193. int DoCHMOD (SOCKET,LPSTR,LPSTR);
  194. int DoCWD (SOCKET,LPSTR);
  195. int DoSystemCommand (SOCKET);
  196. int DoDirList (SOCKET,LPSTR);
  197. int DoDELE (SOCKET,LPSTR);
  198. int DoDisconnect (SOCKET);
  199. int DoMKD (SOCKET,LPSTR);
  200. int DoPWD (SOCKET);
  201. int DoQUOTE (SOCKET,LPSTR);
  202. int DoRMD (SOCKET,LPSTR);
  203. int DoDirList (SOCKET,LPSTR);
  204. int SendFile (SOCKET,LPSTR,LPSTR,char);
  205. int RetrieveFile (SOCKET,LPSTR,LPSTR,char);
  206. int SendPacket (SOCKET,LPSTR);
  207. int ForcePacket (SOCKET,LPSTR);
  208. int ReadDisplayLine (SOCKET);
  209. int ReadLine (SOCKET);
  210. int SendMass (SOCKET,LPSTR filename,BOOL);
  211. int ReadMass (SOCKET,LPSTR filename,BOOL);
  212. int ForceCommand (SOCKET s, LPSTR lpCmd, ...);
  213. char *onoff (BOOL);
  214. SOCKET DoClose (SOCKET sockfd);
  215. SOCKET DoConnect (LPSTR);
  216. SOCKET GetFTPListenSocket (SOCKET sockfd);
  217. // in ws_ip.c
  218. SOCKET connectsock (char *host,char *service,char *protocol);
  219. SOCKET connectTCP (char *host,char *service);
  220. SOCKET connectUDP (char *host,char *service);
  221. int sendstr (SOCKET sockfd,LPSTR ptr,int nbytes, int *lpCode);
  222. // in ws_debug.c
  223. int CreateDebugWindow (HWND hMainWnd,HWND hInst);
  224. LRESULT CALLBACK DebugWndProc (HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam);
  225. void SetDebugWindowText (LPSTR);
  226. // in ws_error.c
  227. LPSTR ReturnWSError(UINT Err,LPSTR lpszBuf);
  228. void ReportWSError(LPSTR lpszMsg,UINT Err);
  229. // in ws_main.c
  230. LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
  231. BOOL CALLBACK WS_AboutMsgProc (HWND, UINT, WPARAM, LPARAM);
  232. BOOL CALLBACK WS_HostMsgProc (HWND, UINT, WPARAM, LPARAM);
  233. BOOL CALLBACK WS_InputMsgProc (HWND, UINT, WPARAM, LPARAM);
  234. BOOL CALLBACK WS_DeleteProc (HWND, UINT, WPARAM, LPARAM);
  235. BOOL CALLBACK WS_StatMsgProc (HWND, UINT, WPARAM, LPARAM);
  236. BOOL CALLBACK WS_FireWallSetupProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
  237. int SubProcessAsync (HWND, UINT, WPARAM, LPARAM);
  238. int InitInstance (HINSTANCE);
  239. int ExecFTPApp (int);
  240. int CheckMsgQueue (HWND);
  241. int FindViewerIndex (LPSTR);
  242. int AddDirToList (HWND, int, LPSTR);
  243. int OnCmdLocalChangeDirLst (HWND);
  244. int OnCmdLocalChangeDir (HWND);
  245. int OnCmdLocalToRemote (HWND);
  246. int OnCmdLocalMakeDir (HWND);
  247. int OnCmdLocalRemoveDir (HWND);
  248. int OnCmdLocalDeleteFile (HWND);
  249. int OnCmdLocalRenameFile (HWND);
  250. int OnCmdLocalHistory (HWND);
  251. int OnCmdLocalDisplay (HWND);
  252. int OnCmdLButtonDblClkLocal (HWND);
  253. int OnCmdLocalRefresh (HWND);
  254. int OnCmdRemoteMakeDir (HWND);
  255. int OnCmdRemoteRemoveDir (HWND);
  256. int OnCmdRemoteDeleteFile (HWND);
  257. int OnCmdRemoteRenameFile (HWND);
  258. int OnCmdRemoteChangeDir (HWND);
  259. int OnCmdRemoteChangeDirLst (HWND);
  260. int OnCmdRemoteToLocal (HWND);
  261. int OnCmdRemoteRefresh (HWND);
  262. int OnCmdRemoteHistory (HWND);
  263. int OnCmdRemoteDisplay (HWND);
  264. int OnCmdLButtonDblClkRemote (HWND);
  265. int OnShowTransferType (HWND);
  266. int OnCmdConnectHost (HWND, WORD);
  267. int OnCmdListHost (HWND);
  268. int OnCmdNListHost (HWND, WORD);
  269. int OnCmdLogToFile (HWND, WORD);
  270. int OnCmdLogFileName (HWND, WORD);
  271. int OnCmdHelpHost (HWND);
  272. int OnCmdStatusHost (HWND);
  273. int OnCmdPWDHost (HWND);
  274. int OnCmdDirOpHost (HWND, WORD);
  275. int OnCmdGetFileHost (HWND);
  276. int OnCmdPutFileHost (HWND);
  277. int OnCmdQuoteHost (HWND);
  278. int OnCmdGetCwdHost (HWND);
  279. int OnCmdAbort (HWND);
  280. int OnCmdAbout (HWND);
  281. int OnCmdShowDebug (HWND, WORD);
  282. int OnCmdSaveDir (HWND, WORD);
  283. int OnCmdGetHostAddr (HWND, WORD);
  284. int OnCmdLFileType (HWND, WORD);
  285. int OnCmdRFileType (HWND, WORD);
  286. int OnCmdCloseOrExit (HWND, WPARAM);
  287. int nCwRegisterClasses (void );
  288. void CleanupTempFiles (HWND);
  289. void CreateTempFileNames (LPSTR);
  290. void GetViewerInfo (HWND);
  291. void SetViewerInfo (HWND, int);
  292. void cwCenter (HWND, int);
  293. void CwUnRegisterClasses (void );
  294. LPSTR GetViewer (LPSTR, LPSTR, LPSTR);
  295. LPSTR FindViewerName (LPSTR);
  296. LRESULT OnCreate (HWND, UINT, WPARAM, LPARAM);
  297. LRESULT OnTimer (HWND, UINT, WPARAM, LPARAM);
  298. LRESULT OnWmCmd (HWND, UINT, WPARAM, LPARAM);
  299. LRESULT OnSetCursor (HWND, UINT, WPARAM, LPARAM);
  300. LRESULT OnPaint (HWND, UINT, WPARAM, LPARAM);
  301. LRESULT OnRButtonDown (HWND, UINT, WPARAM, LPARAM);
  302. LRESULT OnRButtonUp (HWND, UINT, WPARAM, LPARAM);
  303. LRESULT OnLButtonDown (HWND, UINT, WPARAM, LPARAM);
  304. LRESULT OnLButtonUp (HWND, UINT, WPARAM, LPARAM);
  305. LRESULT OnMouseMove (HWND, UINT, WPARAM, LPARAM);
  306. LRESULT OnVScroll (HWND, UINT, WPARAM, LPARAM);
  307. LRESULT OnCtlColor (HWND, UINT, WPARAM, LPARAM);
  308. LRESULT OnClose (HWND, UINT, WPARAM, LPARAM);
  309. LRESULT OnSetFocus (HWND, UINT, WPARAM, LPARAM);
  310. LRESULT OnKillFocus (HWND, UINT, WPARAM, LPARAM);
  311. LRESULT OnParentNotify (HWND, UINT, WPARAM, LPARAM);
  312. LRESULT OnDragDropFile (HWND, UINT, WPARAM, LPARAM);
  313. // in ws_paint.c
  314. void ReleaseDisplayMem (VOID);
  315. void DoAddLine (LPSTR);
  316. void DoPrintf (char *fmt,...);
  317. void DoPaint (HWND);
  318. int GetLocalInfo (void);  
  319. //in ws_host.c
  320. int  MakeLocalName(LPSTR szLocalName, LPSTR szRemoteName);
  321. int  ConvertTargetDir (LPSTR lpDir, int nSiz);
  322. int  ConvertSourceDir (LPSTR lpBuf, LPSTR lpDir, int nSiz);
  323. int RetrieveDirList (HWND);
  324. int SaveDirList (HWND);
  325. int UpdateDirListOpt (HWND, BOOL);
  326. void SaveUserInfo();
  327. void LoadUserInfo();
  328. void SetViewTyp (int, char);
  329. LPSTR GetHostName (int nI);
  330. LPSTR GetHostType (int nI);
  331. LPSTR GetHostTypeValue (int nI);
  332. LPSTR lpVuExt (int);
  333. LPSTR lpVuPgm (int);
  334. LPSTR lpVuDir (int);
  335. LPSTR ReAllocViewer (int);
  336. char GetViewTyp (int);
  337. //in ws_local.c
  338. int OnCmdDropFiles (HWND hWnd, LPSTR *lParam);
  339. int OnCmdDisplayHostList (HWND hWnd, WORD wCtlID, WORD wNotifyCode);
  340. int DoRunScript (HWND hWnd, LPSTR lpScript);
  341. int OnCmdZoomInfo (HWND);
  342. void ClearZoomInfo();
  343. void AddMessageToView (LPSTR lpBuf, LPSTR lpHdr);
  344. void CreateUniqueName (LPSTR localname, LPSTR szName, LPSTR Ext);
  345. void SetTotalBytes (LONG lBytes);
  346. void SetXmitBytes (LONG lBytes);
  347. void OnPaintXfer (HWND hWnd);
  348. void CreateXferWindow();
  349. void DeleteXferWindow();
  350. void SetXferWindowText (LPSTR lpStr);
  351. LRESULT CALLBACK WndXferProc (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  352. LRESULT CALLBACK WndMsgProc (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  353. //in ws_icmp.c
  354. BOOL CALLBACK WS_FindHostProc (HWND, UINT, WPARAM, LPARAM);
  355. #ifdef WIN32
  356.    #define setdisk(x)                  _chdrive (x)
  357. #else
  358.    #define setdisk(x)                  { int nDrv; _dos_setdrive (x, &nDrv); }   
  359. #endif
  360. #define UNREFERENCED_PARAMETER(x)   (x)
  361. #define DLG_HOST_ANONY              101
  362. #define DLG_HOST_SAVE               102
  363. #define DLG_HOST_PWD                103
  364. #define HOST_AUTO                     0
  365. #define HOST_UNIX                     1
  366. #define HOST_IBM_VM                   2
  367. #define HOST_VMS_MULTINET             3
  368. #define HOST_VMS_UCX                  4
  369. #define HOST_PCTCP                    5
  370. #define HOST_NCSA                     6
  371. #define HOST_NOS                      7
  372. #define HOST_QVT                      8
  373. #define HOST_IBM_TCP                  9
  374. #define HOST_CHAMELEON               10
  375. #define HOST_SUPER                   11
  376. #define HOST_SINTFTPD                12
  377. #define HOST_MVS                     13
  378. #define HOST_U5000                   14
  379. #define DLG_HOST_AUTO              (6000+HOST_AUTO)
  380. #define DLG_HOST_UNIX              (DLG_HOST_AUTO+HOST_UNIX)
  381. #define DLG_HOST_IBM_VM            (DLG_HOST_AUTO+HOST_IBM_VM)
  382. #define DLG_HOST_VMS_MULTINET      (DLG_HOST_AUTO+HOST_VMS_MULTINET)
  383. #define DLG_HOST_VMS_UCX           (DLG_HOST_AUTO+HOST_VMS_UCX)
  384. #define DLG_HOST_PCTCP             (DLG_HOST_AUTO+HOST_PCTCP)
  385. #define DLG_HOST_NCSA              (DLG_HOST_AUTO+HOST_NCSA)
  386. #define DLG_HOST_QVT               (DLG_HOST_AUTO+HOST_QVT)
  387. #define DLG_HOST_NOS               (DLG_HOST_AUTO+HOST_NOS)
  388. #define DLG_HOST_IBM_TCP           (DLG_HOST_AUTO+HOST_IBM_TCP)
  389. #define DLG_HOST_CHAMELEON         (DLG_HOST_AUTO+HOST_CHAMELEON)
  390. #define DLG_HOST_SUPER             (DLG_HOST_AUTO+HOST_SUPER)
  391. #define DLG_HOST_SINTFTPD          (DLG_HOST_AUTO+HOST_SINTFTPD)
  392. #define DLG_HOST_MVS               (DLG_HOST_AUTO+HOST_MVS)
  393. #define DLG_HOST_U5000             (DLG_HOST_AUTO+HOST_U5000)
  394. #define DLG_HOST_LAST              DLG_HOST_U5000
  395. #define DLG_HOST_DIR                105
  396. #ifndef INADDR_NONE
  397. #define INADDR_NONE 0xffffffff
  398. #endif