Доброго времени суток ув. форумачане! Суть проблемы: есть виртуальная папка "Сетевое окружение". Она должна присутствовать на рабочем столе, я ее убрал. Получаю IEnumIDListt
Код | TShellFolder(Data).ShellFolder.EnumObjects(0, SHCONTF_FOLDERS or SHCONTF_INCLUDEHIDDEN, EnumList);
|
перечисляю элементы рабочего стола (где должна распологаться папка "Сетевое окружение", но она убрана)
Код | while EnumList.Next(1, ID, NumIDs) = S_OK do
|
Код | procedure InitNode(NewNode: TTreeNode; ID: PItemIDList; ParentNode: TTreeNode); var NewFolder: IShellFolder; AFolder: TShellFolder; begin AFolder := TShellFolder(ParentNode.Data); AFolder.ShellFolder.BindToObject(ID, Nil, IID_IShellFolder, NewFolder); TSF := TShellFolder.Create(AFolder, ID, NewFolder); NewNode.Data := TSF; with TSF do begin SHGetFileInfo (PChar (AbsoluteID), 0, FileInfo, SizeOF (FIleInfo), SHGFI_PIDL Or SHGFI_SysIconIndex Or SHGFI_SmallIcon Or SHGFI_DisplayName); NewNode.ImageIndex := FileInfo.iIcon; NewNode.Text := FileInfo.szDisplayName; SHGetFileInfo (PChar (AbsoluteID), 0, FileInfo, SizeOF (FileInfo), SHGFI_PIDL Or SHGFI_SysIconIndex Or SHGFI_OpenIcon or SHGFI_ATTRIBUTES); NewNode.SelectedIndex := FileInfo.iIcon; if NewNode.SelectedIndex = 0 then NewNode.SelectedIndex := NewNode.ImageIndex; NewNode.HasChildren := (FileInfo.dwAttributes And SFGAO_HASSUBFOLDER <> 0); NewNode.Cut := FileInfo.dwAttributes And SFGAO_Ghosted <> 0; If FileInfo.dwAttributes And SFGAO_Share <> 0 Then NewNode.OverlayIndex := 0; end; end;
|
все дело в том что папка "Сетевое окружение" не имеет флагов SFGAO_GHOSTED и SFGAO_Hidden. D7 WinXP
Как мне узнать скрыта ли виртуальная папка "Сетевое окружение" или отображается Заранее спасибо. |