我们为自定义文件格式实现了一个shell属性处理程序,包含一些标准属性和一些自定义属性。当我们在资源管理器中浏览我们的文件时,我们的属性可以很好地显示,但是当我们的文件出现在搜索结似乎资源管理器在显示搜索结果时没有查询我们的属性处理程序。
我的问题是:当资源管理器在搜索结果中显示某个项目时,它在哪里查找该项目的属性?它是否查询相应的处理程序,或者它是否在某种搜索中显示某个位置缓存?
如果它查询处理程序,那么我将调查为什么不调用我们的处理程序。 (也许这是一个注册错误。)如果它在搜索缓存中查找,那么我将调查为什么我们的文件没有正确编入索引。
第二个问题:搜索结果窗格是否仅限于标准属性的有限子集?换句话说,我们应该放弃尝试在此处显示有趣的属性吗?
一些观察结果:
System.ItemName
,System.ItemUrl
,System.Size
,System.DateCreated
。这些可在我们的处理程序中使用,但不显示:System.Title
,System.Message.FromAddress
,System.Message.DateSent
。HKCR\<progid>
注册表项,因为我们编辑ContentViewModeForSearch等时显示会适应。The content source <csc://{S-1-5-21-2153095834-1917727522-598830505-500}/> cannot be accessed.
”我认为SID是我的用户帐户,所以我想知道它是否正在尝试索引它没有权限的内容。