我在我的代码中创建了一个IExplorerBrowser实例,用于在我的一个对话框中创建自定义I / O视图.我在我的宿主类中实现了IServiceProvider和ICommDlgBrowser接口.我使用IExplorerBrowser :: BrowseToIDList方法来填充视图.
我想过滤显示的文件类型(例如只有PNG文件).如果我用FOLDERID_Pictures(即“我的图片”)调用BrowseToIDList,我可以使用ICommDlgBrowser :: IncludeObject方法或IFolderFilter :: ShouldShow来限制我允许显示的文件.但是,如果我浏览到Windows 7上的图片库(FOLDERID_PicturesLibrary),则不会调用ICommDlgBrowser :: IncludeObject和IFolderFilter :: ShouldShow.
在Win7上过滤我不知道的库中的文件有一些限制吗?也许我错过了一个界面,或者我在某个地方指定了错误的标志.
任何想法将不胜感激.
最佳答案 我有机会进一步研究这个问题,包括向一些微软开发人员提出几个问题.遗憾的是,过滤不适用于查询支持的视图(即库).
我的方法的另一种方法是使用Common Item Dialog和应用程序添加的控件(通过IFileDialogCustomize).
(http://msdn.microsoft.com/en-us/library/bb776913(VS.85).aspx)
在我的具体情况下,我无法使用Common Item Dialog,但我认为在此处发布此信息以供将来参考可能是值得的.
如果将来我找到任何方法来过滤IExplorerBrowser控件,我也会在这里发布.