OSDN Git Service

Add feature to export host settings as FileZilla XML format.
[ffftp/ffftp.git] / common.h
index d1f7b5c..167d7be 100644 (file)
--- a/common.h
+++ b/common.h
@@ -30,7 +30,7 @@
 #define __COMMON_H__\r
 \r
 #include "config.h"\r
-#ifndef ENGLISH\r
+#ifndef FFFTP_ENGLISH\r
 #include "mesg-jpn.h"\r
 #else\r
 #include "mesg-eng.h"\r
@@ -70,9 +70,9 @@
 //#define VER_STR                                      "1.97b"\r
 //#define VER_NUM                                      1921            /* 設定バージョン */\r
 //#define PROGRAM_VERSION_NUM          1972            /* バージョン */\r
-#define VER_STR                                        "1.98e"\r
-#define VER_NUM                                        1985            /* 設定バージョン */\r
-#define PROGRAM_VERSION_NUM            1985            /* バージョン */\r
+#define VER_STR                                        "1.99"\r
+#define VER_NUM                                        1990            /* 設定バージョン */\r
+#define PROGRAM_VERSION_NUM            1990            /* バージョン */\r
 \r
 \r
 // SourceForge.JPによるフォーク\r
 #define EXIST_IGNORE   3               /* 無視 */\r
 #define EXIST_UNIQUE   4               /* ホストが名前を付ける */\r
 #define EXIST_ABORT            5               /* 全て中止 */\r
+// 同じ名前のファイルの処理方法追加\r
+#define EXIST_LARGE            6               /* 大きければ上書き */\r
 \r
 /*===== ファイル名の比較モード =====*/\r
 \r
 \r
 #define SELECT_ALL             0               /* 全選択 */\r
 #define SELECT_REGEXP  1               /* 検索式を入力して選択 */\r
+// ローカル側自動更新\r
+#define SELECT_LIST            2               /* リストに含まれるファイルを選択 */\r
 \r
 /*===== 検索方法 =====*/\r
 \r
 #if defined(HAVE_TANDEM)\r
 #define LIST_TANDEM            50              /* HP NonStop Server */\r
 #endif\r
+// uClinux\r
+#define LIST_UNIX_17   51              /* UNIX 17 */\r
+// Windows Server 2008 R2\r
+#define LIST_DOS_5             52              /* MS-DOS 5 */\r
 \r
 #define LIST_MELCOM            0x100   /* MELCOM80 */\r
 \r
@@ -690,6 +698,24 @@ LIST_UNIX_70
        drwxr-x--- 3 root root      4096 2011-12-06 23:39 ..\r
        -rw-r----- 1 root root       251 2011-12-06 23:39 .hoge\r
 \r
+// uClinux\r
+*LIST_UNIX_17\r
+       0          1 2 3 4   5\r
+       -------------------------------------------------------\r
+       -rw-r--r-- 1 0 0 100 services\r
+       lrwxrwxrwx 1 0 0 20 resolv.conf -> /var/run/resolv.conf\r
+       drwxr-sr-x 1 0 0 0 rc.d\r
+       -rw-r--r-- 1 0 0 290 rc\r
+       -rw-r--r-- 1 0 0 34 passwd\r
+       lrwxrwxrwx 1 0 0 18 inittab -> ../var/tmp/inittab\r
+\r
+// Windows Server 2008 R2\r
+*LIST_DOS_5\r
+       0          1       2     3\r
+       -------------------------------------------------------\r
+       02-05-2013 09:45AM <DIR> TEST\r
+       01-28-2013 03:54PM 2847 DATA.TXT\r
+\r
 *LIST_TANDEM\r
         0             1               2    3         4        5       6\r
        ---------------------------------------------------------------\r
@@ -720,6 +746,8 @@ LIST_UNIX_70
 #define KANJI_UTF8N            5               /* UTF-8 */\r
 // UTF-8対応\r
 #define KANJI_UTF8BOM          6               /* UTF-8 BOM */\r
+// UTF-8 HFS+対応\r
+#define KANJI_UTF8HFSX         7               /* UTF-8 HFS+ */\r
 \r
 #define KANJI_NOCNV            -1              /* 漢字コード変換なし */\r
 \r
@@ -783,20 +811,40 @@ LIST_UNIX_70
 \r
 /*===== コマンドラインオプション =====*/\r
 \r
-#define OPT_MIRROR             0x0001  /* ミラーリングアップロードを行う */\r
-#define OPT_FORCE              0x0002  /* ミラーリング開始の確認をしない */\r
-#define OPT_QUIT               0x0004  /* 終了後プログラム終了 */\r
-#define OPT_EUC                        0x0008  /* 漢字コードはEUC */\r
-#define OPT_JIS                        0x0010  /* 漢字コードはJIS */\r
-#define OPT_ASCII              0x0020  /* アスキー転送モード */\r
-#define OPT_BINARY             0x0040  /* バイナリ転送モード */\r
-#define OPT_AUTO               0x0080  /* 自動判別 */\r
-#define OPT_KANA               0x0100  /* 半角かなをそのまま通す */\r
-#define OPT_EUC_NAME   0x0200  /* ファイル名はEUC */\r
-#define OPT_JIS_NAME   0x0400  /* ファイル名はJIS */\r
-#define OPT_MIRRORDOWN 0x0800  /* ミラーリングダウンロードを行う */\r
-#define OPT_SAVEOFF            0x1000  /* 設定の保存を中止する */\r
-#define OPT_SAVEON             0x2000  /* 設定の保存を再開する */\r
+//#define OPT_MIRROR           0x0001  /* ミラーリングアップロードを行う */\r
+//#define OPT_FORCE            0x0002  /* ミラーリング開始の確認をしない */\r
+//#define OPT_QUIT             0x0004  /* 終了後プログラム終了 */\r
+//#define OPT_EUC                      0x0008  /* 漢字コードはEUC */\r
+//#define OPT_JIS                      0x0010  /* 漢字コードはJIS */\r
+//#define OPT_ASCII            0x0020  /* アスキー転送モード */\r
+//#define OPT_BINARY           0x0040  /* バイナリ転送モード */\r
+//#define OPT_AUTO             0x0080  /* 自動判別 */\r
+//#define OPT_KANA             0x0100  /* 半角かなをそのまま通す */\r
+//#define OPT_EUC_NAME 0x0200  /* ファイル名はEUC */\r
+//#define OPT_JIS_NAME 0x0400  /* ファイル名はJIS */\r
+//#define OPT_MIRRORDOWN       0x0800  /* ミラーリングダウンロードを行う */\r
+//#define OPT_SAVEOFF          0x1000  /* 設定の保存を中止する */\r
+//#define OPT_SAVEON           0x2000  /* 設定の保存を再開する */\r
+#define OPT_MIRROR             0x00000001      /* ミラーリングアップロードを行う */\r
+#define OPT_FORCE              0x00000002      /* ミラーリング開始の確認をしない */\r
+#define OPT_QUIT               0x00000004      /* 終了後プログラム終了 */\r
+#define OPT_EUC                        0x00000008      /* 漢字コードはEUC */\r
+#define OPT_JIS                        0x00000010      /* 漢字コードはJIS */\r
+#define OPT_ASCII              0x00000020      /* アスキー転送モード */\r
+#define OPT_BINARY             0x00000040      /* バイナリ転送モード */\r
+#define OPT_AUTO               0x00000080      /* 自動判別 */\r
+#define OPT_KANA               0x00000100      /* 半角かなをそのまま通す */\r
+#define OPT_EUC_NAME   0x00000200      /* ファイル名はEUC */\r
+#define OPT_JIS_NAME   0x00000400      /* ファイル名はJIS */\r
+#define OPT_MIRRORDOWN 0x00000800      /* ミラーリングダウンロードを行う */\r
+#define OPT_SAVEOFF            0x00001000      /* 設定の保存を中止する */\r
+#define OPT_SAVEON             0x00002000      /* 設定の保存を再開する */\r
+// UTF-8対応\r
+#define OPT_SJIS               0x00004000      /* 漢字コードはShift_JIS */\r
+#define OPT_UTF8N              0x00008000      /* 漢字コードはUTF-8 */\r
+#define OPT_UTF8BOM            0x00010000      /* 漢字コードはUTF-8 BOM */\r
+#define OPT_SJIS_NAME  0x00020000      /* ファイル名はShift_JIS */\r
+#define OPT_UTF8N_NAME 0x00040000      /* ファイル名はUTF-8 */\r
 \r
 /*===== ホストのヒストリ =====*/\r
 \r
@@ -918,6 +966,10 @@ LIST_UNIX_70
 // IPv6対応\r
 #define FEATURE_EPRT           0x00000004\r
 #define FEATURE_EPSV           0x00000008\r
+// ホスト側の日時取得\r
+#define FEATURE_MDTM           0x00000010\r
+// ホスト側の日時設定\r
+#define FEATURE_MFMT           0x00000020\r
 \r
 // IPv6対応\r
 #define NTYPE_AUTO                     0               /* 自動 */\r
@@ -996,6 +1048,8 @@ typedef struct {
        // 再転送対応\r
        int TransferErrorMode;                          /* 転送エラー時の処理 (EXIST_xxx) */\r
        int TransferErrorNotify;                        /* 転送エラー時に確認ダイアログを出すかどうか (YES/NO) */\r
+       // セッションあたりの転送量制限対策\r
+       int TransferErrorReconnect;                     /* 転送エラー時に再接続する (YES/NO) */\r
 } HOSTDATA;\r
 \r
 \r
@@ -1060,6 +1114,8 @@ typedef struct historydata {
        // 再転送対応\r
        int TransferErrorMode;                          /* 転送エラー時の処理 (EXIST_xxx) */\r
        int TransferErrorNotify;                        /* 転送エラー時に確認ダイアログを出すかどうか (YES/NO) */\r
+       // セッションあたりの転送量制限対策\r
+       int TransferErrorReconnect;                     /* 転送エラー時に再接続する (YES/NO) */\r
        struct historydata *Next;\r
 } HISTORYDATA;\r
 \r
@@ -1118,6 +1174,8 @@ typedef struct filelist {
 /*===== コード変換情報パケット =====*/\r
 \r
 typedef char * (*funcptr)(struct codeconvinfo *, char , char *);\r
+// UTF-8対応\r
+typedef int (*convptr)(struct codeconvinfo *);\r
 \r
 typedef struct codeconvinfo {\r
        char *Str;                      /* 文字列 */\r
@@ -1132,8 +1190,11 @@ typedef struct codeconvinfo {
        char KanjiFst;          /* 漢字コード1バイト目保存用 (内部処理用ワーク) */\r
        char KanaPrev;          /* 半角カタカナ保存用 (内部処理用ワーク) */\r
        funcptr KanaProc;       /* 半角カタカナ処理ルーチン (内部処理用ワーク) */\r
-       char EscUTF8[8];\r
-       int EscUTF8Len;\r
+       // UTF-8対応\r
+       char EscUTF8[16];       /* エスケープシーケンス文字数 (0~) (内部処理用ワーク) */\r
+       int EscUTF8Len;         /* エスケープシーケンス文字保存用 (内部処理用ワーク) */\r
+       int EscFlush;           /* 残り情報を出力 (YES/NO) */\r
+       convptr FlushProc;      /* 残り情報処理ルーチン (内部処理用ワーク) */\r
 } CODECONVINFO;\r
 \r
 \r
@@ -1306,8 +1367,19 @@ BOOL __stdcall SSLConfirmCallback(BOOL* pbAborted, BOOL bVerified, LPCSTR Certif
 BOOL LoadSSLRootCAFile();\r
 // マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策\r
 BOOL IsMainThread();\r
-// ファイルアイコン表示対応\r
-int AskDispFileIcon(void);\r
+// ポータブル版判定\r
+void CheckPortableVersion();\r
+int AskPortableVersion(void);\r
+// 全設定暗号化対応\r
+int Restart();\r
+void RestartAndTerminate();\r
+// タスクバー進捗表示\r
+int LoadTaskbarList3();\r
+void FreeTaskbarList3();\r
+int IsTaskbarList3Loaded();\r
+void UpdateTaskbarProgress();\r
+// 高DPI対応\r
+int AskToolWinHeight(void);\r
 \r
 /*===== filelist.c =====*/\r
 \r
@@ -1320,7 +1392,9 @@ void SetListViewType(void);
 void GetRemoteDirForWnd(int Mode, int *CancelCheckWork);\r
 void GetLocalDirForWnd(void);\r
 void ReSortDispList(int Win, int *CancelCheckWork);\r
-void SelectFileInList(HWND hWnd, int Type);\r
+// ローカル側自動更新\r
+//void SelectFileInList(HWND hWnd, int Type);\r
+void SelectFileInList(HWND hWnd, int Type, FILELIST *Base);\r
 void FindFileInList(HWND hWnd, int Type);\r
 // void WildCard2RegExp(char *Str);\r
 int GetCurrentItem(int Win);\r
@@ -1328,6 +1402,9 @@ int GetItemCount(int Win);
 int GetSelectedCount(int Win);\r
 int GetFirstSelected(int Win, int All);\r
 int GetNextSelected(int Win, int Pos, int All);\r
+// ローカル側自動更新\r
+int GetHotSelected(int Win, char *Fname);\r
+int SetHotSelected(int Win, char *Fname);\r
 int FindNameNode(int Win, char *Name);\r
 void GetNodeName(int Win, int Pos, char *Buf, int Max);\r
 int GetNodeTime(int Win, int Pos, FILETIME *Buf);\r
@@ -1383,6 +1460,7 @@ void SetLocalKanjiCode(int Type);
 void DispLocalKanjiCode(void);\r
 int AskLocalKanjiCode(void);\r
 void HideLocalKanjiButton(void);\r
+void SaveLocalKanjiCode(void);\r
 void SetHostKanaCnvImm(int Mode);\r
 void SetHostKanaCnv(void);\r
 void DispHostKanaCnv(void);\r
@@ -1446,7 +1524,7 @@ void CopyDefaultHost(HOSTDATA *Set);
 int SearchHostName(char *Name);\r
 void ImportFromWSFTP(void);\r
 // 暗号化通信対応\r
-int SetHostExcryption(int Num, int UseNoEncryption, int UseFTPES, int UseFTPIS, int UseSFTP);\r
+int SetHostEncryption(int Num, int UseNoEncryption, int UseFTPES, int UseFTPIS, int UseSFTP);\r
 \r
 /*===== connect.c =====*/\r
 \r
@@ -1518,6 +1596,8 @@ int AskNoopInterval(void);
 // 再転送対応\r
 int AskTransferErrorMode(void);\r
 int AskTransferErrorNotify(void);\r
+// セッションあたりの転送量制限対策\r
+int AskErrorReconnect(void);\r
 \r
 /*===== cache.c =====*/\r
 \r
@@ -1537,12 +1617,12 @@ void CountPrevFfftpWindows(void);
 \r
 /*===== ftpproc.c =====*/\r
 \r
-void DownLoadProc(int ChName, int ForceFile, int All);\r
-void DirectDownLoadProc(char *Fname);\r
-void InputDownLoadProc(void);\r
+void DownloadProc(int ChName, int ForceFile, int All);\r
+void DirectDownloadProc(char *Fname);\r
+void InputDownloadProc(void);\r
 void MirrorDownloadProc(int Notify);\r
-void UpLoadListProc(int ChName, int All);\r
-void UpLoadDragProc(WPARAM wParam);\r
+void UploadListProc(int ChName, int All);\r
+void UploadDragProc(WPARAM wParam);\r
 void MirrorUploadProc(int Notify);\r
 void DeleteProc(void);\r
 void RenameProc(void);\r
@@ -1569,7 +1649,7 @@ void ReformToVMSstylePathName(char *Path);
 void ReformVMSDirName(char *DirName, int Flg);\r
 #endif\r
 // 自動切断対策\r
-void NoopProc(void);\r
+void NoopProc(int Force);\r
 \r
 /*===== local.c =====*/\r
 \r
@@ -1599,14 +1679,22 @@ int DoSIZE(SOCKET cSkt, char *Path, LONGLONG *Size, int *CancelCheckWork);
 // 同時接続対応\r
 //int DoMDTM(char *Path, FILETIME *Time);\r
 int DoMDTM(SOCKET cSkt, char *Path, FILETIME *Time, int *CancelCheckWork);\r
-int DoQUOTE(char *CmdStr);\r
+// ホスト側の日時設定\r
+int DoMFMT(SOCKET cSkt, char *Path, FILETIME *Time, int *CancelCheckWork);\r
+// 同時接続対応\r
+//int DoQUOTE(char *CmdStr);\r
+int DoQUOTE(SOCKET cSkt, char *CmdStr, int *CancelCheckWork);\r
 SOCKET DoClose(SOCKET Sock);\r
-int DoQUIT(SOCKET ctrl_skt);\r
+// 同時接続対応\r
+//int DoQUIT(SOCKET ctrl_skt);\r
+int DoQUIT(SOCKET ctrl_skt, int *CancelCheckWork);\r
 int DoDirListCmdSkt(char *AddOpt, char *Path, int Num, int *CancelCheckWork);\r
 #if defined(HAVE_TANDEM)\r
 void SwitchOSSProc(void);\r
 #endif\r
-int CommandProcCmd(char *Reply, char *fmt, ...);\r
+// 同時接続対応\r
+//int CommandProcCmd(char *Reply, char *fmt, ...);\r
+int CommandProcCmd(char *Reply, int* CancelCheckWork, char *fmt, ...);\r
 // 同時接続対応\r
 //int CommandProcTrn(char *Reply, char *fmt, ...);\r
 int CommandProcTrn(SOCKET cSkt, char *Reply, int* CancelCheckWork, char *fmt, ...);\r
@@ -1628,14 +1716,20 @@ void EraseTmpTransFileList(TRANSPACKET **Base);
 int RemoveTmpTransFileListItem(TRANSPACKET **Base, int Num);\r
 \r
 void AddTransFileList(TRANSPACKET *Pkt);\r
+// バグ対策\r
+void AddNullTransFileList();\r
 void AppendTransFileList(TRANSPACKET *Pkt);\r
 void KeepTransferDialog(int Sw);\r
 int AskTransferNow(void);\r
 int AskTransferFileNum(void);\r
 void GoForwardTransWindow(void);\r
 void InitTransCurDir(void);\r
-int DoDownLoad(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork);\r
+int DoDownload(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork);\r
 int CheckPathViolation(TRANSPACKET *packet);\r
+// タスクバー進捗表示\r
+LONGLONG AskTransferSizeLeft(void);\r
+LONGLONG AskTransferSizeTotal(void);\r
+int AskTransferErrorDisplay(void);\r
 \r
 /*===== codecnv.c =====*/\r
 \r
@@ -1645,6 +1739,8 @@ int ConvTermCodeToCRLF(TERMCODECONVINFO *cInfo);
 \r
 void InitCodeConvInfo(CODECONVINFO *cInfo);\r
 int FlushRestData(CODECONVINFO *cInfo);\r
+// UTF-8対応\r
+int ConvNoConv(CODECONVINFO *cInfo);\r
 int ConvEUCtoSJIS(CODECONVINFO *cInfo);\r
 int ConvJIStoSJIS(CODECONVINFO *cInfo);\r
 int ConvSMBtoSJIS(CODECONVINFO *cInfo);\r
@@ -1654,8 +1750,15 @@ int ConvSJIStoJIS(CODECONVINFO *cInfo);
 int ConvSJIStoSMB_HEX(CODECONVINFO *cInfo);\r
 int ConvSJIStoSMB_CAP(CODECONVINFO *cInfo);\r
 int ConvSJIStoUTF8N(CODECONVINFO *cInfo); // UTF-8対応\r
+// UTF-8 HFS+対応\r
+int ConvUTF8NtoUTF8HFSX(CODECONVINFO *cInfo);\r
+int ConvUTF8HFSXtoUTF8N(CODECONVINFO *cInfo);\r
 void ConvAutoToSJIS(char *Text, int Pref);\r
 int CheckKanjiCode(char *Text, int Size, int Pref);\r
+// UTF-8対応\r
+int LoadUnicodeNormalizationDll();\r
+void FreeUnicodeNormalizationDll();\r
+int IsUnicodeNormalizationDllLoaded();\r
 \r
 /*===== option.c =====*/\r
 \r
@@ -1692,17 +1795,28 @@ char *JreGetStrMatchInfo(char *Str, UINT nStart);
 \r
 int CheckFname(char *str, char *regexp);\r
 \r
-/*===== registory.c =====*/\r
+/*===== registry.c =====*/\r
 \r
-void SaveRegistory(void);\r
-int LoadRegistory(void);\r
-void ClearRegistory(void);\r
+void SaveRegistry(void);\r
+int LoadRegistry(void);\r
+void ClearRegistry(void);\r
+// ポータブル版判定\r
+void ClearIni(void);\r
 void SetMasterPassword( const char* );\r
+// セキュリティ強化\r
+void GetMasterPassword(char*);\r
 int GetMasterPasswordStatus(void);\r
 int ValidateMasterPassword(void);\r
-DWORD LoadHideDriveListRegistory(void);\r
+DWORD LoadHideDriveListRegistry(void);\r
 void SaveSettingsToFile(void);\r
 int LoadSettingsFromFile(void);\r
+// ポータブル版判定\r
+int IsRegAvailable();\r
+int IsIniAvailable();\r
+// バージョン確認\r
+int ReadSettingsVersion();\r
+// FileZilla XML形式エクスポート対応\r
+void SaveSettingsToFileZillaXml();\r
 \r
 /*===== lvtips.c =====*/\r
 \r
@@ -1755,10 +1869,14 @@ void RectClientToScreen(HWND hWnd, RECT *Rect);
 int hex2bin(char Ch);\r
 int SplitUNCpath(char *unc, char *Host, char *Path, char *File, char *User, char *Pass, int *Port);\r
 int TimeString2FileTime(char *Time, FILETIME *Buf);\r
-void FileTime2TimeString(FILETIME *Time, char *Buf, int Mode, int InfoExist);\r
+// タイムスタンプのバグ修正\r
+//void FileTime2TimeString(FILETIME *Time, char *Buf, int Mode, int InfoExist);\r
+void FileTime2TimeString(FILETIME *Time, char *Buf, int Mode, int InfoExist, int ShowSeconds);\r
 void SpecificLocalFileTime2FileTime(FILETIME *Time, int TimeZone);\r
 int AttrString2Value(char *Str);\r
-void AttrValue2String(int Attr, char *Buf);\r
+// ファイルの属性を数字で表示\r
+//void AttrValue2String(int Attr, char *Buf);\r
+void AttrValue2String(int Attr, char *Buf, int ShowNumber);\r
 void FormatIniString(char *Str);\r
 int SelectFile(HWND hWnd, char *Fname, char *Title, char *Filters, char *Ext, int Flags, int Save);\r
 int SelectDir(HWND hWnd, char *Buf, int MaxLen);\r
@@ -1782,6 +1900,11 @@ char* GetAppTempPath(char* Buf);
 #if defined(HAVE_TANDEM)\r
 void CalcExtentSize(TRANSPACKET *Pkt, LONGLONG Size);\r
 #endif\r
+// 高DPI対応\r
+void QueryDisplayDPI();\r
+int CalcPixelX(int x);\r
+int CalcPixelY(int y);\r
+HBITMAP ResizeBitmap(HBITMAP hBitmap, int UnitSizeX, int UnitSizeY, int ScaleNumerator, int ScaleDenominator);\r
 \r
 /*===== dlgsize.c =====*/\r
 \r
@@ -1796,6 +1919,8 @@ int Make6WordPass(int seq, char *seed, char *pass, int type, char *buf);
 /*===== tool.c =====*/\r
 \r
 void OtpCalcTool(void);\r
+// FTPS対応\r
+void TurnStatefulFTPFilter();\r
 \r
 /*===== history.c =====*/\r
 \r
@@ -1823,6 +1948,13 @@ char *AskLocalFreeSpace(char *Path);
 \r
 int MakeSocketWin(HWND hWnd, HINSTANCE hInst);\r
 void DeleteSocketWin(void);\r
+// ソケットにデータを付与\r
+int SetAsyncTableDataIPv4(SOCKET s, struct sockaddr_in* Host, struct sockaddr_in* Socks);\r
+int SetAsyncTableDataIPv6(SOCKET s, struct sockaddr_in6* Host, struct sockaddr_in6* Socks);\r
+int SetAsyncTableDataMapPort(SOCKET s, int Port);\r
+int GetAsyncTableDataIPv4(SOCKET s, struct sockaddr_in* Host, struct sockaddr_in* Socks);\r
+int GetAsyncTableDataIPv6(SOCKET s, struct sockaddr_in6* Host, struct sockaddr_in6* Socks);\r
+int GetAsyncTableDataMapPort(SOCKET s, int* Port);\r
 // IPv6対応\r
 //struct hostent *do_gethostbyname(const char *Name, char *Buf, int Len, int *CancelCheckWork);\r
 struct hostent *do_gethostbynameIPv4(const char *Name, char *Buf, int Len, int *CancelCheckWork);\r
@@ -1836,8 +1968,15 @@ int do_recv(SOCKET s, char *buf, int len, int flags, int *TimeOut, int *CancelCh
 int do_send(SOCKET s, const char *buf, int len, int flags, int *TimeOutErr, int *CancelCheckWork);\r
 // 同時接続対応\r
 void RemoveReceivedData(SOCKET s);\r
+// UPnP対応\r
+int LoadUPnP();\r
+void FreeUPnP();\r
+int IsUPnPLoaded();\r
+int AddPortMapping(char* Adrs, int Port);\r
+int RemovePortMapping(int Port);\r
 int CheckClosedAndReconnect(void);\r
-void CheckAllEventClosed(void);\r
+// 同時接続対応\r
+int CheckClosedAndReconnectTrnSkt(SOCKET *Skt, int *CancelCheckWork);\r
 \r
 /*===== updatebell.c =====*/\r
 \r