\r
/*===== ローカル側のリストビュー =====*/\r
\r
+ // 高DPI対応\r
+// hWndListLocal = CreateWindowEx(/*WS_EX_STATICEDGE*/WS_EX_CLIENTEDGE,\r
+// WC_LISTVIEWA, NULL,\r
+// WS_CHILD | /*WS_BORDER | */LVS_REPORT | LVS_SHOWSELALWAYS,\r
+// 0, TOOLWIN_HEIGHT*2, LocalWidth, ListHeight,\r
+// GetMainHwnd(), (HMENU)1500, hInst, NULL);\r
hWndListLocal = CreateWindowEx(/*WS_EX_STATICEDGE*/WS_EX_CLIENTEDGE,\r
WC_LISTVIEWA, NULL,\r
WS_CHILD | /*WS_BORDER | */LVS_REPORT | LVS_SHOWSELALWAYS,\r
- 0, TOOLWIN_HEIGHT*2, LocalWidth, ListHeight,\r
+ 0, AskToolWinHeight()*2, LocalWidth, ListHeight,\r
GetMainHwnd(), (HMENU)1500, hInst, NULL);\r
\r
if(hWndListLocal != NULL)\r
\r
/*===== ホスト側のリストビュー =====*/\r
\r
+ // 高DPI対応\r
+// hWndListRemote = CreateWindowEx(/*WS_EX_STATICEDGE*/WS_EX_CLIENTEDGE,\r
+// WC_LISTVIEWA, NULL,\r
+// WS_CHILD | /*WS_BORDER | */LVS_REPORT | LVS_SHOWSELALWAYS,\r
+// LocalWidth + SepaWidth, TOOLWIN_HEIGHT*2, RemoteWidth, ListHeight,\r
+// GetMainHwnd(), (HMENU)1500, hInst, NULL);\r
hWndListRemote = CreateWindowEx(/*WS_EX_STATICEDGE*/WS_EX_CLIENTEDGE,\r
WC_LISTVIEWA, NULL,\r
WS_CHILD | /*WS_BORDER | */LVS_REPORT | LVS_SHOWSELALWAYS,\r
- LocalWidth + SepaWidth, TOOLWIN_HEIGHT*2, RemoteWidth, ListHeight,\r
+ LocalWidth + SepaWidth, AskToolWinHeight()*2, RemoteWidth, ListHeight,\r
GetMainHwnd(), (HMENU)1500, hInst, NULL);\r
\r
if(hWndListRemote != NULL)\r
\r
// UTF-8対応\r
// ファイル一覧から漢字コードを推測\r
-// 優先度はUTF-8、Shift_JIS、EUC、JISの順\r
+// å\84ªå\85\88度ã\81¯UTF-8ã\80\81Shift_JISã\80\81EUCã\80\81JISã\80\81UTF-8 HFS+ã\81®é \86\r
int AnalyzeNameKanjiCode(int Num)\r
{\r
char Str[FMAX_PATH+1];\r
int PointJIS;\r
int PointEUC;\r
int PointUTF8N;\r
+ int PointUTF8HFSX;\r
char* p;\r
+ CODECONVINFO cInfo1;\r
+ CODECONVINFO cInfo2;\r
+ char Buf[FMAX_PATH+1];\r
\r
NameKanjiCode = KANJI_AUTO;\r
Point = 0;\r
PointJIS = 0;\r
PointEUC = 0;\r
PointUTF8N = 0;\r
+ PointUTF8HFSX = 0;\r
MakeCacheFileName(Num, Str);\r
if((fd = fopen(Str, "rb")) != NULL)\r
{\r
}\r
if(!p)\r
{\r
+ // ASCII文字の範囲外\r
if(!CheckStringM(Name))\r
- PointUTF8N++;\r
- else\r
{\r
- switch(CheckKanjiCode(Name, strlen(Name), KANJI_SJIS))\r
- {\r
- case KANJI_SJIS:\r
- PointSJIS++;\r
- break;\r
- case KANJI_JIS:\r
- PointJIS++;\r
- break;\r
- case KANJI_EUC:\r
- PointEUC++;\r
- break;\r
- }\r
+ InitCodeConvInfo(&cInfo1);\r
+ cInfo1.KanaCnv = NO;\r
+ cInfo1.Str = Name;\r
+ cInfo1.StrLen = strlen(Name);\r
+ cInfo1.Buf = Buf;\r
+ cInfo1.BufSize = FMAX_PATH;\r
+ cInfo2 = cInfo1;\r
+ ConvUTF8NtoUTF8HFSX(&cInfo1);\r
+ ConvUTF8HFSXtoUTF8N(&cInfo2);\r
+ if(cInfo1.OutLen > (int)strlen(Name))\r
+ PointUTF8N++;\r
+ else\r
+ PointUTF8HFSX++;\r
+ if(cInfo2.OutLen < (int)strlen(Name))\r
+ PointUTF8HFSX++;\r
+ else\r
+ PointUTF8N++;\r
+ }\r
+ switch(CheckKanjiCode(Name, strlen(Name), KANJI_SJIS))\r
+ {\r
+ case KANJI_SJIS:\r
+ PointSJIS++;\r
+ break;\r
+ case KANJI_EUC:\r
+ PointEUC++;\r
+ break;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ // ASCII文字の範囲内\r
+ switch(CheckKanjiCode(Name, strlen(Name), KANJI_SJIS))\r
+ {\r
+ case KANJI_JIS:\r
+ PointJIS++;\r
+ break;\r
}\r
}\r
}\r
}\r
fclose(fd);\r
}\r
+ if(PointUTF8HFSX >= Point)\r
+ {\r
+ NameKanjiCode = KANJI_UTF8HFSX;\r
+ Point = PointUTF8HFSX;\r
+ }\r
if(PointJIS >= Point)\r
{\r
NameKanjiCode = KANJI_JIS;\r