OSDN Git Service

Update PEM file.
[ffftp/ffftp.git] / option.c
index ba2c340..208efcf 100644 (file)
--- a/option.c
+++ b/option.c
@@ -60,16 +60,20 @@ static INT_PTR CALLBACK UserSettingProc(HWND hDlg, UINT message, WPARAM wParam,
 static INT_PTR CALLBACK Trmode1SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK Trmode2SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK Trmode3SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
+// UTF-8対応\r
+static INT_PTR CALLBACK Trmode4SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK DefAttrDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 static void AddFnameAttrToListView(HWND hDlg, char *Fname, char *Attr);\r
 static void GetFnameAttrFromListView(HWND hDlg, char *Buf);\r
 // 64ビット対応\r
+// ファイルの属性を数字で表示\r
 //static BOOL CALLBACK MirrorSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 //static BOOL CALLBACK NotifySettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 //static BOOL CALLBACK DispSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK MirrorSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK NotifySettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
-static INT_PTR CALLBACK DispSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
+static INT_PTR CALLBACK Disp1SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
+static INT_PTR CALLBACK Disp2SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 static int SelectListFont(HWND hWnd, LOGFONT *lFont);\r
 // 64ビット対応\r
 //static BOOL CALLBACK ConnectSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
@@ -84,6 +88,8 @@ static INT_PTR CALLBACK ToolSettingProc(HWND hDlg, UINT message, WPARAM wParam,
 static INT_PTR CALLBACK SoundSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK MiscSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK SortSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
+// ソフトウェア自動更新\r
+static INT_PTR CALLBACK UpdatesSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
 // hostman.cで使用\r
 //static int GetDecimalText(HWND hDlg, int Ctrl);\r
 //static void SetDecimalText(HWND hDlg, int Ctrl, int Num);\r
@@ -132,7 +138,7 @@ extern int FwallPort;
 extern int FwallType;\r
 extern int FwallDefault;\r
 extern int FwallSecurity;\r
-extern int FwallResolv;\r
+extern int FwallResolve;\r
 extern int FwallLower;\r
 extern int FwallDelimiter;\r
 extern int PasvDefault;\r
@@ -168,8 +174,24 @@ extern int FolderAttr;
 extern int FolderAttrNum;\r
 // ファイルアイコン表示対応\r
 extern int DispFileIcon;\r
+// タイムスタンプのバグ修正\r
+extern int DispTimeSeconds;\r
+// ファイルの属性を数字で表示\r
+extern int DispPermissionsNumber;\r
 // ディレクトリ自動作成\r
 extern int MakeAllDir;\r
+// UPnP対応\r
+extern int UPnPEnabled;\r
+// 全設定暗号化対応\r
+extern int EncryptAllSettings;\r
+// ローカル側自動更新\r
+extern int AutoRefreshFileList;\r
+// 古い処理内容を消去\r
+extern int RemoveOldLog;\r
+// ソフトウェア自動更新\r
+extern int AutoCheckForUpdates;\r
+extern int AutoApplyUpdates;\r
+extern int AutoCheckForUptatesInterval;\r
 \r
 \r
 /*----- オプションのプロパティシート ------------------------------------------\r
@@ -183,7 +205,9 @@ extern int MakeAllDir;
 \r
 void SetOption(int Start)\r
 {\r
-       PROPSHEETPAGE psp[12];\r
+       // UTF-8対応\r
+//     PROPSHEETPAGE psp[12];\r
+       PROPSHEETPAGE psp[15];\r
        PROPSHEETHEADER psh;\r
 \r
        // 変数が未初期化のバグ修正\r
@@ -230,86 +254,197 @@ void SetOption(int Start)
        psp[3].lParam = 0;\r
        psp[3].pfnCallback = NULL;\r
 \r
+       // UTF-8対応\r
+//     psp[4].dwSize = sizeof(PROPSHEETPAGE);\r
+//     psp[4].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+//     psp[4].hInstance = GetFtpInst();\r
+//     psp[4].pszTemplate = MAKEINTRESOURCE(opt_mirror_dlg);\r
+//     psp[4].pszIcon = NULL;\r
+//     psp[4].pfnDlgProc = MirrorSettingProc;\r
+//     psp[4].pszTitle = MSGJPN190;\r
+//     psp[4].lParam = 0;\r
+//     psp[4].pfnCallback = NULL;\r
+\r
+//     psp[5].dwSize = sizeof(PROPSHEETPAGE);\r
+//     psp[5].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+//     psp[5].hInstance = GetFtpInst();\r
+//     psp[5].pszTemplate = MAKEINTRESOURCE(opt_notify_dlg);\r
+//     psp[5].pszIcon = NULL;\r
+//     psp[5].pfnDlgProc = NotifySettingProc;\r
+//     psp[5].pszTitle = MSGJPN191;\r
+//     psp[5].lParam = 0;\r
+//     psp[5].pfnCallback = NULL;\r
+\r
+//     psp[6].dwSize = sizeof(PROPSHEETPAGE);\r
+//     psp[6].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+//     psp[6].hInstance = GetFtpInst();\r
+//     psp[6].pszTemplate = MAKEINTRESOURCE(opt_disp_dlg);\r
+//     psp[6].pszIcon = NULL;\r
+//     psp[6].pfnDlgProc = DispSettingProc;\r
+//     psp[6].pszTitle = MSGJPN192;\r
+//     psp[6].lParam = 0;\r
+//     psp[6].pfnCallback = NULL;\r
+\r
+//     psp[7].dwSize = sizeof(PROPSHEETPAGE);\r
+//     psp[7].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+//     psp[7].hInstance = GetFtpInst();\r
+//     psp[7].pszTemplate = MAKEINTRESOURCE(opt_connect_dlg);\r
+//     psp[7].pszIcon = NULL;\r
+//     psp[7].pfnDlgProc = ConnectSettingProc;\r
+//     psp[7].pszTitle = MSGJPN193;\r
+//     psp[7].lParam = 0;\r
+//     psp[7].pfnCallback = NULL;\r
+\r
+//     psp[8].dwSize = sizeof(PROPSHEETPAGE);\r
+//     psp[8].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+//     psp[8].hInstance = GetFtpInst();\r
+//     psp[8].pszTemplate = MAKEINTRESOURCE(opt_fire_dlg);\r
+//     psp[8].pszIcon = NULL;\r
+//     psp[8].pfnDlgProc = FireSettingProc;\r
+//     psp[8].pszTitle = MSGJPN194;\r
+//     psp[8].lParam = 0;\r
+//     psp[8].pfnCallback = NULL;\r
+\r
+//     psp[9].dwSize = sizeof(PROPSHEETPAGE);\r
+//     psp[9].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+//     psp[9].hInstance = GetFtpInst();\r
+//     psp[9].pszTemplate = MAKEINTRESOURCE(opt_tool_dlg);\r
+//     psp[9].pszIcon = NULL;\r
+//     psp[9].pfnDlgProc = ToolSettingProc;\r
+//     psp[9].pszTitle = MSGJPN195;\r
+//     psp[9].lParam = 0;\r
+//     psp[9].pfnCallback = NULL;\r
+\r
+//     psp[10].dwSize = sizeof(PROPSHEETPAGE);\r
+//     psp[10].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+//     psp[10].hInstance = GetFtpInst();\r
+//     psp[10].pszTemplate = MAKEINTRESOURCE(opt_sound_dlg);\r
+//     psp[10].pszIcon = NULL;\r
+//     psp[10].pfnDlgProc = SoundSettingProc;\r
+//     psp[10].pszTitle = MSGJPN196;\r
+//     psp[10].lParam = 0;\r
+//     psp[10].pfnCallback = NULL;\r
+\r
+//     psp[11].dwSize = sizeof(PROPSHEETPAGE);\r
+//     psp[11].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+//     psp[11].hInstance = GetFtpInst();\r
+//     psp[11].pszTemplate = MAKEINTRESOURCE(opt_misc_dlg);\r
+//     psp[11].pszIcon = NULL;\r
+//     psp[11].pfnDlgProc = MiscSettingProc;\r
+//     psp[11].pszTitle = MSGJPN197;\r
+//     psp[11].lParam = 0;\r
+//     psp[11].pfnCallback = NULL;\r
+\r
        psp[4].dwSize = sizeof(PROPSHEETPAGE);\r
        psp[4].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
        psp[4].hInstance = GetFtpInst();\r
-       psp[4].pszTemplate = MAKEINTRESOURCE(opt_mirror_dlg);\r
+       psp[4].pszTemplate = MAKEINTRESOURCE(opt_trmode4_dlg);\r
        psp[4].pszIcon = NULL;\r
-       psp[4].pfnDlgProc = MirrorSettingProc;\r
-       psp[4].pszTitle = MSGJPN190;\r
+       psp[4].pfnDlgProc = Trmode4SettingProc;\r
+       psp[4].pszTitle = MSGJPN339;\r
        psp[4].lParam = 0;\r
        psp[4].pfnCallback = NULL;\r
 \r
        psp[5].dwSize = sizeof(PROPSHEETPAGE);\r
        psp[5].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
        psp[5].hInstance = GetFtpInst();\r
-       psp[5].pszTemplate = MAKEINTRESOURCE(opt_notify_dlg);\r
+       psp[5].pszTemplate = MAKEINTRESOURCE(opt_mirror_dlg);\r
        psp[5].pszIcon = NULL;\r
-       psp[5].pfnDlgProc = NotifySettingProc;\r
-       psp[5].pszTitle = MSGJPN191;\r
+       psp[5].pfnDlgProc = MirrorSettingProc;\r
+       psp[5].pszTitle = MSGJPN190;\r
        psp[5].lParam = 0;\r
        psp[5].pfnCallback = NULL;\r
 \r
        psp[6].dwSize = sizeof(PROPSHEETPAGE);\r
        psp[6].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
        psp[6].hInstance = GetFtpInst();\r
-       psp[6].pszTemplate = MAKEINTRESOURCE(opt_disp_dlg);\r
+       psp[6].pszTemplate = MAKEINTRESOURCE(opt_notify_dlg);\r
        psp[6].pszIcon = NULL;\r
-       psp[6].pfnDlgProc = DispSettingProc;\r
-       psp[6].pszTitle = MSGJPN192;\r
+       psp[6].pfnDlgProc = NotifySettingProc;\r
+       psp[6].pszTitle = MSGJPN191;\r
        psp[6].lParam = 0;\r
        psp[6].pfnCallback = NULL;\r
 \r
        psp[7].dwSize = sizeof(PROPSHEETPAGE);\r
        psp[7].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
        psp[7].hInstance = GetFtpInst();\r
-       psp[7].pszTemplate = MAKEINTRESOURCE(opt_connect_dlg);\r
+       psp[7].pszTemplate = MAKEINTRESOURCE(opt_disp1_dlg);\r
        psp[7].pszIcon = NULL;\r
-       psp[7].pfnDlgProc = ConnectSettingProc;\r
-       psp[7].pszTitle = MSGJPN193;\r
+       psp[7].pfnDlgProc = Disp1SettingProc;\r
+       psp[7].pszTitle = MSGJPN192;\r
        psp[7].lParam = 0;\r
        psp[7].pfnCallback = NULL;\r
 \r
        psp[8].dwSize = sizeof(PROPSHEETPAGE);\r
        psp[8].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
        psp[8].hInstance = GetFtpInst();\r
-       psp[8].pszTemplate = MAKEINTRESOURCE(opt_fire_dlg);\r
+       psp[8].pszTemplate = MAKEINTRESOURCE(opt_disp2_dlg);\r
        psp[8].pszIcon = NULL;\r
-       psp[8].pfnDlgProc = FireSettingProc;\r
-       psp[8].pszTitle = MSGJPN194;\r
+       psp[8].pfnDlgProc = Disp2SettingProc;\r
+       psp[8].pszTitle = MSGJPN340;\r
        psp[8].lParam = 0;\r
        psp[8].pfnCallback = NULL;\r
 \r
        psp[9].dwSize = sizeof(PROPSHEETPAGE);\r
        psp[9].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
        psp[9].hInstance = GetFtpInst();\r
-       psp[9].pszTemplate = MAKEINTRESOURCE(opt_tool_dlg);\r
+       psp[9].pszTemplate = MAKEINTRESOURCE(opt_connect_dlg);\r
        psp[9].pszIcon = NULL;\r
-       psp[9].pfnDlgProc = ToolSettingProc;\r
-       psp[9].pszTitle = MSGJPN195;\r
+       psp[9].pfnDlgProc = ConnectSettingProc;\r
+       psp[9].pszTitle = MSGJPN193;\r
        psp[9].lParam = 0;\r
        psp[9].pfnCallback = NULL;\r
 \r
        psp[10].dwSize = sizeof(PROPSHEETPAGE);\r
        psp[10].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
        psp[10].hInstance = GetFtpInst();\r
-       psp[10].pszTemplate = MAKEINTRESOURCE(opt_sound_dlg);\r
+       psp[10].pszTemplate = MAKEINTRESOURCE(opt_fire_dlg);\r
        psp[10].pszIcon = NULL;\r
-       psp[10].pfnDlgProc = SoundSettingProc;\r
-       psp[10].pszTitle = MSGJPN196;\r
+       psp[10].pfnDlgProc = FireSettingProc;\r
+       psp[10].pszTitle = MSGJPN194;\r
        psp[10].lParam = 0;\r
        psp[10].pfnCallback = NULL;\r
 \r
        psp[11].dwSize = sizeof(PROPSHEETPAGE);\r
        psp[11].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
        psp[11].hInstance = GetFtpInst();\r
-       psp[11].pszTemplate = MAKEINTRESOURCE(opt_misc_dlg);\r
+       psp[11].pszTemplate = MAKEINTRESOURCE(opt_tool_dlg);\r
        psp[11].pszIcon = NULL;\r
-       psp[11].pfnDlgProc = MiscSettingProc;\r
-       psp[11].pszTitle = MSGJPN197;\r
+       psp[11].pfnDlgProc = ToolSettingProc;\r
+       psp[11].pszTitle = MSGJPN195;\r
        psp[11].lParam = 0;\r
        psp[11].pfnCallback = NULL;\r
 \r
+       psp[12].dwSize = sizeof(PROPSHEETPAGE);\r
+       psp[12].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+       psp[12].hInstance = GetFtpInst();\r
+       psp[12].pszTemplate = MAKEINTRESOURCE(opt_sound_dlg);\r
+       psp[12].pszIcon = NULL;\r
+       psp[12].pfnDlgProc = SoundSettingProc;\r
+       psp[12].pszTitle = MSGJPN196;\r
+       psp[12].lParam = 0;\r
+       psp[12].pfnCallback = NULL;\r
+\r
+       psp[13].dwSize = sizeof(PROPSHEETPAGE);\r
+       psp[13].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+       psp[13].hInstance = GetFtpInst();\r
+       psp[13].pszTemplate = MAKEINTRESOURCE(opt_updates_dlg);\r
+       psp[13].pszIcon = NULL;\r
+       psp[13].pfnDlgProc = UpdatesSettingProc;\r
+       psp[13].pszTitle = MSGJPN360;\r
+       psp[13].lParam = 0;\r
+       psp[13].pfnCallback = NULL;\r
+\r
+       psp[14].dwSize = sizeof(PROPSHEETPAGE);\r
+       psp[14].dwFlags = PSP_USETITLE | PSP_HASHELP;\r
+       psp[14].hInstance = GetFtpInst();\r
+       psp[14].pszTemplate = MAKEINTRESOURCE(opt_misc_dlg);\r
+       psp[14].pszIcon = NULL;\r
+       psp[14].pfnDlgProc = MiscSettingProc;\r
+       psp[14].pszTitle = MSGJPN197;\r
+       psp[14].lParam = 0;\r
+       psp[14].pfnCallback = NULL;\r
+\r
        psh.dwSize = sizeof(PROPSHEETHEADER);\r
        psh.dwFlags = PSH_HASHELP | PSH_NOAPPLYNOW | PSH_PROPSHEETPAGE;\r
        psh.hwndParent = GetMainHwnd();\r
@@ -662,6 +797,49 @@ static INT_PTR CALLBACK Trmode3SettingProc(HWND hDlg, UINT message, WPARAM wPara
 }\r
 \r
 \r
+// UTF-8対応\r
+static INT_PTR CALLBACK Trmode4SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+       NMHDR *pnmhdr;\r
+\r
+       static const RADIOBUTTON KanjiButton[] = {\r
+               { TRMODE4_SJIS_CNV, KANJI_SJIS },\r
+               { TRMODE4_JIS_CNV, KANJI_JIS },\r
+               { TRMODE4_EUC_CNV, KANJI_EUC },\r
+               { TRMODE4_UTF8N_CNV, KANJI_UTF8N },\r
+               { TRMODE4_UTF8BOM_CNV, KANJI_UTF8BOM }\r
+       };\r
+       #define KANJIBUTTONS    (sizeof(KanjiButton)/sizeof(RADIOBUTTON))\r
+\r
+       switch (message)\r
+       {\r
+               case WM_INITDIALOG :\r
+                       SetRadioButtonByValue(hDlg, AskLocalKanjiCode(), KanjiButton, KANJIBUTTONS);\r
+\r
+                   return(TRUE);\r
+\r
+               case WM_NOTIFY:\r
+                       pnmhdr = (NMHDR FAR *)lParam;\r
+                       switch(pnmhdr->code)\r
+                       {\r
+                               case PSN_APPLY :\r
+                                       SetLocalKanjiCodeImm(AskRadioButtonValue(hDlg, KanjiButton, KANJIBUTTONS));\r
+                                       SaveLocalKanjiCode();\r
+                                       break;\r
+\r
+                               case PSN_RESET :\r
+                                       break;\r
+\r
+                               case PSN_HELP :\r
+                                       hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000067);\r
+                                       break;\r
+                       }\r
+                       break;\r
+       }\r
+    return(FALSE);\r
+}\r
+\r
+\r
 /*----- ファイル属性設定ウインドウのコールバック ------------------------------\r
 *\r
 *      Parameter\r
@@ -970,8 +1148,9 @@ static INT_PTR CALLBACK NotifySettingProc(HWND hDlg, UINT message, WPARAM wParam
 *----------------------------------------------------------------------------*/\r
 \r
 // 64ビット対応\r
+// ファイルの属性を数字で表示\r
 //static BOOL CALLBACK DispSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-static INT_PTR CALLBACK DispSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+static INT_PTR CALLBACK Disp1SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
 {\r
        NMHDR *pnmhdr;\r
        static LOGFONT TmpFont;\r
@@ -986,6 +1165,8 @@ static INT_PTR CALLBACK DispSettingProc(HWND hDlg, UINT message, WPARAM wParam,
                        SendDlgItemMessage(hDlg, DISP_DRIVE, BM_SETCHECK, DispDrives, 0);\r
                        // ファイルアイコン表示対応\r
                        SendDlgItemMessage(hDlg, DISP_ICON, BM_SETCHECK, DispFileIcon, 0);\r
+                       // タイムスタンプのバグ修正\r
+                       SendDlgItemMessage(hDlg, DISP_SECOND, BM_SETCHECK, DispTimeSeconds, 0);\r
                    return(TRUE);\r
 \r
                case WM_NOTIFY:\r
@@ -997,6 +1178,8 @@ static INT_PTR CALLBACK DispSettingProc(HWND hDlg, UINT message, WPARAM wParam,
                                        DispDrives = SendDlgItemMessage(hDlg, DISP_DRIVE, BM_GETCHECK, 0, 0);\r
                                        // ファイルアイコン表示対応\r
                                        DispFileIcon = SendDlgItemMessage(hDlg, DISP_ICON, BM_GETCHECK, 0, 0);\r
+                                       // タイムスタンプのバグ修正\r
+                                       DispTimeSeconds = SendDlgItemMessage(hDlg, DISP_SECOND, BM_GETCHECK, 0, 0);\r
                                        if(strlen(TmpFont.lfFaceName) > 0)\r
                                        {\r
                                                memcpy(&ListLogFont, &TmpFont, sizeof(LOGFONT));\r
@@ -1027,6 +1210,44 @@ static INT_PTR CALLBACK DispSettingProc(HWND hDlg, UINT message, WPARAM wParam,
 }\r
 \r
 \r
+// ファイルの属性を数字で表示\r
+// ローカル側自動更新\r
+static INT_PTR CALLBACK Disp2SettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+       NMHDR *pnmhdr;\r
+       static LOGFONT TmpFont;\r
+\r
+       switch (message)\r
+       {\r
+               case WM_INITDIALOG :\r
+                       SendDlgItemMessage(hDlg, DISP2_PERMIT_NUM, BM_SETCHECK, DispPermissionsNumber, 0);\r
+                       SendDlgItemMessage(hDlg, DISP2_AUTO_REFRESH, BM_SETCHECK, AutoRefreshFileList, 0);\r
+                       SendDlgItemMessage(hDlg, DISP2_REMOVE_OLD_LOG, BM_SETCHECK, RemoveOldLog, 0);\r
+                   return(TRUE);\r
+\r
+               case WM_NOTIFY:\r
+                       pnmhdr = (NMHDR FAR *)lParam;\r
+                       switch(pnmhdr->code)\r
+                       {\r
+                               case PSN_APPLY :\r
+                                       DispPermissionsNumber = SendDlgItemMessage(hDlg, DISP2_PERMIT_NUM, BM_GETCHECK, 0, 0);\r
+                                       AutoRefreshFileList = SendDlgItemMessage(hDlg, DISP2_AUTO_REFRESH, BM_GETCHECK, 0, 0);\r
+                                       RemoveOldLog = SendDlgItemMessage(hDlg, DISP2_REMOVE_OLD_LOG, BM_GETCHECK, 0, 0);\r
+                                       break;\r
+\r
+                               case PSN_RESET :\r
+                                       break;\r
+\r
+                               case PSN_HELP :\r
+                                       hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000068);\r
+                                       break;\r
+                       }\r
+                       break;\r
+       }\r
+    return(FALSE);\r
+}\r
+\r
+\r
 /*----- フォントを選ぶ --------------------------------------------------------\r
 *\r
 *      Parameter\r
@@ -1097,6 +1318,8 @@ static INT_PTR CALLBACK ConnectSettingProc(HWND hDlg, UINT message, WPARAM wPara
                        SendDlgItemMessage(hDlg, CONNECT_HIST_PASS, BM_SETCHECK, PassToHist, 0);\r
                        SendDlgItemMessage(hDlg, CONNECT_SENDQUIT, BM_SETCHECK, SendQuit, 0);\r
                        SendDlgItemMessage(hDlg, CONNECT_NORAS, BM_SETCHECK, NoRasControl, 0);\r
+                       // UPnP対応\r
+                       SendDlgItemMessage(hDlg, CONNECT_UPNP, BM_SETCHECK, UPnPEnabled, 0);\r
                    return(TRUE);\r
 \r
                case WM_NOTIFY:\r
@@ -1114,6 +1337,9 @@ static INT_PTR CALLBACK ConnectSettingProc(HWND hDlg, UINT message, WPARAM wPara
                                        PassToHist = SendDlgItemMessage(hDlg, CONNECT_HIST_PASS, BM_GETCHECK, 0, 0);\r
                                        SendQuit = SendDlgItemMessage(hDlg, CONNECT_SENDQUIT, BM_GETCHECK, 0, 0);\r
                                        NoRasControl = SendDlgItemMessage(hDlg, CONNECT_NORAS, BM_GETCHECK, 0, 0);\r
+                                       // UPnP対応\r
+                                       if(IsUPnPLoaded() == YES)\r
+                                               UPnPEnabled = SendDlgItemMessage(hDlg, CONNECT_UPNP, BM_GETCHECK, 0, 0);\r
                                        break;\r
 \r
                                case PSN_RESET :\r
@@ -1212,7 +1438,7 @@ static INT_PTR CALLBACK FireSettingProc(HWND hDlg, UINT message, WPARAM wParam,
 \r
                        SendDlgItemMessage(hDlg, FIRE_USEIT, BM_SETCHECK, FwallDefault, 0);\r
                        SendDlgItemMessage(hDlg, FIRE_PASV, BM_SETCHECK, PasvDefault, 0);\r
-                       SendDlgItemMessage(hDlg, FIRE_RESOLV, BM_SETCHECK, FwallResolv, 0);\r
+                       SendDlgItemMessage(hDlg, FIRE_RESOLV, BM_SETCHECK, FwallResolve, 0);\r
                        SendDlgItemMessage(hDlg, FIRE_LOWER, BM_SETCHECK, FwallLower, 0);\r
 \r
                        SendDlgItemMessage(hDlg, FIRE_SECURITY, CB_ADDSTRING, 0, (LPARAM)MSGJPN212);\r
@@ -1239,7 +1465,7 @@ static INT_PTR CALLBACK FireSettingProc(HWND hDlg, UINT message, WPARAM wParam,
                                        FwallDelimiter = Tmp[0];\r
                                        FwallDefault = SendDlgItemMessage(hDlg, FIRE_USEIT, BM_GETCHECK, 0, 0);\r
                                        PasvDefault = SendDlgItemMessage(hDlg, FIRE_PASV, BM_GETCHECK, 0, 0);\r
-                                       FwallResolv = SendDlgItemMessage(hDlg, FIRE_RESOLV, BM_GETCHECK, 0, 0);\r
+                                       FwallResolve = SendDlgItemMessage(hDlg, FIRE_RESOLV, BM_GETCHECK, 0, 0);\r
                                        FwallLower = SendDlgItemMessage(hDlg, FIRE_LOWER, BM_GETCHECK, 0, 0);\r
                                        FwallSecurity = SendDlgItemMessage(hDlg, FIRE_SECURITY, CB_GETCURSEL, 0, 0);\r
                                        break;\r
@@ -1481,6 +1707,11 @@ static INT_PTR CALLBACK MiscSettingProc(HWND hDlg, UINT message, WPARAM wParam,
                        SendDlgItemMessage(hDlg, MISC_WINPOS, BM_SETCHECK, SaveWinPos, 0);\r
                        SendDlgItemMessage(hDlg, MISC_DEBUG, BM_SETCHECK, DebugConsole, 0);\r
                        SendDlgItemMessage(hDlg, MISC_REGTYPE, BM_SETCHECK, RegType, 0);\r
+                       // ポータブル版判定\r
+                       if(AskForceIni() == YES)\r
+                               EnableWindow(GetDlgItem(hDlg, MISC_REGTYPE), FALSE);\r
+                       // 全設定暗号化対応\r
+                       SendDlgItemMessage(hDlg, MISC_ENCRYPT_SETTINGS, BM_SETCHECK, EncryptAllSettings, 0);\r
 \r
                        SendDlgItemMessage(hDlg, MISC_CACHE_SAVE, BM_SETCHECK, CacheSave, 0);\r
                        SendDlgItemMessage(hDlg, MISC_BUFNUM, EM_LIMITTEXT, (WPARAM)2, 0);\r
@@ -1510,7 +1741,12 @@ static INT_PTR CALLBACK MiscSettingProc(HWND hDlg, UINT message, WPARAM wParam,
                                case PSN_APPLY :\r
                                        SaveWinPos = SendDlgItemMessage(hDlg, MISC_WINPOS, BM_GETCHECK, 0, 0);\r
                                        DebugConsole = SendDlgItemMessage(hDlg, MISC_DEBUG, BM_GETCHECK, 0, 0);\r
-                                       RegType = SendDlgItemMessage(hDlg, MISC_REGTYPE, BM_GETCHECK, 0, 0);\r
+                                       // ポータブル版判定\r
+//                                     RegType = SendDlgItemMessage(hDlg, MISC_REGTYPE, BM_GETCHECK, 0, 0);\r
+                                       if(AskForceIni() == NO)\r
+                                               RegType = SendDlgItemMessage(hDlg, MISC_REGTYPE, BM_GETCHECK, 0, 0);\r
+                                       // 全設定暗号化対応\r
+                                       EncryptAllSettings = SendDlgItemMessage(hDlg, MISC_ENCRYPT_SETTINGS, BM_GETCHECK, 0, 0);\r
 \r
                                        CacheSave = SendDlgItemMessage(hDlg, MISC_CACHE_SAVE, BM_GETCHECK, 0, 0);\r
                                        CacheEntry = GetDecimalText(hDlg, MISC_BUFNUM);\r
@@ -1712,6 +1948,76 @@ static INT_PTR CALLBACK SortSettingProc(HWND hDlg, UINT message, WPARAM wParam,
 }\r
 \r
 \r
+// ソフトウェア自動更新\r
+static INT_PTR CALLBACK UpdatesSettingProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+       NMHDR *pnmhdr;\r
+\r
+       switch (message)\r
+       {\r
+               case WM_INITDIALOG :\r
+                       SendDlgItemMessage(hDlg, UPDATES_AUTO_CHECK, BM_SETCHECK, AutoCheckForUpdates, 0);\r
+                       SendDlgItemMessage(hDlg, UPDATES_AUTO_APPLY, BM_SETCHECK, AutoApplyUpdates, 0);\r
+                       SendDlgItemMessage(hDlg, UPDATES_INTERVAL, EM_LIMITTEXT, (WPARAM)3, 0);\r
+                       SetDecimalText(hDlg, UPDATES_INTERVAL, AutoCheckForUptatesInterval);\r
+                       SendDlgItemMessage(hDlg, UPDATES_INTERVAL_SPN, UDM_SETRANGE, 0, (LPARAM)MAKELONG(999, 0));\r
+                       if(AutoCheckForUpdates == YES)\r
+                       {\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), TRUE);\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), TRUE);\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), TRUE);\r
+                       }\r
+                       else\r
+                       {\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), FALSE);\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), FALSE);\r
+                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), FALSE);\r
+                       }\r
+                   return(TRUE);\r
+\r
+               case WM_NOTIFY:\r
+                       pnmhdr = (NMHDR FAR *)lParam;\r
+                       switch(pnmhdr->code)\r
+                       {\r
+                               case PSN_APPLY :\r
+                                       AutoCheckForUpdates = SendDlgItemMessage(hDlg, UPDATES_AUTO_CHECK, BM_GETCHECK, 0, 0);\r
+                                       AutoApplyUpdates = SendDlgItemMessage(hDlg, UPDATES_AUTO_APPLY, BM_GETCHECK, 0, 0);\r
+                                       AutoCheckForUptatesInterval = GetDecimalText(hDlg, UPDATES_INTERVAL);\r
+                                       CheckRange2(&AutoCheckForUptatesInterval, 999, 0);\r
+                                       break;\r
+\r
+                               case PSN_RESET :\r
+                                       break;\r
+\r
+                               case PSN_HELP :\r
+//                                     hHelpWin = HtmlHelp(NULL, AskHelpFilePath(), HH_HELP_CONTEXT, IDH_HELP_TOPIC_0000069);\r
+                                       break;\r
+                       }\r
+                       break;\r
+\r
+               case WM_COMMAND :\r
+                       switch(GET_WM_COMMAND_ID(wParam, lParam))\r
+                       {\r
+                               case UPDATES_AUTO_CHECK :\r
+                                       if(SendDlgItemMessage(hDlg, UPDATES_AUTO_CHECK, BM_GETCHECK, 0, 0) == 1)\r
+                                       {\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), TRUE);\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), TRUE);\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), TRUE);\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_AUTO_APPLY), FALSE);\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL), FALSE);\r
+                                               EnableWindow(GetDlgItem(hDlg, UPDATES_INTERVAL_SPN), FALSE);\r
+                                       }\r
+                                       break;\r
+                       }\r
+                       return(TRUE);\r
+       }\r
+    return(FALSE);\r
+}\r
+\r
 /*----- ダイアログのコントロールから10進数を取得 ----------------------------\r
 *\r
 *      Parameter\r