IShellView (Interfaces)
Last changed: -95.38.14.10

.
Summary
Extends the capabilities of IShellView2 by providing a method to replace IShellView2::CreateViewWindow2.

C# Definition:

[ComImport(),
Guid("ec39fa88-f8af-41c5-8421-38bed28f4673"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IShellView3 {
       int CreateViewWindow3(
        [In, MarshalAs(UnmanagedType.Interface)] IShellBrowser psbOwner,
        [In, MarshalAs(UnmanagedType.Interface)] IShellView psvPrevious,
        [In] SV3CVW3_FLAGS dwViewFlags,
        [In] FolderFlags dwMask,
        [In] FolderFlags dwFlags,
        [In] FolderViewMode fvMode,
        [In, Out] ref Guid pvid,
        [In, Out] ref RECT prcView,
        [Out] out UInt32 phWnd);
}

VB Definition:

<ComImport> _
<Guid("TODO")> _
'TODO: Insert <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _ if this doesn't derive from IDispatch
Interface IShellView3
   TODO
End Interface

User-Defined Types:

None.

Notes:

    internal enum SV3CVW3_FLAGS
    {
    /// <summary>
    /// The default view.
    /// </summary>
    DEFAULT = 0x0,
    /// <summary>
    /// In the case of an error, the view should fail silently rather than displaying a UI.
    /// </summary>
    NONINTERACTIVE = 0x1,
    /// <summary>
    /// The view mode set by IShellView3::CreateViewWindow3 overrides the saved view state.
    /// </summary>
    FORCEVIEWMODE = 0x2,
    /// <summary>
    /// Folder flags set by IShellView3::CreateViewWindow3 override the saved view state.
    /// </summary>
    FORCEFOLDERFLAGS = 0x4
    }

    /// <summary>
    /// The folder flags are used to specify how the control displays its content.
    /// Most of these flags can be or'ed together.
    /// http://msdn.microsoft.com/en-us/library/bb762508(VS.85).aspx
    /// </summary>
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix"), Flags]
    public enum FolderFlags : int
    {
        /// <summary> 0x00000000. Windows 7 and later. No special view options. </summary>
        None = 0x00000000,
        /// <summary>Automatically arrange the elements in the view. This implies LVS_AUTOARRANGE if the list view control is used to implement the view.</summary>
        AutoArrange = 0x00000001,
        /// <summary>Abbreviate names. This flag is not currently supported.</summary>
        AbbreviatedNames = 0x00000002,
        /// <summary>Arrange items on a grid. This flag is not currently supported.</summary>
        SnapToGrid = 0x00000004,
        /// <summary></summary>
        OwnerData = 0x00000008,
        /// <summary>This flag is not currently supported.</summary>
        BestFitWindow = 0x00000010,
        /// <summary>Enable the best-fit window mode. Let the view size the window so that its contents fit inside the view window in the best possible manner.</summary>
        Desktop = 0x00000020,
        /// <summary>Do not allow more than a single item to be selected. This is used in the common dialog boxes.</summary>
        SingleSelection = 0x00000040,
        /// <summary>Do not show subfolders.</summary>
        NoSubFolders = 0x00000080,
        /// <summary>Draw transparently. This is used only for the desktop.</summary>
        Transparent = 0x00000100,
        /// <summary>This flag is not currently supported.</summary>
        NoClientEdge = 0x00000200,
        /// <summary>Do not add scroll bars. This is used only for the desktop.</summary>
        NoScroll = 0x00000400,
        /// <summary>The view should be left-aligned. This implies LVS_ALIGNLEFT if the list view control is used to implement the view.</summary>
        AlignLeft = 0x00000800,
        /// <summary>The view should not display icons.</summary>
        NoIcons = 0x00001000,
        /// <summary>Always show the selection.</summary>
        ShowSelectionAlways = 0x00002000,
        /// <summary>This flag is not currently supported.</summary>
        NoVisible = 0x00004000,
        /// <summary>This flag is not currently supported.</summary>
        SingleClickActivate = 0x00008000,
        /// <summary>The view should not be shown as a Web view.</summary>
        NoWebView = 0x00010000,
        /// <summary>The view should not display file names.</summary>
        HideFilenames = 0x00020000,
        /// <summary>Turns on the check mode for the view.</summary>
        CheckSelect = 0x00040000,
        /// <summary>Windows Vista and later: Do not re-enumerate the view (or drop the current contents of the view) when the view is refreshed.</summary>
        NoEnumRefresh = 0x00080000,
        /// <summary>Windows Vista and later: Do not allow grouping in the view</summary>
        NoGrouping = 0x00100000,
        /// <summary>Windows Vista and later: When an item is selected, the item and all its sub-items are highlighted.</summary>
        FullRowSelect = 0x00200000,
        /// <summary>Windows Vista and later: Do not display filters in the view.</summary>
        NoFilters = 0x00400000,
        /// <summary>Windows Vista and later: Do not display a column header in the view in any view mode.</summary>
        NoColumnHeader = 0x00800000,
        /// <summary>Windows Vista and later: Only show the column header in details view mode.</summary>
        NoHeaderInAllViews = 0x01000000,
        /// <summary>Windows Vista and later: When the view is in "tile view mode" the layout of a single item should be extended to the width of the view.</summary>
        ExtendedTiles = 0x02000000,
        /// <summary>Windows Vista and later: Check boxes have 3 modes: unchecked, SVSI_CHECK, SVSI_CHECK2.</summary>
        TriCheckSelect = 0x04000000,
        /// <summary>Windows Vista and later: Items can be selected using checkboxes.</summary>
        AutoCheckSelect = 0x08000000,
        /// <summary>Windows Vista and later: The view should not save view state in the browser.</summary>
        NoBrowserViewState = 0x10000000,
        /// <summary>Windows Vista and later: The view should list the number of items displayed in each group. To be used with IFolderView2::SetGroupSubsetCount.</summary>
        SubsetGrouops = 0x20000000,
        /// <summary>Windows Vista and later: Use the search folder for stacking and searching.</summary>
        UseSearchFolder = 0x40000000,
        // /// <summary>Windows Vista and later: Ensure right-to-left reading layout.</summary>
        //AllowRtlReading = 0x80000000 (not int compatible; see bug #9582)
    }

    /// <summary>
    /// Enumerates the different viewmodes of the explorer listview.
    /// </summary>
    public enum FolderViewMode : int
    {
        /// <summary> The view should determine the best option.</summary>
        Auto = -1,
        //FVM_FIRST = 1,
        /// <summary>The view should display medium-size icons.</summary>
        Icon = 1,
        ///<summary> Each item appears as a small icon with the label to the right of it. ///</summary>
        ///<remarks>Using List as SmallIcons - like Delphi version.</remarks>
        SmallIcon = 3,
        ///<summary>
        ///Each item appears as a small icon with a label to the right of it. Items are arranged in
        ///columns and cannot be dragged by the user.
        ///</summary>
        List = 3,
        /// <summary>Object names and other selected information, such as the size or date last updated, are shown.</summary>
        Details = 4,
        /// <summary>The view should display thumbnail icons.</summary>
        Thumbnail = 5,
        /// <summary>The view should display large icons.</summary>
        Tile = 6,
        //Thumbstrip = 7, (same as Thumbnail)
        /// <summary>
        /// Windows 7 and later. The view should display content mode.    
        /// FVM_CONTENT New for Windows 7, see http://msdn.microsoft.com/en-us/library/bb762510%28VS.85%29.aspx
        /// </summary>
        Content = 8,
        //FVM_LAST = 8
    }

Documentation
IShellView3 on MSDN