首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于资源管理器替换程序的SHOpenFolderAndSelectItems

用于资源管理器替换程序的SHOpenFolderAndSelectItems
EN

Stack Overflow用户
提问于 2014-03-02 02:40:44
回答 1查看 1.7K关注 0票数 3

我维护了一个资源管理器/文件管理器工具(xplorer2),它可以取代windows资源管理器来打开文件夹。但是我不能捕获SHOpenFolderAndSelectItems接口执行的“打开文件夹和选择项目”操作。

我发现了一些其他文件管理器程序员的old thread,它暗示正确的方法是将“资源管理器”工具注册为shell窗口,然后响应一些查询以提供诸如IWebBrowserApp之类的接口和服务,从而允许选择项

我成功地在shell窗口中注册了顶层窗口

代码语言:javascript
复制
CComPtr<IShellWindows> pShellWindows;
HRESULT hr = pShellWindows.CoCreateInstance(CLSID_ShellWindows);
hr = pShellWindows->Register(static_cast<IDispatch*>(this),
    (SHANDLE_PTR)hwTop, /*SWC_3RDPARTY*/SWC_EXPLORER, &m_dwCookie);
ATLASSERT(SUCCEEDED(hr));

如果在shell窗口中枚举了该窗口,则会显示该窗口。但是,当它作为SHOpenFolderAndSelectItems (在HKEY_CLASSES_ROOT\Directory\shell中声明为资源管理器的替代品)启动时,不会尝试对已注册的IDispatch执行QueryInterface或任何其他操作。我已经尝试了SWC_3RDPARTY和SWC_EXPLORER注册标志,但都没有成功

你知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2014-03-10 19:26:36

好了,我想通了。真正的诀窍是在buggy documentation中循环

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22118653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档