就是得到子文件夹的 IShellFolder 接口啊。PIDL 一般是通过 IShellFoder::EnumObjects 得到。
解决方案 »
- 请教VS2005中字符操作
- 设计计算器 要求实现优先级
- 急, 请教一个Mesh Simplification 问题
- UDP多对多,如何分辨数据包?
- 请教各位大侠,文件的读写实际编程中用的多吗?
- 在主程序里调用DLL作的对话框退出时主窗口也退出在问题!
- vc中,含有汉字和英文字母和数字的字符串,如何计算长度,准确截取一定长度的字符串呢?
- 怎样把某一目录(该目录下还可能有目录)下的所有文件提取出来,拷贝至另一个目录下?
- MSChart控件Y轴上的字非常模糊!!
- mfc 连续读jpeg图像并把图片信息(如名称,编号等)保存为xml格式
- 难道没有人会吗?再次问用VFW(Video for Windows)可以实现将bmp文件和wav文件合成为 avi文件吗?
- 我的VC++问题
LPITEMIDLIST *pidlItems=NULL;
LPENUMIDLIST ppenum;SHGetDesktop(psfDesktop);
psfDesktop->EnumObject(...,&ppenum);
while(ppenum->Next()!=S_FALSE){
Memo1->Lines->Add(...);
}
再查查相关函数。
1。PIDL 是单个的SHITEMID结构指针还是SHITEMID的列表的指针呢。
2。BIND起什么作用呢。。
3。PIDL与ISHELLFOLDER是不是一一对应呢。如果是:
FIDesktopFolder->BindToObject (pidl,NULL,IID_IShellFolder,(void **&NewShellFolder);
这个pidl应该是NewShellFolder(子文件夹)的呢。还是FIDesktopFolder的呢。
kimryo(kimryo)大虾也帮助看看。。
子文件夹这么多。那到底是哪个文件夹呢。而且得到子文件夹不是有个EnumObject么。
大家帮助看看。。呵呵
|Desktop|My Computer|C:|Windows|System|(长度不定) 用IShellFolder Interface可得到任意文件夹的ItemIDList,在用SHGetPathFromIDList便可得到文件夹的路径。(如c:\windows\system)
或用IShellFodler::ParseDispayName得到ItemIDList.
那子文件夹这么多。那到底是哪个文件夹呢。而且得到子文件夹不是有个EnumObject么。
干吗用BIND呢。
而且你看:
SHGetSpecialFolderLocation(Application->Handle, CSIDL_DRIVES,&NewPIDL);
FIDesktopFolder->BindToObject(NewPIDL, NULL, IID_IShellFolder,(void **)&NewShellFolder);
他这两句是不是得到了“我的电脑”这个东西呢。
也就是说BIND一定要先提供子文件夹的PIDL这个东西呢(是已知还是未知的?)
而且你说ItemIDList类似C:\windows\System这种结构吗?我觉得好象不是。应该是System这样的吧。因为它是一个“首尾相连”的ITEMLIST结构。所以一串的ITEMLIST就显示了
C:\windows\System这样的结构。。不知道我说的是不是。。
BIND的PIDL应该是已经提供的。而不是去得到。而如何得到这个PIDL呢。就用ENUMOBJECT把
另外你说的ItemIDList STRUCT我觉得很对。每个路径之间用个ItemIDList来隔开;
不知道我的理解对不对。
每双竖线之间为一个ItemIDList.
ENUM起个找PIDL的作用。是着两个结合起来吧。。分别用这两个函数去
得到这两个变量吧。。
你说的¦是什么意思呢。。
SHGetSpecialFolderLocation(Application->Handle, CSIDL_DRIVES,&NewPIDL);
FIDesktopFolder->BindToObject(NewPIDL, NULL, IID_IShellFolder,(void **)&NewShellFolder);
这两句:NewPIDL应该是已知的啊。。呵呵。
可以加个朋友么。。呵呵。不过我现在在用BCB。