一个树Tree结构,显示我的电脑和磁盘文件夹等信息,但是不显示控制面板等信息

babala2009 2009-07-29 11:55:16
做了一个TreeList显示我的电脑及其子目录文件夹结构。

LPSHELLFOLDER lpsf = NULL;
HRESULT hr;
HTREEITEM hParent = NULL;

hr = SHGetDesktopFolder (&lpsf);

LPSHELLFOLDER psfFolderC = NULL;
PIDLIST_ABSOLUTE pidl;
hr = SHGetSpecialFolderLocation(m_hWndTree, CSIDL_DRIVES, &pidl);
hr = lpsf->BindToObject(pidl, NULL, IID_IShellFolder, (void**)&psfFolderC);

但是上面的代码会显示控制面板等信息,谁还有好的方法??
...全文
325 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
YuNotes 2009-07-31
  • 打赏
  • 举报
回复
看下下面这个
http://www.vckbase.com/document/viewdoc/?id=836
forimprove 2009-07-30
  • 打赏
  • 举报
回复
Windows文件夹管理树的实现实质上是对Widows名空间的遍历。名空间的每隔文件夹都提供了一个IShellFolder接口。
遍历名空间的方法是:
1、调用SHGetDesktopFolder函数获得桌面文件夹的IShellFolder接口,桌面文件夹是文件夹管理树的根节点。
2、调用所获得的IShellFolder接口的EnumObjects成员函数列举出子文件夹。
3、调用IShellFolder的BindToObject成员函数获得子文件夹的IShellFolder接口。
重复2、3步骤,列举出某文件夹下的所有子文件夹。直到所获得的IShellFolder的接口为NULL为止。

其中,SHGetDesktopFolder方法参数的一些解析:

CSIDL_BITBUCKET 回收站
CSIDL_CONTROLS 控制面板
CSIDL_DESKTOP Windows 桌面Desktop
CSIDL_DESKTOPDIRECTORY Desktop的目录
CSIDL_DRIVES 我的电脑
CSIDL_FONTS 字体目录
CSIDL_NETHOOD 网上邻居
CSIDL_NETWORK 网上邻居虚拟目录
CSIDL_PERSONAL 我的文档
CSIDL_PRINTERS 打印机
CSIDL_PROGRAMS 程序组
CSIDL_RECENT 最近打开的文档
CSIDL_SENDTO "发送到"菜单项
CSIDL_STARTMENU 任务条启动菜单项
CSIDL_STARTUP 启动目录
CSIDL_TEMPLATES 文档模板



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/andylin02/archive/2008/01/25/2065837.aspx
babala2009 2009-07-30
  • 打赏
  • 举报
回复
谁知道
mmx2008 2009-07-30
  • 打赏
  • 举报
回复

mark
babala2009 2009-07-30
  • 打赏
  • 举报
回复
谢谢

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧