CONTROL "EUC",TRMODE4_EUC_CNV,"Button",BS_AUTORADIOBUTTON,12,45,41,10\r
CONTROL "UTF-8",TRMODE4_UTF8N_CNV,"Button",BS_AUTORADIOBUTTON,12,57,41,10\r
CONTROL "UTF-8 BOM",TRMODE4_UTF8BOM_CNV,"Button",BS_AUTORADIOBUTTON,12,69,81,10\r
+ CONTROL "\83C\83\93\83^\81[\83l\83b\83g\82©\82ç\93ü\8eè\82µ\82½\82à\82Ì\82Æ\82µ\82Ä\83t\83@\83C\83\8b\82É\8fî\95ñ\82ð\95t\89Á\82·\82é(&I)",TRMODE4_MARK_INTERNET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,96,196,10\r
END\r
\r
opt_disp2_dlg DIALOG 0, 0, 211, 155\r
#define TRMODE_LISTERROR 1228\r
#define MIRROR_NO_TRANSFER 1229\r
#define HSET_NO_PASV_ADRS 1230\r
+#define TRMODE4_MARK_INTERNET 1231\r
#define MENU_END 40001\r
#define MENU_EXIT 40001\r
#define MENU_CONNECT 40003\r
#ifndef APSTUDIO_READONLY_SYMBOLS\r
#define _APS_NEXT_RESOURCE_VALUE 200\r
#define _APS_NEXT_COMMAND_VALUE 40183\r
-#define _APS_NEXT_CONTROL_VALUE 1231\r
+#define _APS_NEXT_CONTROL_VALUE 1232\r
#define _APS_NEXT_SYMED_VALUE 101\r
#endif\r
#endif\r
CONTROL "EUC",TRMODE4_EUC_CNV,"Button",BS_AUTORADIOBUTTON,12,45,41,10\r
CONTROL "UTF-8",TRMODE4_UTF8N_CNV,"Button",BS_AUTORADIOBUTTON,12,57,41,10\r
CONTROL "UTF-8 BOM",TRMODE4_UTF8BOM_CNV,"Button",BS_AUTORADIOBUTTON,12,69,81,10\r
+ CONTROL "Add information to files as obtained from the &Internet",TRMODE4_MARK_INTERNET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,96,196,10\r
END\r
\r
opt_disp2_dlg DIALOG 0, 0, 211, 155\r
#define TRMODE_LISTERROR 1228\r
#define MIRROR_NO_TRANSFER 1229\r
#define HSET_NO_PASV_ADRS 1230\r
+#define TRMODE4_MARK_INTERNET 1231\r
#define MENU_END 40001\r
#define MENU_EXIT 40001\r
#define MENU_CONNECT 40003\r
#ifndef APSTUDIO_READONLY_SYMBOLS\r
#define _APS_NEXT_RESOURCE_VALUE 200\r
#define _APS_NEXT_COMMAND_VALUE 40183\r
-#define _APS_NEXT_CONTROL_VALUE 1231\r
+#define _APS_NEXT_CONTROL_VALUE 1232\r
#define _APS_NEXT_SYMED_VALUE 101\r
#endif\r
#endif\r
// 同時接続対応\r
#define WM_RECONNECTSOCKET (WM_USER+11)\r
\r
+// ゾーンID設定追加\r
+#define WM_MARKFILEASDOWNLOADEDFROMINTERNET (WM_USER+12)\r
+\r
/*===== ホスト番号 =====*/\r
/* ホスト番号は 0~ の値を取る */\r
\r
int Port;\r
} REMOVEPORTMAPPINGDATA;\r
\r
+// ゾーンID設定追加\r
+typedef struct\r
+{\r
+ int r;\r
+ HANDLE h;\r
+ char* Fname;\r
+} MARKFILEASDOWNLOADEDFROMINTERNETDATA;\r
+\r
/*=================================================\r
* プロトタイプ\r
*=================================================*/\r
LONGLONG AskTransferSizeLeft(void);\r
LONGLONG AskTransferSizeTotal(void);\r
int AskTransferErrorDisplay(void);\r
+// ゾーンID設定追加\r
+int LoadZoneID();\r
+void FreeZoneID();\r
+int IsZoneIDLoaded();\r
+int MarkFileAsDownloadedFromInternet(char* Fname);\r
\r
/*===== codecnv.c =====*/\r
\r
// ファイル一覧バグ修正\r
extern int AbortOnListError;\r
// ミラーリング設定追加\r
-extern int MirrorNoTransferContents; \r
+extern int MirrorNoTransferContents;\r
// タイムスタンプのバグ修正\r
extern int DispTimeSeconds;\r
\r
#include <string.h>\r
#include <mbstring.h>\r
#include <time.h>\r
+// ゾーンID設定追加\r
+#undef _WIN32_IE\r
+#define _WIN32_IE _WIN32_IE_IE60SP2\r
// IPv6対応\r
//#include <winsock.h>\r
#include <winsock2.h>\r
static LONGLONG TransferSizeLeft = 0;\r
static LONGLONG TransferSizeTotal = 0;\r
static int TransferErrorDisplay = 0;\r
+// ゾーンID設定追加\r
+IZoneIdentifier* pZoneIdentifier;\r
+IPersistFile* pPersistFile;\r
\r
/*===== 外部参照 =====*/\r
\r
extern int SendQuit;\r
// 自動切断対策\r
extern time_t LastDataConnectionTime;\r
+// ゾーンID設定追加\r
+extern int MarkAsInternet;\r
\r
\r
/*----- ファイル転送スレッドを起動する ----------------------------------------\r
// ミラーリング設定追加\r
if(Pos->NoTransfer == NO)\r
{\r
- Sts = DoDownload(TrnSkt, Pos, NO, &Canceled[Pos->ThreadCount]) / 100;\r
- if(Sts != FTP_COMPLETE)\r
- LastError = YES;\r
+ Sts = DoDownload(TrnSkt, Pos, NO, &Canceled[Pos->ThreadCount]) / 100;\r
+ if(Sts != FTP_COMPLETE)\r
+ LastError = YES;\r
+ // ゾーンID設定追加\r
+ if(MarkAsInternet == YES && IsZoneIDLoaded() == YES)\r
+ MarkFileAsDownloadedFromInternet(Pos->LocalFile);\r
}\r
\r
// ミラーリング設定追加\r
// ミラーリング設定追加\r
if(Pos->NoTransfer == NO)\r
{\r
- Sts = DoUpload(TrnSkt, Pos) / 100;\r
- if(Sts != FTP_COMPLETE)\r
- LastError = YES;\r
+ Sts = DoUpload(TrnSkt, Pos) / 100;\r
+ if(Sts != FTP_COMPLETE)\r
+ LastError = YES;\r
}\r
\r
// ホスト側の日時設定\r
return(TransferErrorDisplay);\r
}\r
\r
+// ゾーンID設定追加\r
+int LoadZoneID()\r
+{\r
+ int Sts;\r
+ Sts = FFFTP_FAIL;\r
+ if(IsMainThread())\r
+ {\r
+ if(CoCreateInstance(&CLSID_PersistentZoneIdentifier, NULL, CLSCTX_ALL, &IID_IZoneIdentifier, (void**)&pZoneIdentifier) == S_OK)\r
+ {\r
+ if(pZoneIdentifier->lpVtbl->SetId(pZoneIdentifier, URLZONE_INTERNET) == S_OK)\r
+ {\r
+ if(pZoneIdentifier->lpVtbl->QueryInterface(pZoneIdentifier, &IID_IPersistFile, (void**)&pPersistFile) == S_OK)\r
+ Sts = FFFTP_SUCCESS;\r
+ }\r
+ }\r
+ }\r
+ return Sts;\r
+}\r
+\r
+void FreeZoneID()\r
+{\r
+ if(IsMainThread())\r
+ {\r
+ if(pPersistFile != NULL)\r
+ pPersistFile->lpVtbl->Release(pPersistFile);\r
+ pPersistFile = NULL;\r
+ if(pZoneIdentifier != NULL)\r
+ pZoneIdentifier->lpVtbl->Release(pZoneIdentifier);\r
+ pZoneIdentifier = NULL;\r
+ }\r
+}\r
+\r
+int IsZoneIDLoaded()\r
+{\r
+ int Sts;\r
+ Sts = NO;\r
+ if(pZoneIdentifier != NULL && pPersistFile != NULL)\r
+ Sts = YES;\r
+ return Sts;\r
+}\r
+\r
+int MarkFileAsDownloadedFromInternet(char* Fname)\r
+{\r
+ int Sts;\r
+ WCHAR Tmp1[FMAX_PATH+1];\r
+ BSTR Tmp2;\r
+ MARKFILEASDOWNLOADEDFROMINTERNETDATA Data;\r
+ Sts = FFFTP_FAIL;\r
+ if(IsMainThread())\r
+ {\r
+ MtoW(Tmp1, FMAX_PATH, Fname, -1);\r
+ if((Tmp2 = SysAllocString(Tmp1)) != NULL)\r
+ {\r
+ if(pPersistFile->lpVtbl->Save(pPersistFile, Tmp2, FALSE) == S_OK)\r
+ Sts = FFFTP_SUCCESS;\r
+ SysFreeString(Tmp2);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ if(Data.h = CreateEvent(NULL, TRUE, FALSE, NULL))\r
+ {\r
+ Data.Fname = Fname;\r
+ if(PostMessage(GetMainHwnd(), WM_MARKFILEASDOWNLOADEDFROMINTERNET, 0, (LPARAM)&Data))\r
+ {\r
+ if(WaitForSingleObject(Data.h, INFINITE) == WAIT_OBJECT_0)\r
+ Sts = Data.r;\r
+ }\r
+ CloseHandle(Data.h);\r
+ }\r
+ }\r
+ return Sts;\r
+}\r
+\r
int MirrorNoTransferContents = NO; \r
// FireWall設定追加\r
int FwallNoSaveUser = NO; \r
+// ゾーンID設定追加\r
+int MarkAsInternet = NO; \r
\r
\r
\r
LoadUPnP();\r
// タスクバー進捗表示\r
LoadTaskbarList3();\r
+ // ゾーンID設定追加\r
+ LoadZoneID();\r
\r
// UTF-8対応\r
LoadUnicodeNormalizationDll();\r
#ifdef USE_OPENSSL\r
FreeOpenSSL();\r
#endif\r
+ // ゾーンID設定追加\r
+ FreeZoneID();\r
// タスクバー進捗表示\r
FreeTaskbarList3();\r
// UPnP対応\r
ReconnectProc();\r
break;\r
\r
+ // ゾーンID設定追加\r
+ case WM_MARKFILEASDOWNLOADEDFROMINTERNET :\r
+ ((MARKFILEASDOWNLOADEDFROMINTERNETDATA*)lParam)->r = MarkFileAsDownloadedFromInternet(((MARKFILEASDOWNLOADEDFROMINTERNETDATA*)lParam)->Fname);\r
+ SetEvent(((MARKFILEASDOWNLOADEDFROMINTERNETDATA*)lParam)->h);\r
+ break;\r
+\r
case WM_PAINT :\r
BeginPaint(hWnd, (LPPAINTSTRUCT) &ps);\r
EndPaint(hWnd, (LPPAINTSTRUCT) &ps);\r
// 同時接続対応\r
CancelFlg = NO;\r
Sts = DoDownload(AskCmdCtrlSkt(), &MainTransPkt, NO, &CancelFlg);\r
+ // ゾーンID設定追加\r
+ if(MarkAsInternet == YES && IsZoneIDLoaded() == YES)\r
+ MarkFileAsDownloadedFromInternet(Remote);\r
// }\r
}\r
\r
// ファイル一覧バグ修正\r
extern int AbortOnListError;\r
// ミラーリング設定追加\r
-extern int MirrorNoTransferContents; \r
+extern int MirrorNoTransferContents;\r
// FireWall設定追加\r
-extern int FwallNoSaveUser; \r
+extern int FwallNoSaveUser;\r
+// ゾーンID設定追加\r
+extern int MarkAsInternet;\r
\r
\r
/*----- オプションのプロパティシート ------------------------------------------\r
{\r
case WM_INITDIALOG :\r
SetRadioButtonByValue(hDlg, AskLocalKanjiCode(), KanjiButton, KANJIBUTTONS);\r
+ // ゾーンID設定追加\r
+ if(IsZoneIDLoaded())\r
+ SendDlgItemMessage(hDlg, TRMODE4_MARK_INTERNET, BM_SETCHECK, MarkAsInternet, 0);\r
+ else\r
+ {\r
+ SendDlgItemMessage(hDlg, TRMODE4_MARK_INTERNET, BM_SETCHECK, BST_UNCHECKED, 0);\r
+ EnableWindow(GetDlgItem(hDlg, TRMODE4_MARK_INTERNET), FALSE);\r
+ }\r
\r
return(TRUE);\r
\r
case PSN_APPLY :\r
SetLocalKanjiCodeImm(AskRadioButtonValue(hDlg, KanjiButton, KANJIBUTTONS));\r
SaveLocalKanjiCode();\r
+ // ゾーンID設定追加\r
+ if(IsZoneIDLoaded())\r
+ MarkAsInternet = SendDlgItemMessage(hDlg, TRMODE4_MARK_INTERNET, BM_GETCHECK, 0, 0);\r
break;\r
\r
case PSN_RESET :\r
// ファイル一覧バグ修正\r
extern int AbortOnListError;\r
// ミラーリング設定追加\r
-extern int MirrorNoTransferContents; \r
+extern int MirrorNoTransferContents;\r
// FireWall設定追加\r
-extern int FwallNoSaveUser; \r
+extern int FwallNoSaveUser;\r
+// ゾーンID設定追加\r
+extern int MarkAsInternet;\r
\r
/*----- マスタパスワードの設定 ----------------------------------------------\r
*\r
WriteIntValueToReg(hKey4, "MirNoTransfer", MirrorNoTransferContents);\r
// FireWall設定追加\r
WriteIntValueToReg(hKey4, "FwallShared", FwallNoSaveUser);\r
+ // ゾーンID設定追加\r
+ WriteIntValueToReg(hKey4, "MarkDFile", MarkAsInternet);\r
}\r
CloseSubKey(hKey4);\r
}\r
ReadIntValueFromReg(hKey4, "MirNoTransfer", &MirrorNoTransferContents);\r
// FireWall設定追加\r
ReadIntValueFromReg(hKey4, "FwallShared", &FwallNoSaveUser);\r
+ // ゾーンID設定追加\r
+ ReadIntValueFromReg(hKey4, "MarkDFile", &MarkAsInternet);\r
\r
CloseSubKey(hKey4);\r
}\r