The Explorer defines a set of standard view states:
·View mode, such as large/small icon view (or detail view)
·View attributes, such as snap to grid.
The Explorer provides a persistent medium to store these states and though using them is not required, it is recommended. The setting is passed to the view object by using IShellView::CreateViewWindow and retrieved from it by using IShellView::GetCurrentInfo.
The Explorer also provides a persistent medium (a stream) to let the view object store view-specific information (such as scroll positions or icon layout). The view object can access this stream by calling IShellBrowser::GetViewStateStream.
When the user is browsing from one folder to another, the Explorer passes the pointer to the previously viewed IShellView instance as a parameter to IShellView::CreateViewWindow (before calling its DestroyViewWindow). This allows the next view object to retrieve appropriate view state from the previous view object (such as column widths of its details view), typically by calling IUnknown::QueryInterface on a private interface.