Index: src/ch/ShortcutsDlg.cpp =================================================================== diff -u -N -r9352ed0c4fe447a36bc728640c307be6d41455fd -r9ea1e103b5fa4ddfebf8028f121ce16e917eec04 --- src/ch/ShortcutsDlg.cpp (.../ShortcutsDlg.cpp) (revision 9352ed0c4fe447a36bc728640c307be6d41455fd) +++ src/ch/ShortcutsDlg.cpp (.../ShortcutsDlg.cpp) (revision 9ea1e103b5fa4ddfebf8028f121ce16e917eec04) @@ -112,7 +112,7 @@ for(size_t stIndex = 0; stIndex < m_pcvRecent->size(); ++stIndex) { cbi.iItem = stIndex; - cbi.pszText = m_pcvRecent->at(stIndex); + cbi.pszText = const_cast((PCTSTR)m_pcvRecent->at(stIndex)); sfi.iIcon = -1; SHGetFileInfo(cbi.pszText, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON); cbi.iImage = sfi.iIcon; @@ -242,7 +242,7 @@ m_ctlPath.GetWindowText(sc.m_strPath); // add to an array - m_cvShortcuts.push_back((const PTSTR)(LPCTSTR)(CString)sc, true); + m_cvShortcuts.push_back((CString)sc); // add with an icon SHFILEINFO sfi; @@ -268,7 +268,7 @@ m_ctlPath.GetWindowText(sc.m_strPath); // array update - m_cvShortcuts.replace(m_cvShortcuts.begin()+iPos, (const PTSTR)(LPCTSTR)(CString)sc, true, true); + m_cvShortcuts[iPos] = (CString)sc; // list SHFILEINFO sfi; @@ -289,7 +289,7 @@ while (pos) { iPos=m_ctlShortcuts.GetNextSelectedItem(pos); - m_cvShortcuts.erase(m_cvShortcuts.begin()+iPos, true); + m_cvShortcuts.erase(m_cvShortcuts.begin() + iPos); m_ctlShortcuts.DeleteItem(iPos); } @@ -319,7 +319,10 @@ break; // swap data in m_ascShortcuts - m_cvShortcuts.swap_items(m_cvShortcuts.begin()+iPos-1, m_cvShortcuts.begin()+iPos); + std::vector::iterator iterOne = m_cvShortcuts.begin() + iPos - 1; + std::vector::iterator iterTwo = m_cvShortcuts.begin()+iPos; + std::swap(iterOne, iterTwo); + //m_cvShortcuts.swap(); // do the same with list SHFILEINFO sfi; @@ -356,8 +359,11 @@ break; // swap data in m_ascShortcuts - m_cvShortcuts.swap_items(m_cvShortcuts.begin()+iPos, m_cvShortcuts.begin()+iPos+1); + std::vector::iterator iterOne = m_cvShortcuts.begin() + iPos; + std::vector::iterator iterTwo = m_cvShortcuts.begin() + iPos + 1; + std::swap(iterOne, iterTwo); + // do the same with list SHFILEINFO sfi; sfi.iIcon=-1;