我想知道命名空间扩展开发。
每当我们浏览到特定的虚拟文件夹时,都会调用EnumObjects
,然后我会去服务器并获取所有项目(因此,最终返回ppenumIDList
)。
问题是,有时资源管理器需要从ParseDisplayName
检索单个项目(使用IShellFolder
)。
我需要返回一个包含所有相关序列化内容的完全限定PIDL。问题是,再次访问服务器并在返回的列表中搜索此单个项目效率非常低。
似乎解决方案是将列表缓存在内存中。但我不知道在哪里,我尝试将EnumObjects
缓存到列表中,并在每次调用EnumObjects
时将其清除。
但是当shell调用ParseDisplayName
时,列表为空。我猜它是因为它再次反序列化我的虚拟文件夹,列表当然是空的。
是否有一种很好的方法可以将结果保存到某处,这样我的ParseDisplayName
每次都不必去慢速服务器?