Code:
...
int allocate = NumberLetters > (sizeof(WORD)/sizeof(WCHAR)) ? NumberLetters : (sizeof(WORD)/sizeof(WCHAR)) ;
WCHAR * buffer = new WCHAR[allocate];
*((LPWORD)buffer ) = allocate;
SendDlgItemMessage( hwndDlg, EDIT_BOX, EM_GETLINE, (WPARAM) 0, (LPARAM) buffer );
std::basic_string<WCHAR> FilePath(buffer, NumberLetters);
Player.AddMediaToLibrary( FilePath, hwndDlg );
...
int cMusicPlayer::AddMediaToLibrary(std::basic_string<WCHAR> Path, HWND hWndListView)
{
cUserInterface UI;
cString String;
DWORD Result = GetFileAttributes(Path.c_str());
WIN32_FIND_DATA FindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE;
std::basic_string<WCHAR> SearchPath = Path;
SearchPath += L"\\*.mp3";
hFind = FindFirstFile( SearchPath.c_str(), &FindFileData );
if (hFind == INVALID_HANDLE_VALUE)
{
MessageBox(NULL, String.GetString(IDS_NO_FILES).c_str(), L"Error", MB_ICONERROR);
}
else
{
Path += L"\\";
UI.AddListViewItems( Path, FindFileData.cFileName, GetDlgItem(hWndListView, ID_LISTVIEW) );
}
while (FindNextFile(hFind, &FindFileData) != 0)
{
UI.AddListViewItems( Path, FindFileData.cFileName, GetDlgItem(hWndListView, ID_LISTVIEW) );
}
...
BOOL cUserInterface::AddListViewItems(std::basic_string<WCHAR> FilePath, std::basic_string<WCHAR> FileName, HWND hWndListView)
{
cString String;
MP3FileInfo mp3fi;
FilePath += FileName;
mp3fi.Init( String.ToMultibyte(FilePath,CP_ACP,0).c_str() );
std::basic_string<WCHAR> artist;
std::basic_string<WCHAR> album;
std::basic_string<WCHAR> title;
if (mp3fi.szArtist != NULL)
artist = String.ToWideChar(mp3fi.szArtist, CP_ACP,0);
else
artist = String.GetString( IDS_UNKNOWN );
if (mp3fi.szAlbum != NULL)
album = String.ToWideChar(mp3fi.szAlbum, CP_ACP,0);
else
album = String.GetString( IDS_UNKNOWN );
if (mp3fi.szTitle != NULL)
title = String.ToWideChar(mp3fi.szTitle, CP_ACP,0);
else
title = String.GetString( IDS_UNKNOWN );
if ( FindListViewString( hWndListView, title ) == TRUE && FindListViewString( hWndListView, title ) == TRUE )
return true;
LVITEM lv = { 0 };
lv.iItem = ItemCount;
ListView_InsertItem( hWndListView, &lv);
ListView_SetItemText( hWndListView, ItemCount, 0, const_cast<LPWSTR>(title.c_str()) );
ListView_SetItemText( hWndListView, ItemCount, 1, const_cast<LPWSTR>(artist.c_str()) );
ListView_SetItemText( hWndListView, ItemCount, 2, const_cast<LPWSTR>(album.c_str()) );
ListView_SetItemText( hWndListView, ItemCount, 3, const_cast<LPWSTR>(FilePath.c_str()) );
ListView_SetCheckState( hWndListView, ItemCount, TRUE);
ItemCount++;
return true;
}
Im trying to sort any column that i have in the list view (artist, title, album and path) in the alphabetical order.