#include <stdarg.h>\r
#include <string.h>\r
#include <mbstring.h>\r
-#include <winsock.h>\r
+// IPv6対応\r
+//#include <winsock.h>\r
+#include <winsock2.h>\r
#include <windowsx.h>\r
#include <commctrl.h>\r
#include <shlobj.h>\r
}\r
\r
\r
+// 異なるファイルが表示されるバグ修正\r
+\r
+// ShellExecute等で使用されるファイル名を修正\r
+// UNCでない場合に末尾の半角スペースは無視されるため拡張子が補完されなくなるまで半角スペースを追加\r
+// 現在UNC対応の予定は無い\r
+char* MakeDistinguishableFileName(char* Out, char* In)\r
+{\r
+ char* Fname;\r
+ char Tmp[FMAX_PATH+1];\r
+ char Tmp2[FMAX_PATH+3];\r
+ HANDLE hFind;\r
+ WIN32_FIND_DATA Find;\r
+ if(strlen(GetFileExt(GetFileName(In))) > 0)\r
+ strcpy(Out, In);\r
+ else\r
+ {\r
+ Fname = GetFileName(In);\r
+ strcpy(Tmp, In);\r
+ strcpy(Tmp2, Tmp);\r
+ strcat(Tmp2, ".*");\r
+ while(strlen(Tmp) < FMAX_PATH && (hFind = FindFirstFile(Tmp2, &Find)) != INVALID_HANDLE_VALUE)\r
+ {\r
+ do\r
+ {\r
+ if(strcmp(Find.cFileName, Fname) != 0)\r
+ break;\r
+ }\r
+ while(FindNextFile(hFind, &Find));\r
+ FindClose(hFind);\r
+ if(strcmp(Find.cFileName, Fname) != 0)\r
+ {\r
+ strcat(Tmp, " ");\r
+ strcpy(Tmp2, Tmp);\r
+ strcat(Tmp2, ".*");\r
+ }\r
+ else\r
+ break;\r
+ }\r
+ strcpy(Out, Tmp);\r
+ }\r
+ return Out;\r
+}\r
+\r