[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);
}
<ComImport> _
<Guid("TODO")> _
'TODO: Insert <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _ if this doesn't derive from IDispatch
Interface IShellView3
TODO
End Interface
None.
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
}