ATOM RegisterClassExM(CONST WNDCLASSEXA * v0)\r
{\r
ATOM r = 0;\r
+ wchar_t* pw0 = NULL;\r
+ wchar_t* pw1 = NULL;\r
+ WNDCLASSEXW a0;\r
START_ROUTINE\r
- // WNDPROCがShift_JIS用であるため\r
- r = RegisterClassExA(v0);\r
+ a0.cbSize = sizeof(WNDCLASSEXW);\r
+ a0.style = v0->style;\r
+ a0.lpfnWndProc = v0->lpfnWndProc;\r
+ a0.cbClsExtra = v0->cbClsExtra;\r
+ a0.cbWndExtra = v0->cbWndExtra;\r
+ a0.hInstance = v0->hInstance;\r
+ a0.hIcon = v0->hIcon;\r
+ a0.hCursor = v0->hCursor;\r
+ a0.hbrBackground = v0->hbrBackground;\r
+ pw0 = DuplicateMtoW(v0->lpszMenuName, -1);\r
+ a0.lpszMenuName = pw0;\r
+ pw1 = DuplicateMtoW(v0->lpszClassName, -1);\r
+ a0.lpszClassName = pw1;\r
+ a0.hIconSm = v0->hIconSm;\r
+ r = RegisterClassExW(&a0);\r
END_ROUTINE\r
+ FreeDuplicatedString(pw0);\r
+ FreeDuplicatedString(pw1);\r
return r;\r
}\r
\r
\r
LONG GetWindowLongM(HWND hWnd, int nIndex)\r
{\r
- LRESULT r = 0;\r
+ LONG r = 0;\r
START_ROUTINE\r
- // WNDPROCがShift_JIS用であるため\r
if(IsWindowUnicode(hWnd))\r
r = GetWindowLongW(hWnd, nIndex);\r
else\r
\r
LONG SetWindowLongM(HWND hWnd, int nIndex, LONG dwNewLong)\r
{\r
- LRESULT r = 0;\r
+ LONG r = 0;\r
START_ROUTINE\r
- // WNDPROCがShift_JIS用であるため\r
if(IsWindowUnicode(hWnd))\r
r = SetWindowLongW(hWnd, nIndex, dwNewLong);\r
else\r
return r;\r
}\r
\r
+LONG_PTR GetWindowLongPtrM(HWND hWnd, int nIndex)\r
+{\r
+ LONG_PTR r = 0;\r
+START_ROUTINE\r
+ if(IsWindowUnicode(hWnd))\r
+ r = GetWindowLongPtrW(hWnd, nIndex);\r
+ else\r
+ r = GetWindowLongPtrA(hWnd, nIndex);\r
+END_ROUTINE\r
+ return r;\r
+}\r
+\r
+LONG_PTR SetWindowLongPtrM(HWND hWnd, int nIndex, LONG_PTR dwNewLong)\r
+{\r
+ LONG_PTR r = 0;\r
+START_ROUTINE\r
+ if(IsWindowUnicode(hWnd))\r
+ r = SetWindowLongPtrW(hWnd, nIndex, dwNewLong);\r
+ else\r
+ r = SetWindowLongPtrA(hWnd, nIndex, dwNewLong);\r
+END_ROUTINE\r
+ return r;\r
+}\r
+\r
LRESULT DefWindowProcM(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)\r
{\r
LRESULT r = 0;\r
START_ROUTINE\r
- // WNDPROCがShift_JIS用であるため\r
if(IsWindowUnicode(hWnd))\r
r = DefWindowProcW(hWnd, Msg, wParam, lParam);\r
else\r
{\r
LRESULT r = 0;\r
START_ROUTINE\r
- // WNDPROCがShift_JIS用であるため\r
if(IsWindowUnicode(hWnd))\r
r = CallWindowProcW(lpPrevWndFunc, hWnd, Msg, wParam, lParam);\r
else\r
return r;\r
}\r
\r
+DWORD_PTR SHGetFileInfoM(LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags)\r
+{\r
+ DWORD_PTR r = 0;\r
+ wchar_t* pw0 = NULL;\r
+ SHFILEINFOW wsfi;\r
+START_ROUTINE\r
+ pw0 = DuplicateMtoWMultiString(pszPath);\r
+ if((r = SHGetFileInfoW(pw0, dwFileAttributes, &wsfi, cbFileInfo, uFlags)) != 0)\r
+ {\r
+ psfi->hIcon = wsfi.hIcon;\r
+ psfi->iIcon = wsfi.iIcon;\r
+ psfi->dwAttributes = wsfi.dwAttributes;\r
+ WtoM(psfi->szDisplayName, MAX_PATH, wsfi.szDisplayName, -1);\r
+ WtoM(psfi->szTypeName, 80, wsfi.szTypeName, -1);\r
+ }\r
+END_ROUTINE\r
+ FreeDuplicatedString(pw0);\r
+ return r;\r
+}\r
+\r
BOOL AppendMenuM(HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCSTR lpNewItem)\r
{\r
int r = 0;\r
{\r
BOOL r = FALSE;\r
wchar_t* pw0 = NULL;\r
+ wchar_t* pw1 = NULL;\r
CHOOSEFONTW a0;\r
LOGFONTW* pwlf;\r
START_ROUTINE\r
a0.rgbColors = v0->rgbColors;\r
a0.lCustData = v0->lCustData;\r
a0.lpfnHook = v0->lpfnHook;\r
- a0.lpTemplateName = DuplicateMtoW(v0->lpTemplateName, -1);\r
+ pw0 = DuplicateMtoW(v0->lpTemplateName, -1);\r
+ a0.lpTemplateName = pw0;\r
a0.hInstance = v0->hInstance;\r
- a0.lpszStyle = DuplicateMtoWBuffer(v0->lpszStyle, -1, LF_FACESIZE * 4);\r
+ pw1 = DuplicateMtoWBuffer(v0->lpszStyle, -1, LF_FACESIZE * 4);\r
+ a0.lpszStyle = pw1;\r
a0.nFontType = v0->nFontType;\r
a0.nSizeMin = v0->nSizeMin;\r
a0.nSizeMax = v0->nSizeMax;\r
TerminateStringM(v0->lpLogFont->lfFaceName, LF_FACESIZE);\r
}\r
v0->rgbColors = a0.rgbColors;\r
- WtoM(v0->lpszStyle, LF_FACESIZE, a0.lpszStyle, -1);\r
+ WtoM(v0->lpszStyle, LF_FACESIZE, pw1, -1);\r
TerminateStringM(v0->lpszStyle, LF_FACESIZE);\r
v0->nFontType = a0.nFontType;\r
if(pwlf)\r
free(pwlf);\r
- FreeDuplicatedString((void*)a0.lpTemplateName);\r
- FreeDuplicatedString(a0.lpszStyle);\r
END_ROUTINE\r
FreeDuplicatedString(pw0);\r
+ FreeDuplicatedString(pw1);\r
return r;\r
}\r
\r
return r;\r
}\r
\r
+BOOL MoveFileM(LPCSTR lpExistingFileName, LPCSTR lpNewFileName)\r
+{\r
+ BOOL r = FALSE;\r
+ wchar_t* pw0 = NULL;\r
+ wchar_t* pw1 = NULL;\r
+START_ROUTINE\r
+ pw0 = DuplicateMtoW(lpExistingFileName, -1);\r
+ pw1 = DuplicateMtoW(lpNewFileName, -1);\r
+ r = MoveFileW(pw0, pw1);\r
+END_ROUTINE\r
+ FreeDuplicatedString(pw0);\r
+ FreeDuplicatedString(pw1);\r
+ return r;\r
+}\r
+\r
int mkdirM(const char * _Path)\r
{\r
- int r = 0;\r
+ int r = -1;\r
wchar_t* pw0 = NULL;\r
START_ROUTINE\r
pw0 = DuplicateMtoW(_Path, -1);\r
\r
int _mkdirM(const char * _Path)\r
{\r
- int r = 0;\r
+ int r = -1;\r
wchar_t* pw0 = NULL;\r
START_ROUTINE\r
pw0 = DuplicateMtoW(_Path, -1);\r
\r
int rmdirM(const char * _Path)\r
{\r
- int r = 0;\r
+ int r = -1;\r
wchar_t* pw0 = NULL;\r
START_ROUTINE\r
pw0 = DuplicateMtoW(_Path, -1);\r
\r
int _rmdirM(const char * _Path)\r
{\r
- int r = 0;\r
+ int r = -1;\r
wchar_t* pw0 = NULL;\r
START_ROUTINE\r
pw0 = DuplicateMtoW(_Path, -1);\r
return r;\r
}\r
\r
+int removeM(const char * _Filename)\r
+{\r
+ int r = -1;\r
+ wchar_t* pw0 = NULL;\r
+START_ROUTINE\r
+ pw0 = DuplicateMtoW(_Filename, -1);\r
+ r = _wremove(pw0);\r
+END_ROUTINE\r
+ FreeDuplicatedString(pw0);\r
+ return r;\r
+}\r
+\r
+int _removeM(const char * _Filename)\r
+{\r
+ int r = -1;\r
+ wchar_t* pw0 = NULL;\r
+START_ROUTINE\r
+ pw0 = DuplicateMtoW(_Filename, -1);\r
+ r = _wremove(pw0);\r
+END_ROUTINE\r
+ FreeDuplicatedString(pw0);\r
+ return r;\r
+}\r
+\r
+int _unlinkM(const char * _Filename)\r
+{\r
+ int r = -1;\r
+ wchar_t* pw0 = NULL;\r
+START_ROUTINE\r
+ pw0 = DuplicateMtoW(_Filename, -1);\r
+ r = _wunlink(pw0);\r
+END_ROUTINE\r
+ FreeDuplicatedString(pw0);\r
+ return r;\r
+}\r
+\r
size_t _mbslenM(const unsigned char * _Str)\r
{\r
size_t r = 0;\r