我已经创建了一个以Desktop为根的命名空间扩展。该扩展的主要目的是提供代表可配置目录列表的ZIP文件的虚拟列表。当用户单击其中一个项目时,相关目录的内容将被压缩,生成的ZIP文件将存储在缓存文件夹中。
除了一个小问题,所有这些都工作得很好。如果我们转到Windows资源管理器,打开扩展并双击一个项目,打开的文件就是缓存中的文件。对,是这样
另一方面,如果我们通过open Dialog打开它,那么打开的文件是来自临时Internet文件目录的文件。不正确
要从缓存文件夹而不是临时互联网文件中打开文件,必须对打开对话框(例如通过notepad.exe使用时)进行哪些更改。我一直尝试发送IShellFolder::GetDisplayNameOf中的限定文件名,但没有成功。
发布于 2009-07-29 07:40:29
通过在接口方法IShellFolder::GetAttributesOf的实现返回的属性中屏蔽SFGAO_FILESYSTEM,修复了此问题。
发布于 2008-09-18 14:31:08
听起来您没有传入正确的初始目录(在OPENFILENAME结构的lpstrInitialDir或lpstrFile参数中)。
在lpstrInitialDir中输入您的缓存目录,并将lpstrFile保留为空,它应该可以工作。
https://stackoverflow.com/questions/71475
复制相似问题