【问题标题】:Does the Windows shell support multiple shell property handlers?Windows shell 是否支持多个 shell 属性处理程序?
【发布时间】:2017-01-24 20:37:21
【问题描述】:

我只是在试用 here 可用的配方属性处理程序的 Windows 应用程序示例,我将其修改为用于 .doc 文件而不是 .recipe 文件:

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

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

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

【问题讨论】:

    标签: visual-c++ explorer windows-shell file-properties propertyhandler


    【解决方案1】:

    没有。

    但是您可以使用一个变体(我不喜欢它,但我没有看到任何其他变体)。注册自己的时保存以前的属性处理程序 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)
    

    【讨论】:

      猜你喜欢
      • 2012-05-30
      • 1970-01-01
      • 2011-04-08
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多