【问题标题】:IEnumShellItems vs IShell­Folder::Enum­Objects (missing HWND argument)IEnumShellItems vs IShellFolder::EnumObjects(缺少 HWND 参数)
【发布时间】:2016-01-13 11:33:01
【问题描述】:

在 Windows shell 中枚举项目(文件)的“新”方法是 IEnumShellItems。旧方法是 IShellFolder::EnumObjects。然而,这两种方法不是 100% 等效的。 articles 解释了如何模拟超隐藏文件的 SHCONTF 参数,但 EnumObjects 也有一个 HWND 参数,可用于告诉 shell 扩展以进行交互,例如询问密码等。我找不到如何通过 IEnumShellItems 传递此类“获取交互”信息。

这不是无意义的提问,我试图说服 Windows 资源管理器向我的 7z shell extension 询问密码

谢谢

【问题讨论】:

  • 我会坚持使用旧 API,因为新内容的文档记录非常糟糕。
  • 我坚持使用旧的东西,但资源管理器本身却没有,这就是问题所在!
  • 为什么 Explorer 的功能很重要?新 API 为您做了哪些旧 API 没有的功能?
  • 这不适用于 xplorer2。上述 7z NSE 有时需要询问密码,而资源管理器没有通过 EnumObjects 传递 HWND,这表明使用了 IEnumShellItems。必须有一些通过 HWND 的绑定上下文,但它在哪里?
  • 哦,所以您是从另一端(作为实施者)使用它?我错过了。是的,我想它一定是这样的。可能是一个超级秘密的无证界面,由于……原因,不可能向世界透露。

标签: shell winapi


【解决方案1】:

L"UI During Binding" 绑定上下文字符串可以是站点吗?接口,尝试调用IUnknown_GetWindow就可以了。 IUnknown_EnableModless 可能也是一个好主意(但没有记录?)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 2022-01-16
    相关资源
    最近更新 更多