为什么win7下CFileDialog的CListCtrl::GetItemData不能得到外壳对象PIDL?
为了使CFileDialog可以一次性选择多个文件和文件夹,按照http://www.vckbase.com/document/viewdoc/?id=940提供的代码,定制了自己的一个打开文件对话框,在XP中执行没问题,可以得到被选文件的全名(包括隐藏的扩展名)。但是在win7中会出错,只能得到被选文件的路径,连文件名都没有,比如选择D:\abc\123.txt,只能得到D:\abc,经过调试发现,在XP中CListCtrl::GetItemData 返回的值是列表项的 PIDL,即外壳对象,而在win7中GetItemData返回值总是0,导致不能正确得到全路径。该怎么解决,可以在XP和win7下都正常运行呢?