附加到shell扩展中的默认工具提示

我有一个使用SharpShell构建的shell扩展。 我想知道是否可以附加到鼠标hover在文件上时看到的工具提示:

在此处输入图像描述

我已阅读并尝试使用Shell Info Tip Handler ,但问题在于它会将您设置的内容覆盖整个工具提示,而不是让您能够将一行文本附加到您正常的默认工具提示会看到,这是我想要的结果。

我有一种感觉,SharpShell可能不支持这种方式,因此,有助于我从人们那里获得有关如何在MSVC ++ shell扩展中另外解决此问题的见解。

这是可能的,但不是通过shell工具提示扩展。 相反,通过shell属性处理程序 。 Recipe Property Handler 在此处有记录,可以从此存储库中完整下载。 以下是Windows 10中的操作图片:

在此处输入图像描述

它实际上通过将自身注册为属性处理程序为PerfectSteaks.recipe文件添加了额外的文件属性,例如Recipe difficulty的属性,其关键是Microsoft.SampleRecipe.Difficulty并且可以通过修改HKCRHKEY_CLASSES_ROOT\SystemFileAssociations\.recipe轻松设置为在Explorer显示HKEY_CLASSES_ROOT\SystemFileAssociations\.recipeInfoTip (类型为REG_SZ )设置为prop:System.ItemType;System.Author;System.Rating;Microsoft.SampleRecipe.Difficulty使其显示。

属性存储在文件本身中。 .recipe文件是一个XML文件,其中包含处理程序检索的实际难度:

  Hard 5 20 2 servings  

这些日子并不是独一无二的,因为很多文件格式都提供了某种forms的额外内部API来存储。 如果您正在使用Office文件(我是),您可能会注意到它们在其中公开了存储属性,以便使用OLE进行持久化。 DSOFile.dll ( 单击此处下载源代码 )对Office文件以及其他文件也非常感兴趣。 您将看到它在Office文件格式本身中尝试OLE存储,除非它尝试使用Microsoft Office Metadata Handler进行存储。 如果失败了,它最终会尝试使用备用流(不是自己的备用流的粉丝,因为它们不会持久)。

因此,通过结合使用shell属性处理程序和类似于DSOFile.dll的策略,您可以合并一个解决方案,以便以正确的方式完成此任务。