return Count;\r
}\r
\r
+// マルチバイト文字列のコードポイントの個数を取得\r
+int GetCodeCountM(LPCSTR lpString, int CharCount)\r
+{\r
+ int Count;\r
+ LPCSTR pLimit;\r
+ DWORD Code;\r
+ Count = 0;\r
+ if(CharCount == -1)\r
+ pLimit = lpString + strlen(lpString);\r
+ else\r
+ pLimit = lpString + CharCount;\r
+ while(lpString < pLimit)\r
+ {\r
+ Code = GetNextCharM(lpString, pLimit, &lpString);\r
+ if(Code == 0x80000000)\r
+ continue;\r
+ Count++;\r
+ }\r
+ return Count;\r
+}\r
+\r
+// ワイド文字列のコードポイントの個数を取得\r
+int GetCodeCountW(LPCWSTR lpString, int CharCount)\r
+{\r
+ int Count;\r
+ LPCWSTR pLimit;\r
+ DWORD Code;\r
+ Count = 0;\r
+ if(CharCount == -1)\r
+ pLimit = lpString + wcslen(lpString);\r
+ else\r
+ pLimit = lpString + CharCount;\r
+ while(lpString < pLimit)\r
+ {\r
+ Code = GetNextCharW(lpString, pLimit, &lpString);\r
+ if(Code == 0x80000000)\r
+ continue;\r
+ Count++;\r
+ }\r
+ return Count;\r
+}\r
+\r
// マルチバイト文字列の冗長表現を修正\r
// 修正があればTRUEを返す\r
// 修正後の文字列の長さは元の文字列の長さ以下のためpDstとpSrcに同じ値を指定可能\r
wLVFindInfo.lParam = pmLVFindInfo->lParam;\r
wLVFindInfo.pt = pmLVFindInfo->pt;\r
wLVFindInfo.vkDirection = pmLVFindInfo->vkDirection;\r
- r = SendMessageW(hWnd, LVM_FINDITEMW, wParam, (LPARAM)&wLVItem);\r
+ r = SendMessageW(hWnd, LVM_FINDITEMW, wParam, (LPARAM)&wLVFindInfo);\r
break;\r
case LVM_GETCOLUMNA:\r
pmLVColumn = (LVCOLUMNA*)lParam;\r
return r;\r
}\r
\r
+BOOL CreateDirectoryM(LPCSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes)\r
+{\r
+ BOOL r = FALSE;\r
+ wchar_t* pw0 = NULL;\r
+START_ROUTINE\r
+ pw0 = DuplicateMtoW(lpPathName, -1);\r
+ r = CreateDirectoryW(pw0, lpSecurityAttributes);\r
+END_ROUTINE\r
+ FreeDuplicatedString(pw0);\r
+ return r;\r
+}\r
+\r
+BOOL RemoveDirectoryM(LPCSTR lpPathName)\r
+{\r
+ BOOL r = FALSE;\r
+ wchar_t* pw0 = NULL;\r
+START_ROUTINE\r
+ pw0 = DuplicateMtoW(lpPathName, -1);\r
+ r = RemoveDirectoryW(pw0);\r
+END_ROUTINE\r
+ FreeDuplicatedString(pw0);\r
+ return r;\r
+}\r
+\r
int mkdirM(const char * _Path)\r
{\r
int r = -1;\r