------------------------------------------------------------
CWnd *ww=GetDesktopWindow()->FindWindow("ProgMan",NULL);
if (ww!=NULL)
{
ww=ww->GetWindow(GW_CHILD);
if (ww!=NULL)
{
ww=ww->GetWindow(GW_CHILD);
}
}
if (ww!=NULL)
{
int z=((CListCtrl*)ww)->GetItemCount();
char *tbf=new char[MAX_PATH];
LVITEM lv;
lv.iSubItem=0;
lv.pszText=tbf;
lv.cchTextMax=MAX_PATH;
for (int i=0;i<z;i++)
{ ww->SendMessage(LVM_GETITEMTEXT,i,(long)&lv);
//((CListCtrl*)ww)->GetItemText(i,0,tbf,MAX_PATH);
-------------------------------------------------
В случае выполнения SendMessage или GetItemText выдает ошибку в файле Comctrl32. Имя класса ww — SysListView32 (вроде правильно).
((CListCtrl*)ww)->GetItemCount() возвращает правильное количество иконок на рабочем столе — 14.
Что я делаю неправильно ???
Зы: версия Windows — Windows Me (это имеет значение ???)