Здравствуйте, To4kuH, Вы писали:
TH>определил, кстати, простым способом. вывел значеня этого поля для всех файлов и папок директории
А, если применительно к C++?
Вот мой код:
void CFmanagerView::UpdateRightPanel(void)
{
//объявление переменных
CListCtrl& RightList = GetListCtrl();
HANDLE hFindFile; //handle used in a subsequent call
// to FindNextFile or FindClose.
WIN32_FIND_DATA lpFindFileData; char maskofext[] = "*.*";
char strFullPath[MAX_PATH]; //строка, которая хранит полный путь + маска
char strTempPath[MAX_PATH]; //строка, которая хранит полный путь
int iList = 0;
SHFILEINFO info;
DWORD dwRet;
HIMAGELIST hImgList;
DWORD laster;
RightList.DeleteAllItems();
strcpy(strFullPath, strCurrentRightDir);
if (strFullPath[lstrlen(strFullPath)-1] != '\\')
strcat(strFullPath, "\\");
strcat(strFullPath, maskofext);
//////////////////////////////////////////////////////////////////////////
hFindFile = FindFirstFile(
strFullPath, //путь для поиска
&lpFindFileData);
if (INVALID_HANDLE_VALUE != hFindFile ) { //если не ошибка, то открываем цикл
do {
//пропускаем точку
if(strcmp(lpFindFileData.cFileName, "."))
{
// Здесь получаем иконку из system imagelist
//Формируем полный путь для данного файла
strcpy(strTempPath, strCurrentRightDir);
if (strTempPath[lstrlen(strTempPath)-1] != '\\')
strcat(strTempPath, "\\");
strcat(strTempPath, lpFindFileData.cFileName);
dwRet = SHGetFileInfo (strTempPath, FILE_ATTRIBUTE_NORMAL,
&info, sizeof(SHFILEINFO), SHGFI_USEFILEATTRIBUTES
| SYSICONINDEX | SHGFI_SMALLICON );
hImgList = reinterpret_cast<HIMAGELIST>( dwRet );
//присоединяем ее к нашему imagelist' у
ASSERT ( NULL != hImgList );
if ( NULL != m_imlSmallDrives.GetSafeHandle() ) //если уже присоединен
//то удаляем его из imagelist'а
{
m_imlSmallDrives.Detach();
}
VERIFY ( m_imlSmallDrives.Attach ( hImgList ));
RightList.SetImageList(&m_imlSmallDrives, LVSIL_SMALL );
ASSERT(RightList.GetImageList(LVSIL_SMALL) == &m_imlSmallDrives);//?
//////////////////////////////////////////////////////////////////////////
SHFILEINFO sfi;
SHGetFileInfo (strTempPath, 0, &sfi, sizeof(SHFILEINFO), SHGFI_ICON | SHGFI_DISPLAYNAME | SHGFI_SMALLICON);
RightList.InsertItem(iList, lpFindFileData.cFileName , sfi.iIcon);
iList++;
}
} while(FindNextFile(hFindFile, &lpFindFileData) != NULL);
FindClose(hFindFile); }
}
Исправлено форматирование кода. 2Аноним — отбивайте код тэгами, имейте уважение к тем кто будет читать ваше сообщение