X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=hostman.c;h=681776bfc67c8339597785c739be49f570e07b89;hb=refs%2Fheads%2F1.98e;hp=7e7026e11712ba387f3fc4c71e1f1c02655bc417;hpb=700b7eb9066c105aaf9b42ad67ba43ee8c030f0b;p=ffftp%2Fffftp.git diff --git a/hostman.c b/hostman.c index 7e7026e..681776b 100644 --- a/hostman.c +++ b/hostman.c @@ -50,7 +50,9 @@ /*===== プロトタイプ =====*/ -static BOOL CALLBACK SelectHostProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +// 64ビット対応 +//static BOOL CALLBACK SelectHostProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK SelectHostProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); static LRESULT CALLBACK HostListWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); static HOSTLISTDATA *GetNextNode(HOSTLISTDATA *Pos); static int GetNodeLevel(int Num); @@ -64,15 +66,21 @@ static int DeleteChildAndNext(HOSTLISTDATA *Pos); static void SendAllHostNames(HWND hWnd, int Cur); static int IsNodeGroup(int Num); static int DispHostSetDlg(HWND hDlg); -static BOOL CALLBACK MainSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); -static BOOL CALLBACK AdvSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); -static BOOL CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); -static BOOL CALLBACK DialupSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); -static BOOL CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +// 64ビット対応 +//static BOOL CALLBACK MainSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +//static BOOL CALLBACK AdvSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +//static BOOL CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +//static BOOL CALLBACK DialupSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +//static BOOL CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK MainSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK AdvSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK DialupSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); // 暗号化通信対応 -static BOOL CALLBACK CryptSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK CryptSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); // 同時接続対応 -static BOOL CALLBACK Adv3SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK Adv3SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); /*===== 外部参照 =====*/ @@ -119,7 +127,7 @@ int SelectHost(int Type) /* ホスト設定を保存 */ SetNodeLevelAll(); - SaveRegistory(); + SaveRegistry(); return(Sts); } @@ -137,7 +145,9 @@ int SelectHost(int Type) * BOOL TRUE/FALSE *----------------------------------------------------------------------------*/ -static BOOL CALLBACK SelectHostProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +// 64ビット対応 +//static BOOL CALLBACK SelectHostProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK SelectHostProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { static DIALOGSIZE DlgSize = { { HOST_NEW, HOST_FOLDER, HOST_SET, HOST_COPY, HOST_DEL, HOST_DOWN, HOST_UP, IDHELP, HOST_SIZEGRIP, -1 }, @@ -163,7 +173,9 @@ static BOOL CALLBACK SelectHostProc(HWND hDlg, UINT message, WPARAM wParam, LPAR { case WM_INITDIALOG : /* TreeViewでのダブルクリックをつかまえるため */ - HostListProcPtr = (WNDPROC)SetWindowLong(GetDlgItem(hDlg, HOST_LIST), GWL_WNDPROC, (LONG)HostListWndProc); + // 64ビット対応 +// HostListProcPtr = (WNDPROC)SetWindowLong(GetDlgItem(hDlg, HOST_LIST), GWL_WNDPROC, (LONG)HostListWndProc); + HostListProcPtr = (WNDPROC)SetWindowLongPtr(GetDlgItem(hDlg, HOST_LIST), GWLP_WNDPROC, (LONG_PTR)HostListWndProc); // SetClassLong(hDlg, GCL_HICON, (LONG)LoadIcon(GetFtpInst(), MAKEINTRESOURCE(ffftp))); @@ -307,8 +319,11 @@ static BOOL CALLBACK SelectHostProc(HWND hDlg, UINT message, WPARAM wParam, LPAR CurrentHost = Item.lParam; Level1 = IsNodeGroup(CurrentHost); - if(((Level1 == YES) && (DialogBox(GetFtpInst(), MAKEINTRESOURCE(groupdel_dlg), GetMainHwnd(), ExeEscDialogProc) == YES)) || - ((Level1 == NO) && (DialogBox(GetFtpInst(), MAKEINTRESOURCE(hostdel_dlg), GetMainHwnd(), ExeEscDialogProc) == YES))) + // バグ修正 +// if(((Level1 == YES) && (DialogBox(GetFtpInst(), MAKEINTRESOURCE(groupdel_dlg), GetMainHwnd(), ExeEscDialogProc) == YES)) || +// ((Level1 == NO) && (DialogBox(GetFtpInst(), MAKEINTRESOURCE(hostdel_dlg), GetMainHwnd(), ExeEscDialogProc) == YES))) + if(((Level1 == YES) && (DialogBox(GetFtpInst(), MAKEINTRESOURCE(groupdel_dlg), hDlg, ExeEscDialogProc) == YES)) || + ((Level1 == NO) && (DialogBox(GetFtpInst(), MAKEINTRESOURCE(hostdel_dlg), hDlg, ExeEscDialogProc) == YES))) { DelHostFromList(CurrentHost); if(CurrentHost >= Hosts) @@ -1042,7 +1057,12 @@ int CopyHostFromListInConnect(int Num, HOSTDATA *Set) // MLSD対応 Set->UseMLSD = Pos->Set.UseMLSD; // IPv6対応 - Set->UseIPv6 = Pos->Set.UseIPv6; + Set->NetType = Pos->Set.NetType; + // 自動切断対策 + Set->NoopInterval = Pos->Set.NoopInterval; + // 再転送対応 + Set->TransferErrorMode = Pos->Set.TransferErrorMode; + Set->TransferErrorNotify = Pos->Set.TransferErrorNotify; Sts = FFFTP_SUCCESS; } return(Sts); @@ -1327,13 +1347,19 @@ void CopyDefaultHost(HOSTDATA *Set) strcpy(Set->PrivateKey, ""); // 同時接続対応 Set->MaxThreadCount = 1; - Set->ReuseCmdSkt = NO; + Set->ReuseCmdSkt = YES; + Set->NoDisplayUI = NO; // MLSD対応 Set->Feature = 0; Set->UseMLSD = YES; // IPv6対応 - Set->InetFamily = AF_UNSPEC; - Set->UseIPv6 = YES; + Set->NetType = NTYPE_AUTO; + Set->CurNetType = NTYPE_AUTO; + // 自動切断対策 + Set->NoopInterval = 0; + // 再転送対応 + Set->TransferErrorMode = EXIST_OVW; + Set->TransferErrorNotify = YES; return; } @@ -1657,15 +1683,21 @@ static int DispHostSetDlg(HWND hDlg) * BOOL TRUE/FALSE *----------------------------------------------------------------------------*/ -static BOOL CALLBACK MainSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +// 64ビット対応 +//static BOOL CALLBACK MainSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK MainSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) { - long wStyle; + // 64ビット対応 +// long wStyle; + LONG_PTR wStyle; char Tmp[FMAX_PATH+1]; NMHDR *pnmhdr; switch (iMessage) { case WM_INITDIALOG : + // プロセス保護 + ProtectAllEditControls(hDlg); SendDlgItemMessage(hDlg, HSET_HOST, EM_LIMITTEXT, HOST_NAME_LEN, 0); SendDlgItemMessage(hDlg, HSET_ADRS, EM_LIMITTEXT, HOST_ADRS_LEN, 0); SendDlgItemMessage(hDlg, HSET_USER, EM_LIMITTEXT, USER_NAME_LEN, 0); @@ -1737,17 +1769,25 @@ static BOOL CALLBACK MainSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP if(SendDlgItemMessage(hDlg, HSET_ANONYMOUS, BM_GETCHECK, 0, 0) == 1) { SendDlgItemMessage(hDlg, HSET_USER, WM_SETTEXT, 0, (LPARAM)"anonymous"); - wStyle = GetWindowLong(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE); + // 64ビット対応 +// wStyle = GetWindowLong(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE); + wStyle = GetWindowLongPtr(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE); wStyle &= ~ES_PASSWORD; - SetWindowLong(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE, wStyle); + // 64ビット対応 +// SetWindowLong(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE, wStyle); + SetWindowLongPtr(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE, wStyle); SendDlgItemMessage(hDlg, HSET_PASS, WM_SETTEXT, 0, (LPARAM)UserMailAdrs); } else { SendDlgItemMessage(hDlg, HSET_USER, WM_SETTEXT, 0, (LPARAM)""); - wStyle = GetWindowLong(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE); + // 64ビット対応 +// wStyle = GetWindowLong(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE); + wStyle = GetWindowLongPtr(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE); wStyle |= ES_PASSWORD; - SetWindowLong(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE, wStyle); + // 64ビット対応 +// SetWindowLong(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE, wStyle); + SetWindowLongPtr(GetDlgItem(hDlg, HSET_PASS), GWL_STYLE, wStyle); SendDlgItemMessage(hDlg, HSET_PASS, WM_SETTEXT, 0, (LPARAM)""); } break; @@ -1770,7 +1810,9 @@ static BOOL CALLBACK MainSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP * BOOL TRUE/FALSE *----------------------------------------------------------------------------*/ -static BOOL CALLBACK AdvSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +// 64ビット対応 +//static BOOL CALLBACK AdvSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK AdvSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) { NMHDR *pnmhdr; char Tmp[20]; @@ -1807,6 +1849,11 @@ static BOOL CALLBACK AdvSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPA SendDlgItemMessage(hDlg, HSET_SECURITY, CB_SETCURSEL, TmpHost.Security, 0); SendDlgItemMessage(hDlg, HSET_INITCMD, EM_LIMITTEXT, INITCMD_LEN, 0); SendDlgItemMessage(hDlg, HSET_INITCMD, WM_SETTEXT, 0, (LPARAM)TmpHost.InitCmd); + // IPv6対応 + SendDlgItemMessage(hDlg, HSET_NETTYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN332); + SendDlgItemMessage(hDlg, HSET_NETTYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN333); + SendDlgItemMessage(hDlg, HSET_NETTYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN334); + SendDlgItemMessage(hDlg, HSET_NETTYPE, CB_SETCURSEL, TmpHost.NetType, 0); return(TRUE); case WM_NOTIFY: @@ -1823,6 +1870,8 @@ static BOOL CALLBACK AdvSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPA TmpHost.TimeZone = SendDlgItemMessage(hDlg, HSET_TIMEZONE, CB_GETCURSEL, 0, 0) - 12; TmpHost.Security = SendDlgItemMessage(hDlg, HSET_SECURITY, CB_GETCURSEL, 0, 0); SendDlgItemMessage(hDlg, HSET_INITCMD, WM_GETTEXT, INITCMD_LEN+1, (LPARAM)TmpHost.InitCmd); + // IPv6対応 + TmpHost.NetType = SendDlgItemMessage(hDlg, HSET_NETTYPE, CB_GETCURSEL, 0, 0); Apply = YES; break; @@ -1861,7 +1910,9 @@ static BOOL CALLBACK AdvSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPA * BOOL TRUE/FALSE *----------------------------------------------------------------------------*/ -static BOOL CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +// 64ビット対応 +//static BOOL CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) { NMHDR *pnmhdr; @@ -1964,7 +2015,9 @@ static BOOL CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP * BOOL TRUE/FALSE *----------------------------------------------------------------------------*/ -static BOOL CALLBACK DialupSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +// 64ビット対応 +//static BOOL CALLBACK DialupSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK DialupSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) { NMHDR *pnmhdr; @@ -2051,7 +2104,9 @@ static BOOL CALLBACK DialupSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, * BOOL TRUE/FALSE *----------------------------------------------------------------------------*/ -static BOOL CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +// 64ビット対応 +//static BOOL CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) { NMHDR *pnmhdr; int Num; @@ -2066,6 +2121,10 @@ static BOOL CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP SendDlgItemMessage(hDlg, HSET_LISTCMD, BM_SETCHECK, TmpHost.ListCmdOnly, 0); if(TmpHost.ListCmdOnly == YES) EnableWindow(GetDlgItem(hDlg, HSET_NLST_R), FALSE); + // MLSD対応 + else + EnableWindow(GetDlgItem(hDlg, HSET_MLSDCMD), FALSE); + SendDlgItemMessage(hDlg, HSET_MLSDCMD, BM_SETCHECK, TmpHost.UseMLSD, 0); SendDlgItemMessage(hDlg, HSET_NLST_R, BM_SETCHECK, TmpHost.UseNLST_R, 0); SendDlgItemMessage(hDlg, HSET_FULLPATH, BM_SETCHECK, TmpHost.NoFullPath, 0); SendDlgItemMessage(hDlg, HSET_HOSTTYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN139); @@ -2076,8 +2135,15 @@ static BOOL CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP SendDlgItemMessage(hDlg, HSET_HOSTTYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN144); SendDlgItemMessage(hDlg, HSET_HOSTTYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN289); SendDlgItemMessage(hDlg, HSET_HOSTTYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN295); +#if defined(HAVE_TANDEM) + SendDlgItemMessage(hDlg, HSET_HOSTTYPE, CB_ADDSTRING, 0, (LPARAM)MSGJPN2000); +#endif SendDlgItemMessage(hDlg, HSET_HOSTTYPE, CB_SETCURSEL, TmpHost.HostType, 0); +#if defined(HAVE_TANDEM) + if(TmpHost.HostType == 2 || TmpHost.HostType == HTYPE_TANDEM) /* VAX or Tandem */ +#else if(TmpHost.HostType == 2) +#endif { EnableWindow(GetDlgItem(hDlg, HSET_NLST_R), FALSE); EnableWindow(GetDlgItem(hDlg, HSET_LISTCMD), FALSE); @@ -2093,6 +2159,8 @@ static BOOL CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP SendDlgItemMessage(hDlg, HSET_CHMOD_CMD, WM_GETTEXT, CHMOD_CMD_LEN+1, (LPARAM)TmpHost.ChmodCmd); SendDlgItemMessage(hDlg, HSET_LS_FNAME, WM_GETTEXT, NLST_NAME_LEN+1, (LPARAM)TmpHost.LsName); TmpHost.ListCmdOnly = SendDlgItemMessage(hDlg, HSET_LISTCMD, BM_GETCHECK, 0, 0); + // MLSD対応 + TmpHost.UseMLSD = SendDlgItemMessage(hDlg, HSET_MLSDCMD, BM_GETCHECK, 0, 0); TmpHost.UseNLST_R = SendDlgItemMessage(hDlg, HSET_NLST_R, BM_GETCHECK, 0, 0); TmpHost.NoFullPath = SendDlgItemMessage(hDlg, HSET_FULLPATH, BM_GETCHECK, 0, 0); TmpHost.HostType = SendDlgItemMessage(hDlg, HSET_HOSTTYPE, CB_GETCURSEL, 0, 0); @@ -2121,9 +2189,19 @@ static BOOL CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP case HSET_LISTCMD : if(SendDlgItemMessage(hDlg, HSET_LISTCMD, BM_GETCHECK, 0, 0) == 0) + // MLSD対応 +// EnableWindow(GetDlgItem(hDlg, HSET_NLST_R), TRUE); + { + EnableWindow(GetDlgItem(hDlg, HSET_MLSDCMD), FALSE); EnableWindow(GetDlgItem(hDlg, HSET_NLST_R), TRUE); + } else + // MLSD対応 +// EnableWindow(GetDlgItem(hDlg, HSET_NLST_R), FALSE); + { + EnableWindow(GetDlgItem(hDlg, HSET_MLSDCMD), TRUE); EnableWindow(GetDlgItem(hDlg, HSET_NLST_R), FALSE); + } break; case HSET_HOSTTYPE : @@ -2134,12 +2212,34 @@ static BOOL CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP EnableWindow(GetDlgItem(hDlg, HSET_LISTCMD), FALSE); EnableWindow(GetDlgItem(hDlg, HSET_FULLPATH), FALSE); } +#if defined(HAVE_TANDEM) + else if(Num == HTYPE_TANDEM) /* Tandem */ + { + /* Tandem を選択すると自動的に LIST にチェックをいれる */ + SendDlgItemMessage(hDlg, HSET_LISTCMD, BM_SETCHECK, 1, 0); + EnableWindow(GetDlgItem(hDlg, HSET_NLST_R), FALSE); + EnableWindow(GetDlgItem(hDlg, HSET_LISTCMD), FALSE); + EnableWindow(GetDlgItem(hDlg, HSET_FULLPATH), FALSE); + } + else + { + if(SendDlgItemMessage(hDlg, HSET_LISTCMD, BM_GETCHECK, 0, 0) == 0) { + EnableWindow(GetDlgItem(hDlg, HSET_NLST_R), TRUE); + EnableWindow(GetDlgItem(hDlg, HSET_LISTCMD), TRUE); + } else { + EnableWindow(GetDlgItem(hDlg, HSET_NLST_R), FALSE); + EnableWindow(GetDlgItem(hDlg, HSET_LISTCMD), TRUE); + } + EnableWindow(GetDlgItem(hDlg, HSET_FULLPATH), TRUE); + } +#else else { EnableWindow(GetDlgItem(hDlg, HSET_NLST_R), TRUE); EnableWindow(GetDlgItem(hDlg, HSET_LISTCMD), TRUE); EnableWindow(GetDlgItem(hDlg, HSET_FULLPATH), TRUE); } +#endif break; } return(TRUE); @@ -2149,7 +2249,7 @@ static BOOL CALLBACK Adv2SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP // 暗号化通信対応 -static BOOL CALLBACK CryptSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK CryptSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) { NMHDR *pnmhdr; // int Num; @@ -2170,9 +2270,6 @@ static BOOL CALLBACK CryptSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, L SendDlgItemMessage(hDlg, HSET_FTPIS, BM_SETCHECK, BST_UNCHECKED, 0); EnableWindow(GetDlgItem(hDlg, HSET_FTPIS), FALSE); } - SendDlgItemMessage(hDlg, HSET_SFTP, BM_SETCHECK, TmpHost.UseSFTP, 0); - SendDlgItemMessage(hDlg, HSET_PRIVATE_KEY, WM_SETTEXT, 0, (LPARAM)TmpHost.PrivateKey); - // TODO: SFTP対応 SendDlgItemMessage(hDlg, HSET_SFTP, BM_SETCHECK, BST_UNCHECKED, 0); EnableWindow(GetDlgItem(hDlg, HSET_SFTP), FALSE); EnableWindow(GetDlgItem(hDlg, PKEY_FILE_BR), FALSE); @@ -2190,9 +2287,6 @@ static BOOL CALLBACK CryptSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, L TmpHost.UseFTPES = SendDlgItemMessage(hDlg, HSET_FTPES, BM_GETCHECK, 0, 0); TmpHost.UseFTPIS = SendDlgItemMessage(hDlg, HSET_FTPIS, BM_GETCHECK, 0, 0); } - // TODO: SFTP対応 -// TmpHost.UseSFTP = SendDlgItemMessage(hDlg, HSET_SFTP, BM_GETCHECK, 0, 0); - SendDlgItemMessage(hDlg, HSET_PRIVATE_KEY, WM_GETTEXT, PRIVATE_KEY_LEN+1, (LPARAM)TmpHost.PrivateKey); Apply = YES; break; @@ -2209,11 +2303,22 @@ static BOOL CALLBACK CryptSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, L } // 同時接続対応 -static BOOL CALLBACK Adv3SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK Adv3SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam) { NMHDR *pnmhdr; // int Num; + // UTF-8対応 + static const RADIOBUTTON KanjiButton[] = { + { HSET_NO_CNV, KANJI_NOCNV }, + { HSET_SJIS_CNV, KANJI_SJIS }, + { HSET_JIS_CNV, KANJI_JIS }, + { HSET_EUC_CNV, KANJI_EUC }, + { HSET_UTF8N_CNV, KANJI_UTF8N }, + { HSET_UTF8BOM_CNV, KANJI_UTF8BOM } + }; + #define KANJIBUTTONS (sizeof(KanjiButton)/sizeof(RADIOBUTTON)) + switch (iMessage) { case WM_INITDIALOG : @@ -2221,6 +2326,23 @@ static BOOL CALLBACK Adv3SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP SetDecimalText(hDlg, HSET_THREAD_COUNT, TmpHost.MaxThreadCount); SendDlgItemMessage(hDlg, HSET_THREAD_COUNT_SPN, UDM_SETRANGE, 0, (LPARAM)MAKELONG(MAX_DATA_CONNECTION, 1)); SendDlgItemMessage(hDlg, HSET_REUSE_SOCKET, BM_SETCHECK, TmpHost.ReuseCmdSkt, 0); + SendDlgItemMessage(hDlg, HSET_NOOP_INTERVAL, EM_LIMITTEXT, (WPARAM)3, 0); + SetDecimalText(hDlg, HSET_NOOP_INTERVAL, TmpHost.NoopInterval); + SendDlgItemMessage(hDlg, HSET_NOOP_INTERVAL_SPN, UDM_SETRANGE, 0, (LPARAM)MAKELONG(300, 0)); + SendDlgItemMessage(hDlg, HSET_ERROR_MODE, CB_ADDSTRING, 0, (LPARAM)MSGJPN335); + SendDlgItemMessage(hDlg, HSET_ERROR_MODE, CB_ADDSTRING, 0, (LPARAM)MSGJPN336); + SendDlgItemMessage(hDlg, HSET_ERROR_MODE, CB_ADDSTRING, 0, (LPARAM)MSGJPN337); + SendDlgItemMessage(hDlg, HSET_ERROR_MODE, CB_ADDSTRING, 0, (LPARAM)MSGJPN338); + if(TmpHost.TransferErrorNotify == YES) + SendDlgItemMessage(hDlg, HSET_ERROR_MODE, CB_SETCURSEL, 0, 0); + else if(TmpHost.TransferErrorMode == EXIST_OVW) + SendDlgItemMessage(hDlg, HSET_ERROR_MODE, CB_SETCURSEL, 1, 0); + else if(TmpHost.TransferErrorMode == EXIST_RESUME) + SendDlgItemMessage(hDlg, HSET_ERROR_MODE, CB_SETCURSEL, 2, 0); + else if(TmpHost.TransferErrorMode == EXIST_IGNORE) + SendDlgItemMessage(hDlg, HSET_ERROR_MODE, CB_SETCURSEL, 3, 0); + else + SendDlgItemMessage(hDlg, HSET_ERROR_MODE, CB_SETCURSEL, 0, 0); return(TRUE); case WM_NOTIFY: @@ -2231,6 +2353,27 @@ static BOOL CALLBACK Adv3SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP TmpHost.MaxThreadCount = GetDecimalText(hDlg, HSET_THREAD_COUNT); CheckRange2(&TmpHost.MaxThreadCount, MAX_DATA_CONNECTION, 1); TmpHost.ReuseCmdSkt = SendDlgItemMessage(hDlg, HSET_REUSE_SOCKET, BM_GETCHECK, 0, 0); + TmpHost.NoopInterval = GetDecimalText(hDlg, HSET_NOOP_INTERVAL); + CheckRange2(&TmpHost.NoopInterval, 300, 0); + switch(SendDlgItemMessage(hDlg, HSET_ERROR_MODE, CB_GETCURSEL, 0, 0)) + { + case 0: + TmpHost.TransferErrorMode = EXIST_OVW; + TmpHost.TransferErrorNotify = YES; + break; + case 1: + TmpHost.TransferErrorMode = EXIST_OVW; + TmpHost.TransferErrorNotify = NO; + break; + case 2: + TmpHost.TransferErrorMode = EXIST_RESUME; + TmpHost.TransferErrorNotify = NO; + break; + case 3: + TmpHost.TransferErrorMode = EXIST_IGNORE; + TmpHost.TransferErrorNotify = NO; + break; + } Apply = YES; break; @@ -2246,3 +2389,23 @@ static BOOL CALLBACK Adv3SettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP return(FALSE); } +// 暗号化通信対応 +// ホストの暗号化設定を更新 +int SetHostExcryption(int Num, int UseNoEncryption, int UseFTPES, int UseFTPIS, int UseSFTP) +{ + int Sts; + HOSTLISTDATA *Pos; + + Sts = FFFTP_FAIL; + if((Num >= 0) && (Num < Hosts)) + { + Pos = GetNodeByNum(Num); + Pos->Set.UseNoEncryption = UseNoEncryption; + Pos->Set.UseFTPES = UseFTPES; + Pos->Set.UseFTPIS = UseFTPIS; + Pos->Set.UseSFTP = UseSFTP; + Sts = FFFTP_SUCCESS; + } + return(Sts); +} +