1 /*=============================================================================
\r
3 *
\82e
\82e
\82e
\82s
\82o
\r
5 ===============================================================================
\r
6 / Copyright (C) 1997-2007 Sota. All rights reserved.
\r
8 / Redistribution and use in source and binary forms, with or without
\r
9 / modification, are permitted provided that the following conditions
\r
12 / 1. Redistributions of source code must retain the above copyright
\r
13 / notice, this list of conditions and the following disclaimer.
\r
14 / 2. Redistributions in binary form must reproduce the above copyright
\r
15 / notice, this list of conditions and the following disclaimer in the
\r
16 / documentation and/or other materials provided with the distribution.
\r
18 / THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
\r
19 / IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
\r
20 / OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
\r
21 / IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
\r
22 / INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
\r
23 / BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
\r
24 / USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
\r
25 / ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
\r
26 / (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
\r
27 / THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\r
28 /============================================================================*/
\r
31 #include <windows.h>
\r
35 #include <mbstring.h>
\r
37 #include <windowsx.h>
\r
38 #include <commctrl.h>
\r
40 #include <winsock.h>
\r
43 #include "resource.h"
\r
46 #include <htmlhelp.h>
\r
50 #undef __MBSWRAPPER_H__
\r
51 #include "mbswrapper.h"
\r
54 #define RESIZE_OFF 0 /*
\83E
\83C
\83\93\83h
\83E
\82Ì
\8bæ
\90Ø
\82è
\88Ê
\92u
\95Ï
\8dX
\82µ
\82Ä
\82¢
\82È
\82¢ */
\r
55 #define RESIZE_ON 1 /*
\83E
\83C
\83\93\83h
\83E
\82Ì
\8bæ
\90Ø
\82è
\88Ê
\92u
\95Ï
\8dX
\92\86 */
\r
56 #define RESIZE_PREPARE 2 /*
\83E
\83C
\83\93\83h
\83E
\82Ì
\8bæ
\90Ø
\82è
\88Ê
\92u
\95Ï
\8dX
\82Ì
\8f\80\94õ */
\r
58 #define RESIZE_HPOS 0 /*
\83\8d\81[
\83J
\83\8b\81|
\83z
\83X
\83g
\8aÔ
\82Ì
\8bæ
\90Ø
\82è
\88Ê
\92u
\95Ï
\8dX */
\r
59 #define RESIZE_VPOS 1 /*
\83\8a\83X
\83g
\81|
\83^
\83X
\83N
\8aÔ
\82Ì
\8bæ
\90Ø
\82è
\88Ê
\92u
\82Ì
\95Ï
\8dX */
\r
62 /*=====
\83v
\83\8d\83g
\83^
\83C
\83v =====*/
\r
64 static int InitApp(LPSTR lpszCmdLine, int cmdShow);
\r
65 static int MakeAllWindows(int cmdShow);
\r
66 static void DeleteAllObject(void);
\r
67 static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
\r
68 static void StartupProc(char *Cmd);
\r
69 static int AnalyzeComLine(char *Str, int *AutoConnect, int *CmdOption, char *unc, int Max);
\r
70 static int CheckIniFileName(char *Str, char *Ini);
\r
71 static int CheckMasterPassword(char *Str, char *Ini);
\r
72 static int GetTokenAfterOption(char *Str, char *Result, const char* Opt1, const char* Opt2 );
\r
73 static char *GetToken(char *Str, char *Buf);
\r
74 static void ExitProc(HWND hWnd);
\r
75 static void ChangeDir(int Win, char *Path);
\r
76 static void ResizeWindowProc(void);
\r
77 static void CalcWinSize(void);
\r
78 // static void AskWindowPos(HWND hWnd);
\r
79 static void CheckResizeFrame(WPARAM Keys, int x, int y);
\r
80 static void DispDirInfo(void);
\r
81 static void DeleteAlltempFile(void);
\r
82 static BOOL CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
\r
83 static int EnterMasterPasswordAndSet( int Res, HWND hWnd );
\r
85 /*=====
\83\8d\81[
\83J
\83\8b\82È
\83\8f\81[
\83N =====*/
\r
87 static const char FtpClassStr[] = "FFFTPWin";
\r
89 static HINSTANCE hInstFtp;
\r
90 static HWND hWndFtp = NULL;
\r
91 static HWND hWndCurFocus = NULL;
\r
93 static HACCEL Accel;
\r
94 static HBRUSH RootColorBrush = NULL;
\r
96 static int Resizing = RESIZE_OFF;
\r
97 static int ResizePos;
\r
98 static HCURSOR hCursor;
\r
101 static int ClientHeight;
\r
106 static TEMPFILELIST *TempFiles = NULL;
\r
108 static int SaveExit = YES;
\r
109 static int AutoExit = NO;
\r
111 static char HelpPath[FMAX_PATH+1];
\r
112 static char IniPath[FMAX_PATH+1];
\r
113 static int ForceIni = NO;
\r
115 TRANSPACKET MainTransPkt; /*
\83t
\83@
\83C
\83\8b\93]
\91\97\97p
\83p
\83P
\83b
\83g */
\r
116 /*
\82±
\82ê
\82ð
\8eg
\82Á
\82Ä
\93]
\91\97\82ð
\8ds
\82¤
\82Æ
\81A
\83c
\81[
\83\8b\83o
\81[
\82Ì
\93]
\91\97 */
\r
117 /*
\92\86\8e~
\83{
\83^
\83\93\82Å
\92\86\8e~
\82Å
\82«
\82é */
\r
119 char TitleHostName[HOST_ADRS_LEN+1];
\r
120 char FilterStr[FILTER_EXT_LEN+1] = { "*" };
\r
124 static int SuppressRefresh = 0;
\r
126 static DWORD dwCookie;
\r
129 /*=====
\83O
\83\8d\81[
\83o
\83\8b\82È
\83\8f\81[
\83N =====*/
\r
131 HWND hHelpWin = NULL;
\r
134 int WinPosX = CW_USEDEFAULT;
\r
136 int WinWidth = 630;
\r
137 int WinHeight = 393;
\r
138 int LocalWidth = 309;
\r
139 int TaskHeight = 50;
\r
140 int LocalTabWidth[4] = { 120, 90, 60, 37 };
\r
141 int RemoteTabWidth[6] = { 120, 90, 60, 37, 60, 60 };
\r
142 char UserMailAdrs[USER_MAIL_LEN+1] = { "who@example.com" };
\r
143 char ViewerName[VIEWERS][FMAX_PATH+1] = { { "notepad" }, { "" }, { "" } };
\r
144 HFONT ListFont = NULL;
\r
145 LOGFONT ListLogFont;
\r
146 int LocalFileSort = SORT_NAME;
\r
147 int LocalDirSort = SORT_NAME;
\r
148 int RemoteFileSort = SORT_NAME;
\r
149 int RemoteDirSort = SORT_NAME;
\r
150 int TransMode = TYPE_X;
\r
151 int ConnectOnStart = YES;
\r
152 int DebugConsole = NO;
\r
153 int SaveWinPos = NO;
\r
154 char AsciiExt[ASCII_EXT_LEN+1] = { "*.txt\0*.html\0*.htm\0*.cgi\0*.pl\0" };
\r
155 int RecvMode = TRANS_DLG;
\r
156 int SendMode = TRANS_DLG;
\r
157 int MoveMode = MOVE_DLG;
\r
158 int ListType = LVS_REPORT;
\r
159 // LIST
\82Ì
\83L
\83\83\83b
\83V
\83\85\82ð
\96³
\8cø
\82É
\82·
\82é
\81i
\83\8a\83\82\81[
\83g
\82Ì
\83f
\83B
\83\8c\83N
\83g
\83\8a\82Ì
\95\
\8e¦
\82ª
\8dX
\90V
\82³
\82ê
\82È
\82¢
\83o
\83O
\91Î
\8dô
\81j
\r
160 //int CacheEntry = 10;
\r
161 int CacheEntry = -10;
\r
162 int CacheSave = NO;
\r
163 char DefaultLocalPath[FMAX_PATH+1] = { "" };
\r
164 int SaveTimeStamp = YES;
\r
167 int DclickOpen = YES;
\r
168 int ConnectAndSet = YES;
\r
169 SOUNDFILE Sound[SOUND_TYPES] = { { NO, "" }, { NO, "" }, { NO, "" } };
\r
170 int FnameCnv = FNAME_NOCNV;
\r
173 int RegType = REGTYPE_REG;
\r
174 char FwallHost[HOST_ADRS_LEN+1] = { "" };
\r
175 char FwallUser[USER_NAME_LEN+1] = { "" };
\r
176 char FwallPass[PASSWORD_LEN+1] = { "" };
\r
177 int FwallPort = PORT_NOR;
\r
179 int FwallDefault = NO;
\r
180 int FwallSecurity = SECURITY_AUTO;
\r
181 int FwallResolv = NO;
\r
182 int FwallLower = NO;
\r
183 int FwallDelimiter = '@';
\r
184 int PasvDefault = NO;
\r
185 char MirrorNoTrn[MIRROR_LEN+1] = { "*.bak\0" };
\r
186 char MirrorNoDel[MIRROR_LEN+1] = { "" };
\r
187 int MirrorFnameCnv = NO;
\r
188 int SplitVertical = YES;
\r
190 int RasCloseNotify = YES;
\r
192 char DefAttrList[DEFATTRLIST_LEN+1] = { "" };
\r
193 SIZE HostDlgSize = { -1, -1 };
\r
194 SIZE BmarkDlgSize = { -1, -1 };
\r
195 SIZE MirrorDlgSize = { -1, -1 };
\r
196 int Sizing = SW_RESTORE;
\r
198 char TmpPath[FMAX_PATH+1];
\r
199 int QuickAnonymous = YES;
\r
200 int PassToHist = YES;
\r
201 int VaxSemicolon = NO;
\r
203 int NoRasControl = NO;
\r
204 int SuppressSave = NO;
\r
205 int DispIgnoreHide = NO;
\r
206 int DispDrives = NO;
\r
207 int MirUpDelNotify = YES;
\r
208 int MirDownDelNotify = YES;
\r
209 int FolderAttr = NO;
\r
210 int FolderAttrNum = 777;
\r
215 /*-----
\83\81\83C
\83\93\83\8b\81[
\83`
\83\93 --------------------------------------------------------
\r
218 * HINSTANCE hInstance :
\82±
\82Ì
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\82Ì
\82±
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
\82Ì
\83n
\83\93\83h
\83\8b\r
219 * HINSTANCE hPrevInstance :
\82±
\82Ì
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\82Ì
\92¼
\91O
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
\82Ì
\83n
\83\93\83h
\83\8b\r
220 * LPSTR lpszCmdLine :
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\82ª
\8bN
\93®
\82µ
\82½
\82Æ
\82«
\82Ì
\83R
\83}
\83\93\83h
\83\89\83C
\83\93\82ð
\82³
\82·
\83\8d\83\93\83O
\83|
\83C
\83\93\83^
\r
221 * int cmdShow :
\8dÅ
\8f\89\82É
\95\
\8e¦
\82·
\82é
\83E
\83C
\83\93\83h
\83E
\82Ì
\8c`
\8e®
\81B
\r
224 * int
\8dÅ
\8cã
\82Ì
\83\81\83b
\83Z
\81[
\83W
\82ÌwParam
\r
225 *----------------------------------------------------------------------------*/
\r
227 int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int cmdShow)
\r
233 #ifdef DISABLE_MULTI_CPUS
\r
234 SetProcessAffinityMask(GetCurrentProcess(), 1);
\r
238 if(OleInitialize(NULL) != S_OK){
\r
239 MessageBox(NULL, MSGJPN298, "FFFTP", MB_OK | MB_ICONERROR);
\r
243 InitCommonControls();
\r
251 hInstFtp = hInstance;
\r
252 if(InitApp(lpszCmdLine, cmdShow) == SUCCESS)
\r
256 Sts = GetMessage(&Msg, NULL, 0, 0);
\r
257 if((Sts == 0) || (Sts == -1))
\r
260 if(!HtmlHelp(NULL, NULL, HH_PRETRANSLATEMESSAGE, (DWORD)&Msg))
\r
262 /*
\83f
\83B
\83\8c\83N
\83g
\83\8a\96¼
\82Ì
\95\
\8e¦
\83R
\83\93\83{
\83{
\83b
\83N
\83X
\82ÅBS
\82âRET
\82ª
\8cø
\82
\82æ
\82¤
\82É */
\r
263 /*
\83R
\83\93\83{
\83{
\83b
\83N
\83X
\93à
\82Å
\82Í
\83A
\83N
\83Z
\83\89\83\8c\81[
\83^
\82ð
\96³
\8cø
\82É
\82·
\82é */
\r
264 if((Msg.hwnd == GetLocalHistEditHwnd()) ||
\r
265 (Msg.hwnd == GetRemoteHistEditHwnd()) ||
\r
266 ((hHelpWin != NULL) && (GetAncestor(Msg.hwnd, GA_ROOT) == hHelpWin)) ||
\r
267 GetHideUI() == YES ||
\r
268 (TranslateAccelerator(hWndFtp, Accel, &Msg) == 0))
\r
270 TranslateMessage(&Msg);
\r
271 DispatchMessage(&Msg);
\r
277 UnregisterClass(FtpClassStr, hInstFtp);
\r
286 /*-----
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\82Ì
\8f\89\8aú
\90Ý
\92è --------------------------------------------
\r
289 * HINSTANCE hInstance :
\82±
\82Ì
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\82Ì
\82±
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
\82Ì
\83n
\83\93\83h
\83\8b\r
290 * HINSTANCE hPrevInstance :
\82±
\82Ì
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\82Ì
\92¼
\91O
\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
\82Ì
\83n
\83\93\83h
\83\8b\r
291 * LPSTR lpszCmdLine :
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\82ª
\8bN
\93®
\82µ
\82½
\82Æ
\82«
\82Ì
\83R
\83}
\83\93\83h
\83\89\83C
\83\93\82ð
\82³
\82·
\83\8d\83\93\83O
\83|
\83C
\83\93\83^
\r
292 * int cmdShow :
\8dÅ
\8f\89\82É
\95\
\8e¦
\82·
\82é
\83E
\83C
\83\93\83h
\83E
\82Ì
\8c`
\8e®
\81B
\r
295 * int
\83X
\83e
\81[
\83^
\83X
\r
297 *----------------------------------------------------------------------------*/
\r
299 static int InitApp(LPSTR lpszCmdLine, int cmdShow)
\r
304 char PwdBuf[FMAX_PATH+1];
\r
305 int useDefautPassword = 0; /*
\8cx
\8d\90\95¶
\95\
\8e¦
\97p */
\r
311 srand(GetTickCount());
\r
313 HtmlHelp(NULL, NULL, HH_INITIALIZE, (DWORD)&dwCookie);
\r
315 SaveUpdateBellInfo();
\r
317 if((Err = WSAStartup((WORD)0x0202, &WSAData)) != 0)
\r
318 MessageBox(NULL, ReturnWSError(Err), "FFFTP - Startup", MB_OK);
\r
321 Accel = LoadAccelerators(hInstFtp, MAKEINTRESOURCE(ffftp_accel));
\r
323 GetTempPath(FMAX_PATH, TmpPath);
\r
325 GetModuleFileName(NULL, HelpPath, FMAX_PATH);
\r
326 strcpy(GetFileName(HelpPath), "ffftp.chm");
\r
328 if(CheckIniFileName(lpszCmdLine, IniPath) == 0)
\r
330 GetModuleFileName(NULL, IniPath, FMAX_PATH);
\r
331 strcpy(GetFileName(IniPath), "ffftp.ini");
\r
336 RegType = REGTYPE_INI;
\r
341 /* 2010.02.01 genta
\83}
\83X
\83^
\81[
\83p
\83X
\83\8f\81[
\83h
\82ð
\93ü
\97Í
\82³
\82¹
\82é
\r
342 -z
\83I
\83v
\83V
\83\87\83\93\82ª
\82 \82é
\82Æ
\82«
\82Í
\8dÅ
\8f\89\82¾
\82¯
\83X
\83L
\83b
\83v
\r
343 -z
\83I
\83v
\83V
\83\87\83\93\82ª
\82È
\82¢
\82Æ
\82«
\82Í
\81C
\83f
\83t
\83H
\83\8b\83g
\83p
\83X
\83\8f\81[
\83h
\82ð
\82Ü
\82¸
\8e\8e\82·
\r
344 LoadRegistory()
\82·
\82é
\r
345 \83p
\83X
\83\8f\81[
\83h
\82ª
\95s
\88ê
\92v
\82È
\82ç
\8dÄ
\93ü
\97Í
\82·
\82é
\82©
\90q
\82Ë
\82é
\81D
\r
346 (
\94j
\91¹
\82µ
\82Ä
\82¢
\82½
\8fê
\8d\87\82Í
\82³
\82¹
\82È
\82¢)
\r
348 if( CheckMasterPassword(lpszCmdLine, PwdBuf))
\r
350 SetMasterPassword( PwdBuf );
\r
351 useDefautPassword = 0;
\r
354 /*
\83p
\83X
\83\8f\81[
\83h
\8ew
\92è
\96³
\82µ */
\r
355 SetMasterPassword( NULL );
\r
356 /*
\82±
\82Ì
\8fê
\82Å
\82Í
\95\
\8e¦
\82Å
\82«
\82È
\82¢
\82Ì
\82Å
\83t
\83\89\83O
\82¾
\82¯
\97§
\82Ä
\82Ä
\82¨
\82*/
\r
357 useDefautPassword = 2;
\r
360 /*
\83p
\83X
\83\8f\81[
\83h
\83`
\83F
\83b
\83N
\82Ì
\82Ý
\8eÀ
\8e{ */
\r
362 while( ValidateMasterPassword() == YES &&
\r
363 GetMasterPasswordStatus() == PASSWORD_UNMATCH ){
\r
365 if( useDefautPassword != 2 ){
\r
366 /*
\8dÄ
\83g
\83\89\83C
\82·
\82é
\82©
\8am
\94F */
\r
367 if( MessageBox(NULL, MSGJPN304, "FFFTP", MB_YESNO | MB_ICONEXCLAMATION) == IDNO ){
\r
368 useDefautPassword = 0; /*
\95s
\88ê
\92v
\82È
\82Ì
\82Å
\81C
\82à
\82Í
\82â
\83f
\83t
\83H
\83\8b\83g
\82©
\82Ç
\82¤
\82©
\82Í
\95ª
\82©
\82ç
\82È
\82¢ */
\r
373 /*
\8dÄ
\93ü
\97Í
\82³
\82¹
\82é*/
\r
374 masterpass = EnterMasterPasswordAndSet(masterpasswd_dlg, NULL);
\r
375 if( masterpass == 2 ){
\r
376 useDefautPassword = 1;
\r
378 else if( masterpass == 0 ){
\r
383 useDefautPassword = 0;
\r
387 if(masterpass != 0)
\r
391 //
\88Ã
\8d\86\89»
\92Ê
\90M
\91Î
\89\9e\r
392 SetSSLTimeoutCallback(TimeOut * 1000, SSLTimeoutCallback);
\r
395 if(NoRasControl == NO)
\r
399 //
\83^
\83C
\83}
\82Ì
\90¸
\93x
\82ð
\89ü
\91P
\r
400 timeBeginPeriod(1);
\r
402 CountPrevFfftpWindows();
\r
404 if(MakeAllWindows(cmdShow) == SUCCESS)
\r
406 hWndCurFocus = GetLocalHwnd();
\r
408 if(strlen(DefaultLocalPath) > 0)
\r
409 SetCurrentDirectory(DefaultLocalPath);
\r
411 SetSortTypeImm(LocalFileSort, LocalDirSort, RemoteFileSort, RemoteDirSort);
\r
412 SetTransferTypeImm(TransMode);
\r
413 DispTransferType();
\r
414 SetHostKanaCnvImm(YES);
\r
415 SetHostKanjiCodeImm(KANJI_NOCNV);
\r
416 SetLocalKanjiCodeImm(KANJI_UTF8N);
\r
419 DispSyncMoveMode();
\r
421 MakeCacheBuf(CacheEntry);
\r
422 if(CacheSave == YES)
\r
425 if(MakeTransferThread() == SUCCESS)
\r
427 DoPrintf("DEBUG MESSAGE ON ! ##");
\r
430 SetTaskMsg("FFFTP Ver." VER_STR " Copyright(C) 1997-2010 Sota & cooperators.");
\r
433 SetTaskMsg("%s%s", MSGJPN283, IniPath);
\r
435 if(IsFolderExist(TmpPath) == NO)
\r
437 SetTaskMsg(MSGJPN152, TmpPath);
\r
438 GetTempPath(FMAX_PATH, TmpPath);
\r
439 SetTaskMsg(MSGJPN153, TmpPath);
\r
442 DoPrintf("Tmp =%s", TmpPath);
\r
443 DoPrintf("Help=%s", HelpPath);
\r
445 DragAcceptFiles(GetRemoteHwnd(), TRUE);
\r
446 DragAcceptFiles(GetLocalHwnd(), TRUE);
\r
448 SetAllHistoryToMenu();
\r
449 GetLocalDirForWnd();
\r
450 MakeButtonsFocus();
\r
451 DispTransferFiles();
\r
453 StartupProc(lpszCmdLine);
\r
456 /*
\83Z
\83L
\83\85\83\8a\83e
\83B
\8cx
\8d\90\95¶
\82Ì
\95\
\8e¦ */
\r
457 if( useDefautPassword ){
\r
458 SetTaskMsg(MSGJPN300);
\r
461 /*
\83p
\83X
\83\8f\81[
\83h
\95s
\88ê
\92v
\8cx
\8d\90\95¶
\82Ì
\95\
\8e¦ */
\r
462 switch( GetMasterPasswordStatus() ){
\r
463 case PASSWORD_UNMATCH:
\r
464 SetTaskMsg(MSGJPN301);
\r
466 case BAD_PASSWORD_HASH:
\r
467 SetTaskMsg(MSGJPN302);
\r
477 //
\88Ã
\8d\86\89»
\92Ê
\90M
\91Î
\89\9e\r
479 if(IsOpenSSLLoaded())
\r
480 SetTaskMsg(MSGJPN318);
\r
482 SetTaskMsg(MSGJPN319);
\r
492 /*-----
\83E
\83C
\83\93\83h
\83E
\82ð
\8dì
\90¬
\82·
\82é --------------------------------------------------
\r
495 * int cmdShow :
\8dÅ
\8f\89\82É
\95\
\8e¦
\82·
\82é
\83E
\83C
\83\93\83h
\83E
\82Ì
\8c`
\8e®
\81B
\r
498 * int
\83X
\83e
\81[
\83^
\83X
\r
500 *----------------------------------------------------------------------------*/
\r
502 static int MakeAllWindows(int cmdShow)
\r
515 /*=====
\83\81\83C
\83\93\83E
\83C
\83\93\83h
\83E =====*/
\r
517 RootColorBrush = CreateSolidBrush(GetSysColor(COLOR_3DFACE));
\r
519 wClass.cbSize = sizeof(WNDCLASSEX);
\r
521 wClass.lpfnWndProc = FtpWndProc;
\r
522 wClass.cbClsExtra = 0;
\r
523 wClass.cbWndExtra = 0;
\r
524 wClass.hInstance = hInstFtp;
\r
525 wClass.hIcon = LoadIcon(hInstFtp, MAKEINTRESOURCE(ffftp));
\r
526 wClass.hCursor = NULL;
\r
527 wClass.hbrBackground = RootColorBrush;
\r
528 wClass.lpszMenuName = (LPSTR)MAKEINTRESOURCE(main_menu);
\r
529 wClass.lpszClassName = FtpClassStr;
\r
530 wClass.hIconSm = NULL;
\r
531 RegisterClassEx(&wClass);
\r
533 if(SaveWinPos == NO)
\r
535 WinPosX = CW_USEDEFAULT;
\r
539 //
\83\86\81[
\83U
\81[
\92è
\8b`
\82Ì
\83N
\83\89\83X
\82Í
\83f
\83t
\83H
\83\8b\83g
\82ÌWNDPROC
\82ªShift_JIS
\90ê
\97p
\82Ì
\82½
\82ß
\r
540 // hWndFtp = CreateWindow(FtpClassStr, "FFFTP",
\r
541 // WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
\r
542 // WinPosX, WinPosY, WinWidth, WinHeight,
\r
543 // HWND_DESKTOP, 0, hInstFtp, NULL);
\r
544 hWndFtp = CreateWindowA(FtpClassStr, "FFFTP",
\r
545 WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
\r
546 WinPosX, WinPosY, WinWidth, WinHeight,
\r
547 HWND_DESKTOP, 0, hInstFtp, NULL);
\r
549 if(hWndFtp != NULL)
\r
551 SystemParametersInfo(SPI_GETWORKAREA, 0, &Rect1, 0);
\r
552 GetWindowRect(hWndFtp, &Rect2);
\r
553 if(Rect2.bottom > Rect1.bottom)
\r
555 Rect2.top = max1(0, Rect2.top - (Rect2.bottom - Rect1.bottom));
\r
556 MoveWindow(hWndFtp, Rect2.left, Rect2.top, WinWidth, WinHeight, FALSE);
\r
559 /*=====
\83X
\83e
\83C
\83^
\83X
\83o
\81[ =====*/
\r
561 StsSbar = MakeStatusBarWindow(hWndFtp, hInstFtp);
\r
565 /*=====
\83c
\81[
\83\8b\83o
\81[ =====*/
\r
567 StsTbar = MakeToolBarWindow(hWndFtp, hInstFtp);
\r
569 /*=====
\83t
\83@
\83C
\83\8b\83\8a\83X
\83g
\83E
\83C
\83\93\83h
\83E =====*/
\r
571 StsList = MakeListWin(hWndFtp, hInstFtp);
\r
573 /*====
\83^
\83X
\83N
\83E
\83C
\83\93\83h
\83E ====*/
\r
575 StsTask = MakeTaskWindow(hWndFtp, hInstFtp);
\r
577 if((cmdShow != SW_MINIMIZE) && (cmdShow != SW_SHOWMINIMIZED) && (cmdShow != SW_SHOWMINNOACTIVE) &&
\r
578 (Sizing == SW_MAXIMIZE))
\r
579 cmdShow = SW_MAXIMIZE;
\r
581 ShowWindow(hWndFtp, cmdShow);
\r
583 /*====
\83\
\83P
\83b
\83g
\83E
\83C
\83\93\83h
\83E ====*/
\r
585 StsSocket = MakeSocketWin(hWndFtp, hInstFtp);
\r
587 StsLvtips = InitListViewTips(hWndFtp, hInstFtp);
\r
591 if((hWndFtp == NULL) ||
\r
592 (StsTbar == FAIL) ||
\r
593 (StsList == FAIL) ||
\r
594 (StsSbar == FAIL) ||
\r
595 (StsTask == FAIL) ||
\r
596 (StsLvtips == FAIL) ||
\r
597 (StsSocket == FAIL))
\r
609 /*-----
\83E
\83C
\83\93\83h
\83E
\82Ì
\83^
\83C
\83g
\83\8b\82ð
\95\
\8e¦
\82·
\82é ----------------------------------------
\r
616 *----------------------------------------------------------------------------*/
\r
618 void DispWindowTitle(void)
\r
620 char Tmp[HOST_ADRS_LEN+FILTER_EXT_LEN+20];
\r
622 if(AskConnecting() == YES)
\r
623 sprintf(Tmp, "%s (%s) - FFFTP", TitleHostName, FilterStr);
\r
625 sprintf(Tmp, "FFFTP (%s)", FilterStr);
\r
627 SetWindowText(GetMainHwnd(), Tmp);
\r
632 /*-----
\91S
\82Ä
\82Ì
\83I
\83u
\83W
\83F
\83N
\83g
\82ð
\8dí
\8f\9c ----------------------------------------------
\r
639 *----------------------------------------------------------------------------*/
\r
641 static void DeleteAllObject(void)
\r
645 //move to WM_DESTROY
\r
648 //test
\83V
\83X
\83e
\83\80\94C
\82¹
\r
649 // if(ListFont != NULL)
\r
650 // DeleteObject(ListFont);
\r
651 // if(RootColorBrush != NULL)
\r
652 // DeleteObject(RootColorBrush);
\r
654 //test
\83V
\83X
\83e
\83\80\94C
\82¹
\r
655 // DeleteListViewTips();
\r
656 // DeleteListWin();
\r
657 // DeleteStatusBarWindow();
\r
658 // DeleteTaskWindow();
\r
659 // DeleteToolBarWindow();
\r
660 // DeleteSocketWin();
\r
662 //move to WM_DESTROY
\r
663 if(hWndFtp != NULL)
\r
664 DestroyWindow(hWndFtp);
\r
668 ReleaseKernelLib();
\r
674 /*-----
\83\81\83C
\83\93\83E
\83C
\83\93\83h
\83E
\82Ì
\83E
\83C
\83\93\83h
\83E
\83n
\83\93\83h
\83\8b\82ð
\95Ô
\82· ----------------------------
\r
680 * HWND
\83E
\83C
\83\93\83h
\83E
\83n
\83\93\83h
\83\8b\r
681 *----------------------------------------------------------------------------*/
\r
683 HWND GetMainHwnd(void)
\r
689 /*-----
\8c»
\8dÝ
\83t
\83H
\81[
\83J
\83X
\82ª
\82 \82é
\83E
\83C
\83\93\83h
\83E
\82Ì
\83E
\83C
\83\93\83h
\83E
\83n
\83\93\83h
\83\8b\82ð
\95Ô
\82· --------------
\r
695 * HWND
\83E
\83C
\83\93\83h
\83E
\83n
\83\93\83h
\83\8b\r
696 *----------------------------------------------------------------------------*/
\r
698 HWND GetFocusHwnd(void)
\r
700 return(hWndCurFocus);
\r
704 /*-----
\8c»
\8dÝ
\83t
\83H
\81[
\83J
\83X
\82ª
\82 \82é
\83E
\83C
\83\93\83h
\83E
\82Ì
\82ð
\83Z
\83b
\83g
\82·
\82é --------------------------
\r
707 * HWND hWnd :
\83E
\83C
\83\93\83h
\83E
\83n
\83\93\83h
\83\8b\r
711 *----------------------------------------------------------------------------*/
\r
713 void SetFocusHwnd(HWND hWnd)
\r
715 hWndCurFocus = hWnd;
\r
720 /*-----
\83v
\83\8d\83O
\83\89\83\80\82Ì
\83C
\83\93\83X
\83^
\83\93\83X
\82ð
\95Ô
\82· ----------------------------------------
\r
726 * HINSTANCE
\83C
\83\93\83X
\83^
\83\93\83X
\r
727 *----------------------------------------------------------------------------*/
\r
729 HINSTANCE GetFtpInst(void)
\r
735 /*-----
\83\81\83C
\83\93\83E
\83C
\83\93\83h
\83E
\82Ì
\83\81\83b
\83Z
\81[
\83W
\8f\88\97\9d --------------------------------------
\r
738 * HWND hWnd :
\83E
\83C
\83\93\83h
\83E
\83n
\83\93\83h
\83\8b\r
739 * UINT message :
\83\81\83b
\83Z
\81[
\83W
\94Ô
\8d\86\r
740 * WPARAM wParam :
\83\81\83b
\83Z
\81[
\83W
\82Ì WPARAM
\88ø
\90\94\r
741 * LPARAM lParam :
\83\81\83b
\83Z
\81[
\83W
\82Ì LPARAM
\88ø
\90\94\r
744 *
\83\81\83b
\83Z
\81[
\83W
\82É
\91Î
\89\9e\82·
\82é
\96ß
\82è
\92l
\r
745 *----------------------------------------------------------------------------*/
\r
747 static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
\r
750 LPTOOLTIPTEXT lpttt;
\r
758 switch(LOWORD(wParam))
\r
760 case MENU_CONNECT :
\r
761 ConnectProc(DLG_TYPE_CON, -1);
\r
764 case MENU_CONNECT_NUM :
\r
765 ConnectProc(DLG_TYPE_CON, (int)lParam);
\r
766 if(AskConnecting() == YES)
\r
768 if(HIWORD(wParam) & OPT_MIRROR)
\r
770 if(HIWORD(wParam) & OPT_FORCE)
\r
771 MirrorUploadProc(NO);
\r
773 MirrorUploadProc(YES);
\r
775 else if(HIWORD(wParam) & OPT_MIRRORDOWN)
\r
777 if(HIWORD(wParam) & OPT_FORCE)
\r
778 MirrorDownloadProc(NO);
\r
780 MirrorDownloadProc(YES);
\r
785 case MENU_SET_CONNECT :
\r
786 ConnectProc(DLG_TYPE_SET, -1);
\r
790 QuickConnectProc();
\r
793 case MENU_DISCONNECT :
\r
794 if(AskTryingConnect() == YES)
\r
796 else if(AskConnecting() == YES)
\r
799 SaveCurrentSetToHost();
\r
813 case MENU_HIST_10 :
\r
814 case MENU_HIST_11 :
\r
815 case MENU_HIST_12 :
\r
816 case MENU_HIST_13 :
\r
817 case MENU_HIST_14 :
\r
818 case MENU_HIST_15 :
\r
819 case MENU_HIST_16 :
\r
820 case MENU_HIST_17 :
\r
821 case MENU_HIST_18 :
\r
822 case MENU_HIST_19 :
\r
823 case MENU_HIST_20 :
\r
824 HistoryConnectProc(LOWORD(wParam));
\r
828 if(hWndCurFocus == GetLocalHwnd())
\r
829 PostMessage(hWnd, WM_COMMAND, MAKEWPARAM(MENU_LOCAL_UPDIR, 0), 0);
\r
831 PostMessage(hWnd, WM_COMMAND, MAKEWPARAM(MENU_REMOTE_UPDIR, 0), 0);
\r
835 if(hWndCurFocus == GetLocalHwnd())
\r
836 DoubleClickProc(WIN_LOCAL, YES, -1);
\r
839 SuppressRefresh = 1;
\r
840 DoubleClickProc(WIN_REMOTE, YES, -1);
\r
841 SuppressRefresh = 0;
\r
846 if(hWndCurFocus == GetLocalHwnd())
\r
847 DoubleClickProc(WIN_LOCAL, YES, 0);
\r
850 SuppressRefresh = 1;
\r
851 DoubleClickProc(WIN_REMOTE, YES, 0);
\r
852 SuppressRefresh = 0;
\r
857 if(hWndCurFocus == GetLocalHwnd())
\r
858 DoubleClickProc(WIN_LOCAL, YES, 1);
\r
861 SuppressRefresh = 1;
\r
862 DoubleClickProc(WIN_REMOTE, YES, 1);
\r
863 SuppressRefresh = 0;
\r
868 if(hWndCurFocus == GetLocalHwnd())
\r
869 DoubleClickProc(WIN_LOCAL, YES, 2);
\r
872 SuppressRefresh = 1;
\r
873 DoubleClickProc(WIN_REMOTE, YES, 2);
\r
874 SuppressRefresh = 0;
\r
878 case MENU_REMOTE_UPDIR :
\r
879 SuppressRefresh = 1;
\r
880 SetCurrentDirAsDirHist();
\r
881 ChangeDir(WIN_REMOTE, "..");
\r
882 SuppressRefresh = 0;
\r
885 case MENU_LOCAL_UPDIR :
\r
886 SetCurrentDirAsDirHist();
\r
887 ChangeDir(WIN_LOCAL, "..");
\r
890 case MENU_REMOTE_CHDIR :
\r
891 SuppressRefresh = 1;
\r
892 SetCurrentDirAsDirHist();
\r
893 ChangeDirDirectProc(WIN_REMOTE);
\r
894 SuppressRefresh = 0;
\r
897 case MENU_LOCAL_CHDIR :
\r
898 SetCurrentDirAsDirHist();
\r
899 ChangeDirDirectProc(WIN_LOCAL);
\r
902 case MENU_DOWNLOAD :
\r
903 SetCurrentDirAsDirHist();
\r
904 DownLoadProc(NO, NO, NO);
\r
907 case MENU_DOWNLOAD_AS :
\r
908 SetCurrentDirAsDirHist();
\r
909 DownLoadProc(YES, NO, NO);
\r
912 case MENU_DOWNLOAD_AS_FILE :
\r
913 SetCurrentDirAsDirHist();
\r
914 DownLoadProc(NO, YES, NO);
\r
917 case MENU_DOWNLOAD_ALL :
\r
918 SetCurrentDirAsDirHist();
\r
919 DownLoadProc(NO, NO, YES);
\r
922 case MENU_DOWNLOAD_NAME :
\r
923 SetCurrentDirAsDirHist();
\r
924 InputDownLoadProc();
\r
928 SetCurrentDirAsDirHist();
\r
929 UpLoadListProc(NO, NO);
\r
932 case MENU_UPLOAD_AS :
\r
933 SetCurrentDirAsDirHist();
\r
934 UpLoadListProc(YES, NO);
\r
937 case MENU_UPLOAD_ALL :
\r
938 SetCurrentDirAsDirHist();
\r
939 UpLoadListProc(NO, YES);
\r
942 case MENU_MIRROR_UPLOAD :
\r
943 SetCurrentDirAsDirHist();
\r
944 MirrorUploadProc(YES);
\r
947 case MENU_MIRROR_DOWNLOAD :
\r
948 SetCurrentDirAsDirHist();
\r
949 MirrorDownloadProc(YES);
\r
952 case MENU_FILESIZE :
\r
953 SetCurrentDirAsDirHist();
\r
954 CalcFileSizeProc();
\r
958 SuppressRefresh = 1;
\r
959 SetCurrentDirAsDirHist();
\r
961 SuppressRefresh = 0;
\r
965 SuppressRefresh = 1;
\r
966 SetCurrentDirAsDirHist();
\r
968 SuppressRefresh = 0;
\r
972 SuppressRefresh = 1;
\r
973 SetCurrentDirAsDirHist();
\r
975 SuppressRefresh = 0;
\r
979 SuppressRefresh = 1;
\r
981 SuppressRefresh = 0;
\r
984 case MENU_SOMECMD :
\r
985 SuppressRefresh = 1;
\r
987 SuppressRefresh = 0;
\r
992 if(ListFont != NULL)
\r
994 SendMessage(GetLocalHwnd(), WM_SETFONT, (WPARAM)ListFont, MAKELPARAM(TRUE, 0));
\r
995 SendMessage(GetRemoteHwnd(), WM_SETFONT, (WPARAM)ListFont, MAKELPARAM(TRUE, 0));
\r
996 SendMessage(GetTaskWnd(), WM_SETFONT, (WPARAM)ListFont, MAKELPARAM(TRUE, 0));
\r
998 GetLocalDirForWnd();
\r
999 DispTransferType();
\r
1000 CheckHistoryNum(0);
\r
1001 SetAllHistoryToMenu();
\r
1002 //
\88Ã
\8d\86\89»
\92Ê
\90M
\91Î
\89\9e\r
1003 SetSSLTimeoutCallback(TimeOut * 1000, SSLTimeoutCallback);
\r
1006 case MENU_FILTER :
\r
1007 SetFilter(&CancelFlg);
\r
1011 if(SortSetting() == YES)
\r
1013 LocalFileSort = AskSortType(ITEM_LFILE);
\r
1014 LocalDirSort = AskSortType(ITEM_LDIR);
\r
1015 RemoteFileSort = AskSortType(ITEM_RFILE);
\r
1016 RemoteDirSort = AskSortType(ITEM_RDIR);
\r
1017 ReSortDispList(WIN_LOCAL, &CancelFlg);
\r
1018 ReSortDispList(WIN_REMOTE, &CancelFlg);
\r
1023 PostMessage(hWnd, WM_CLOSE, 0, 0L);
\r
1026 case MENU_AUTO_EXIT :
\r
1027 if(AutoExit == YES)
\r
1028 PostMessage(hWnd, WM_CLOSE, 0, 0L);
\r
1032 DialogBox(hInstFtp, MAKEINTRESOURCE(about_dlg), hWnd, AboutDialogProc);
\r
1036 case MENU_BINARY :
\r
1038 SetTransferType(LOWORD(wParam));
\r
1039 DispTransferType();
\r
1042 case MENU_XFRMODE :
\r
1043 switch(AskTransferType())
\r
1046 TmpTransType = MENU_BINARY;
\r
1050 TmpTransType = MENU_AUTO;
\r
1054 TmpTransType = MENU_TEXT;
\r
1057 SetTransferType(TmpTransType);
\r
1058 DispTransferType();
\r
1061 // UTF-8
\91Î
\89\9e\r
1062 case MENU_KNJ_SJIS :
\r
1063 case MENU_KNJ_EUC :
\r
1064 case MENU_KNJ_JIS :
\r
1065 case MENU_KNJ_UTF8N :
\r
1066 case MENU_KNJ_NONE :
\r
1067 SetHostKanjiCode(LOWORD(wParam));
\r
1070 case MENU_L_KNJ_SJIS :
\r
1071 case MENU_L_KNJ_EUC :
\r
1072 case MENU_L_KNJ_JIS :
\r
1073 case MENU_L_KNJ_UTF8N :
\r
1074 SetLocalKanjiCode(LOWORD(wParam));
\r
1077 case MENU_KANACNV :
\r
1081 case MENU_REFRESH :
\r
1082 SuppressRefresh = 1;
\r
1083 GetLocalDirForWnd();
\r
1084 if(CheckClosedAndReconnect() == SUCCESS)
\r
1085 GetRemoteDirForWnd(CACHE_REFRESH, &CancelFlg);
\r
1086 SuppressRefresh = 0;
\r
1090 ListType = LVS_LIST;
\r
1092 SetListViewType();
\r
1095 case MENU_REPORT :
\r
1096 ListType = LVS_REPORT;
\r
1098 SetListViewType();
\r
1101 case REFRESH_LOCAL :
\r
1102 GetLocalDirForWnd();
\r
1105 case REFRESH_REMOTE :
\r
1106 SuppressRefresh = 1;
\r
1107 if(CheckClosedAndReconnect() == SUCCESS)
\r
1108 GetRemoteDirForWnd(CACHE_REFRESH, &CancelFlg);
\r
1109 SuppressRefresh = 0;
\r
1112 case COMBO_LOCAL :
\r
1113 case COMBO_REMOTE :
\r
1114 SuppressRefresh = 1;
\r
1115 if(HIWORD(wParam) == CBN_SELCHANGE)
\r
1117 SetCurrentDirAsDirHist();
\r
1118 ChangeDirComboProc((HWND)lParam);
\r
1120 else if(HIWORD(wParam) != CBN_CLOSEUP)
\r
1122 MakeButtonsFocus();
\r
1123 SuppressRefresh = 0;
\r
1126 SuppressRefresh = 0;
\r
1130 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000001);
\r
1133 case MENU_HELP_TROUBLE :
\r
1134 ShellExecute(NULL, "open", MYWEB_URL, NULL, ".", SW_SHOW);
\r
1137 case MENU_BMARK_ADD :
\r
1138 AddCurDirToBookMark(WIN_REMOTE);
\r
1141 case MENU_BMARK_ADD_LOCAL :
\r
1142 AddCurDirToBookMark(WIN_LOCAL);
\r
1145 case MENU_BMARK_ADD_BOTH :
\r
1146 AddCurDirToBookMark(WIN_BOTH);
\r
1149 case MENU_BMARK_EDIT :
\r
1153 case MENU_SELECT_ALL :
\r
1154 SelectFileInList(hWndCurFocus, SELECT_ALL);
\r
1157 case MENU_SELECT :
\r
1158 SelectFileInList(hWndCurFocus, SELECT_REGEXP);
\r
1162 FindFileInList(hWndCurFocus, FIND_FIRST);
\r
1165 case MENU_FINDNEXT :
\r
1166 FindFileInList(hWndCurFocus, FIND_NEXT);
\r
1169 case MENU_DOTFILE :
\r
1171 DispDotFileMode();
\r
1172 GetLocalDirForWnd();
\r
1173 GetRemoteDirForWnd(CACHE_LASTREAD, &CancelFlg);
\r
1177 ToggleSyncMoveMode();
\r
1180 case MENU_IMPORT_WS :
\r
1181 ImportFromWSFTP();
\r
1184 case MENU_REGSAVE :
\r
1185 GetListTabWidth();
\r
1187 SaveSettingsToFile();
\r
1190 case MENU_REGLOAD :
\r
1191 if(LoadSettingsFromFile() == YES)
\r
1193 MessageBox(hWnd, MSGJPN292, "FFFTP", MB_OK);
\r
1195 PostMessage(hWnd, WM_CLOSE, 0, 0L);
\r
1199 case MENU_REGINIT :
\r
1200 if(DialogBox(hInstFtp, MAKEINTRESOURCE(reginit_dlg), hWnd, ExeEscDialogProc) == YES)
\r
1204 PostMessage(hWnd, WM_CLOSE, 0, 0L);
\r
1207 case MENU_CHANGEPASSWD: /* 2010.01.31 genta */
\r
1208 if( GetMasterPasswordStatus() != PASSWORD_OK )
\r
1210 /*
\8b
\90§
\93I
\82É
\90Ý
\92è
\82·
\82é
\82©
\8am
\94F */
\r
1211 if( DialogBox(hInstFtp, MAKEINTRESOURCE(forcepasschange_dlg), hWnd, ExeEscDialogProc) != YES){
\r
1215 if( EnterMasterPasswordAndSet( newmasterpasswd_dlg, hWnd ) != 0 ){
\r
1216 SetTaskMsg( MSGJPN303 );
\r
1220 case MENU_DIRINFO :
\r
1224 case MENU_TASKINFO :
\r
1230 if(AskTryingConnect() == NO)
\r
1231 MainTransPkt.Abort = ABORT_USER;
\r
1234 case MENU_OTPCALC :
\r
1238 case MENU_URL_COPY :
\r
1239 CopyURLtoClipBoard();
\r
1242 case MENU_APPKEY :
\r
1243 EraseListViewTips();
\r
1244 if(hWndCurFocus == GetRemoteHwnd())
\r
1245 RemoteRbuttonMenu(1);
\r
1246 else if(hWndCurFocus == GetLocalHwnd())
\r
1247 LocalRbuttonMenu(1);
\r
1251 if((LOWORD(wParam) >= MENU_BMARK_TOP) &&
\r
1252 (LOWORD(wParam) < MENU_BMARK_TOP+100))
\r
1254 ChangeDirBmarkProc(LOWORD(wParam));
\r
1258 //
\8fí
\82É
\83z
\83X
\83g
\82©
\83\8d\81[
\83J
\83\8b\82Ö
\83t
\83H
\81[
\83J
\83X
\82ð
\88Ú
\93®
\r
1259 // SetFocus(hWndCurFocus);
\r
1260 MakeButtonsFocus();
\r
1264 switch(((LPNMHDR)lParam)->code)
\r
1266 /*
\83c
\81[
\83\8b\83`
\83b
\83v
\83R
\83\93\83g
\83\8d\81[
\83\8b\83\81\83b
\83Z
\81[
\83W
\82Ì
\8f\88\97\9d */
\r
1267 case TTN_NEEDTEXT:
\r
1268 lpttt = (LPTOOLTIPTEXT)lParam;
\r
1269 lpttt->hinst = hInstFtp;
\r
1270 switch(lpttt->hdr.idFrom)
\r
1272 case MENU_CONNECT :
\r
1273 lpttt->lpszText = MSGJPN154;
\r
1277 lpttt->lpszText = MSGJPN155;
\r
1280 case MENU_DISCONNECT :
\r
1281 lpttt->lpszText = MSGJPN156;
\r
1284 case MENU_DOWNLOAD :
\r
1285 lpttt->lpszText = MSGJPN157;
\r
1288 case MENU_UPLOAD :
\r
1289 lpttt->lpszText = MSGJPN158;
\r
1292 case MENU_MIRROR_UPLOAD :
\r
1293 lpttt->lpszText = MSGJPN159;
\r
1296 case MENU_DELETE :
\r
1297 lpttt->lpszText = MSGJPN160;
\r
1300 case MENU_RENAME :
\r
1301 lpttt->lpszText = MSGJPN161;
\r
1305 lpttt->lpszText = MSGJPN162;
\r
1308 case MENU_LOCAL_UPDIR :
\r
1309 case MENU_REMOTE_UPDIR :
\r
1310 lpttt->lpszText = MSGJPN163;
\r
1313 case MENU_LOCAL_CHDIR :
\r
1314 case MENU_REMOTE_CHDIR :
\r
1315 lpttt->lpszText = MSGJPN164;
\r
1319 lpttt->lpszText = MSGJPN165;
\r
1322 case MENU_BINARY :
\r
1323 lpttt->lpszText = MSGJPN166;
\r
1327 lpttt->lpszText = MSGJPN167;
\r
1330 case MENU_REFRESH :
\r
1331 lpttt->lpszText = MSGJPN168;
\r
1335 lpttt->lpszText = MSGJPN169;
\r
1338 case MENU_REPORT :
\r
1339 lpttt->lpszText = MSGJPN170;
\r
1342 case MENU_KNJ_SJIS :
\r
1343 lpttt->lpszText = MSGJPN307;
\r
1346 case MENU_KNJ_EUC :
\r
1347 lpttt->lpszText = MSGJPN171;
\r
1350 case MENU_KNJ_JIS :
\r
1351 lpttt->lpszText = MSGJPN172;
\r
1354 case MENU_KNJ_UTF8N :
\r
1355 lpttt->lpszText = MSGJPN308;
\r
1358 case MENU_KNJ_NONE :
\r
1359 lpttt->lpszText = MSGJPN173;
\r
1362 case MENU_L_KNJ_SJIS :
\r
1363 lpttt->lpszText = MSGJPN309;
\r
1366 case MENU_L_KNJ_EUC :
\r
1367 lpttt->lpszText = MSGJPN310;
\r
1370 case MENU_L_KNJ_JIS :
\r
1371 lpttt->lpszText = MSGJPN311;
\r
1374 case MENU_L_KNJ_UTF8N :
\r
1375 lpttt->lpszText = MSGJPN312;
\r
1378 case MENU_KANACNV :
\r
1379 lpttt->lpszText = MSGJPN174;
\r
1383 lpttt->lpszText = MSGJPN175;
\r
1387 lpttt->lpszText = MSGJPN176;
\r
1390 // UTF-8
\82©
\82çShift_JIS
\82Ö
\95Ï
\8a·
\r
1392 static wchar_t StringBufferUTF16[1024];
\r
1393 static char StringBufferSJIS[1024];
\r
1394 if(lpttt->lpszText)
\r
1396 MtoW(StringBufferUTF16, sizeof(StringBufferUTF16)/ sizeof(wchar_t), lpttt->lpszText, -1);
\r
1397 WtoA(StringBufferSJIS, sizeof(StringBufferSJIS)/ sizeof(char), StringBufferUTF16, -1);
\r
1398 lpttt->lpszText = StringBufferSJIS;
\r
1403 case LVN_COLUMNCLICK :
\r
1404 if(((NMHDR *)lParam)->hwndFrom == GetLocalHwnd())
\r
1406 SetSortTypeByColumn(WIN_LOCAL, ((NM_LISTVIEW *)lParam)->iSubItem);
\r
1407 ReSortDispList(WIN_LOCAL, &CancelFlg);
\r
1409 else if(((NMHDR *)lParam)->hwndFrom == GetRemoteHwnd())
\r
1411 if(((NM_LISTVIEW *)lParam)->iSubItem != 4)
\r
1413 SetSortTypeByColumn(WIN_REMOTE, ((NM_LISTVIEW *)lParam)->iSubItem);
\r
1414 ReSortDispList(WIN_REMOTE, &CancelFlg);
\r
1417 SetFocus(hWndCurFocus);
\r
1420 case LVN_ITEMCHANGED :
\r
1421 DispSelectedSpace();
\r
1422 MakeButtonsFocus();
\r
1428 Sizing = SW_RESTORE;
\r
1429 if(wParam == SIZE_RESTORED)
\r
1431 ResizeWindowProc();
\r
1432 GetWindowRect(hWnd, &Rect);
\r
1433 WinPosX = Rect.left;
\r
1434 WinPosY = Rect.top;
\r
1436 else if(wParam == SIZE_MAXIMIZED)
\r
1438 Sizing = SW_MAXIMIZE;
\r
1439 ResizeWindowProc();
\r
1442 return(DefWindowProc(hWnd, message, wParam, lParam));
\r
1446 WinPosX = ((RECT *)lParam)->left;
\r
1447 WinPosY = ((RECT *)lParam)->top;
\r
1448 return(DefWindowProc(hWnd, message, wParam, lParam));
\r
1450 case WM_SETFOCUS :
\r
1451 SetFocus(hWndCurFocus);
\r
1454 case WM_LBUTTONDOWN :
\r
1455 case WM_LBUTTONUP :
\r
1456 case WM_MOUSEMOVE :
\r
1457 CheckResizeFrame(wParam, LOWORD(lParam), HIWORD(lParam));
\r
1460 case WM_CHANGE_COND :
\r
1461 DispTransferFiles();
\r
1464 case WM_REFRESH_LOCAL_FLG :
\r
1465 PostMessage(hWnd, WM_COMMAND, MAKEWPARAM(REFRESH_LOCAL, 0), 0);
\r
1468 case WM_REFRESH_REMOTE_FLG :
\r
1469 if(SuppressRefresh == 0)
\r
1470 PostMessage(hWnd, WM_COMMAND, MAKEWPARAM(REFRESH_REMOTE, 0), 0);
\r
1474 BeginPaint(hWnd, (LPPAINTSTRUCT) &ps);
\r
1475 EndPaint(hWnd, (LPPAINTSTRUCT) &ps);
\r
1480 // DestroyWindow(hWndFtp);
\r
1481 PostQuitMessage(0);
\r
1484 case WM_QUERYENDSESSION :
\r
1489 if((AskTransferNow() == NO) ||
\r
1490 (DialogBox(hInstFtp, MAKEINTRESOURCE(exit_dlg), hWnd, ExeEscDialogProc) == YES))
\r
1493 return(DefWindowProc(hWnd, message, wParam, lParam));
\r
1498 return(DefWindowProc(hWnd, message, wParam, lParam));
\r
1504 /*-----
\83v
\83\8d\83O
\83\89\83\80\8aJ
\8en
\8e\9e\82Ì
\8f\88\97\9d ------------------------------------------------
\r
1507 * char *Cmd :
\83R
\83}
\83\93\83h
\83\89\83C
\83\93\95¶
\8e\9a\97ñ
\r
1511 *----------------------------------------------------------------------------*/
\r
1513 static void StartupProc(char *Cmd)
\r
1522 char unc[FMAX_PATH+1];
\r
1524 Sts = AnalyzeComLine(Cmd, &AutoConnect, &CmdOption, unc, FMAX_PATH);
\r
1526 TrMode = TYPE_DEFAULT;
\r
1527 Kanji = KANJI_NOCNV;
\r
1528 FnameKanji = KANJI_NOCNV;
\r
1530 if(CmdOption & OPT_ASCII)
\r
1532 if(CmdOption & OPT_BINARY)
\r
1534 if(CmdOption & OPT_EUC)
\r
1535 Kanji = KANJI_EUC;
\r
1536 if(CmdOption & OPT_JIS)
\r
1537 Kanji = KANJI_JIS;
\r
1538 if(CmdOption & OPT_EUC_NAME)
\r
1539 FnameKanji = KANJI_EUC;
\r
1540 if(CmdOption & OPT_JIS_NAME)
\r
1541 FnameKanji = KANJI_JIS;
\r
1542 if(CmdOption & OPT_KANA)
\r
1545 if(CmdOption & OPT_QUIT)
\r
1548 if(CmdOption & OPT_SAVEOFF)
\r
1549 SuppressSave = YES;
\r
1550 if(CmdOption & OPT_SAVEON)
\r
1551 SuppressSave = NO;
\r
1555 if(ConnectOnStart == YES)
\r
1556 PostMessage(hWndFtp, WM_COMMAND, MAKEWPARAM(MENU_CONNECT, 0), 0);
\r
1560 DirectConnectProc(unc, Kanji, Kana, FnameKanji, TrMode);
\r
1564 PostMessage(hWndFtp, WM_COMMAND, MAKEWPARAM(MENU_CONNECT_NUM, CmdOption), (LPARAM)AutoConnect);
\r
1570 /*-----
\83R
\83}
\83\93\83h
\83\89\83C
\83\93\82ð
\89ð
\90Í --------------------------------------------------
\r
1573 * char *Str :
\83R
\83}
\83\93\83h
\83\89\83C
\83\93\95¶
\8e\9a\97ñ
\r
1574 * int *AutoConnect :
\90Ú
\91±
\83z
\83X
\83g
\94Ô
\8d\86\82ð
\95Ô
\82·
\83\8f\81[
\83N
\r
1575 * int *CmdOption :
\83I
\83v
\83V
\83\87\83\93\82ð
\95Ô
\82·
\83\8f\81[
\83N
\r
1576 * char *unc : unc
\82ð
\95Ô
\82·
\83\8f\81[
\83N
\r
1577 * int Max : unc
\82Ì
\8dÅ
\91å
\92·
\r
1580 * int
\83X
\83e
\81[
\83^
\83X
\r
1581 * 0=
\8ew
\92è
\82È
\82µ
\81A1=URL
\8ew
\92è
\81A2=
\90Ý
\92è
\96¼
\8ew
\92è
\81A-1=
\83G
\83\89\81[
\r
1598 * -n --ini (CheckIniFileName
\82Å
\8c\9f\8dõ)
\r
1601 * -z --mpasswd (CheckMasterPassword
\82Å
\8c\9f\8dõ) 2010.01.30 genta
\92Ç
\89Á
\r
1602 *----------------------------------------------------------------------------*/
\r
1604 static int AnalyzeComLine(char *Str, int *AutoConnect, int *CmdOption, char *unc, int Max)
\r
1607 char Tmp[FMAX_PATH+1];
\r
1609 *AutoConnect = -1;
\r
1613 memset(unc, NUL, Max+1);
\r
1615 while((Ret != -1) && ((Str = GetToken(Str, Tmp)) != NULL))
\r
1620 if((strcmp(&Tmp[1], "m") == 0) || (strcmp(&Tmp[1], "-mirror") == 0))
\r
1621 *CmdOption |= OPT_MIRROR;
\r
1622 else if((strcmp(&Tmp[1], "d") == 0) || (strcmp(&Tmp[1], "-mirrordown") == 0))
\r
1623 *CmdOption |= OPT_MIRRORDOWN;
\r
1624 else if((strcmp(&Tmp[1], "e") == 0) || (strcmp(&Tmp[1], "-euc") == 0))
\r
1625 *CmdOption |= OPT_EUC;
\r
1626 else if((strcmp(&Tmp[1], "j") == 0) || (strcmp(&Tmp[1], "-jis") == 0))
\r
1627 *CmdOption |= OPT_JIS;
\r
1628 else if((strcmp(&Tmp[1], "a") == 0) || (strcmp(&Tmp[1], "-ascii") == 0))
\r
1629 *CmdOption |= OPT_ASCII;
\r
1630 else if((strcmp(&Tmp[1], "b") == 0) || (strcmp(&Tmp[1], "-binary") == 0))
\r
1631 *CmdOption |= OPT_BINARY;
\r
1632 else if((strcmp(&Tmp[1], "x") == 0) || (strcmp(&Tmp[1], "-auto") == 0))
\r
1633 *CmdOption |= OPT_AUTO;
\r
1634 else if((strcmp(&Tmp[1], "f") == 0) || (strcmp(&Tmp[1], "-force") == 0))
\r
1635 *CmdOption |= OPT_FORCE;
\r
1636 else if((strcmp(&Tmp[1], "q") == 0) || (strcmp(&Tmp[1], "-quit") == 0))
\r
1637 *CmdOption |= OPT_QUIT;
\r
1638 else if((strcmp(&Tmp[1], "k") == 0) || (strcmp(&Tmp[1], "-kana") == 0))
\r
1639 *CmdOption |= OPT_KANA;
\r
1640 else if((strcmp(&Tmp[1], "u") == 0) || (strcmp(&Tmp[1], "-eucname") == 0))
\r
1641 *CmdOption |= OPT_EUC_NAME;
\r
1642 else if((strcmp(&Tmp[1], "i") == 0) || (strcmp(&Tmp[1], "-jisname") == 0))
\r
1643 *CmdOption |= OPT_JIS_NAME;
\r
1644 else if((strcmp(&Tmp[1], "n") == 0) || (strcmp(&Tmp[1], "-ini") == 0))
\r
1646 if((Str = GetToken(Str, Tmp)) == NULL)
\r
1648 SetTaskMsg(MSGJPN282);
\r
1652 else if(strcmp(&Tmp[1], "-saveoff") == 0)
\r
1653 *CmdOption |= OPT_SAVEOFF;
\r
1654 else if(strcmp(&Tmp[1], "-saveon") == 0)
\r
1655 *CmdOption |= OPT_SAVEON;
\r
1656 else if((strcmp(&Tmp[1], "z") == 0) || (strcmp(&Tmp[1], "-mpasswd") == 0))
\r
1657 { /* 2010.01.30 genta : Add master password option */
\r
1658 if((Str = GetToken(Str, Tmp)) == NULL)
\r
1660 SetTaskMsg(MSGJPN299);
\r
1664 else if((strcmp(&Tmp[1], "s") == 0) || (strcmp(&Tmp[1], "-set") == 0))
\r
1668 if((Str = GetToken(Str, Tmp)) != NULL)
\r
1670 if((*AutoConnect = SearchHostName(Tmp)) != -1)
\r
1674 SetTaskMsg(MSGJPN177, Tmp);
\r
1680 SetTaskMsg(MSGJPN178);
\r
1686 SetTaskMsg(MSGJPN179);
\r
1690 else if((strcmp(&Tmp[1], "h") == 0) || (strcmp(&Tmp[1], "-help") == 0))
\r
1692 hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000024);
\r
1696 SetTaskMsg(MSGJPN180, Tmp);
\r
1704 strncpy(unc, Tmp, Max);
\r
1709 SetTaskMsg(MSGJPN181);
\r
1718 /*----- INI
\83t
\83@
\83C
\83\8b\82Ì
\83p
\83X
\96¼
\82Ì
\8ew
\92è
\82ð
\83`
\83F
\83b
\83N ------------------------------------
\r
1721 * char *Str :
\83R
\83}
\83\93\83h
\83\89\83C
\83\93\95¶
\8e\9a\97ñ
\r
1722 * char *Ini : ini
\83t
\83@
\83C
\83\8b\96¼
\82ð
\95Ô
\82·
\83\8f\81[
\83N
\r
1725 * int
\83X
\83e
\81[
\83^
\83X
\r
1726 * 0=
\8ew
\92è
\82È
\82µ
\81A1=
\82 \82è
\r
1730 *----------------------------------------------------------------------------*/
\r
1732 static int CheckIniFileName(char *Str, char *Ini)
\r
1734 return GetTokenAfterOption( Str, Ini, "n", "-ini" );
\r
1737 /*
\83}
\83X
\83^
\81[
\83p
\83X
\83\8f\81[
\83h
\82Ì
\8ew
\92è
\82ð
\83`
\83F
\83b
\83N */
\r
1738 static int CheckMasterPassword(char *Str, char *Ini)
\r
1740 return GetTokenAfterOption( Str, Ini, "z", "-mpasswd" );
\r
1743 /*-----
\83I
\83v
\83V
\83\87\83\93\82Ì
\8cã
\82ë
\82Ì
\83g
\81[
\83N
\83\93\82ð
\8eæ
\82è
\8fo
\82· ------------------------------------
\r
1746 * char *Str :
\83R
\83}
\83\93\83h
\83\89\83C
\83\93\95¶
\8e\9a\97ñ
\r
1747 * char *Result :
\8eæ
\82è
\8fo
\82µ
\82½
\95¶
\8e\9a\97ñ
\82ð
\8ai
\94[
\82·
\82é
\83\8f\81[
\83N
\r
1748 * const char* Opt1, *Opt2:
\83I
\83v
\83V
\83\87\83\93\95¶
\8e\9a\97ñ(2
\82Â)
\r
1751 * int
\83X
\83e
\81[
\83^
\83X
\r
1752 * 0=
\8ew
\92è
\82È
\82µ
\81A1=
\82 \82è
\r
1755 * 2010.01.30 genta
\83}
\83X
\83^
\81[
\83p
\83X
\83\8f\81[
\83h
\8eæ
\82è
\8fo
\82µ
\82Ì
\82½
\82ß
\8b¤
\92Ê
\89»
\r
1756 *----------------------------------------------------------------------------*/
\r
1757 static int GetTokenAfterOption(char *Str, char *Result, const char* Opt1, const char* Opt2 )
\r
1760 char Tmp[FMAX_PATH+1];
\r
1763 while((Str = GetToken(Str, Tmp)) != NULL)
\r
1768 if((strcmp(&Tmp[1], Opt1) == 0) || (strcmp(&Tmp[1], Opt2) == 0))
\r
1770 if((Str = GetToken(Str, Result)) != NULL)
\r
1779 /*-----
\83g
\81[
\83N
\83\93\82ð
\95Ô
\82· --------------------------------------------------------
\r
1782 * char *Str :
\95¶
\8e\9a\97ñ
\r
1783 * char *Buf :
\95¶
\8e\9a\97ñ
\82ð
\95Ô
\82·
\83o
\83b
\83t
\83@
\r
1786 * char *
\95Ô
\82µ
\82½
\83g
\81[
\83N
\83\93\82Ì
\96\96\94ö
\r
1787 * NULL=
\8fI
\82í
\82è
\r
1788 *----------------------------------------------------------------------------*/
\r
1790 static char *GetToken(char *Str, char *Buf)
\r
1794 while(*Str != NUL)
\r
1796 if((*Str != ' ') && (*Str != '\t'))
\r
1804 while(*Str != NUL)
\r
1807 InQuote = !InQuote;
\r
1810 if(((*Str == ' ') || (*Str == '\t')) &&
\r
1829 /*-----
\83v
\83\8d\83O
\83\89\83\80\8fI
\97¹
\8e\9e\82Ì
\8f\88\97\9d ------------------------------------------------
\r
1832 * HWND hWnd :
\83E
\83C
\83\93\83h
\83E
\83n
\83\93\83h
\83\8b\r
1836 *----------------------------------------------------------------------------*/
\r
1838 static void ExitProc(HWND hWnd)
\r
1842 CloseTransferThread();
\r
1844 if(SaveExit == YES)
\r
1847 SaveCurrentSetToHost();
\r
1849 DeleteAlltempFile();
\r
1851 // WSACancelBlockingCall();
\r
1853 // CloseTransferThread();
\r
1855 if(SaveExit == YES)
\r
1857 GetListTabWidth();
\r
1860 if((CacheEntry > 0) && (CacheSave == YES))
\r
1868 if(RasClose == YES)
\r
1870 DisconnectRas(RasCloseNotify);
\r
1872 DeleteAllObject();
\r
1873 HtmlHelp(NULL, NULL, HH_UNINITIALIZE, dwCookie);
\r
1878 /*-----
\83t
\83@
\83C
\83\8b\96¼
\82ð
\83_
\83u
\83\8b\83N
\83\8a\83b
\83N
\82µ
\82½
\82Æ
\82«
\82Ì
\8f\88\97\9d ------------------------------
\r
1881 * int Win :
\83E
\83C
\83\93\83h
\83E
\94Ô
\8d\86 (WIN_xxx)
\r
1882 * int Mode :
\8fí
\82É
\81u
\8aJ
\82
\81v
\93®
\8dì
\82ð
\82·
\82é
\82©
\82Ç
\82¤
\82© (YES/NO)
\r
1883 * int App :
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\94Ô
\8d\86\81i-1=
\8aÖ
\98A
\82Ã
\82¯
\97D
\90æ
\81j
\r
1887 *----------------------------------------------------------------------------*/
\r
1889 void DoubleClickProc(int Win, int Mode, int App)
\r
1893 char Local[FMAX_PATH+1];
\r
1894 char Remote[FMAX_PATH+1];
\r
1895 char Tmp[FMAX_PATH+1];
\r
1897 int UseDiffViewer;
\r
1899 if(AskUserOpeDisabled() == NO)
\r
1901 SetCurrentDirAsDirHist();
\r
1902 if(GetSelectedCount(Win) == 1)
\r
1904 if((Pos = GetFirstSelected(Win, NO)) != -1)
\r
1906 GetNodeName(Win, Pos, Tmp, FMAX_PATH);
\r
1907 Type = GetNodeType(Win, Pos);
\r
1909 if(Win == WIN_LOCAL)
\r
1911 if((App != -1) || (Type == NODE_FILE))
\r
1913 if((DclickOpen == YES) || (Mode == YES))
\r
1915 AskLocalCurDir(Local, FMAX_PATH);
\r
1916 ReplaceAll(Local, '/', '\\');
\r
1917 SetYenTail(Local);
\r
1918 strcat(Local, Tmp);
\r
1919 ExecViewer(Local, App);
\r
1922 PostMessage(hWndFtp, WM_COMMAND, MAKEWPARAM(MENU_UPLOAD, 0), 0);
\r
1925 ChangeDir(WIN_LOCAL, Tmp);
\r
1927 else if(CheckClosedAndReconnect() == SUCCESS)
\r
1929 if((App != -1) || (Type == NODE_FILE))
\r
1931 if((DclickOpen == YES) || (Mode == YES))
\r
1933 //
\83r
\83\85\81[
\83\8f\82Q
\81A
\82R
\82Ì
\83p
\83X
\82ª "d "
\82Å
\8en
\82Ü
\82Á
\82Ä
\82¢
\82½
\82ç
\8d·
\95ª
\83r
\83\85\81[
\83A
\8eg
\97p
\r
1934 if ((App == 1 || App == 2) && strncmp(ViewerName[App], "d ", 2) == 0)
\r
1935 UseDiffViewer = YES;
\r
1937 UseDiffViewer = NO;
\r
1939 strcpy(Remote, TmpPath);
\r
1940 SetYenTail(Remote);
\r
1941 if (UseDiffViewer == YES) {
\r
1942 strcat(Remote, "remote.");
\r
1944 strcat(Remote, Tmp);
\r
1946 if(AskTransferNow() == YES)
\r
1949 // MainTransPkt.ctrl_skt = AskCmdCtrlSkt();
\r
1950 strcpy(MainTransPkt.Cmd, "RETR ");
\r
1951 if(AskHostType() == HTYPE_ACOS)
\r
1953 strcpy(MainTransPkt.RemoteFile, "'");
\r
1954 strcat(MainTransPkt.RemoteFile, AskHostLsName());
\r
1955 strcat(MainTransPkt.RemoteFile, "(");
\r
1956 strcat(MainTransPkt.RemoteFile, Tmp);
\r
1957 strcat(MainTransPkt.RemoteFile, ")");
\r
1958 strcat(MainTransPkt.RemoteFile, "'");
\r
1960 else if(AskHostType() == HTYPE_ACOS_4)
\r
1962 strcpy(MainTransPkt.RemoteFile, Tmp);
\r
1966 strcpy(MainTransPkt.RemoteFile, Tmp);
\r
1968 strcpy(MainTransPkt.LocalFile, Remote);
\r
1969 MainTransPkt.Type = AskTransferTypeAssoc(MainTransPkt.RemoteFile, AskTransferType());
\r
1970 MainTransPkt.Size = 1;
\r
1971 MainTransPkt.KanjiCode = AskHostKanjiCode();
\r
1972 MainTransPkt.KanjiCodeDesired = AskLocalKanjiCode();
\r
1973 MainTransPkt.KanaCnv = AskHostKanaCnv();
\r
1974 MainTransPkt.Mode = EXIST_OVW;
\r
1975 MainTransPkt.ExistSize = 0;
\r
1976 MainTransPkt.hWndTrans = NULL;
\r
1977 MainTransPkt.Next = NULL;
\r
1981 /*
\95s
\90³
\82È
\83p
\83X
\82ð
\8c\9f\8fo */
\r
1982 if(CheckPathViolation(&MainTransPkt) == NO)
\r
1984 // if((Sts = DoDownLoad(AskCmdCtrlSkt(), &MainTransPkt, NO)) == 429)
\r
1986 // ReConnectCmdSkt();
\r
1987 Sts = DoDownLoad(AskCmdCtrlSkt(), &MainTransPkt, NO, &CancelFlg);
\r
1993 AddTempFileList(Remote);
\r
1994 if(Sts/100 == FTP_COMPLETE) {
\r
1995 if (UseDiffViewer == YES) {
\r
1996 AskLocalCurDir(Local, FMAX_PATH);
\r
1997 ReplaceAll(Local, '/', '\\');
\r
1998 SetYenTail(Local);
\r
1999 strcat(Local, Tmp);
\r
2000 ExecViewer2(Local, Remote, App);
\r
2002 ExecViewer(Remote, App);
\r
2007 PostMessage(hWndFtp, WM_COMMAND, MAKEWPARAM(MENU_DOWNLOAD, 0), 0);
\r
2010 ChangeDir(WIN_REMOTE, Tmp);
\r
2014 MakeButtonsFocus();
\r
2020 /*-----
\83t
\83H
\83\8b\83_
\82Ì
\88Ú
\93® --------------------------------------------------------
\r
2023 * int Win :
\83E
\83C
\83\93\83h
\83E
\94Ô
\8d\86 (WIN_xxx)
\r
2024 * char *Path :
\88Ú
\93®
\90æ
\82Ì
\83p
\83X
\96¼
\r
2030 *
\83t
\83H
\83\8b\83_
\93¯
\8e\9e\88Ú
\93®
\82Ì
\8f\88\97\9d\82à
\8ds
\82¤
\r
2031 *----------------------------------------------------------------------------*/
\r
2033 static void ChangeDir(int Win, char *Path)
\r
2036 char Local[FMAX_PATH+1];
\r
2037 char Remote[FMAX_PATH+1];
\r
2039 Sync = AskSyncMoveMode();
\r
2042 if(strcmp(Path, "..") == 0)
\r
2044 AskLocalCurDir(Local, FMAX_PATH);
\r
2045 AskRemoteCurDir(Remote, FMAX_PATH);
\r
2046 if(strcmp(GetFileName(Local), GetFileName(Remote)) != 0)
\r
2051 if((Win == WIN_LOCAL) || (Sync == YES))
\r
2053 if(DoLocalCWD(Path) == SUCCESS)
\r
2054 GetLocalDirForWnd();
\r
2057 if((Win == WIN_REMOTE) || (Sync == YES))
\r
2059 if(CheckClosedAndReconnect() == SUCCESS)
\r
2061 #if defined(HAVE_OPENVMS)
\r
2062 /* OpenVMS
\82Ì
\8fê
\8d\87\81A".DIR;?"
\82ð
\8eæ
\82é */
\r
2063 if (AskHostType() == HTYPE_VMS)
\r
2064 ReformVMSDirName(Path, TRUE);
\r
2066 if(DoCWD(Path, YES, NO, YES) < FTP_RETRY)
\r
2067 GetRemoteDirForWnd(CACHE_NORMAL, &CancelFlg);
\r
2074 /*-----
\83E
\83C
\83\93\83h
\83E
\82Ì
\83T
\83C
\83Y
\95Ï
\8dX
\82Ì
\8f\88\97\9d ------------------------------------------
\r
2081 *----------------------------------------------------------------------------*/
\r
2083 static void ResizeWindowProc(void)
\r
2089 GetClientRect(hWndFtp, &Rect);
\r
2090 SendMessage(GetSbarWnd(), WM_SIZE, SIZE_RESTORED, MAKELPARAM(Rect.right, Rect.bottom));
\r
2093 SetWindowPos(GetMainTbarWnd(), 0, 0, 0, WinWidth, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2095 SetWindowPos(GetLocalTbarWnd(), 0, 0, TOOLWIN_HEIGHT, LocalWidth, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2096 SendMessage(GetLocalTbarWnd(), TB_GETITEMRECT, 3, (LPARAM)&Rect);
\r
2097 SetWindowPos(GetLocalHistHwnd(), 0, Rect.right, Rect.top, LocalWidth - Rect.right, 200, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2098 SetWindowPos(GetLocalHwnd(), 0, 0, TOOLWIN_HEIGHT*2, LocalWidth, ListHeight, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2100 RemotePosX = LocalWidth + SepaWidth;
\r
2101 if(SplitVertical == YES)
\r
2104 SetWindowPos(GetRemoteTbarWnd(), 0, RemotePosX, TOOLWIN_HEIGHT, RemoteWidth, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2105 SendMessage(GetRemoteTbarWnd(), TB_GETITEMRECT, 3, (LPARAM)&Rect);
\r
2106 SetWindowPos(GetRemoteHistHwnd(), 0, Rect.right, Rect.top, RemoteWidth - Rect.right, 200, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2107 SetWindowPos(GetRemoteHwnd(), 0, RemotePosX, TOOLWIN_HEIGHT*2, RemoteWidth, ListHeight, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2109 SetWindowPos(GetTaskWnd(), 0, 0, TOOLWIN_HEIGHT*2+ListHeight+SepaWidth, ClientWidth, TaskHeight, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2113 GetClientRect(hWndFtp, &Rect);
\r
2114 SendMessage(GetSbarWnd(), WM_SIZE, SIZE_RESTORED, MAKELPARAM(Rect.right, Rect.bottom));
\r
2117 SetWindowPos(GetMainTbarWnd(), 0, 0, 0, Rect.right, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2118 SetWindowPos(GetLocalTbarWnd(), 0, 0, TOOLWIN_HEIGHT, LocalWidth, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2119 SetWindowPos(GetRemoteTbarWnd(), 0, LocalWidth + SepaWidth, TOOLWIN_HEIGHT, RemoteWidth, TOOLWIN_HEIGHT, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2120 SendMessage(GetLocalTbarWnd(), TB_GETITEMRECT, 3, (LPARAM)&Rect);
\r
2121 SetWindowPos(GetLocalHistHwnd(), 0, Rect.right, Rect.top, LocalWidth - Rect.right, 200, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2122 SendMessage(GetRemoteTbarWnd(), TB_GETITEMRECT, 3, (LPARAM)&Rect);
\r
2123 SetWindowPos(GetRemoteHistHwnd(), 0, Rect.right, Rect.top, RemoteWidth - Rect.right, 200, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2124 SetWindowPos(GetLocalHwnd(), 0, 0, TOOLWIN_HEIGHT*2, LocalWidth, ListHeight, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2125 SetWindowPos(GetRemoteHwnd(), 0, LocalWidth + SepaWidth, TOOLWIN_HEIGHT*2, RemoteWidth, ListHeight, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2126 SetWindowPos(GetTaskWnd(), 0, 0, TOOLWIN_HEIGHT*2+ListHeight+SepaWidth, ClientWidth, TaskHeight, SWP_NOACTIVATE | SWP_NOZORDER);
\r
2133 /*-----
\83E
\83C
\83\93\83h
\83E
\82Ì
\8ae
\95\94\95ª
\82Ì
\83T
\83C
\83Y
\82ð
\8cv
\8eZ
\82·
\82é ----------------------------------
\r
2140 *----------------------------------------------------------------------------*/
\r
2142 static void CalcWinSize(void)
\r
2146 GetWindowRect(hWndFtp, &Rect);
\r
2148 if(Sizing != SW_MAXIMIZE)
\r
2150 WinWidth = Rect.right - Rect.left;
\r
2151 WinHeight = Rect.bottom - Rect.top;
\r
2154 GetClientRect(hWndFtp, &Rect);
\r
2156 ClientWidth = Rect.right;
\r
2157 ClientHeight = Rect.bottom;
\r
2160 LocalWidth = max1(0, min1(LocalWidth, ClientWidth - SepaWidth));
\r
2161 RemoteWidth = max1(0, ClientWidth - LocalWidth - SepaWidth);
\r
2162 // TaskHeight = min1(TaskHeight, max1(0, ClientHeight - TOOLWIN_HEIGHT * 2 - SepaWidth));
\r
2164 GetClientRect(GetSbarWnd(), &Rect);
\r
2166 ListHeight = max1(0, ClientHeight - TOOLWIN_HEIGHT * 2 - TaskHeight - SepaWidth - Rect.bottom);
\r
2173 /*-----
\83E
\83C
\83\93\83h
\83E
\82Ì
\95\
\8e¦
\88Ê
\92u
\82ð
\8eæ
\93¾
\82·
\82é ----------------------------------------
\r
2176 * HWND hWnd :
\83E
\83C
\83\93\83h
\83E
\83n
\83\93\83h
\83\8b\r
2180 *----------------------------------------------------------------------------*/
\r
2182 static void AskWindowPos(HWND hWnd)
\r
2184 WINDOWPLACEMENT WinPlace;
\r
2186 WinPlace.length = sizeof(WINDOWPLACEMENT);
\r
2187 GetWindowPlacement(hWnd, &WinPlace);
\r
2188 WinPosX = WinPlace.rcNormalPosition.left;
\r
2189 WinPosY = WinPlace.rcNormalPosition.top;
\r
2196 /*-----
\83f
\83B
\83\8c\83N
\83g
\83\8a\83\8a\83X
\83g
\82Æ
\83t
\83@
\83C
\83\8b\83\8a\83X
\83g
\82Ì
\8b«
\8aE
\95Ï
\8dX
\8f\88\97\9d ----------------------
\r
2199 * WPARAM Keys : WM_MOUSEMOVE
\82È
\82Ç
\82ÌWPARAM
\82Ì
\92l
\r
2200 * int x :
\83}
\83E
\83X
\83J
\81[
\83\
\83\8b\82Ì
\82w
\8dÀ
\95W
\r
2201 * int y :
\83}
\83E
\83X
\83J
\81[
\83\
\83\8b\82Ì
\82x
\8dÀ
\95W
\r
2205 *----------------------------------------------------------------------------*/
\r
2207 static void CheckResizeFrame(WPARAM Keys, int x, int y)
\r
2212 if((Resizing == RESIZE_OFF) && (Keys == 0))
\r
2214 if((x >= LocalWidth) && (x <= LocalWidth + SepaWidth) &&
\r
2215 (y > TOOLWIN_HEIGHT) && (y < (TOOLWIN_HEIGHT * 2 + ListHeight)))
\r
2217 /*
\8b«
\8aE
\88Ê
\92u
\95Ï
\8dX
\97p
\83J
\81[
\83\
\83\8b\82É
\95Ï
\8dX */
\r
2218 SetCapture(hWndFtp);
\r
2219 hCursor = LoadCursor(hInstFtp, MAKEINTRESOURCE(resize_lr_csr));
\r
2220 SetCursor(hCursor);
\r
2221 Resizing = RESIZE_PREPARE;
\r
2222 ResizePos = RESIZE_HPOS;
\r
2224 else if((y >= TOOLWIN_HEIGHT*2+ListHeight) && (y <= TOOLWIN_HEIGHT*2+ListHeight+SepaWidth))
\r
2226 /*
\8b«
\8aE
\88Ê
\92u
\95Ï
\8dX
\97p
\83J
\81[
\83\
\83\8b\82É
\95Ï
\8dX */
\r
2227 SetCapture(hWndFtp);
\r
2228 hCursor = LoadCursor(hInstFtp, MAKEINTRESOURCE(resize_ud_csr));
\r
2229 SetCursor(hCursor);
\r
2230 Resizing = RESIZE_PREPARE;
\r
2231 ResizePos = RESIZE_VPOS;
\r
2234 else if(Resizing == RESIZE_PREPARE)
\r
2236 if(Keys & MK_LBUTTON)
\r
2238 /*
\8b«
\8aE
\88Ê
\92u
\95Ï
\8dX
\8aJ
\8en */
\r
2239 Resizing = RESIZE_ON;
\r
2240 GetWindowRect(hWndFtp, &Rect);
\r
2241 GetClientRect(GetSbarWnd(), &Rect1);
\r
2242 Rect.left += GetSystemMetrics(SM_CXFRAME);
\r
2243 Rect.right -= GetSystemMetrics(SM_CXFRAME);
\r
2244 Rect.top += TOOLWIN_HEIGHT*2 + GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYFRAME);
\r
2245 Rect.bottom -= GetSystemMetrics(SM_CYFRAME) + Rect1.bottom;
\r
2246 ClipCursor(&Rect);
\r
2250 if(((ResizePos == RESIZE_HPOS) &&
\r
2251 ((x < LocalWidth) || (x > LocalWidth + SepaWidth) ||
\r
2252 (y <= TOOLWIN_HEIGHT) || (y >= (TOOLWIN_HEIGHT * 2 + ListHeight)))) ||
\r
2253 ((ResizePos == RESIZE_VPOS) &&
\r
2254 ((y < TOOLWIN_HEIGHT*2+ListHeight) || (y > TOOLWIN_HEIGHT*2+ListHeight+SepaWidth))))
\r
2256 /*
\8c³
\82Ì
\83J
\81[
\83\
\83\8b\82É
\96ß
\82· */
\r
2258 hCursor = LoadCursor(NULL, IDC_ARROW);
\r
2259 SetCursor(hCursor);
\r
2260 Resizing = RESIZE_OFF;
\r
2264 else if(Resizing == RESIZE_ON)
\r
2266 if(ResizePos == RESIZE_HPOS)
\r
2270 GetClientRect(hWndFtp, &Rect);
\r
2271 GetClientRect(GetSbarWnd(), &Rect1);
\r
2272 TaskHeight = max1(0, Rect.bottom - y - Rect1.bottom);
\r
2274 ResizeWindowProc();
\r
2276 if((Keys & MK_LBUTTON) == 0)
\r
2278 /*
\8b«
\8aE
\88Ê
\92u
\95Ï
\8dX
\8fI
\97¹ */
\r
2281 hCursor = LoadCursor(NULL, IDC_ARROW);
\r
2282 SetCursor(hCursor);
\r
2283 Resizing = RESIZE_OFF;
\r
2290 /*-----
\83t
\83@
\83C
\83\8b\88ê
\97\97\8fî
\95ñ
\82ð
\83r
\83\85\81[
\83\8f\82Å
\95\
\8e¦ --------------------------------------
\r
2297 *----------------------------------------------------------------------------*/
\r
2299 static void DispDirInfo(void)
\r
2301 char Buf[FMAX_PATH+1];
\r
2303 MakeCacheFileName(AskCurrentFileListNum(), Buf);
\r
2304 ExecViewer(Buf, 0);
\r
2310 /*-----
\83r
\83\85\81[
\83\8f\82ð
\8bN
\93® --------------------------------------------------------
\r
2313 * char Fname :
\83t
\83@
\83C
\83\8b\96¼
\r
2314 * int App :
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\94Ô
\8d\86\81i-1=
\8aÖ
\98A
\82Ã
\82¯
\97D
\90æ
\81j
\r
2318 *----------------------------------------------------------------------------*/
\r
2320 void ExecViewer(char *Fname, int App)
\r
2322 PROCESS_INFORMATION Info;
\r
2323 STARTUPINFO Startup;
\r
2324 char AssocProg[FMAX_PATH+1];
\r
2325 char ComLine[FMAX_PATH*2+3+1];
\r
2326 char CurDir[FMAX_PATH+1];
\r
2328 /* FindExecutable()
\82Í
\8aÖ
\98A
\95t
\82¯
\82ç
\82ê
\82½
\83v
\83\8d\83O
\83\89\83\80\82Ì
\83p
\83X
\96¼
\82É
\83X
\83y
\81[
\83X
\82ª */
\r
2329 /*
\8aÜ
\82Ü
\82ê
\82Ä
\82¢
\82é
\8e\9e\81A
\8aÔ
\88á
\82Á
\82½
\83p
\83X
\96¼
\82ð
\95Ô
\82·
\8e\96\82ª
\82 \82é
\81B */
\r
2330 /*
\82»
\82±
\82Å
\81A
\8aÖ
\98A
\95t
\82¯
\82ç
\82ê
\82½
\83v
\83\8d\83O
\83\89\83\80\82Ì
\8bN
\93®
\82ÍShellExecute()
\82ð
\8eg
\82¤
\81B */
\r
2332 AskLocalCurDir(CurDir, FMAX_PATH);
\r
2334 if((App == -1) && (FindExecutable(Fname, NULL, AssocProg) > (HINSTANCE)32))
\r
2336 DoPrintf("ShellExecute - %s", Fname);
\r
2337 ShellExecute(NULL, "open", Fname, NULL, CurDir, SW_SHOW);
\r
2341 App = max1(0, App);
\r
2342 strcpy(AssocProg, ViewerName[App]);
\r
2344 if(strchr(Fname, ' ') == NULL)
\r
2345 sprintf(ComLine, "%s %s", AssocProg, Fname);
\r
2347 sprintf(ComLine, "%s \"%s\"", AssocProg, Fname);
\r
2349 DoPrintf("FindExecutable - %s", ComLine);
\r
2351 memset(&Startup, NUL, sizeof(STARTUPINFO));
\r
2352 Startup.cb = sizeof(STARTUPINFO);
\r
2353 Startup.wShowWindow = SW_SHOW;
\r
2354 if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)
\r
2356 SetTaskMsg(MSGJPN182, GetLastError());
\r
2357 SetTaskMsg(">>%s", ComLine);
\r
2364 /*-----
\8d·
\95ª
\95\
\8e¦
\83r
\83\85\81[
\83\8f\82ð
\8bN
\93® ------------------------------------------------
\r
2367 * char Fname1 :
\83t
\83@
\83C
\83\8b\96¼
\r
2368 * char Fname2 :
\83t
\83@
\83C
\83\8b\96¼2
\r
2369 * int App :
\83A
\83v
\83\8a\83P
\81[
\83V
\83\87\83\93\94Ô
\8d\86\81i2 or 3
\81j
\r
2373 *----------------------------------------------------------------------------*/
\r
2375 void ExecViewer2(char *Fname1, char *Fname2, int App)
\r
2377 PROCESS_INFORMATION Info;
\r
2378 STARTUPINFO Startup;
\r
2379 char AssocProg[FMAX_PATH+1];
\r
2380 char ComLine[FMAX_PATH*2+3+1];
\r
2381 char CurDir[FMAX_PATH+1];
\r
2383 /* FindExecutable()
\82Í
\8aÖ
\98A
\95t
\82¯
\82ç
\82ê
\82½
\83v
\83\8d\83O
\83\89\83\80\82Ì
\83p
\83X
\96¼
\82É
\83X
\83y
\81[
\83X
\82ª */
\r
2384 /*
\8aÜ
\82Ü
\82ê
\82Ä
\82¢
\82é
\8e\9e\81A
\8aÔ
\88á
\82Á
\82½
\83p
\83X
\96¼
\82ð
\95Ô
\82·
\8e\96\82ª
\82 \82é
\81B */
\r
2385 /*
\82»
\82±
\82Å
\81A
\8aÖ
\98A
\95t
\82¯
\82ç
\82ê
\82½
\83v
\83\8d\83O
\83\89\83\80\82Ì
\8bN
\93®
\82ÍShellExecute()
\82ð
\8eg
\82¤
\81B */
\r
2387 AskLocalCurDir(CurDir, FMAX_PATH);
\r
2389 strcpy(AssocProg, ViewerName[App] + 2); /*
\90æ
\93ª
\82Ì "d "
\82Í
\93Ç
\82Ý
\94ò
\82Î
\82· */
\r
2391 if(strchr(Fname1, ' ') == NULL && strchr(Fname2, ' ') == NULL)
\r
2392 sprintf(ComLine, "%s %s %s", AssocProg, Fname1, Fname2);
\r
2394 sprintf(ComLine, "%s \"%s\" \"%s\"", AssocProg, Fname1, Fname2);
\r
2396 DoPrintf("FindExecutable - %s", ComLine);
\r
2398 memset(&Startup, NUL, sizeof(STARTUPINFO));
\r
2399 Startup.cb = sizeof(STARTUPINFO);
\r
2400 Startup.wShowWindow = SW_SHOW;
\r
2401 if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)
\r
2403 SetTaskMsg(MSGJPN182, GetLastError());
\r
2404 SetTaskMsg(">>%s", ComLine);
\r
2411 /*-----
\83e
\83\93\83|
\83\89\83\8a\83t
\83@
\83C
\83\8b\96¼
\82ð
\83e
\83\93\83|
\83\89\83\8a\83t
\83@
\83C
\83\8b\83\8a\83X
\83g
\82É
\92Ç
\89Á ------------------
\r
2414 * char *Fname :
\83e
\83\93\83|
\83\89\83\8a\83t
\83@
\83C
\83\8b\96¼
\r
2418 *----------------------------------------------------------------------------*/
\r
2420 void AddTempFileList(char *Fname)
\r
2422 TEMPFILELIST *New;
\r
2424 if((New = malloc(sizeof(TEMPFILELIST))) != NULL)
\r
2426 if((New->Fname = malloc(strlen(Fname)+1)) != NULL)
\r
2428 strcpy(New->Fname, Fname);
\r
2429 if(TempFiles == NULL)
\r
2432 New->Next = TempFiles;
\r
2442 /*-----
\83e
\83\93\83|
\83\89\83\8a\83t
\83@
\83C
\83\8b\83\8a\83X
\83g
\82É
\93o
\98^
\82³
\82ê
\82Ä
\82¢
\82é
\83t
\83@
\83C
\83\8b\82ð
\91S
\82Ä
\8dí
\8f\9c ------------
\r
2449 *----------------------------------------------------------------------------*/
\r
2451 static void DeleteAlltempFile(void)
\r
2453 TEMPFILELIST *Pos;
\r
2454 TEMPFILELIST *Next;
\r
2457 while(Pos != NULL)
\r
2459 DeleteFile(Pos->Fname);
\r
2467 // OLE D&D
\82Ì
\83e
\83\93\83|
\83\89\83\8a\82ð
\8dí
\8f\9c\82·
\82é (2007.9.11 yutaka)
\r
2468 doDeleteRemoteFile();
\r
2474 /*-----
\82`
\82\82\82\8f\82\95\82\94\83_
\83C
\83A
\83\8d\83O
\83{
\83b
\83N
\83X
\82Ì
\83R
\81[
\83\8b\83o
\83b
\83N
\8aÖ
\90\94 ------------------------
\r
2477 * HWND hDlg :
\83E
\83C
\83\93\83h
\83E
\83n
\83\93\83h
\83\8b\r
2478 * UINT message :
\83\81\83b
\83Z
\81[
\83W
\94Ô
\8d\86\r
2479 * WPARAM wParam :
\83\81\83b
\83Z
\81[
\83W
\82Ì WPARAM
\88ø
\90\94\r
2480 * LPARAM lParam :
\83\81\83b
\83Z
\81[
\83W
\82Ì LPARAM
\88ø
\90\94\r
2484 *----------------------------------------------------------------------------*/
\r
2486 static BOOL CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
\r
2488 static char Tmp[80];
\r
2493 case WM_INITDIALOG :
\r
2494 Ver = GetJreVersion();
\r
2496 sprintf(Tmp, MSGJPN183);
\r
2498 sprintf(Tmp, MSGJPN184, Ver / 0x100, Ver % 0x100);
\r
2499 SendDlgItemMessage(hDlg, ABOUT_JRE, WM_SETTEXT, 0, (LPARAM)Tmp);
\r
2500 SendDlgItemMessage(hDlg, ABOUT_URL, EM_LIMITTEXT, 256, 0);
\r
2501 SendDlgItemMessage(hDlg, ABOUT_URL, WM_SETTEXT, 0, (LPARAM)MSGJPN284);
\r
2505 switch(GET_WM_COMMAND_ID(wParam, lParam))
\r
2509 EndDialog(hDlg, YES);
\r
2518 /*-----
\83T
\83E
\83\93\83h
\82ð
\96Â
\82ç
\82· ------------------------------------------------------
\r
2521 * Int num :
\83T
\83E
\83\93\83h
\82Ì
\8eí
\97Þ (SND_xxx)
\r
2525 *----------------------------------------------------------------------------*/
\r
2527 void SoundPlay(int Num)
\r
2529 if(Sound[Num].On == YES)
\r
2530 sndPlaySound(Sound[Num].Fname, SND_ASYNC | SND_NODEFAULT);
\r
2536 /*-----
\83w
\83\8b\83v
\83t
\83@
\83C
\83\8b\82Ì
\83p
\83X
\96¼
\82ð
\95Ô
\82· ------------------------------------------
\r
2542 * char *
\83p
\83X
\96¼
\r
2543 *----------------------------------------------------------------------------*/
\r
2545 char *AskHelpFilePath(void)
\r
2551 /*-----
\83e
\83\93\83|
\83\89\83\8a\83t
\83@
\83C
\83\8b\82Ì
\83p
\83X
\96¼
\82ð
\95Ô
\82· --------------------------------------
\r
2557 * char *
\83p
\83X
\96¼
\r
2558 *----------------------------------------------------------------------------*/
\r
2560 char *AskTmpFilePath(void)
\r
2566 /*----- INI
\83t
\83@
\83C
\83\8b\82Ì
\83p
\83X
\96¼
\82ð
\95Ô
\82· ---------------------------------------------
\r
2572 * char *
\83p
\83X
\96¼
\r
2573 *----------------------------------------------------------------------------*/
\r
2575 char *AskIniFilePath(void)
\r
2580 /*----- INI
\83t
\83@
\83C
\83\8b\82Ì
\82Ý
\82ð
\8eg
\82¤
\82©
\82Ç
\82¤
\82©
\82ð
\95Ô
\82· -----------------------------------
\r
2586 * int
\83X
\83e
\81[
\83^
\83X : YES/NO
\r
2587 *----------------------------------------------------------------------------*/
\r
2589 int AskForceIni(void)
\r
2597 /*-----
\83\81\83b
\83Z
\81[
\83W
\8f\88\97\9d --------------------------------------------------------
\r
2603 * int
\8fI
\97¹
\83t
\83\89\83O (YES=WM_CLOSE
\82ª
\97\88\82½/NO)
\r
2604 *----------------------------------------------------------------------------*/
\r
2606 int BackgrndMessageProc(void)
\r
2612 SendMessage(GetMainHwnd(), WM_NULL, 0, 0);
\r
2613 while(PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE))
\r
2615 if(!HtmlHelp(NULL, NULL, HH_PRETRANSLATEMESSAGE, (DWORD)&Msg))
\r
2617 /*
\83f
\83B
\83\8c\83N
\83g
\83\8a\96¼
\82Ì
\95\
\8e¦
\83R
\83\93\83{
\83{
\83b
\83N
\83X
\82ÅBS
\82âRET
\82ª
\8cø
\82
\82æ
\82¤
\82É */
\r
2618 /*
\83R
\83\93\83{
\83{
\83b
\83N
\83X
\93à
\82Å
\82Í
\83A
\83N
\83Z
\83\89\83\8c\81[
\83^
\82ð
\96³
\8cø
\82É
\82·
\82é */
\r
2619 if((Msg.hwnd == GetLocalHistEditHwnd()) ||
\r
2620 (Msg.hwnd == GetRemoteHistEditHwnd()) ||
\r
2621 ((hHelpWin != NULL) && (Msg.hwnd == hHelpWin)) ||
\r
2622 GetHideUI() == YES ||
\r
2623 (TranslateAccelerator(GetMainHwnd(), Accel, &Msg) == 0))
\r
2625 if(Msg.message == WM_QUIT)
\r
2628 PostQuitMessage(0);
\r
2631 TranslateMessage(&Msg);
\r
2632 DispatchMessage(&Msg);
\r
2640 /*-----
\8e©
\93®
\8fI
\97¹
\83t
\83\89\83O
\82ð
\83N
\83\8a\83A
\82·
\82é --------------------------------------------
\r
2647 *----------------------------------------------------------------------------*/
\r
2649 void ResetAutoExitFlg(void)
\r
2656 /*-----
\8e©
\93®
\8fI
\97¹
\83t
\83\89\83O
\82ð
\95Ô
\82· --------------------------------------------------
\r
2662 * int
\83t
\83\89\83O (YES/NO)
\r
2663 *----------------------------------------------------------------------------*/
\r
2665 int AskAutoExit(void)
\r
2670 /*-----
\83\86\81[
\83U
\82É
\83p
\83X
\83\8f\81[
\83h
\82ð
\93ü
\97Í
\82³
\82¹
\81C
\82»
\82ê
\82ð
\90Ý
\92è
\82·
\82é -----------------------
\r
2676 * int : 0/
\83\86\81[
\83U
\83L
\83\83\83\93\83Z
\83\8b, 1/
\90Ý
\92è
\82µ
\82½, 2/
\83f
\83t
\83H
\83\8b\83g
\90Ý
\92è
\r
2677 *----------------------------------------------------------------------------*/
\r
2678 int EnterMasterPasswordAndSet( int Res, HWND hWnd )
\r
2680 char buf[MAX_PASSWORD_LEN + 1];
\r
2685 if( InputDialogBox(Res, hWnd, NULL, buf, MAX_PASSWORD_LEN + 1,
\r
2686 &Flag, IDH_HELP_TOPIC_0000064) == YES){
\r
2687 /*
\96\96\94ö
\82Ì
\8bó
\94\92\82ð
\8dí
\8f\9c */
\r
2688 RemoveTailingSpaces(buf);
\r
2689 /*
\90æ
\93ª
\82Ì
\8bó
\94\92\82ð
\8dí
\8f\9c */
\r
2690 for( p = buf; *p == ' '; p++ )
\r
2693 if( p[0] != NUL ){
\r
2694 SetMasterPassword( p );
\r
2698 /*
\8bó
\82Ì
\8fê
\8d\87\82Í
\83f
\83t
\83H
\83\8b\83g
\92l
\82ð
\90Ý
\92è */
\r
2699 SetMasterPassword( NULL );
\r
2706 //
\88Ã
\8d\86\89»
\92Ê
\90M
\91Î
\89\9e\r
2707 BOOL __stdcall SSLTimeoutCallback()
\r
2710 if(BackgrndMessageProc() == YES)
\r
2712 //
\94O
\82Ì
\82½
\82ß
\83c
\81[
\83\8b\83o
\81[
\82ÌMENU_ABORT
\82à
\8am
\94F
\r
2713 // if(MainTransPkt.Abort != ABORT_NONE)
\r
2715 // MainTransPkt.Abort = ABORT_NONE;
\r