显然,从Vista开始,有一种相当简单的方法可在您的应用程序中托管Explorer:
http://www.codeproject.com/KB/vista/ExplorerBrowser.aspx
但是,该界面仅从Vista开始可用。
我看到有另一种方法可以做到:“一直回到95,但需要做更多的工作-实现IExplorerBrowser并通过IShellFolder :: CreateViewObject(IID_IShellView)从数据源获取视图”
因此,我想走后一条路线:实现IExplorerBrowser。
我从哪里获得IShellFolder *来使球开始滚动?
如何指定宿主窗口来容纳Shell视图控件?
如何为shell视图指定边界rect(并调整其大小)?
是否有一套完整的文档(或白皮书)来记录Windows Shell的这些接口?到目前为止,我收集的信息似乎非常零散,其中有一些示例非常过时,甚至无法编译(它们需要大量重写为当前版本的ATL),而我找不到任何示例MFC。
最佳答案
您可以通过先调用SHGetDesktopFolder()使球滚动。这将为您提供用于桌面的IShellFolder。然后调用ISF::BindToObject()以获取要查看的特定子文件夹的IShellFolder。如果没有所需子文件夹的PIDL,则可以调用SHParseDisplayName()以获得该PIDL。
关于c++ - 如何在MFC中实现IExplorerBrowser,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1610028/