c++ - MFC中如何实现IExplorerBrowser

标签 c++ com mfc windows-shell

显然,从 Vista 开始,有一种相当简单的方法可以在您的应用程序中托管资源管理器: http://www.codeproject.com/KB/vista/ExplorerBrowser.aspx

但是,该界面只能从 Vista 开始使用。

我看到还有另一种方法:“一直回到 95,但它需要更多工作 - 实现 IExplorerBrowser 并通过 IShellFolder::CreateViewObject(IID_IShellView) 从数据源获取 View ”

所以我想走后一条路:实现 IExplorerBrowser。

首先,我从哪里获得 IShellFolder * 来开始工作? 如何指定宿主窗口来放置 shell View 控件? 如何为 shell View 指定边界矩形(并调整它的大小)?

是否有一套全面的文档(或白页)记录了这些 Windows Shell 接口(interface)?到目前为止我收集到的信息似乎非常零散,有一些非常过时甚至无法编译的示例(它们需要对当前版本的 ATL 进行大量重写),而且我找不到任何示例根本没有 MFC。

最佳答案

您可以先调用 SHGetDesktopFolder() 开始工作.这将为您提供桌面的 IShellFolder。然后调用ISF::BindToObject()获取您想要查看的特定子文件夹的 IShellFolder。如果您没有所需子文件夹的 PIDL,可以调用 SHParseDisplayName()获得该 PIDL。

关于c++ - MFC中如何实现IExplorerBrowser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1610028/

相关文章:

c# - 在 64 位 Office 插件中加载 32 位 COM dll

变量周围的 C++ 堆栈已损坏

c++ - 我用VC++(MFC)集成了CLIPS,为什么有些功能没有执行,比如 "strcmp"

c++ - boost::xtime 没有名为 'is_pos_infinity' 的成员

c++ - 使用标准 C++ 同时迭代 std::vectors

python - 如何用Python制作持久的com服务器

C++ - MFC - 更改 CMenu 的文本

c# - 在 C++ 中使用 Winform 作为 View

c++ - 在调试器中的函数评估期间中断

c++ - 从 Visual Studio 2008 链接的 SimpleITK