using System; using System.Runtime.InteropServices; namespace Vanara.PInvoke { public static partial class Shell32 { /// /// Indicate flags used by IExplorerPaneVisibility::GetPaneState to get the current state of the given Windows Explorer pane. /// [Flags] [PInvokeData("Shobjidl.h", MSDNShortId = "4caa2fe7-5bb3-4940-a429-fd32128eea84")] public enum EXPLORERPANESTATE { /// Do not make any modifications to the pane. EPS_DONTCARE = 0x0000, /// Set the default state of the pane to "on", but respect any user-modified persisted state. EPS_DEFAULT_ON = 0x0001, /// Set the default state of the pane to "off". EPS_DEFAULT_OFF = 0x0002, /// Unused. EPS_STATEMASK = 0xFFFF, /// Ignore any persisted state from the user, but the user can still modify the state. EPS_INITIALSTATE = 0x00010000, /// /// Users cannot modify the state, that is, they do not have the ability to show or hide the given pane. This option implies EPS_INITIALSTATE. /// EPS_FORCE = 0x00020000, } /// /// Used in Windows Explorer by an IShellFolder implementation to give suggestions to the view about what panes are visible. /// Additionally, an IExplorerBrowser host can use this interface to provide information about pane visibility. The host should /// implement QueryService with SID_ExplorerPaneVisibility as the service ID. The host must be in the site chain. /// /// The IExplorerPaneVisibility implementation is retrieved from the Shell folder.The Shell folder, in turn, is retrieved from the /// view.A namespace extension can elect to provide a custom view(IShellView) rather than using the system folder view object /// (DefView). In that case, the IShellView implementation must include an implementation of IFolderView::GetFolder to return the /// IExplorerPaneVisibility object. /// /// /// A namespace extension can provide a custom view by implementing IShellView itself rather than using the system folder view object /// (DefView). In that case, the IShellView implementation must include an implementation of IFolderView::GetFolder to make use of IExplorerPaneVisibility. /// /// [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("e07010ec-bc17-44c0-97b0-46c7c95b9edc")] [PInvokeData("Shobjidl.h", MSDNShortId = "b940adc2-dfef-49c5-b86c-d0da83db0aad")] public interface IExplorerPaneVisibility { /// /// Gets the visibility state of the given Windows Explorer pane. /// /// /// Type: REFEXPLORERPANE /// /// A reference to a GUID that uniquely identifies a Windows Explorer pane. One of the following constants as defined in Shlguid.h. /// /// EP_NavPane (cb316b22-25f7-42b8-8a09-540d23a43c2f) /// The pane on the left side of the Windows Explorer window that hosts the folders tree and Favorites. /// EP_Commands (d9745868-ca5f-4a76-91cd-f5a129fbb076) /// Commands module along the top of the Windows Explorer window. /// EP_Commands_Organize (72e81700-e3ec-4660-bf24-3c3b7b648806) /// Organize menu within the commands module. /// EP_Commands_View (21f7c32d-eeaa-439b-bb51-37b96fd6a943) /// View menu within the commands module. /// EP_DetailsPane (43abf98b-89b8-472d-b9ce-e69b8229f019) /// Pane showing metadata along the bottom of the Windows Explorer window. /// EP_PreviewPane (893c63d1-45c8-4d17-be19-223be71be365) /// Pane on the right of the Windows Explorer window that shows a large reading preview of the file. /// EP_QueryPane (65bcde4f-4f07-4f27-83a7-1afca4df7ddd) /// Quick filter buttons to aid in a search. /// EP_AdvQueryPane (b4e9db8b-34ba-4c39-b5cc-16a1bd2c411c) /// Additional fields and options to aid in a search. /// EP_StatusBar (65fe56ce-5cfe-4bc4-ad8a-7ae3fe7e8f7c) /// Introduced in Windows 8: A status bar that indicates the progress of some process, such as copying or downloading. /// EP_Ribbon (d27524a8-c9f2-4834-a106-df8889fd4f37) /// /// Introduced in Windows 8: The ribbon, which is the control that replaced menus and toolbars at the top of many /// Microsoft applications. /// /// /// /// Type: EXPLORERPANESTATE* /// /// When this method returns, contains the visibility state of the given Windows Explorer pane as one of the EXPLORERPANESTATE constants. /// /// /// /// Type: HRESULT /// If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. /// /// /// If the implementer does not care about the state of a given pane and therefore does not want to change it, then the /// implementer should return a success code for the method and EPS_DONTCARE for the parameter. If the method fails, it is /// treated as if EPS_DONTCARE was returned for the parameter. /// [PInvokeData("shobjidl_core.h", MSDNShortId = "6c051cdc-b7f9-48dc-ba32-38f0f1ee5fda")] [PreserveSig] HRESULT GetPaneState(in Guid ep, ref EXPLORERPANESTATE peps); } /// Constant GUIDs used by IExplorerPaneVisibility::GetPaneState. public static class IExplorerPaneVisibilityConstants { /// Additional fields and options to aid in a search. public readonly static Guid EP_AdvQueryPane = new Guid("{b4e9db8b-34ba-4c39-b5cc-16a1bd2c411c}"); /// Commands module along the top of the Windows Explorer window. public readonly static Guid EP_Commands = new Guid("{d9745868-ca5f-4a76-91cd-f5a129fbb076}"); /// Organize menu within the commands module. public readonly static Guid EP_Commands_Organize = new Guid("{72e81700-e3ec-4660-bf24-3c3b7b648806}"); /// View menu within the commands module. public readonly static Guid EP_Commands_View = new Guid("{21f7c32d-eeaa-439b-bb51-37b96fd6a943}"); /// Pane showing metadata along the bottom of the Windows Explorer window. public readonly static Guid EP_DetailsPane = new Guid("{43abf98b-89b8-472d-b9ce-e69b8229f019}"); /// The pane on the left side of the Windows Explorer window that hosts the folders tree and Favorites. public readonly static Guid EP_NavPane = new Guid("{cb316b22-25f7-42b8-8a09-540d23a43c2f}"); /// Pane on the right of the Windows Explorer window that shows a large reading preview of the file. public readonly static Guid EP_PreviewPane = new Guid("{893c63d1-45c8-4d17-be19-223be71be365}"); /// Quick filter buttons to aid in a search. public readonly static Guid EP_QueryPane = new Guid("{65bcde4f-4f07-4f27-83a7-1afca4df7ddd}"); /// /// Introduced in Windows 8: The ribbon, which is the control that replaced menus and toolbars at the top of many Microsoft applications. /// public readonly static Guid EP_Ribbon = new Guid("{D27524A8-C9F2-4834-A106-DF8889FD4F37}"); /// Introduced in Windows 8: A status bar that indicates the progress of some process, such as copying or downloading. public readonly static Guid EP_StatusBar = new Guid("{65fe56ce-5cfe-4bc4-ad8a-7ae3fe7e8f7c}"); } } }