使用大数据正确实现IShellFolder.EnumObjects与IShellFolder.ParseDisplayName?

时间:2015-10-25 10:46:37

标签: c# c++ winapi namespaces shell-extensions

我想知道命名空间扩展开发。

每当我们浏览到特定的虚拟文件夹时,都会调用EnumObjects,然后我会去服务器并获取所有项目(因此,最终返回ppenumIDList)。

问题是,有时资源管理器需要从ParseDisplayName检索单个项目(使用IShellFolder)。

我需要返回一个包含所有相关序列化内容的完全限定PIDL。问题是,再次访问服务器并在返回的列表中搜索此单个项目效率非常低。

似乎解决方案是将列表缓存在内存中。但我不知道在哪里,我尝试将EnumObjects缓存到列表中,并在每次调用EnumObjects时将其清除。 但是当shell调用ParseDisplayName时,列表为空。我猜它是因为它再次反序列化我的虚拟文件夹,列表当然是空的。

是否有一种很好的方法可以将结果保存到某处,这样我的ParseDisplayName每次都不必去慢速服务器?

0 个答案:

没有答案