IPropertyStore接口未在属性处理程序中调用

时间:2014-05-30 20:32:01

标签: windows search properties com handler

我正在开发一个实现IPropertyStore和IInitializeWithFile的属性处理程序,在Win 8.1 x64上进行测试。以前使用prop.exe正确注册的.propdesc文件将属性名称添加到系统中。

当我在磁盘上重新索引文件时,我使用PROCMON.EXE来监视事件。 SearchPrototocolHost.exe加载协议处理程序,使用IInitializeWithFile正确初始化它(文件中的属性似乎从文件加载正常)然后继续使用PSCreatePropertyStoreFromObject来检索IPropertyStore接口并开始从文件中检索属性。

然后没有其他事情发生,IPropertyStore的方法永远不会被调用。相反,SearchPrototocolHost.exe在要使用“Open Reparse Point”再次编制索引的文件上发出CreateFile,无法获取QueryRemoteProtocolInformation,关闭文件然后继续下一个文件进行索引。

为什么我的属性处理程序失败(是安全问题等等?)?

1 个答案:

答案 0 :(得分:1)

看起来需要添加到注册表项: " HKLM" " SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Shell Extensions \ Approved" {} My_CLSID 其中My_CLSID是我的属性处理程序的GUID!

我不知道这是否是使用IInitializeWithFile作为额外安全预防措施的处理程序的特定要求。

经过三个星期的撞击墙壁,现在我可以听到"资源管理器调用IPropertyStore方法(使用MessageBeep ...)。没关系他们崩溃资源管理器,至少我知道IPropertyStore没有被阻止!