资源管理器定义了一组标准视图状态:
*查看模式,如大/小图标视图(或详细视图)
*查看属性,例如捕捉到网格。
资源管理器提供了一种持久的媒体来存储这些状态,尽管不需要使用它们,但建议使用它们。该设置通过使用IShellView::CreateViewWindow传递给视图对象,并通过使用IShellView::GetCurrentInfo .
资源管理器还提供一个持久媒体(一个流),让视图对象存储特定于视图的信息(如滚动位置或图标布局)。视图对象可以通过调用IShellBrowser::GetViewStateStream访问此流。
当用户从一个文件夹浏览到另一个文件夹时,资源管理器将指向以前查看的IShellView实例的指针作为参数传递给IShellView::CreateViewWindow(在调用其DestroyViewWindow之前)。这允许下一个视图对象从上一个视图对象中检索适当的视图状态(例如其详细信息视图的列宽),通常通过在专用接口上调用IUnknown::QueryInterface.