/// <summary>Merge the toolbar items instead of replacing all of the buttons with those provided by the view. This is the recommended choice.</summary>
FCT_MERGE=0x0001,
/// <summary>Not implemented.</summary>
FCT_CONFIGABLE=0x0002,
/// <summary>Add at the right side of the toolbar.</summary>
/// <summary>Windows 7 and later. No special view options.</summary>
FWF_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>
FWF_AUTOARRANGE=0x00000001,
/// <summary>Not supported.</summary>
FWF_ABBREVIATEDNAMES=0x00000002,
/// <summary>Not supported.</summary>
FWF_SNAPTOGRID=0x00000004,
/// <summary>Not supported.</summary>
FWF_OWNERDATA=0x00000008,
/// <summary>Not supported.</summary>
FWF_BESTFITWINDOW=0x00000010,
/// <summary>Make the folder behave like the desktop. This value applies only to the desktop and is not used for typical Shell folders. This flag implies FWF_NOCLIENTEDGE and FWF_NOSCROLL.</summary>
FWF_DESKTOP=0x00000020,
/// <summary>Do not allow more than a single item to be selected. This is used in the common dialog boxes.</summary>
FWF_SINGLESEL=0x00000040,
/// <summary>Do not show subfolders.</summary>
FWF_NOSUBFOLDERS=0x00000080,
/// <summary>Draw transparently. This is used only for the desktop.</summary>
FWF_TRANSPARENT=0x00000100,
/// <summary>Not supported.</summary>
FWF_NOCLIENTEDGE=0x00000200,
/// <summary>Do not add scroll bars. This is used only for the desktop.</summary>
FWF_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>
FWF_ALIGNLEFT=0x00000800,
/// <summary>The view should not display icons.</summary>
FWF_NOICONS=0x00001000,
/// <summary>This flag is deprecated as of Windows XP and has no effect. Always show the selection.</summary>
FWF_SHOWSELALWAYS=0x00002000,
/// <summary>Not supported.</summary>
FWF_NOVISIBLE=0x00004000,
/// <summary>Not supported.</summary>
FWF_SINGLECLICKACTIVATE=0x00008000,
/// <summary>The view should not be shown as a web view.</summary>
FWF_NOWEBVIEW=0x00010000,
/// <summary>The view should not display file names.</summary>
FWF_HIDEFILENAMES=0x00020000,
/// <summary>Turns on the check mode for the view.</summary>
FWF_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>
FWF_NOENUMREFRESH=0x00080000,
/// <summary>Windows Vista and later. Do not allow grouping in the view</summary>
FWF_NOGROUPING=0x00100000,
/// <summary>Windows Vista and later. When an item is selected, the item and all its sub-items are highlighted.</summary>
FWF_FULLROWSELECT=0x00200000,
/// <summary>Windows Vista and later. Do not display filters in the view.</summary>
FWF_NOFILTERS=0x00400000,
/// <summary>Windows Vista and later. Do not display a column header in the view in any view mode.</summary>
FWF_NOCOLUMNHEADER=0x00800000,
/// <summary>Windows Vista and later. Only show the column header in details view mode.</summary>
FWF_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>
FWF_EXTENDEDTILES=0x02000000,
/// <summary>Windows Vista and later. Not supported.</summary>
FWF_TRICHECKSELECT=0x04000000,
/// <summary>Windows Vista and later. Items can be selected using checkboxes.</summary>
FWF_AUTOCHECKSELECT=0x08000000,
/// <summary>Windows Vista and later. The view should not save view state in the browser.</summary>
FWF_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>
FWF_SUBSETGROUPS=0x20000000,
/// <summary>Windows Vista and later. Use the search folder for stacking and searching.</summary>
FWF_USESEARCHFOLDER=0x40000000,
/// <summary>Windows Vista and later. Ensure right-to-left reading layout in a right-to-left system. Without this flag, the view displays strings from left-to-right both on systems set to left-to-right and right-to-left reading layout, which ensures that file names display correctly.</summary>
/// Used by methods of the IFolderViewOptions interface to activate Windows Vista options not supported by default in Windows 7 and later systems as well as deactivating new Windows 7 options.
/// </summary>
[Flags]
publicenumFOLDERVIEWOPTIONS
{
/// <summary>Do not use any special options.</summary>
FVO_DEFAULT=0x00000000,
/// <summary>Use the Windows Vista list view. This can be used to maintain continuity between systems so that users are presented with an expected view. At this time, setting this flag has the effective, though not literal, result of the application of the FVO_CUSTOMPOSITION and FVO_CUSTOMORDERING flags. However, this could change. Applications should be specific about the behaviors that they require. For instance, if an application requires custom positioning of its items, it should not rely on FVO_VISTALAYOUT to provide it, but instead explicitly apply the FVO_CUSTOMPOSITION flag.</summary>
FVO_VISTALAYOUT=0x00000001,
/// <summary>Items require custom positioning within the space of the view. Those items are positioned to specific coordinates. This option is not active by default in the Windows 7 view.</summary>
FVO_CUSTOMPOSITION=0x00000002,
/// <summary>Items require custom ordering within the view. This option is not active by default in the Windows 7 view. When it is active, the user can reorder the view by dragging items to their desired locations.</summary>
FVO_CUSTOMORDERING=0x00000004,
/// <summary>Tiles and Details displays can contain hyperlinks. This option is not active by default in the Windows 7 view. When hyperlinks are displayed, they are updated to the Windows 7 view.</summary>
FVO_SUPPORTHYPERLINKS=0x00000008,
/// <summary>Do not display animations in the view. This option was introduced in Windows 7 and is active by default in the Windows 7 view.</summary>
FVO_NOANIMATIONS=0x00000010,
/// <summary>Do not show scroll tips. This option was introduced in Windows 7 and is active by default in the Windows 7 view.</summary>
FVO_NOSCROLLTIPS=0x00000020,
}
/// <summary>Flags specifying the folder to be browsed.</summary>
/// <summary>An absolute PIDL, relative to the desktop.</summary>
SBSP_ABSOLUTE=0x0000,
/// <summary>Windows Vista and later. Navigate without the default behavior of setting focus into the new view.</summary>
SBSP_ACTIVATE_NOFOCUS=0x00080000,
/// <summary>Enable auto-navigation.</summary>
SBSP_ALLOW_AUTONAVIGATE=0x00010000,
/// <summary>Microsoft Internet Explorer 6 Service Pack 2 (SP2) and later. The navigation was possibly initiated by a webpage with scripting code already present on the local system.</summary>
SBSP_CALLERUNTRUSTED=0x00800000,
/// <summary>Windows 7 and later. Do not add a new entry to the travel log. When the user enters a search term in the search box and subsequently refines the query, the browser navigates forward but does not add an additional travel log entry.</summary>
SBSP_CREATENOHISTORY=0x00100000,
/// <summary>Use default behavior, which respects the view option (the user setting to create new windows or to browse in place). In most cases, calling applications should use this flag.</summary>
SBSP_DEFBROWSER=0x0000,
/// <summary>Use the current window.</summary>
SBSP_DEFMODE=0x0000,
/// <summary>Specifies a folder tree for the new browse window. If the current browser does not match the SBSP_EXPLOREMODE of the browse object call, a new window is opened.</summary>
SBSP_EXPLOREMODE=0x0020,
/// <summary>Windows Internet Explorer 7 and later. If allowed by current registry settings, give the browser a destination to navigate to.</summary>
SBSP_FEEDNAVIGATION=0x20000000,
/// <summary>Not supported. Do not use.</summary>
SBSP_HELPMODE=0x0040,
/// <summary>Undocumented</summary>
SBSP_INITIATEDBYHLINKFRAME=0x80000000,
/// <summary>Windows Vista and later. Not supported. Do not use.</summary>
SBSP_KEEPSAMETEMPLATE=0x00020000,
/// <summary>Windows Vista and later. Navigate without clearing the search entry field.</summary>
SBSP_KEEPWORDWHEELTEXT=0x00040000,
/// <summary>Navigate back, ignore the PIDL.</summary>
SBSP_NAVIGATEBACK=0x4000,
/// <summary>Navigate forward, ignore the PIDL.</summary>
SBSP_NAVIGATEFORWARD=0x8000,
/// <summary>Creates another window for the specified folder.</summary>
SBSP_NEWBROWSER=0x0002,
/// <summary>Suppress selection in the history pane.</summary>
SBSP_NOAUTOSELECT=0x04000000,
/// <summary>Do not transfer the browsing history to the new window.</summary>
SBSP_NOTRANSFERHIST=0x0080,
/// <summary>Specifies no folder tree for the new browse window. If the current browser does not match the SBSP_OPENMODE of the browse object call, a new window is opened.</summary>
SBSP_OPENMODE=0x0010,
/// <summary>Browse the parent folder, ignore the PIDL.</summary>
SBSP_PARENT=0x2000,
/// <summary>Windows 7 and later. Do not make the navigation complete sound for each keystroke in the search box.</summary>
SBSP_PLAYNOSOUND=0x00200000,
/// <summary>Enables redirection to another URL.</summary>
SBSP_REDIRECT=0x40000000,
/// <summary>A relative PIDL, relative to the current folder.</summary>
SBSP_RELATIVE=0x1000,
/// <summary>Browse to another folder with the same Windows Explorer window.</summary>
SBSP_SAMEBROWSER=0x0001,
/// <summary>Microsoft Internet Explorer 6 Service Pack 2 (SP2) and later. The navigate should allow ActiveX prompts.</summary>
SBSP_TRUSTEDFORACTIVEX=0x10000000,
/// <summary>Microsoft Internet Explorer 6 Service Pack 2 (SP2) and later. The new window is the result of a user initiated action. Trust the new window if it immediately attempts to download content.</summary>
SBSP_TRUSTFIRSTDOWNLOAD=0x01000000,
/// <summary>Microsoft Internet Explorer 6 Service Pack 2 (SP2) and later. The window is navigating to an untrusted, non-HTML file. If the user attempts to download the file, do not allow the download.</summary>
SBSP_UNTRUSTEDFORDOWNLOAD=0x02000000,
/// <summary>Write no history of this navigation in the history Shell folder.</summary>
/// <summary>Put the name of the item into rename mode. This value includes SVSI_SELECT.</summary>
SVSI_EDIT=0x00000003,
/// <summary>Deselect all but the selected item. If the item parameter is NULL, deselect all items.</summary>
SVSI_DESELECTOTHERS=0x00000004,
/// <summary>In the case of a folder that cannot display all of its contents on one screen, display the portion that contains the selected item.</summary>
SVSI_ENSUREVISIBLE=0x00000008,
/// <summary>Give the selected item the focus when multiple items are selected, placing the item first in any list of the collection returned by a method.</summary>
SVSI_FOCUSED=0x00000010,
/// <summary>Convert the input point from screen coordinates to the list-view client coordinates.</summary>
SVSI_TRANSLATEPT=0x00000020,
/// <summary>Mark the item so that it can be queried using IFolderView::GetSelectionMarkedItem.</summary>
SVSI_SELECTIONMARK=0x00000040,
/// <summary>Allows the window's default view to position the item. In most cases, this will place the item in the first available position. However, if the call comes during the processing of a mouse-positioned context menu, the position of the context menu is used to position the item.</summary>
SVSI_POSITIONITEM=0x00000080,
/// <summary>The item should be checked. This flag is used with items in views where the checked mode is supported.</summary>
SVSI_CHECK=0x00000100,
/// <summary>The second check state when the view is in tri-check mode, in which there are three values for the checked state. You can indicate tri-check mode by specifying FWF_TRICHECKSELECT in IFolderView2::SetCurrentFolderFlags. The 3 states for FWF_TRICHECKSELECT are unchecked, SVSI_CHECK and SVSI_CHECK2.</summary>
SVSI_CHECK2=0x00000200,
/// <summary>Selects the item and marks it as selected by the keyboard. This value includes SVSI_SELECT.</summary>
SVSI_KEYBOARDSELECT=0x00000401,
/// <summary>An operation to select or focus an item should not also set focus on the view itself.</summary>
SVSI_NOTAKEFOCUS=0x40000000,
}
/// <summary>Flag specifying the activation state of the window.</summary>
publicenumSVUIA:uint
{
/// <summary>Windows Explorer is about to destroy the Shell view window. The Shell view should remove all extended user interfaces. These are typically merged menus and merged modeless pop-up windows.</summary>
SVUIA_DEACTIVATE=0,
/// <summary>The Shell view is losing the input focus, or it has just been created without the input focus. The Shell view should be able to set menu items appropriate for the nonfocused state. This means no selection-specific items should be added.</summary>
SVUIA_ACTIVATE_NOFOCUS=1,
/// <summary>Windows Explorer has just created the view window with the input focus. This means the Shell view should be able to set menu items appropriate for the focused state.</summary>
SVUIA_ACTIVATE_FOCUS=2,
/// <summary>The Shell view is active without focus. This flag is only used when UIActivate is exposed through the IShellView2 interface.</summary>
/// <summary>Sets specified options for the view.</summary>
/// <param name="fvoMask">A bitmask made up of one or more of the FOLDERVIEWOPTIONS flags to indicate which options' are being changed. Values in fvoFlags not included in this mask are ignored.</param>
/// <param name="fvoFlags">A bitmask that contains the new values for the options specified in fvoMask. To enable an option, the bitmask should include the FOLDERVIEWOPTIONS flag for that option. To disable an option, the bit used for that FOLDERVIEWOPTIONS flag should be 0.</param>
/// <summary>Retrieves the current set of options for the view.</summary>
/// <returns>A bitmask that, when this method returns successfully, receives the FOLDERVIEWOPTIONS values that are currently set.</returns>
FOLDERVIEWOPTIONSGetFolderViewOptions();
}
/// <summary>
/// Implemented by hosts of Shell views (objects that implement IShellView). Exposes methods that provide services for the view it is hosting and other
/// objects that run in the context of the Explorer window.
/// <summary>Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).</summary>
/// <returns>A pointer to a variable that receives the window handle.</returns>
newIntPtrGetWindow();
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
/// <param name="fEnterMode"><c>true</c> if help mode should be entered; <c>false</c> if it should be exited.</param>
/// <summary>Allows the container to insert its menu groups into the composite menu that is displayed when an extended namespace is being viewed or used.</summary>
/// <param name="hmenuShared">A handle to an empty menu.</param>
/// <param name="lpMenuWidths">The address of an OLEMENUGROUPWIDTHS array of six LONG values. The container fills in elements 0, 2, and 4 to reflect the number of menu elements it provided in the File, View, and Window menu groups.</param>
/// <summary>Permits the container to remove any of its menu elements from the in-place composite menu and to free all associated resources.</summary>
/// <param name="hmenuShared">A handle to the in-place composite menu that was constructed by calls to IShellBrowser::InsertMenusSB and the InsertMenu function.</param>
/// <summary>Tells Windows Explorer to enable or disable its modeless dialog boxes.</summary>
/// <param name="fEnable">Specifies whether the modeless dialog boxes are to be enabled or disabled. If this parameter is nonzero, modeless dialog boxes are enabled. If this parameter is zero, modeless dialog boxes are disabled.</param>
/// <summary>Translates accelerator keystrokes intended for the browser's frame while the view is active.</summary>
/// <param name="pmsg">The address of an MSG structure containing the keystroke message.</param>
/// <param name="wID">The command identifier value corresponding to the keystroke in the container-provided accelerator table. Containers should use this value instead of translating again.</param>
/// <summary>Informs Windows Explorer to browse to another folder.</summary>
/// <param name="pidl">The address of an ITEMIDLIST (item identifier list) structure that specifies an object's location. This value is dependent on the flag or flags set in the wFlags parameter.</param>
/// <param name="wFlags">Flags specifying the folder to be browsed.</param>
/// <summary><note type="note">This method has no effect on Windows Vista or later operating systems.</note> Adds toolbar items to Windows Explorer's toolbar.</summary>
/// <param name="lpButtons">The address of an array of TBBUTTON structures.</param>
/// <param name="nButtons">The number of TBBUTTON structures in the lpButtons array.</param>
/// <param name="uFlags">Flags specifying where the toolbar buttons should go.</param>
/// <summary>Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).</summary>
/// <returns>A pointer to a variable that receives the window handle.</returns>
newIntPtrGetWindow();
/// <summary>Determines whether context-sensitive help mode should be entered during an in-place activation session.</summary>
/// <param name="fEnterMode"><c>true</c> if help mode should be entered; <c>false</c> if it should be exited.</param>
/// <summary>Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).</summary>
/// <returns>A pointer to a variable that receives the window handle.</returns>
/// <summary>Requests the current or default Shell view, together with all other valid view identifiers (VIDs) supported by this implementation of IShellView2.</summary>
/// <param name="pvid">A pointer to the GUID of the requested view.</param>
/// <param name="uView">The type of view requested.</param>
/// <summary>Used to request the creation of a new Shell view window. It can be either the right pane of Windows Explorer or the client window of a folder window.</summary>
/// <param name="lpParams">A pointer to an SV2CVW2_PARAMS structure that defines the new view window.</param>
/// <summary>Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).</summary>
/// <returns>A pointer to a variable that receives the window handle.</returns>
/// <summary>Requests the current or default Shell view, together with all other valid view identifiers (VIDs) supported by this implementation of IShellView2.</summary>
/// <param name="pvid">A pointer to the GUID of the requested view.</param>
/// <param name="uView">The type of view requested.</param>
/// <summary>Used to request the creation of a new Shell view window. It can be either the right pane of Windows Explorer or the client window of a folder window.</summary>
/// <param name="lpParams">A pointer to an SV2CVW2_PARAMS structure that defines the new view window.</param>
/// <summary>Requests the creation of a new Shell view window. The view can be either the right pane of Windows Explorer or the client window of a folder window. This method replaces CreateViewWindow2.</summary>
/// <param name="psbOwner">A pointer to an IShellBrowser interface to provide namespace extension services.</param>
/// <param name="psvPrevious">A pointer to an IShellView interface that represents the previous view in the Windows Explorer or folder window.</param>
/// <param name="dwViewFlags">Flags that specify details of the view being created.</param>
/// <param name="dwMask">A bitwise mask that specifies which folder options specified in dwFlags are to be used.</param>
/// <param name="dwFlags">A bitwise value that contains the folder options, as FOLDERFLAGS, to use in the new view.</param>
/// <param name="fvMode">A bitwise value that contains the folder view mode options, as FOLDERVIEWMODE, to use in the new view.</param>
/// <param name="pvid">A pointer to Shell view ID as a GUID.</param>
/// <param name="prcView">A pointer to a RECT structure that provides the dimensions of the view window.</param>
/// <returns>A value that receives a pointer to the handle of the new Shell view window.</returns>