显然,从 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/