Index: src/chext/MenuExt.cpp =================================================================== diff -u -N -re701ed2460c2558eeefab55a1f3ed1d2c89a56c0 -r4c272b19c74694c428c943011f279ec064fbd894 --- src/chext/MenuExt.cpp (.../MenuExt.cpp) (revision e701ed2460c2558eeefab55a1f3ed1d2c89a56c0) +++ src/chext/MenuExt.cpp (.../MenuExt.cpp) (revision 4c272b19c74694c428c943011f279ec064fbd894) @@ -352,7 +352,7 @@ // modify text if (g_pscsShared->bShowFreeSpace && GetDynamicFreeSpace(pShortcuts[i].szPath, &iiFree, NULL)) { - _stprintf(szText, _T("%s (%s)"), pShortcuts[i].szName, GetSizeString(iiFree, szSize)); + _sntprintf(szText, 256, _T("%s (%s)"), pShortcuts[i].szName, GetSizeString(iiFree, szSize, 32)); _tcsncpy(pShortcuts[i].szName, szText, 127); // OTF("Text to display=%s\r\n", pShortcuts[i].szName); pShortcuts[i].szName[127]=_T('\0'); @@ -364,7 +364,7 @@ } } -STDMETHODIMP CMenuExt::GetCommandString(UINT idCmd, UINT uFlags, UINT* /*pwReserved*/, LPSTR pszName, UINT cchMax) +STDMETHODIMP CMenuExt::GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT* /*pwReserved*/, LPSTR pszName, UINT cchMax) { if (uFlags == GCS_HELPTEXTW) { @@ -384,12 +384,18 @@ case 2: case 3: case 4: - wcsncpy(reinterpret_cast(pszName), A2W(pCommand[idCmd].szDesc), cchMax); - break; + { + CT2W ct2w(pCommand[idCmd].szDesc); + wcsncpy(reinterpret_cast(pszName), ct2w, cchMax); + break; + } default: _SHORTCUT* pShortcuts=(_SHORTCUT*)(g_pscsShared->szData+g_pscsShared->iCommandCount*sizeof(_COMMAND)); if ((int)(idCmd-5) < g_pscsShared->iShortcutsCount*3) - wcsncpy(reinterpret_cast(pszName), A2W(pShortcuts[(idCmd-5)%g_pscsShared->iShortcutsCount].szPath), cchMax); + { + CT2W ct2w(pShortcuts[(idCmd-5)%g_pscsShared->iShortcutsCount].szPath); + wcsncpy(reinterpret_cast(pszName), ct2w, cchMax); + } else wcsncpy(reinterpret_cast(pszName), L"", cchMax); } @@ -412,12 +418,18 @@ case 2: case 3: case 4: - strncpy(pszName, pCommand[idCmd].szDesc, cchMax); - break; + { + CT2A ct2a(pCommand[idCmd].szDesc); + strncpy(reinterpret_cast(pszName), ct2a, cchMax); + break; + } default: // rest of commands _SHORTCUT* pShortcuts=(_SHORTCUT*)(g_pscsShared->szData+g_pscsShared->iCommandCount*sizeof(_COMMAND)); if ((int)(idCmd-5) < g_pscsShared->iShortcutsCount*3) - strncpy(pszName, pShortcuts[(idCmd-5)%g_pscsShared->iShortcutsCount].szPath, cchMax); + { + CT2A ct2a(pShortcuts[(idCmd-5)%g_pscsShared->iShortcutsCount].szPath); + strncpy(pszName, ct2a, cchMax); + } else strncpy(pszName, "", cchMax); } @@ -526,7 +538,7 @@ // get data OpenClipboard(lpici->hwnd); HANDLE handle=GetClipboardData(CF_HDROP); - char *pchBuffer=NULL; + TCHAR *pchBuffer=NULL; UINT uiSize; GetDataFromClipboard(static_cast(handle), m_szDstPath, &pchBuffer, &uiSize); @@ -594,7 +606,7 @@ // send message ::SendMessage(hWnd, WM_COPYDATA, reinterpret_cast(lpici->hwnd), reinterpret_cast(&cds)); - // delete bufor + // delete buffer delete [] pszBuffer; m_bBuffer.Destroy(); }