如何获取指向IShellView2接口的指针

时间:2012-09-20 17:54:06

标签: c# windows shell32

我们需要在我们的应用程序中托管类似浏览器的浏览器窗口。我们不能使用新的IExplorerBrowser,因为需要保持与Windows XP的兼容性。

主要问题是我们需要默认以“大图标”模式显示项目。不幸的是,使用FOLDERSETTINGS.viewMode = 0x1 / * LargeIcon * /调用IShellVIew.CreateViewWindow()不会将视图模式更改为所需。但我可以通过窗口中的上下文菜单手动完成此操作。

所以我们需要设置“大图标”视图模式。我没有找到任何方法以编程方式获取视图本身的上下文菜单。

然后,我发现IShellView2似乎需要走的路 - IShellView2.CreateViewWindow2()接收视图模式为GUID而不是预定义的const。但无法访问界面!

IShellFolder.CreateViewObject(hwndOwner,typeof(IShellView).GUID)返回正确的实例。 但是,当我尝试IShellFolder.CreateViewObject(hwndOwner,typeof(IShellView2).GUID)时,我有异常“指定的强制转换无效”。

如何获取IShellView2接口的对象???

1 个答案:

答案 0 :(得分:3)

调用IShellView对象上的QueryInterface方法,询问它是否有IID_IShellView2。