+// ポータブル版判定\r
+void CheckPortableVersion()\r
+{\r
+ HANDLE hFile;\r
+ if((hFile = CreateFile(PortableFilePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) != INVALID_HANDLE_VALUE)\r
+ {\r
+ PortableVersion = YES;\r
+ CloseHandle(hFile);\r
+ }\r
+ else\r
+ PortableVersion = NO;\r
+}\r
+\r
+int AskPortableVersion(void)\r
+{\r
+ return(PortableVersion);\r
+}\r
+\r
+// 全設定暗号化対応\r
+int Restart()\r
+{\r
+ int Sts;\r
+ char* CommandLine;\r
+ STARTUPINFO si;\r
+ PROCESS_INFORMATION pi;\r
+ Sts = FFFTP_FAIL;\r
+ if(CommandLine = (char*)malloc(sizeof(char) * (strlen(GetCommandLine()) + 1)))\r
+ {\r
+ strcpy(CommandLine, GetCommandLine());\r
+ GetStartupInfo(&si);\r
+ if(CreateProcess(NULL, CommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))\r
+ {\r
+ CloseHandle(pi.hThread);\r
+ CloseHandle(pi.hProcess);\r
+ Sts = FFFTP_SUCCESS;\r
+ }\r
+ free(CommandLine);\r
+ }\r
+ return Sts;\r
+}\r
+\r
+void Terminate()\r
+{\r
+ exit(1);\r
+}\r
+\r
+// タスクバー進捗表示\r
+int LoadTaskbarList3()\r
+{\r
+ int Sts;\r
+ Sts = FFFTP_FAIL;\r
+ if(CoCreateInstance(&CLSID_TaskbarList, NULL, CLSCTX_ALL, &IID_ITaskbarList3, (void**)&pTaskbarList3) == S_OK)\r
+ {\r
+ Sts = FFFTP_SUCCESS;\r
+ }\r
+ return Sts;\r
+}\r
+\r
+void FreeTaskbarList3()\r
+{\r
+ if(pTaskbarList3 != NULL)\r
+ pTaskbarList3->lpVtbl->Release(pTaskbarList3);\r
+ pTaskbarList3 = NULL;\r
+}\r
+\r
+int IsTaskbarList3Loaded()\r
+{\r
+ int Sts;\r
+ Sts = NO;\r
+ if(pTaskbarList3 != NULL)\r
+ Sts = YES;\r
+ return Sts;\r
+}\r
+\r
+void UpdateTaskbarProgress()\r
+{\r
+ if(AskTransferSizeTotal() > 0)\r
+ {\r
+ if(AskTransferErrorDisplay() > 0)\r
+ pTaskbarList3->lpVtbl->SetProgressState(pTaskbarList3, GetMainHwnd(), TBPF_ERROR);\r
+ else\r
+ pTaskbarList3->lpVtbl->SetProgressState(pTaskbarList3, GetMainHwnd(), TBPF_NORMAL);\r
+ pTaskbarList3->lpVtbl->SetProgressValue(pTaskbarList3, GetMainHwnd(), (ULONGLONG)(AskTransferSizeTotal() - AskTransferSizeLeft()), (ULONGLONG)AskTransferSizeTotal());\r
+ }\r
+ else\r
+ pTaskbarList3->lpVtbl->SetProgressState(pTaskbarList3, GetMainHwnd(), TBPF_NOPROGRESS);\r
+}\r
+\r
+// 高DPI対応\r
+int AskToolWinHeight(void)\r
+{\r
+ return(ToolWinHeight);\r
+}\r
+\r
+// ソフトウェア自動更新\r
+typedef struct\r
+{\r
+ int NoError;\r
+ int NoConfirm;\r
+} UPDATESOFTWAREDATA;\r
+\r
+DWORD WINAPI UpdateSoftwareThreadProc(LPVOID lpParameter)\r
+{\r
+ UPDATESOFTWAREDATA* pData;\r
+ pData = (UPDATESOFTWAREDATA*)lpParameter;\r
+ UpdateSoftware(NO, pData->NoError, pData->NoConfirm);\r
+ free(pData);\r
+ return 0;\r
+}\r
+\r
+void UpdateSoftware(int Async, int NoError, int NoConfirm)\r