0

我只是在尝试此处提供的 Recipe Property Handler 的 Windows 应用程序示例,我将其修改为用于.doc文件而不是.recipe文件:

const WCHAR c_szRecipeFileExtension[] = L".doc";

但是,这似乎用它自己覆盖了以前的 Office 处理程序的属性,这就引出了一个问题,Windows shell 是否支持多个 shell 属性处理程序,或者对于给定的文件类型一次只能使用一个?如果可能的话,我在示例中的代码或逻辑中遗漏了什么?

我在 MSDN 上找不到这个问题的具体答案。

4

1 回答 1

2

不。

但是您可以使用一个变体(我不喜欢它,但我没有看到任何其他变体)。注册自己的时保存以前的属性处理程序 CLSID。当 shell 请求您无法处理的属性时 - 只需创建先前处理程序的实例并将请求传递给它们。

CoCreateInstance(SavedCLSID, nil, CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IPropertyStore, PS)
PS.QueryInterface(IInitializeWithStream, IWS)
IWS.Initialize(Stream, Mode)
PS.GetValue(AUnknownKey)
于 2016-09-16T16:09:21.950 回答