<?xml version="1.0"?>
<doc>
    <assembly>
        <name>SharpShell</name>
    </assembly>
    <members>
        <member name="T:SharpShell.Attributes.AssociationType">
            <summary>
            The AssociationType determines what kind of associate a COM
            server is made to a class, such as a file class or a drive.
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.None">
            <summary>
            No server association.
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.FileExtension">
            <summary>
            Create an association to a specific file extension.
            This attribute is deprecated. Shell extensions should not be registered directly on file extensions,
            but on the class of the extension.
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.ClassOfExtension">
            <summary>
            Create an association to the class of a specific file extension.
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.Class">
            <summary>
            Create an association to a class.
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.AllFiles">
            <summary>
            Create an association to the 'all files' class.
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.AllFilesAndFolders">
            <summary>
            Create an association to the 'all files and folders' class.
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.Directory">
            <summary>
            Create an association to the 'directory' class, i.e. file-system folders.
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.DirectoryBackground">
            <summary>
            Create an association to the background of folders and the desktop
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.DesktopBackground">
            <summary>
            Create an association to the background of the desktop (Windows 7 and higher)
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.Drive">
            <summary>
            Create an association to the drive class.
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.Folder">
            <summary>
            Create an association to the 'folder' class, i.e. all containers.
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.AssociationType.UnknownFiles">
            <summary>
            Create an association to the unknown files class.
            </summary>
        </member>
        <member name="T:SharpShell.Attributes.PredefinedShellObjectAttribute">
            <summary>
            Provides metadata for a predefined shell object.
            </summary>
        </member>
        <member name="M:SharpShell.Attributes.PredefinedShellObjectAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Attributes.PredefinedShellObjectAttribute"/> class.
            </summary>
            <param name="className">Name of the class in the registry for this object.</param>
        </member>
        <member name="M:SharpShell.Attributes.PredefinedShellObjectAttribute.GetClassName(System.Enum)">
            <summary>
            Gets the class name for a type with a <see cref="T:SharpShell.Attributes.PredefinedShellObjectAttribute"/> set, or null if none is set.
            </summary>
            <param name="value">The value.</param>
            <returns></returns>
        </member>
        <member name="P:SharpShell.Attributes.PredefinedShellObjectAttribute.ClassName">
            <summary>
            Gets the class name.
            </summary>
        </member>
        <member name="T:SharpShell.Attributes.RegistrationNameAttribute">
            <summary>
            Specify the registry key name under which a SharpShell server should be registered.
            By default (without this attribute) a server is registered under the classname.
            Since each server needs its own registry key name, this attribute does not inherit.
            </summary>
        </member>
        <member name="M:SharpShell.Attributes.RegistrationNameAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Attributes.RegistrationNameAttribute"/> class.
            </summary>
            <param name="registrationName">The registry key name under which the SharpShell server should be registered. Cannot be null or whitespace.</param>
        </member>
        <member name="P:SharpShell.Attributes.RegistrationNameAttribute.RegistrationName">
            <summary>
            Gets the registry key name under which to register the SharpShell server.
            </summary>
        </member>
        <member name="M:SharpShell.Attributes.RegistrationNameAttribute.GetRegistrationName(System.Type)">
            <summary>
            Gets the registration name for a type if defined.
            </summary>
            <param name="type">The type.</param>
            <returns>The registration name of the type if defined, or <value>null</value> otherwise.</returns>
        </member>
        <member name="M:SharpShell.Attributes.RegistrationNameAttribute.GetRegistrationNameOrTypeName(System.Type)">
            <summary>
            Gets the registration name for a type.
            </summary>
            <param name="type">The type.</param>
            <returns>The registration name of the type if defined, or <value>type.Name</value> otherwise.</returns>
        </member>
        <member name="T:SharpShell.Attributes.COMServerAssociationAttribute">
            <summary>
            Attribute to associate a SharpShell server with a file extension.
            </summary>
        </member>
        <member name="M:SharpShell.Attributes.COMServerAssociationAttribute.#ctor(SharpShell.Attributes.AssociationType,System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Attributes.COMServerAssociationAttribute"/> class.
            </summary>
            <param name="associationType">Type of the association.</param>
            <param name="associations">The associations.</param>
        </member>
        <member name="M:SharpShell.Attributes.COMServerAssociationAttribute.GetAssociations(System.Type)">
            <summary>
            Gets the file extension associations for a specified type.
            </summary>
            <param name="type">The type.</param>
            <returns>The set of file extension assocations.</returns>
        </member>
        <member name="M:SharpShell.Attributes.COMServerAssociationAttribute.GetAssociationType(System.Type)">
            <summary>
            Gets the type of the association.
            </summary>
            <param name="type">The type.</param>
            <returns></returns>
        </member>
        <member name="F:SharpShell.Attributes.COMServerAssociationAttribute.associationType">
            <summary>
            The association type.
            </summary>
        </member>
        <member name="F:SharpShell.Attributes.COMServerAssociationAttribute.associations">
            <summary>
            The extensions.
            </summary>
        </member>
        <member name="P:SharpShell.Attributes.COMServerAssociationAttribute.AssociationType">
            <summary>
            Gets the type of the association.
            </summary>
            <value>
            The type of the association.
            </value>
        </member>
        <member name="P:SharpShell.Attributes.COMServerAssociationAttribute.Associations">
            <summary>
            Gets the associations.
            </summary>
        </member>
        <member name="T:SharpShell.Attributes.CustomUnregisterFunctionAttribute">
            <summary>
            Identifies a function as being a static custom registration function.
            </summary>
        </member>
        <member name="M:SharpShell.Attributes.CustomUnregisterFunctionAttribute.ExecuteIfExists(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Executes the CustomUnregisterFunction if it exists for a type.
            </summary>
            <param name="type">The type.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="T:SharpShell.Attributes.CustomRegisterFunctionAttribute">
            <summary>
            Identifies a function as being a static custom registration function.
            </summary>
        </member>
        <member name="M:SharpShell.Attributes.CustomRegisterFunctionAttribute.ExecuteIfExists(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Executes the CustomRegisterFunction if it exists for a type.
            </summary>
            <param name="type">The type.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="T:SharpShell.Attributes.DisplayNameAttribute">
            <summary>
            The name attribute can be used to give a class display name.
            </summary>
        </member>
        <member name="M:SharpShell.Attributes.DisplayNameAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Attributes.DisplayNameAttribute"/> class.
            </summary>
            <param name="displayName">The display name.</param>
        </member>
        <member name="M:SharpShell.Attributes.DisplayNameAttribute.GetDisplayName(System.Type)">
            <summary>
            Gets the display name for a type, if defined.
            </summary>
            <param name="type">The type.</param>
            <returns>The display name of the type, if defined.</returns>
        </member>
        <member name="M:SharpShell.Attributes.DisplayNameAttribute.GetDisplayNameOrTypeName(System.Type)">
            <summary>
            Gets the display name of the (if defined and not empty) for a type.
            If there is no display name, or it is empty, the type name is returned.
            </summary>
            <param name="type">The type.</param>
            <returns>The display name of the (if defined and not empty) for a type, otherwise the type name.</returns>
        </member>
        <member name="P:SharpShell.Attributes.DisplayNameAttribute.DisplayName">
            <summary>
            Gets the display name.
            </summary>
        </member>
        <member name="T:SharpShell.Attributes.HandlerSubkeyAttribute">
            <summary>
            Attribute to describe handler subkey config.
            </summary>
        </member>
        <member name="M:SharpShell.Attributes.HandlerSubkeyAttribute.#ctor(System.Boolean,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Attributes.HandlerSubkeyAttribute" /> class.
            </summary>
            <param name="allowMultipleEntries">if set to <c>true</c> [allow multiple entries].</param>
            <param name="handlerSubkey">The handler subkey.</param>
        </member>
        <member name="P:SharpShell.Attributes.HandlerSubkeyAttribute.AllowMultipleEntries">
            <summary>
            Gets a value indicating whether multiple entries are allowed.
            </summary>
            <value>
            <c>true</c> if multiple entries are allowed; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:SharpShell.Attributes.HandlerSubkeyAttribute.HandlerSubkey">
            <summary>
            Gets the handler subkey.
            </summary>
            <value>
            The handler subkey.
            </value>
        </member>
        <member name="T:SharpShell.Attributes.ServerTypeAttribute">
            <summary>
            The ServerTypeAttribute can be used internally by SharpShell
            to mark the type of a server base class. By setting this type,
            classes derived from the decorated class will be able to use
            the COMServerAssociationAttribute without any extra configuration.
            </summary>
        </member>
        <member name="M:SharpShell.Attributes.ServerTypeAttribute.#ctor(SharpShell.ServerType)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Attributes.ServerTypeAttribute"/> class.
            </summary>
            <param name="serverType">Type of the server.</param>
        </member>
        <member name="M:SharpShell.Attributes.ServerTypeAttribute.GetServerType(System.Type)">
            <summary>
            Gets the server type of a type of the association.
            </summary>
            <param name="type">The type.</param>
            <returns>The ServerType of the type, or None if not set.</returns>
        </member>
        <member name="P:SharpShell.Attributes.ServerTypeAttribute.ServerType">
            <summary>
            Gets the type of the server.
            </summary>
            <value>
            The type of the server.
            </value>
        </member>
        <member name="T:SharpShell.Attributes.SpecialClassKeyAttribute">
            <summary>
            Allows the special class key to be defined.
            </summary>
        </member>
        <member name="M:SharpShell.Attributes.SpecialClassKeyAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Attributes.SpecialClassKeyAttribute"/> class.
            </summary>
            <param name="key">The key.</param>
        </member>
        <member name="P:SharpShell.Attributes.SpecialClassKeyAttribute.SpecialClassKey">
            <summary>
            Gets the special class key.
            </summary>
            <value>
            The special class key.
            </value>
        </member>
        <member name="T:SharpShell.Components.CategoryManager">
            <summary>
            The CategoryManager class provides methods which allow us to register COM categories for components. It manages the
            instantiation of an <see cref="T:SharpShell.Interop.ICatRegister"/> type.
            </summary>
        </member>
        <member name="M:SharpShell.Components.CategoryManager.RegisterComCategory(System.Guid,System.Guid)">
            <summary>
            Registers a COM category for a given type.
            </summary>
            <param name="clsid">The CLSID.</param>
            <param name="categoryId">The category identifier.</param>
            <exception cref="T:System.Runtime.InteropServices.ExternalException"></exception>
        </member>
        <member name="M:SharpShell.Components.CategoryManager.UnregisterComCategory(System.Guid,System.Guid)">
            <summary>
            Unregisters a COM category for a given type.
            </summary>
            <param name="clsid">The CLSID.</param>
            <param name="categoryId">The category identifier.</param>
        </member>
        <member name="M:SharpShell.Components.CategoryManager.CreateCategoryRegistrationManager">
            <summary>
            Creates the category registration manager object.
            </summary>
            <returns>An <see cref="T:SharpShell.Interop.ICatRegister"/> instance.</returns>
        </member>
        <member name="F:SharpShell.Components.CategoryManager.CLSID_StdComponentCategoriesMgr">
            <summary>
            The CLSID for the standard component category manager.
            </summary>
        </member>
        <member name="F:SharpShell.Components.CategoryManager.CATID_BrowsableShellExt">
            <summary>
            Browsable shell extensions category id.
            </summary>
        </member>
        <member name="F:SharpShell.Components.CategoryManager.CATID_BrowseInPlace">
            <summary>
            Browse in place category id.
            </summary>
        </member>
        <member name="F:SharpShell.Components.CategoryManager.CATID_DeskBand">
            <summary>
            The desk band category id.
            </summary>
        </member>
        <member name="F:SharpShell.Components.CategoryManager.CATID_InfoBand">
            <summary>
            The info band band category id.
            </summary>
        </member>
        <member name="F:SharpShell.Components.CategoryManager.CATID_CommBand">
            <summary>
            The Comm band category id.
            </summary>
        </member>
        <member name="T:SharpShell.Components.ExtractIconImpl">
            <summary>
            The ExtractIconImpl class is an implementation of <see cref="T:SharpShell.Interop.IExtractIconA"/>
            and <see cref="T:SharpShell.Interop.IExtractIconW"/> which can return a .NET <see cref="T:System.Drawing.Icon" />
            that contains multiple images sizes to the shell.
            </summary>
        </member>
        <member name="M:SharpShell.Components.ExtractIconImpl.SharpShell#Interop#IExtractIconA#GetIconLocation(SharpShell.Interop.GILInFlags,System.Text.StringBuilder,System.Int32,System.Int32@,SharpShell.Interop.GILOutFlags@)">
            <summary>
            Gets the location and index of an icon.
            </summary>
            <param name="uFlags">One or more of the following values. This parameter can also be NULL.</param>
            <param name="szIconFile">A pointer to a buffer that receives the icon location. The icon location is a null-terminated string that identifies the file that contains the icon.</param>
            <param name="cchMax">The size of the buffer, in characters, pointed to by pszIconFile.</param>
            <param name="piIndex">A pointer to an int that receives the index of the icon in the file pointed to by pszIconFile.</param>
            <param name="pwFlags">A pointer to a UINT value that receives zero or a combination of the following value</param>
            <returns>Returns S_OK if the function returned a valid location, or S_FALSE if the Shell should use a default icon. If the GIL_ASYNC flag is set in uFlags, the method can return E_PENDING to indicate that icon extraction will be time-consuming.</returns>
        </member>
        <member name="M:SharpShell.Components.ExtractIconImpl.SharpShell#Interop#IExtractIconW#GetIconLocation(SharpShell.Interop.GILInFlags,System.Text.StringBuilder,System.Int32,System.Int32@,SharpShell.Interop.GILOutFlags@)">
            <summary>
            Gets the location and index of an icon.
            </summary>
            <param name="uFlags">One or more of the following values. This parameter can also be NULL.</param>
            <param name="szIconFile">A pointer to a buffer that receives the icon location. The icon location is a null-terminated string that identifies the file that contains the icon.</param>
            <param name="cchMax">The size of the buffer, in characters, pointed to by pszIconFile.</param>
            <param name="piIndex">A pointer to an int that receives the index of the icon in the file pointed to by pszIconFile.</param>
            <param name="pwFlags">A pointer to a UINT value that receives zero or a combination of the following value</param>
            <returns>Returns S_OK if the function returned a valid location, or S_FALSE if the Shell should use a default icon. If the GIL_ASYNC flag is set in uFlags, the method can return E_PENDING to indicate that icon extraction will be time-consuming.</returns>
        </member>
        <member name="M:SharpShell.Components.ExtractIconImpl.SharpShell#Interop#IExtractIconA#Extract(System.String,System.UInt32,System.IntPtr@,System.IntPtr@,System.UInt32)">
            <summary>
            Extracts an icon image from the specified location.
            </summary>
            <param name="pszFile">A pointer to a null-terminated string that specifies the icon location.</param>
            <param name="nIconIndex">The index of the icon in the file pointed to by pszFile.</param>
            <param name="phiconLarge">A pointer to an HICON value that receives the handle to the large icon. This parameter may be NULL.</param>
            <param name="phiconSmall">A pointer to an HICON value that receives the handle to the small icon. This parameter may be NULL.</param>
            <param name="nIconSize">The desired size of the icon, in pixels. The low word contains the size of the large icon, and the high word contains the size of the small icon. The size specified can be the width or height. The width of an icon always equals its height.</param>
            <returns>
            Returns S_OK if the function extracted the icon, or S_FALSE if the calling application should extract the icon.
            </returns>
        </member>
        <member name="M:SharpShell.Components.ExtractIconImpl.SharpShell#Interop#IExtractIconW#Extract(System.String,System.UInt32,System.IntPtr@,System.IntPtr@,System.UInt32)">
            <summary>
            Extracts an icon image from the specified location.
            </summary>
            <param name="pszFile">A pointer to a null-terminated string that specifies the icon location.</param>
            <param name="nIconIndex">The index of the icon in the file pointed to by pszFile.</param>
            <param name="phiconLarge">A pointer to an HICON value that receives the handle to the large icon. This parameter may be NULL.</param>
            <param name="phiconSmall">A pointer to an HICON value that receives the handle to the small icon. This parameter may be NULL.</param>
            <param name="nIconSize">The desired size of the icon, in pixels. The low word contains the size of the large icon, and the high word contains the size of the small icon. The size specified can be the width or height. The width of an icon always equals its height.</param>
            <returns>
            Returns S_OK if the function extracted the icon, or S_FALSE if the calling application should extract the icon.
            </returns>
        </member>
        <member name="M:SharpShell.Components.ExtractIconImpl.GetIconSpecificSize(System.Drawing.Size)">
            <summary>
            Return an Icon of the requested size.
            </summary>
            <param name="size">The requested icon size.</param>
            <returns>An Icon of the requested size.</returns>
        </member>
        <member name="P:SharpShell.Components.ExtractIconImpl.DoNotCacheIcons">
            <summary>
            Gets or sets a value indicating whether or not to cache icons.
            </summary>
            <value>
              <c>true</c> if icons should not be cached; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:SharpShell.Components.ExtractIconImpl.Icon">
            <summary>
            Gets or sets the underlying icon.
            </summary>
            <value>
            The icon.
            </value>
        </member>
        <member name="T:SharpShell.Configuration.LoggingMode">
            <summary>
            Represents the SharpShell logging mode.
            </summary>
        </member>
        <member name="F:SharpShell.Configuration.LoggingMode.Disabled">
            <summary>
            Logging is disabled.
            </summary>
        </member>
        <member name="F:SharpShell.Configuration.LoggingMode.Debug">
            <summary>
            Win32 debug output, suitable for dbmon or DbgView.
            </summary>
        </member>
        <member name="F:SharpShell.Configuration.LoggingMode.EventLog">
            <summary>
            Log to the Event Log.
            </summary>
        </member>
        <member name="F:SharpShell.Configuration.LoggingMode.File">
            <summary>
            Log to file.
            </summary>
        </member>
        <member name="T:SharpShell.Configuration.SystemConfiguration">
            <summary>
            Represents SharpShell system configuration.
            Load and save system configuration via the <see cref="T:SharpShell.Configuration.SystemConfigurationProvider"/>.
            </summary>
        </member>
        <member name="M:SharpShell.Configuration.SystemConfiguration.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Configuration.SystemConfiguration"/> class.
            Only ever created by <see cref="T:SharpShell.Configuration.SystemConfigurationProvider"/>.
            </summary>
        </member>
        <member name="P:SharpShell.Configuration.SystemConfiguration.IsConfigurationPresent">
            <summary>
            Gets a value indicating whether configuration is present.
            This is a purely informational value that indicates whether
            there is SharpShell configuration in the registry.
            </summary>
            <value>
            <c>true</c> if configuration is present; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:SharpShell.Configuration.SystemConfiguration.LoggingMode">
            <summary>
            Gets or sets the logging mode.
            </summary>
            <value>
            The logging mode.
            </value>
        </member>
        <member name="P:SharpShell.Configuration.SystemConfiguration.LogPath">
            <summary>
            Gets or sets the log path.
            Only used if <see cref="P:SharpShell.Configuration.SystemConfiguration.LoggingMode"/> is set to File.
            </summary>
            <value>
            The log path.
            </value>
        </member>
        <member name="T:SharpShell.Configuration.SystemConfigurationProvider">
            <summary>
            Represents SharpShell System Configuration on the local machine.
            This class can be used to read and write the system configuration.
            </summary>
        </member>
        <member name="F:SharpShell.Configuration.SystemConfigurationProvider.systemConfiguration">
            <summary>
            The system configuration data itself.
            </summary>
        </member>
        <member name="M:SharpShell.Configuration.SystemConfigurationProvider.#cctor">
            <summary>
            Initializes the <see cref="T:SharpShell.Configuration.SystemConfigurationProvider"/> class.
            </summary>
        </member>
        <member name="M:SharpShell.Configuration.SystemConfigurationProvider.LoadConfiguration">
            <summary>
            Loads the configuration.
            </summary>
            <returns>The system configuration.</returns>
        </member>
        <member name="M:SharpShell.Configuration.SystemConfigurationProvider.Save">
            <summary>
            Saves the configuration.
            </summary>
        </member>
        <member name="P:SharpShell.Configuration.SystemConfigurationProvider.Configuration">
            <summary>
            Gets the configuration.
            </summary>
            <value>
            The configuration.
            </value>
        </member>
        <member name="T:SharpShell.Diagnostics.Loggers.DebugLogger">
            <summary>
            A logger which logs to standard debug output.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.DebugLogger.LogError(System.String)">
            <summary>
            Logs an error.
            </summary>
            <param name="error">The error.</param>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.DebugLogger.LogWarning(System.String)">
            <summary>
            Logs a warning.
            </summary>
            <param name="warning">The warning.</param>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.DebugLogger.LogMessage(System.String)">
            <summary>
            Logs a message.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="T:SharpShell.Diagnostics.Loggers.EventLogLogger">
            <summary>
            A logger which logs to the Windows Event Log.
            </summary>
        </member>
        <member name="F:SharpShell.Diagnostics.Loggers.EventLogLogger.sourceCreated">
            <summary>
            The source created flag. If true, we have a source.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.EventLogLogger.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Diagnostics.Loggers.EventLogLogger" /> class.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.EventLogLogger.LogError(System.String)">
            <summary>
            Logs an error.
            </summary>
            <param name="error">The error.</param>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.EventLogLogger.LogWarning(System.String)">
            <summary>
            Logs a warning.
            </summary>
            <param name="warning">The warning.</param>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.EventLogLogger.LogMessage(System.String)">
            <summary>
            Logs a message.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="F:SharpShell.Diagnostics.Loggers.EventLogLogger.EventLog_Log">
            <summary>
            The event log log.
            </summary>
        </member>
        <member name="F:SharpShell.Diagnostics.Loggers.EventLogLogger.EventLog_Source">
            <summary>
            The EventLog Source for SharpShell.
            </summary>
        </member>
        <member name="T:SharpShell.Diagnostics.Loggers.FileLogger">
            <summary>
            SharpShell logger to write to a log file. Safe across processes.
            </summary>
        </member>
        <member name="F:SharpShell.Diagnostics.Loggers.FileLogger.mutex">
            <summary>
            Mutex to allow multiple processes to write to the file.
            </summary>
        </member>
        <member name="F:SharpShell.Diagnostics.Loggers.FileLogger.logPath">
            <summary>
            The log file path.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.FileLogger.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Diagnostics.Loggers.FileLogger"/> class.
            </summary>
            <param name="logPath">The log path.</param>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.FileLogger.Write(System.String)">
            <summary>
            Writes the specified line to the log file.
            </summary>
            <param name="line">The line.</param>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.FileLogger.LogError(System.String)">
            <summary>
            Logs an error.
            </summary>
            <param name="error">The error.</param>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.FileLogger.LogWarning(System.String)">
            <summary>
            Logs a warning.
            </summary>
            <param name="warning">The warning.</param>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.FileLogger.LogMessage(System.String)">
            <summary>
            Logs a message.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="T:SharpShell.Diagnostics.Loggers.ILogger">
            <summary>
            Defines a contract for a type which can log messages.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.ILogger.LogError(System.String)">
            <summary>
            Logs an error.
            </summary>
            <param name="error">The error.</param>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.ILogger.LogWarning(System.String)">
            <summary>
            Logs a warning.
            </summary>
            <param name="warning">The warning.</param>
        </member>
        <member name="M:SharpShell.Diagnostics.Loggers.ILogger.LogMessage(System.String)">
            <summary>
            Logs a message.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="T:SharpShell.Diagnostics.ExplorerManager">
            <summary>
            A Helper Class for managing certain features of Windows Explorer
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.ExplorerManager.RestartExplorer">
            <summary>
            Restarts the explorer process.
            </summary>
        </member>
        <member name="T:SharpShell.Diagnostics.Logging">
            <summary>
            The logging class is used for SharpShell logging.
            </summary>
        </member>
        <member name="F:SharpShell.Diagnostics.Logging.loggers">
            <summary>
            The loggers used.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.Logging.#cctor">
            <summary>
            Initializes the <see cref="T:SharpShell.Diagnostics.Logging"/> class.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.Logging.Log(System.String)">
            <summary>
            Logs the specified message.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:SharpShell.Diagnostics.Logging.Error(System.String,System.Exception)">
            <summary>
            Errors the specified message as an error.
            </summary>
            <param name="message">The message.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="T:SharpShell.Diagnostics.ExplorerConfigurationManager">
            <summary>
            The ExplorerConfigurationManager can be used to manage explorer configuration relating to the shell.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.ExplorerConfigurationManager.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Diagnostics.ExplorerConfigurationManager"/> class.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.ExplorerConfigurationManager.CheckAlwaysUnloadDll">
            <summary>
            Checks the always unload DLL value.
            </summary>
            <returns>True if always unload dll is set.</returns>
        </member>
        <member name="M:SharpShell.Diagnostics.ExplorerConfigurationManager.CheckDesktopProcess">
            <summary>
            Checks the desktop process value.
            </summary>
            <returns>True if check desktop process is set.</returns>
        </member>
        <member name="M:SharpShell.Diagnostics.ExplorerConfigurationManager.ReadConfiguration">
            <summary>
            Reads the configuration.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.ExplorerConfigurationManager.SetAlwaysUnloadDll">
            <summary>
            Sets the always unload DLL value.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.ExplorerConfigurationManager.SetDesktopProcess">
            <summary>
            Sets the desktop process value.
            </summary>
        </member>
        <member name="M:SharpShell.Diagnostics.ExplorerConfigurationManager.OpenExporerSubkey(SharpShell.Registry.IRegistryKey,Microsoft.Win32.RegistryKeyPermissionCheck)">
            <summary>
            Opens the exporer subkey.
            </summary>
            <param name="hiveKey">The hive key.</param>
            <param name="permissionCheck">The permission check.</param>
            <returns>
            The explorer subkey.
            </returns>
        </member>
        <member name="F:SharpShell.Diagnostics.ExplorerConfigurationManager.KeyName_AlwaysUnloadDll">
            <summary>
            The AlwaysUnloadDLL key name.
            </summary>
        </member>
        <member name="F:SharpShell.Diagnostics.ExplorerConfigurationManager.SubKeyName_AlwaysUnloadDLL">
            <summary>
            The AlwaysUnloadDLL sub key name.
            </summary>
        </member>
        <member name="F:SharpShell.Diagnostics.ExplorerConfigurationManager.KeyName_Explorer">
            <summary>
            The windows explorer key namme.
            </summary>
        </member>
        <member name="F:SharpShell.Diagnostics.ExplorerConfigurationManager.ValueName_DesktopProcess">
            <summary>
            The dekstop process value name.
            </summary>
        </member>
        <member name="F:SharpShell.Diagnostics.ExplorerConfigurationManager.alwaysUnloadDll">
            <summary>
            The always unload dll flag.
            </summary>
        </member>
        <member name="F:SharpShell.Diagnostics.ExplorerConfigurationManager.desktopProcess">
            <summary>
            The desktop process flag.
            </summary>
        </member>
        <member name="P:SharpShell.Diagnostics.ExplorerConfigurationManager.AlwaysUnloadDll">
            <summary>
            Gets or sets a value indicating whether always unload DLL is set.
            </summary>
            <value>
              <c>true</c> if always unload DLL is set; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:SharpShell.Diagnostics.ExplorerConfigurationManager.DesktopProcess">
            <summary>
            Gets or sets a value indicating whether desktop process is set.
            </summary>
            <value>
              <c>true</c> if desktop process is set; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="T:SharpShell.Extensions.EnumExtensions">
            <summary>
            Extension methods for enumerations.
            </summary>
        </member>
        <member name="M:SharpShell.Extensions.EnumExtensions.GetAttribute``1(System.Enum)">
            <summary>
            Gets the first value of an attribute of the given type, or null.
            </summary>
            <typeparam name="T">The attribute type.</typeparam>
            <param name="enumValue">The enum value.</param>
            <returns>The first value of the given type, or null.</returns>
        </member>
        <member name="T:SharpShell.Extensions.GuidExtensions">
            <summary>
            Extensions for the Guid type.
            </summary>
        </member>
        <member name="M:SharpShell.Extensions.GuidExtensions.ToRegistryString(System.Guid)">
            <summary>
            Returns the GUID as a string suitable for the registry.
            </summary>
            <param name="this">The Guid.</param>
            <returns>The GUID as a string suitable for the registry</returns>
        </member>
        <member name="T:SharpShell.Extensions.IDataObjectExtensions">
            <summary>
            Extensions for the IDataObject interface.
            </summary>
        </member>
        <member name="M:SharpShell.Extensions.IDataObjectExtensions.GetFileList(System.Runtime.InteropServices.ComTypes.IDataObject)">
            <summary>
            Gets the file list.
            </summary>
            <param name="this">The IDataObject instance.</param>
            <returns>The file list in the data object.</returns>
        </member>
        <member name="T:SharpShell.Extensions.ControlExtensions">
            <summary>
            Extensions for cotrols.
            </summary>
        </member>
        <member name="M:SharpShell.Extensions.ControlExtensions.WindowProc(System.Windows.Forms.Control,System.IntPtr,System.UInt32,System.IntPtr,System.IntPtr)">
            <summary>
            Calls the window proc.
            </summary>
            <param name="me">Me.</param>
            <param name="hWnd">The window handle.</param>
            <param name="uMessage">The message.</param>
            <param name="wParam">The w param.</param>
            <param name="lParam">The l param.</param>
            <returns>True if the message was handled.</returns>
        </member>
        <member name="M:SharpShell.Extensions.ControlExtensions.FindFocusedControl(System.Windows.Forms.Control)">
            <summary>
            Finds the control inside this control which has focus, if any.
            </summary>
            <param name="this">The the parent control.</param>
            <returns>The child control with focus, or null.</returns>
        </member>
        <member name="T:SharpShell.Helpers.ComStream">
            <summary>
            A ComStream is a wrapper around the COM IStream interface,
            providing direct .NET style access to a COM IStream.
            </summary>
        </member>
        <member name="M:SharpShell.Helpers.ComStream.#ctor(System.Runtime.InteropServices.ComTypes.IStream)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Helpers.ComStream" /> class.
            </summary>
            <param name="comStream">The source COM stream.</param>
        </member>
        <member name="M:SharpShell.Helpers.ComStream.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:SharpShell.Helpers.ComStream"/> class.
            </summary>
        </member>
        <member name="M:SharpShell.Helpers.ComStream.Dispose(System.Boolean)">
            <summary>
            Releases all resources used by the Com Stream.
            </summary>
            <param name="disposing"></param>
        </member>
        <member name="M:SharpShell.Helpers.ComStream.Flush">
            <summary>
            When overridden in a derived class, clears all buffers for this stream and causes 
            any buffered data to be written to the underlying device.
            </summary>
        </member>
        <member name="M:SharpShell.Helpers.ComStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
            </summary>
            <param name="buffer">An array of bytes. When this method returns, the buffer contains the specified byte array with the values between <paramref name="offset" /> and (<paramref name="offset" /> + <paramref name="count" /> - 1) replaced by the bytes read from the current source.</param>
            <param name="offset">The zero-based byte offset in <paramref name="buffer" /> at which to begin storing the data read from the current stream.</param>
            <param name="count">The maximum number of bytes to be read from the current stream.</param>
            <returns>
            The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.Helpers.ComStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            When overridden in a derived class, sets the position within the current stream.
            </summary>
            <param name="offset">A byte offset relative to the <paramref name="origin" /> parameter.</param>
            <param name="origin">A value of type <see cref="T:System.IO.SeekOrigin" /> indicating the reference point used to obtain the new position.</param>
            <returns>
            The new position within the current stream.
            </returns>
        </member>
        <member name="M:SharpShell.Helpers.ComStream.SetLength(System.Int64)">
            <summary>
            When overridden in a derived class, sets the length of the current stream.
            </summary>
            <param name="value">The desired length of the current stream in bytes.</param>
        </member>
        <member name="M:SharpShell.Helpers.ComStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
            </summary>
            <param name="buffer">An array of bytes. This method copies <paramref name="count" /> bytes from <paramref name="buffer" /> to the current stream.</param>
            <param name="offset">The zero-based byte offset in <paramref name="buffer" /> at which to begin copying bytes to the current stream.</param>
            <param name="count">The number of bytes to be written to the current stream.</param>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="F:SharpShell.Helpers.ComStream.comStream">
            <summary>
            The COM stream instance.
            </summary>
        </member>
        <member name="F:SharpShell.Helpers.ComStream.bufferPointer">
            <summary>
            The buffer pointer.
            </summary>
        </member>
        <member name="F:SharpShell.Helpers.ComStream.position">
            <summary>
            The position of the pointer in the stream.
            </summary>
        </member>
        <member name="P:SharpShell.Helpers.ComStream.CanRead">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports reading.
            </summary>
            <returns>true if the stream supports reading; otherwise, false.</returns>
        </member>
        <member name="P:SharpShell.Helpers.ComStream.CanSeek">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports seeking.
            </summary>
            <returns>true if the stream supports seeking; otherwise, false.</returns>
        </member>
        <member name="P:SharpShell.Helpers.ComStream.CanWrite">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports writing.
            </summary>
            <returns>true if the stream supports writing; otherwise, false.</returns>
        </member>
        <member name="P:SharpShell.Helpers.ComStream.Position">
            <summary>
            When overridden in a derived class, gets or sets the position within the current stream.
            </summary>
            <returns>The current position within the stream.</returns>
            <exception cref="T:System.NotImplementedException">
            </exception>
        </member>
        <member name="P:SharpShell.Helpers.ComStream.Length">
            <summary>
            Get the length of the stream - if possible.
            </summary>
            <returns>A long value representing the length of the stream in bytes.</returns>
        </member>
        <member name="P:SharpShell.Helpers.ComStream.Name">
            <summary>
            Get the name of the item associated with the stream, if one exists.
            </summary>
            <returns>A long value representing the length of the stream in bytes.</returns>
        </member>
        <member name="T:SharpShell.Helpers.RegAsm">
            <summary>
            RegAsm provides a simple interface to find and run a locally installed 'regasm.exe' executable.
            </summary>
        </member>
        <member name="P:SharpShell.Helpers.RegAsm.StandardOutput">
            <summary>
            The standard output from the most recent execution.
            </summary>
        </member>
        <member name="P:SharpShell.Helpers.RegAsm.StandardError">
            <summary>
            The standard error from the most recent execution.
            </summary>
        </member>
        <member name="M:SharpShell.Helpers.RegAsm.Register32(System.String,System.Boolean)">
            <summary>
            Registers the given assembly, as 32 bit.
            </summary>
            <param name="assemblyPath">The assembly path.</param>
            <param name="codebase">if set to <c>true</c> set the codebase flag.</param>
            <returns><c>true</c> if registration succeeded, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:SharpShell.Helpers.RegAsm.Register64(System.String,System.Boolean)">
            <summary>
            Registers the given assembly, as 64 bit.
            </summary>
            <param name="assemblyPath">The assembly path.</param>
            <param name="codebase">if set to <c>true</c> set the codebase flag.</param>
            <returns><c>true</c> if registration succeeded, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:SharpShell.Helpers.RegAsm.Unregister32(System.String)">
            <summary>
            Unregisters the given assembly, as 32 bit.
            </summary>
            <param name="assemblyPath">The assembly path.</param>
            <returns><c>true</c> if unregistration succeeded, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:SharpShell.Helpers.RegAsm.Unregister64(System.String)">
            <summary>
            Unregisters the given assembly, as 64 bit.
            </summary>
            <param name="assemblyPath">The assembly path.</param>
            <returns><c>true</c> if unregistration succeeded, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:SharpShell.Helpers.RegAsm.FindRegAsmPath(System.String)">
            <summary>
            Finds the 'regasm.exe' path, from the given framework folder.
            </summary>
            <param name="frameworkFolder">The framework folder, which would normally be <code>%WINDIR%\Microsoft.NET\Framework</code> or
            <code>%WINDIR%\Microsoft.NET\Framework64</code>.</param>
            <returns>The path to the regasm.exe executable, from the most recent .NET Framework installation.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if a valid regasm path cannot be found.</exception>
        </member>
        <member name="T:SharpShell.Helpers.Win32Helper">
            <summary>
            Helper for Win32, providing access to some of the key macros which are often used.
            </summary>
        </member>
        <member name="M:SharpShell.Helpers.Win32Helper.LoWord(System.IntPtr)">
            <summary>
            Gets the LoWord of an IntPtr.
            </summary>
            <param name="ptr">The int pointer.</param>
            <returns>The LoWord of an IntPtr.</returns>
        </member>
        <member name="M:SharpShell.Helpers.Win32Helper.HiWord(System.IntPtr)">
            <summary>
            Gets the HiWord of an IntPtr.
            </summary>
            <param name="ptr">The int pointer.</param>
            <returns>The HiWord of an IntPtr.</returns>
        </member>
        <member name="M:SharpShell.Helpers.Win32Helper.IS_INTRESOURCE(System.IntPtr)">
            <summary>
            Determines whether a value is an integer identifier for a resource.
            </summary>
            <param name="resource">The pointer to be tested whether it contains an integer resource identifier.</param>
            <returns>
              <c>true</c> if all bits except the least 16 bits are zero, indicating 'resource' is an integer identifier for a resource. Otherwise it is typically a pointer to a string.
            </returns>
        </member>
        <member name="T:SharpShell.InitializeWithFileServer">
            <summary>
            InitializeWithFileServer provides a base for SharpShell Servers that must implement
            IInitializeWithItem (thumbnail handlers which need a file path for initialisation etc).
            Note that if possible, <see cref="T:SharpShell.InitializeWithStreamServer"/> should be used, as it is far more
            performant.
            Note that in Windows Vista onwards, implementations of this interface may not behave as expected as
            it has been essentially deprecated for security reasons. For example, a Shell Thumbnail Handler which
            implements this interface will *not* be called.
            </summary>
        </member>
        <member name="P:SharpShell.InitializeWithFileServer.SelectedItemPath">
            <summary>
            Gets the selected item stream.
            </summary>
            <value>
            The selected item stream.
            </value>
        </member>
        <member name="P:SharpShell.InitializeWithFileServer.SelectedItemStorageMedium">
            <summary>Gets the selected item storage medium.</summary>
            <value>The selected item storage medium.</value>
        </member>
        <member name="T:SharpShell.InitializeWithItemServer">
            <summary>
            InitializeWithItemServer provides a base for SharpShell Servers that must implement
            IInitializeWithItem (thumbnail handlers which need a display name or path for initialisation etc).
            Note that if possible, <see cref="T:SharpShell.InitializeWithStreamServer"/> should be used, as it is far more
            performant.
            </summary>
        </member>
        <member name="P:SharpShell.InitializeWithItemServer.SelectedShellItem">
            <summary>
            Gets the selected shell item.
            </summary>
            <value>
            The selected shell item.
            </value>
        </member>
        <member name="P:SharpShell.InitializeWithItemServer.SelectedShellItemAccessMode">
            <summary>
             Gets the selected shell item access mode.
            </summary>
            <value>The selected shell item access mode.</value>
        </member>
        <member name="T:SharpShell.Interop.IInitializeWithItem">
            <summary>
            Initializes a handler with an IShellItem.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IInitializeWithItem.Initialize(SharpShell.Interop.IShellItem,SharpShell.Interop.STGM)">
            <summary>
            Exposes a method used to initialize a handler, such as a property handler, thumbnail handler, or preview handler, with an <see cref="T:SharpShell.Interop.IShellItem"/>.
            </summary>
            <param name="shellItem">A pointer to an <see cref="T:SharpShell.Interop.IShellItem"/>.</param>
            <param name="accessMode">One of the following <see cref="T:SharpShell.Interop.STGM"/> values that indicate the access mode for psi.
            STGM_READ: The IShellItem is read-only.
            STGM_READWRITE: The IShellItem is read/write accessible.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.IShellItem">
            <summary>
            Exposes methods that retrieve information about a Shell item. <see cref="T:SharpShell.Interop.IShellItem"/> and IShellItem2 are the preferred representations of items in any new code.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IShellItem.BindToHandler(System.IntPtr,System.Guid,System.Guid,System.IntPtr@)">
            <summary>Binds to a handler for an item as specified by the handler ID value (BHID).</summary>
            <param name="pbc">
            A pointer to an IBindCtx interface on a bind context object. Used to pass optional parameters to the handler. The contents of the bind context are handler-specific. For example, when binding to BHID_Stream, the STGM flags in the bind context indicate the mode of access desired (read or read/write).
            </param>
            <param name="bhid">Reference to a GUID that specifies which handler will be created. One of the following values defined in Shlguid.h:</param>
            <param name="riid">IID of the object type to retrieve.</param>
            <param name="ppv">When this method returns, contains a pointer of type riid that is returned by the handler specified by rbhid.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellItem.GetParent(SharpShell.Interop.IShellItem@)">
            <summary>Gets the parent of an IShellItem object.</summary>
            <param name="ppsi">The address of a pointer to the parent of an IShellItem interface.</param>
            <returns>Returns S_OK if successful, or an error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellItem.GetDisplayName(SharpShell.Interop.SIGDN,System.String@)">
            <summary>Gets the display name of the IShellItem object.</summary>
            <param name="sigdnName">One of the SIGDN values that indicates how the name should look.</param>
            <param name="ppszName">A value that, when this function returns successfully, receives the address of a pointer to the retrieved display name.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellItem.GetAttributes(System.UInt32,System.UInt32@)">
            <summary>Gets a requested set of attributes of the IShellItem object.</summary>
            <param name="sfgaoMask">Specifies the attributes to retrieve. One or more of the SFGAO values. Use a bitwise OR operator to determine the attributes to retrieve.</param>
            <param name="psfgaoAttribs">A pointer to a value that, when this method returns successfully, contains the requested attributes. One or more of the SFGAO values. Only those attributes specified by sfgaoMask are returned; other attribute values are undefined.</param>
            <returns>Returns S_OK if the attributes returned exactly match those requested in sfgaoMask, S_FALSE if the attributes do not exactly match, or a standard COM error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellItem.Compare(SharpShell.Interop.IShellItem,System.UInt32,System.Int32@)">
            <summary>Compares two IShellItem objects.</summary>
            <param name="psi">A pointer to an IShellItem object to compare with the existing IShellItem object.</param>
            <param name="hint">One of the SICHINTF values that determines how to perform the comparison. See SICHINTF for the list of possible values for this parameter.</param>
            <param name="piOrder">This parameter receives the result of the comparison. If the two items are the same this parameter equals zero; if they are different the parameter is nonzero.</param>
            <returns>Returns S_OK if the items are the same, S_FALSE if they are different, or an error value otherwise.</returns>
        </member>
        <member name="T:SharpShell.Interop.SIGDN">
            <summary>Requests the form of an item's display name to retrieve through IShellItem::GetDisplayName and SHGetNameFromIDList.</summary>
            <remarks>
            Different forms of an item's name can be retrieved through the item's properties, including those listed here. Note that not all
            properties are present on all items, so only those appropriate to the item will appear.
            </remarks>
        </member>
        <member name="F:SharpShell.Interop.SIGDN.SIGDN_DESKTOPABSOLUTEEDITING">
            <summary>Returns the editing name relative to the desktop. In UI this name is suitable for display to the user.</summary>
        </member>
        <member name="F:SharpShell.Interop.SIGDN.SIGDN_DESKTOPABSOLUTEPARSING">
            <summary>Returns the parsing name relative to the desktop. This name is not suitable for use in UI.</summary>
        </member>
        <member name="F:SharpShell.Interop.SIGDN.SIGDN_FILESYSPATH">
            <summary>
            Returns the item's file system path, if it has one. Only items that report SFGAO_FILESYSTEM have a file system path. When an
            item does not have a file system path, a call to IShellItem::GetDisplayName on that item will fail. In UI this name is
            suitable for display to the user in some cases, but note that it might not be specified for all items.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SIGDN.SIGDN_NORMALDISPLAY">
            <summary>
            Returns the display name relative to the parent folder. In UI this name is generally ideal for display to the user.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SIGDN.SIGDN_PARENTRELATIVE">
            <summary>Returns the path relative to the parent folder.</summary>
        </member>
        <member name="F:SharpShell.Interop.SIGDN.SIGDN_PARENTRELATIVEEDITING">
            <summary>Returns the editing name relative to the parent folder. In UI this name is suitable for display to the user.</summary>
        </member>
        <member name="F:SharpShell.Interop.SIGDN.SIGDN_PARENTRELATIVEFORADDRESSBAR">
            <summary>
            Returns the path relative to the parent folder in a friendly format as displayed in an address bar. This name is suitable for
            display to the user.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SIGDN.SIGDN_PARENTRELATIVEFORUI">
            <summary>Introduced in Windows 8.</summary>
        </member>
        <member name="F:SharpShell.Interop.SIGDN.SIGDN_PARENTRELATIVEPARSING">
            <summary>Returns the parsing name relative to the parent folder. This name is not suitable for use in UI.</summary>
        </member>
        <member name="F:SharpShell.Interop.SIGDN.SIGDN_URL">
            <summary>
            Returns the item's URL, if it has one. Some items do not have a URL, and in those cases a call to IShellItem::GetDisplayName
            will fail. This name is suitable for display to the user in some cases, but note that it might not be specified for all items.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.STATFLAG">
            <summary>
            The STATFLAG enumeration values indicate whether the method should try to return a name in 
            the pwcsName member of the STATSTG structure.  The values are used in the ILockBytes::Stat, 
            IStorage::Stat, and IStream::Stat methods to save memory when the pwcsName member is not required.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STATFLAG.STATFLAG_DEFAULT">
            <summary>
            Requests that the statistics include the pwcsName member of the STATSTG structure.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STATFLAG.STATFLAG_NONAME">
            <summary>
            Requests that the statistics not include the pwcsName member of the STATSTG structure. 
            If the name is omitted, there is no need for the ILockBytes::Stat, IStorage::Stat, and 
            IStream::Stat methods methods to allocate and free memory for the string value of the name, 
            therefore the method reduces time and resources used in an allocation and free operation.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STATFLAG.STATFLAG_NOOPEN">
            <summary>
            Not implemented.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.ASSOCCLASS">
            <summary>
            Where to obtain association data and the form the data is stored in. One of the following values from the ASSOCCLASS enumeration.   
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_SHELL_KEY">
            <summary>
            The hkClass member names a key found as HKEY_CLASSES_ROOT\SystemFileAssociations\hkClass.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_PROGID_KEY">
            <summary>
            The hkClass member provides the full registry path of a ProgID.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_PROGID_STR">
            <summary>
            The pszClass member names a ProgID found as HKEY_CLASSES_ROOT\pszClass.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_CLSID_KEY">
            <summary>
            The hkClass member provides the full registry path of a CLSID.  
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_CLSID_STR">
            <summary>
            The hkClass member names a CLSID found as HKEY_CLASSES_ROOT\CLSID\pszClass.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_APP_KEY">
            <summary>
            The hkClass member provides the full registry path of an application identifier (APPID).
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_APP_STR">
            <summary>
            The APPID storing the application information is found at HKEY_CLASSES_ROOT\Applications\FileName where FileName is obtained by sending pszClass to PathFindFileName.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_SYSTEM_STR">
            <summary>
            The pszClass member names a key found as HKEY_CLASSES_ROOT\SystemFileAssociations\pszClass.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_FOLDER">
            <summary>
            Use the association information for folders stored under HKEY_CLASSES_ROOT\Folder. When this flag is set, hkClass and pszClass are ignored.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_STAR">
            <summary>
            Use the association information stored under the HKEY_CLASSES_ROOT\* subkey. When this flag is set, hkClass and pszClass are ignored.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_FIXED_PROGID_STR">
            <summary>
            Introduced in Windows 8. Do not use the user defaults to apply the mapping of the class specified by the pszClass member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCCLASS.ASSOCCLASS_PROTOCOL_STR">
            <summary>
            Introduced in Windows 8. Use the user defaults to apply the mapping of the class specified by the pszClass member; the class is a protocol.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.ASSOCIATIONELEMENT">
            <summary>
            Defines information used by AssocCreateForClasses to retrieve an IQueryAssociations interface for a given file association.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCIATIONELEMENT.ac">
            <summary>
            Where to obtain association data and the form the data is stored in. One of the following values from the ASSOCCLASS enumeration.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCIATIONELEMENT.hkClass">
            <summary>
            A registry key that specifies a class that contains association information.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ASSOCIATIONELEMENT.pszClass">
            <summary>
            A pointer to the name of a class that contains association information.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.BITMAPINFO.bmiHeader">
            <summary>
            A BITMAPINFOHEADER structure that contains information about the dimensions of color format.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.BITMAPINFO.bmiColors">
            <summary>
            An array of RGBQUAD. The elements of the array that make up the color table.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.CATEGORYINFO">
            <summary>
            Describes a component category.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CATEGORYINFO.catid">
            <summary>
            The category identifier for the component.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CATEGORYINFO.lcid">
            <summary>
            The locale identifier. See Language Identifier Constants and Strings.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CATEGORYINFO.szDescription">
            <summary>
            The description of the category (cannot exceed 128 characters).
            </summary>
        </member>
        <member name="T:SharpShell.Interop.COLORREF">
            <summary>
            The COLORREF value is used to specify an RGB color.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.COLORREF.#ctor(System.Drawing.Color)">
            <summary>
            Initializes a new instance of a <see cref="T:SharpShell.Interop.COLORREF"/> from a <see cref="P:SharpShell.Interop.COLORREF.Color"/>.
            </summary>
            <param name="color">The color.</param>
        </member>
        <member name="F:SharpShell.Interop.COLORREF.Dword">
            <summary>
            The DWORD representation of the color.
            </summary>
        </member>
        <member name="P:SharpShell.Interop.COLORREF.Color">
            <summary>
            Gets the color.
            </summary>
            <value>
            The color.
            </value>
        </member>
        <member name="T:SharpShell.Interop.DEFCONTEXTMENU">
            <summary>
            Contains context menu information used by SHCreateDefaultContextMenu.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DEFCONTEXTMENU.hwnd">
            <summary>
            A handle to the context menu. Set this member to the handle returned from CreateMenu.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DEFCONTEXTMENU.pcmcb">
            <summary>
            A pointer to the IContextMenuCB interface supported by the callback object. This value is optional and can be NULL.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DEFCONTEXTMENU.pidlFolder">
            <summary>
            The PIDL of the folder that contains the selected file object(s) or the folder of the context menu if no file objects are selected. This value is optional and can be NULL, in which case the PIDL is computed from the psf member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DEFCONTEXTMENU.psf">
            <summary>
            A pointer to the IShellFolder interface of the folder object that contains the selected file objects, or the folder that contains the context menu if no file objects are selected.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DEFCONTEXTMENU.cidl">
            <summary>
            The count of items in member apidl.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DEFCONTEXTMENU.apidl">
            <summary>
            A pointer to a constant array of ITEMIDLIST structures. Each entry in the array describes a child item to which the context menu applies, for instance, a selected file the user wants to Open.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DEFCONTEXTMENU.punkAssociationInfo">
            <summary>
            A pointer to the IQueryAssociations interface on the object from which to load extensions. This parameter is optional and thus can be NULL. If this value is NULL and members aKeys and cKeys are also NULL (see Remarks), punkAssociationInfo is computed from the apidl member and cidl via a request for IQueryAssociations through IShellFolder::GetUIObjectOf.
            If IShellFolder::GetUIObjectOf returns E_NOTIMPL, a default implementation is provided based on the SFGAO_FOLDER and SFGAO_FILESYSTEM attributes returned from IShellFolder::GetAttributesOf.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DEFCONTEXTMENU.cKeys">
            <summary>
            The count of items in member aKeys. This value can be zero. If the value is zero, the extensions are loaded based on the object that supports interface IQueryAssociations as specified by member punkAssociationInfo. If the value is non-NULL, the extensions are loaded based only on member aKeys and not member punkAssociationInfo.
             Note: The maximum number of keys is 16. Callers must enforce this limit as the API does not. Failing to do so can result in memory corruption.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DEFCONTEXTMENU.aKeys">
            <summary>
            A pointer to an HKEY that specifies the registry key from which to load extensions. This parameter is optional and can be NULL. If the value is NULL, the extensions are loaded based on the object that supports interface IQueryAssociations as specified in punkAssociationInfo.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.DESKBANDINFO">
            <summary>
            Receives information about a band object. This structure is used with the deprecated IDeskBand::GetBandInfo method.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.dwMask">
            <summary>
            Set of flags that determine which members of this structure are being requested. 
            </summary>
            <remarks>
            This will be a combination of the following values:
                DBIM_MINSIZE    ptMinSize is being requested.
                DBIM_MAXSIZE    ptMaxSize is being requested.
                DBIM_INTEGRAL   ptIntegral is being requested.
                DBIM_ACTUAL     ptActual is being requested.
                DBIM_TITLE      wszTitle is being requested.
                DBIM_MODEFLAGS  dwModeFlags is being requested.
                DBIM_BKCOLOR    crBkgnd is being requested.
            </remarks>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.ptMinSize">
            <summary>
            Point structure that receives the minimum size of the band object. 
            The minimum width is placed in the x member and the minimum height 
            is placed in the y member. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.ptMaxSize">
            <summary>
            Point structure that receives the maximum size of the band object. 
            The maximum height is placed in the y member and the x member is ignored. 
            If there is no limit for the maximum height, (LONG)-1 should be used. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.ptIntegral">
            <summary>
            Point structure that receives the sizing step value of the band object. 
            The vertical step value is placed in the y member, and the x member is ignored. 
            The step value determines in what increments the band will be resized. 
            </summary>
            <remarks>
            This member is ignored if dwModeFlags does not contain DBIMF_VARIABLEHEIGHT. 
            </remarks>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.ptActual">
            <summary>
            Point structure that receives the ideal size of the band object. 
            The ideal width is placed in the x member and the ideal height is placed in the y member. 
            The band container will attempt to use these values, but the band is not guaranteed to be this size.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.wszTitle">
            <summary>
            The title of the band.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.dwModeFlags">
            <summary>
            A value that receives a set of flags that define the mode of operation for the band object. 
            </summary>
            <remarks>
            This must be one or a combination of the following values.
                DBIMF_NORMAL
                The band is normal in all respects. The other mode flags modify this flag.
                DBIMF_VARIABLEHEIGHT
                The height of the band object can be changed. The ptIntegral member defines the 
                step value by which the band object can be resized. 
                DBIMF_DEBOSSED
                The band object is displayed with a sunken appearance.
                DBIMF_BKCOLOR
                The band will be displayed with the background color specified in crBkgnd.
            </remarks>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.crBkgnd">
            <summary>
            The background color of the band.
            </summary>
            <remarks>
            This member is ignored if dwModeFlags does not contain the DBIMF_BKCOLOR flag. 
            </remarks>
        </member>
        <member name="T:SharpShell.Interop.DESKBANDINFO.DBIF">
            <summary>
            The view mode of the band object. This is one of the following values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIF.DBIF_VIEWMODE_NORMAL">
            <summary>
            Band object is displayed in a horizontal band.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIF.DBIF_VIEWMODE_VERTICAL">
            <summary>
            Band object is displayed in a vertical band.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIF.DBIF_VIEWMODE_FLOATING">
            <summary>
            Band object is displayed in a floating band.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIF.DBIF_VIEWMODE_TRANSPARENT">
            <summary>
            Band object is displayed in a transparent band.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.DESKBANDINFO.DBIM">
            <summary>
            The set of flags that determine which members of this structure are being requested by the caller. One or more of the following values:
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIM.DBIM_MINSIZE">
            <summary>
            ptMinSize is requested.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIM.DBIM_MAXSIZE">
            <summary>
            ptMaxSize is requested.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIM.DBIM_INTEGRAL">
            <summary>
            ptIntegral is requested.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIM.DBIM_ACTUAL">
            <summary>
            ptActual is requested.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIM.DBIM_TITLE">
            <summary>
            wszTitle is requested.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIM.DBIM_MODEFLAGS">
            <summary>
            dwModeFlags is requested.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIM.DBIM_BKCOLOR">
            <summary>
            crBkgnd is requested.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.DESKBANDINFO.DBIMF">
            <summary>
            A value that receives a set of flags that specify the mode of operation for the band object. One or more of the following values:
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_NORMAL">
            <summary>
            The band uses default properties. The other mode flags modify this flag.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_FIXED">
            <summary>
            Windows XP and later: The band object is of a fixed sized and position. With this flag, a sizing grip is not displayed on the band object.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_FIXEDBMP">
            <summary>
            DBIMF_FIXEDBMP
            Windows XP and later: The band object uses a fixed bitmap (.bmp) file as its background. Note that backgrounds are not supported in all cases, so the bitmap may not be seen even when this flag is set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_VARIABLEHEIGHT">
            <summary>
            The height of the band object can be changed. The ptIntegral member defines the step value by which the band object can be resized.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_UNDELETEABLE">
            <summary>
            Windows XP and later: The band object cannot be removed from the band container.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_DEBOSSED">
            <summary>
            The band object is displayed with a sunken appearance.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_BKCOLOR">
            <summary>
            The band is displayed with the background color specified in crBkgnd.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_USECHEVRON">
            <summary>
            Windows XP and later: If the full band object cannot be displayed (that is, the band object is smaller than ptActual, a chevron is shown to indicate that there are more options available. These options are displayed when the chevron is clicked.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_BREAK">
            <summary>
            Windows XP and later: The band object is displayed in a new row in the band container.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_ADDTOFRONT">
            <summary>
            Windows XP and later: The band object is the first object in the band container.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_TOPALIGN">
            <summary>
            Windows XP and later: The band object is displayed in the top row of the band container.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_NOGRIPPER">
            <summary>
            Windows Vista and later: No sizing grip is ever displayed to allow the user to move or resize the band object.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_ALWAYSGRIPPER">
            <summary>
            Windows Vista and later: A sizing grip that allows the user to move or resize the band object is always shown, even if that band object is the only one in the container.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.DESKBANDINFO.DBIMF.DBIMF_NOMARGINS">
            <summary>
            Windows Vista and later: The band object should not display margins.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.Gdi32">
            <summary>
            Imports from gdi32.dll.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.Gdi32.DeleteObject(System.IntPtr)">
            <summary>
                   Deletes a logical pen, brush, font, bitmap, region, or palette, freeing all system resources associated with the object. After the object is deleted, the specified handle is no longer valid.
            </summary>
            <param name="hObject">A handle to a logical pen, brush, font, bitmap, region, or palette.</param>
            <returns>
                   If the function succeeds, the return value is <c>true</c>. If the specified handle is not valid or is currently selected into a DC, the return value is <c>false</c>.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.Gdi32.DeleteDC(System.IntPtr)">
            <summary>
                   Deletes the specified device context (DC).
            </summary>
            <param name="hdc">A handle to the device context.</param>
            <returns>If the function succeeds, the return value is <c>true</c>. If the function fails, the return value is <c>false</c>.</returns>
        </member>
        <member name="M:SharpShell.Interop.Gdi32.GetDIBits(System.IntPtr,System.IntPtr,System.UInt32,System.UInt32,System.Byte[],SharpShell.Interop.BITMAPINFO@,System.UInt32)">
            <summary>
                   Retrieves the bits of the specified compatible bitmap and copies them into a buffer as a DIB using the specified format.
            </summary>
            <param name="hdc">A handle to the device context.</param>
            <param name="hbmp">A handle to the bitmap. This must be a compatible bitmap (DDB).</param>
            <param name="uStartScan">The first scan line to retrieve.</param>
            <param name="cScanLines">The number of scan lines to retrieve.</param>
            <param name="lpvBits">A pointer to a buffer to receive the bitmap data. If this parameter is <see cref="F:System.IntPtr.Zero"/>, the function passes the dimensions and format of the bitmap to the <see cref="T:SharpShell.Interop.BITMAPINFO"/> structure pointed to by the <paramref name="lpbi"/> parameter.</param>
            <param name="lpbi">A pointer to a <see cref="T:SharpShell.Interop.BITMAPINFO"/> structure that specifies the desired format for the DIB data.</param>
            <param name="uUsage">The format of the bmiColors member of the <see cref="T:SharpShell.Interop.BITMAPINFO"/> structure. It must be one of the following values.</param>
            <returns>If the lpvBits parameter is non-NULL and the function succeeds, the return value is the number of scan lines copied from the bitmap.
            If the lpvBits parameter is NULL and GetDIBits successfully fills the <see cref="T:SharpShell.Interop.BITMAPINFO"/> structure, the return value is nonzero.
            If the function fails, the return value is zero.
            This function can return the following value: ERROR_INVALID_PARAMETER (87 (0×57))</returns>
        </member>
        <member name="T:SharpShell.Interop.GILInFlags">
            <summary>
            Input GIL flags.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILInFlags.GIL_ASYNC">
            <summary>
            Set this flag to determine whether the icon should be extracted asynchronously. If the icon can be extracted rapidly, this flag is usually ignored. If extraction will take more time, GetIconLocation should return E_PENDING
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILInFlags.GIL_DEFAULTICON">
            <summary>
            Retrieve information about the fallback icon. Fallback icons are usually used while the desired icon is extracted and added to the cache.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILInFlags.GIL_FORSHELL">
            <summary>
            The icon is displayed in a Shell folder.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILInFlags.GIL_FORSHORTCUT">
            <summary>
            The icon indicates a shortcut. However, the icon extractor should not apply the shortcut overlay; that will be done later. Shortcut icons are state-independent.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILInFlags.GIL_OPENICON">
            <summary>
            The icon is in the open state if both open-state and closed-state images are available. If this flag is not specified, the icon is in the normal or closed state. This flag is typically used for folder objects.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILInFlags.GIL_CHECKSHIELD">
            <summary>
            Explicitly return either GIL_SHIELD or GIL_FORCENOSHIELD in pwFlags. Do not block if GIL_ASYNC is set.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.ICatRegister">
            <summary>
            provides methods for registering and unregistering component category 
            information in the registry. This includes both the human-readable 
            names of categories and the categories implemented or required by a 
            given component or class.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.ICatRegister.RegisterCategories(System.UInt32,SharpShell.Interop.CATEGORYINFO[])">
            <summary>
            Registers one or more component categories. Each component category 
            consists of a CATID and a list of locale-dependent description strings.
            </summary>
            <param name="cCategories">The number of component categories to register.</param>
            <param name="rgCategoryInfo">
            The array of cCategories CATEGORYINFO structures. By providing the same 
            CATID for multiple CATEGORYINFO structures, multiple locales can be 
            registered for the same component category. 
            </param>
        </member>
        <member name="M:SharpShell.Interop.ICatRegister.UnRegisterCategories(System.UInt32,System.Guid[])">
            <summary>
            Removes the registration of one or more component categories. Each component 
            category consists of a CATID and a list of locale-dependent description strings.
            </summary>
            <param name="cCategories">The number of cCategories CATIDs to be removed.</param>
            <param name="rgcatid">Identifies the categories to be removed.</param>
        </member>
        <member name="M:SharpShell.Interop.ICatRegister.RegisterClassImplCategories(System.Guid@,System.UInt32,System.Guid[])">
            <summary>
            Registers the class as implementing one or more component categories.
            </summary>
            <param name="rclsid">The class ID of the relevent class for which category information will be set.</param>
            <param name="cCategories">The number of categories to associate as category identifiers for the class.</param>
            <param name="rgcatid">The array of cCategories CATIDs to associate as category identifiers for the class.</param>
        </member>
        <member name="M:SharpShell.Interop.ICatRegister.UnRegisterClassImplCategories(System.Guid@,System.UInt32,System.Guid[])">
            <summary>
            Removes one or more implemented category identifiers from a class.
            </summary>
            <param name="rclsid">The class ID of the relevant class to be manipulated.</param>
            <param name="cCategories">The number of category CATIDs to remove.</param>
            <param name="rgcatid">The array of cCategories CATID that are to be removed. Only the category IDs specified in this array are removed.</param>
        </member>
        <member name="M:SharpShell.Interop.ICatRegister.RegisterClassReqCategories(System.Guid@,System.UInt32,System.Guid[])">
            <summary>
            Registers the class as requiring one or more component categories.
            </summary>
            <param name="rclsid">The class ID of the relevent class for which category information will be set.</param>
            <param name="cCategories">The number of category CATIDs to associate as category identifiers for the class.</param>
            <param name="rgcatid">The array of cCategories CATID to associate as category identifiers for the class.</param>
        </member>
        <member name="M:SharpShell.Interop.ICatRegister.UnRegisterClassReqCategories(System.Guid@,System.UInt32,System.Guid[])">
            <summary>
            Removes one or more required category identifiers from a class.
            </summary>
            <param name="rclsid">The class ID of the relevent class to be manipulated.</param>
            <param name="cCategories">The number of category CATIDs to remove.</param>
            <param name="rgcatid">The array of cCategories CATID that are to be removed. Only the category IDs specified in this array are removed.</param>
        </member>
        <member name="T:SharpShell.Interop.ICommDlgBrowser">
            <summary>
            Exposed by the common file dialog boxes to be used when they host a Shell browser. If supported, ICommDlgBrowser exposes methods that allow a Shell view to handle several cases that require different behavior in a dialog box than in a normal Shell view. You obtain an ICommDlgBrowser interface pointer by calling QueryInterface on the IShellBrowser object.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.ICommDlgBrowser.OnDefaultCommand(System.IntPtr)">
            <summary>
            Called when a user double-clicks in the view or presses the ENTER key.
            </summary>
            <param name="ppshv">A pointer to the view's IShellView interface.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.ICommDlgBrowser.OnStateChange(System.IntPtr,System.IntPtr)">
            <summary>
            Called after a state, identified by the uChange parameter, has changed in the IShellView interface.
            </summary>
            <param name="ppshv">A pointer to the view's IShellView interface.</param>
            <param name="uChange">Change in the selection state. This parameter can be one of the following values.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.ICommDlgBrowser.IncludeObject(System.IntPtr,System.IntPtr)">
            <summary>
            Allows the common dialog box to filter objects that the view displays.
            </summary>
            <param name="ppshv">A pointer to the view's IShellView interface.</param>
            <param name="pidl">A PIDL, relative to the folder, that identifies the object.</param>
            <returns>The browser should return S_OK to include the object in the view, or S_FALSE to hide it.</returns>
        </member>
        <member name="T:SharpShell.Interop.IContextMenuCB">
            <summary>
            Exposes a method that enables the callback of a context menu. For example, to add a shield icon to a menuItem that requires elevation.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IContextMenuCB.CallBack(SharpShell.Interop.IShellFolder,System.IntPtr,System.Runtime.InteropServices.ComTypes.IDataObject,System.UInt32,System.IntPtr,System.IntPtr)">
            <summary>
            Enables the callback function for a context menu.
            </summary>
            <param name="psf">A pointer to the IShellFolder interface of the object that supports the IContextMenuCB::CallBack interface. The context menu interface is returned on a call to GetUIObjectOf.</param>
            <param name="hwndOwner">A handle to the owner of the context menu. This value can be NULL.</param>
            <param name="pdtobj">A pointer to an IDataObject that contains information about a menu selection. Implement interface IDataObject, or call SHCreateDataObject for the default implementation.</param>
            <param name="uMsg">A notification from the Shell's default menu implementation. For example, the default menu implementation calls DFM_MERGECONTEXTMENU to allow the implementer of IContextMenuCB::CallBack to remove, add, or disable context menu items in this callback. Use one of the following notifications.</param>
            <param name="wParam">Data specific to the notification specified in uMsg. See the individual notification page for specific requirements.</param>
            <param name="lParam">Data specific to the notification specified in uMsg. See the individual notification page for specific requirements.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.IDefaultExtractIconInit">
            <summary>
            Exposes methods to set default icons associated with an object.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IDefaultExtractIconInit.SetFlags(System.UInt32)">
            <summary>
            Sets GIL_XXX flags. See GetIconLocation
            </summary>
            <param name="uFlags">Specifies return flags to get icon location.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IDefaultExtractIconInit.SetKey(System.IntPtr)">
            <summary>
            Sets the registry key from which to load the "DefaultIcon" value.
            </summary>
            <param name="hkey">A handle to the registry key.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IDefaultExtractIconInit.SetNormalIcon(System.String,System.Int32)">
            <summary>
            Sets the normal icon.
            </summary>
            <param name="pszFile">A pointer to a buffer that contains the full icon path, including the file name and extension, as a Unicode string. This pointer can be NULL.</param>
            <param name="iIcon">A Shell icon ID.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IDefaultExtractIconInit.SetOpenIcon(System.String,System.Int32)">
            <summary>
            Sets the icon that allows containers to specify an "open" look.
            </summary>
            <param name="pszFile">A pointer to a buffer that contains the full icon path, including the file name and extension, as a Unicode string. This pointer can be NULL.</param>
            <param name="iIcon">Shell icon ID.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IDefaultExtractIconInit.SetShortcutIcon(System.String,System.Int32)">
            <summary>
            Sets the icon for a shortcut to the object.
            </summary>
            <param name="pszFile">A pointer to a buffer that contains the full icon path, including the file name and extension, as a Unicode string. This pointer can be NULL.</param>
            <param name="iIcon">Shell icon ID.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IDefaultExtractIconInit.SetDefaultIcon(System.String,System.Int32)">
            <summary>
            Sets the default icon.
            </summary>
            <param name="pszFile">A pointer to a buffer that contains the full icon path, including the file name and extension, as a Unicode string. This pointer can be NULL.</param>
            <param name="iIcon">The Shell icon ID.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.IDeskBand">
            <summary>
            Gets information about a band object.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand.GetWindow(System.IntPtr@)">
            <summary>
            Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
            </summary>
            <param name="phwnd">A pointer to a variable that receives the window handle.</param>
            <returns>
            This method returns S_OK on success.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand.ContextSensitiveHelp(System.Boolean)">
            <summary>
            Determines whether context-sensitive help mode should be entered during an in-place activation session.
            </summary>
            <param name="fEnterMode">TRUE if help mode should be entered; FALSE if it should be exited.</param>
            <returns>
            This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in fEnterMode.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand.ShowDW(System.Boolean)">
            <summary>
            Instructs the docking window object to show or hide itself.
            </summary>
            <param name="bShow">TRUE if the docking window object should show its window.
            FALSE if the docking window object should hide its window and return its border space by calling SetBorderSpaceDW with zero values.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand.CloseDW(System.UInt32)">
            <summary>
            Notifies the docking window object that it is about to be removed from the frame.
            The docking window object should save any persistent information at this time.
            </summary>
            <param name="dwReserved">Reserved. This parameter should always be zero.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand.ResizeBorderDW(SharpShell.Interop.RECT,System.IntPtr,System.Boolean)">
            <summary>
            Notifies the docking window object that the frame's border space has changed.
            In response to this method, the IDockingWindow implementation must call SetBorderSpaceDW, even if no border space is required or a change is not necessary.
            </summary>
            <param name="rcBorder">Pointer to a RECT structure that contains the frame's available border space.</param>
            <param name="punkToolbarSite">Pointer to the site's IUnknown interface. The docking window object should call the QueryInterface method for this interface, requesting IID_IDockingWindowSite.
            The docking window object then uses that interface to negotiate its border space. It is the docking window object's responsibility to release this interface when it is no longer needed.</param>
            <param name="fReserved">Reserved. This parameter should always be zero.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand.GetBandInfo(System.UInt32,SharpShell.Interop.DESKBANDINFO.DBIF,SharpShell.Interop.DESKBANDINFO@)">
            <summary>
            Gets state information for a band object.
            </summary>
            <param name="dwBandID">The identifier of the band, assigned by the container. The band object can retain this value if it is required.</param>
            <param name="dwViewMode">The view mode of the band object. One of the following values: DBIF_VIEWMODE_NORMAL, DBIF_VIEWMODE_VERTICAL, DBIF_VIEWMODE_FLOATING, DBIF_VIEWMODE_TRANSPARENT.</param>
            <param name="pdbi">The pdbi.</param>
            <returns></returns>
        </member>
        <member name="T:SharpShell.Interop.IDeskBand2">
            <summary>
            Exposes methods to enable and query translucency effects in a deskband object.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand2.GetWindow(System.IntPtr@)">
            <summary>
            Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
            </summary>
            <param name="phwnd">A pointer to a variable that receives the window handle.</param>
            <returns>
            This method returns S_OK on success.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand2.ContextSensitiveHelp(System.Boolean)">
            <summary>
            Determines whether context-sensitive help mode should be entered during an in-place activation session.
            </summary>
            <param name="fEnterMode">TRUE if help mode should be entered; FALSE if it should be exited.</param>
            <returns>
            This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in fEnterMode.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand2.ShowDW(System.Boolean)">
            <summary>
            Instructs the docking window object to show or hide itself.
            </summary>
            <param name="bShow">TRUE if the docking window object should show its window.
            FALSE if the docking window object should hide its window and return its border space by calling SetBorderSpaceDW with zero values.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand2.CloseDW(System.UInt32)">
            <summary>
            Notifies the docking window object that it is about to be removed from the frame.
            The docking window object should save any persistent information at this time.
            </summary>
            <param name="dwReserved">Reserved. This parameter should always be zero.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand2.ResizeBorderDW(SharpShell.Interop.RECT,System.IntPtr,System.Boolean)">
            <summary>
            Notifies the docking window object that the frame's border space has changed.
            In response to this method, the IDockingWindow implementation must call SetBorderSpaceDW, even if no border space is required or a change is not necessary.
            </summary>
            <param name="rcBorder">Pointer to a RECT structure that contains the frame's available border space.</param>
            <param name="punkToolbarSite">Pointer to the site's IUnknown interface. The docking window object should call the QueryInterface method for this interface, requesting IID_IDockingWindowSite.
            The docking window object then uses that interface to negotiate its border space. It is the docking window object's responsibility to release this interface when it is no longer needed.</param>
            <param name="fReserved">Reserved. This parameter should always be zero.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand2.GetBandInfo(System.UInt32,SharpShell.Interop.DESKBANDINFO.DBIF,SharpShell.Interop.DESKBANDINFO@)">
            <summary>
            Gets state information for a band object.
            </summary>
            <param name="dwBandID">The identifier of the band, assigned by the container. The band object can retain this value if it is required.</param>
            <param name="dwViewMode">The view mode of the band object. One of the following values: DBIF_VIEWMODE_NORMAL, DBIF_VIEWMODE_VERTICAL, DBIF_VIEWMODE_FLOATING, DBIF_VIEWMODE_TRANSPARENT.</param>
            <param name="pdbi">The pdbi.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand2.CanRenderComposited(System.Boolean@)">
            <summary>
            Indicates the deskband's ability to be displayed as translucent.
            </summary>
            <param name="pfCanRenderComposited">When this method returns, contains a BOOL indicating ability.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand2.SetCompositionState(System.Boolean)">
            <summary>
            Sets the composition state.
            </summary>
            <param name="fCompositionEnabled">TRUE to enable the composition state; otherwise, FALSE.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IDeskBand2.GetCompositionState(System.Boolean@)">
            <summary>
            Gets the composition state.
            </summary>
            <param name="pfCompositionEnabled">When this method returns, contains a BOOL that indicates state.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.IExtractIconA">
            <summary>
            Exposes methods that allow a client to retrieve the icon that is associated with one of the objects in a folder.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IExtractIconA.GetIconLocation(SharpShell.Interop.GILInFlags,System.Text.StringBuilder,System.Int32,System.Int32@,SharpShell.Interop.GILOutFlags@)">
            <summary>
            Gets the location and index of an icon.
            </summary>
            <param name="uFlags">One or more of the following values. This parameter can also be NULL.</param>
            <param name="szIconFile">A pointer to a buffer that receives the icon location. The icon location is a null-terminated string that identifies the file that contains the icon.</param>
            <param name="cchMax">The size of the buffer, in characters, pointed to by pszIconFile.</param>
            <param name="piIndex">A pointer to an int that receives the index of the icon in the file pointed to by pszIconFile.</param>
            <param name="pwFlags">A pointer to a UINT value that receives zero or a combination of the following value</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.Interop.IExtractIconA.Extract(System.String,System.UInt32,System.IntPtr@,System.IntPtr@,System.UInt32)">
            <summary>
            Extracts an icon image from the specified location.
            </summary>
            <param name="pszFile">A pointer to a null-terminated string that specifies the icon location.</param>
            <param name="nIconIndex">The index of the icon in the file pointed to by pszFile.</param>
            <param name="phiconLarge">A pointer to an HICON value that receives the handle to the large icon. This parameter may be NULL.</param>
            <param name="phiconSmall">A pointer to an HICON value that receives the handle to the small icon. This parameter may be NULL.</param>
            <param name="nIconSize">The desired size of the icon, in pixels. The low word contains the size of the large icon, and the high word contains the size of the small icon. The size specified can be the width or height. The width of an icon always equals its height.</param>
            <returns>
            Returns S_OK if the function extracted the icon, or S_FALSE if the calling application should extract the icon.
            </returns>
        </member>
        <member name="T:SharpShell.Interop.IExtractIconW">
            <summary>
            Exposes methods that allow a client to retrieve the icon that is associated with one of the objects in a folder.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IExtractIconW.GetIconLocation(SharpShell.Interop.GILInFlags,System.Text.StringBuilder,System.Int32,System.Int32@,SharpShell.Interop.GILOutFlags@)">
            <summary>
            Gets the location and index of an icon.
            </summary>
            <param name="uFlags">One or more of the following values. This parameter can also be NULL.</param>
            <param name="szIconFile">A pointer to a buffer that receives the icon location. The icon location is a null-terminated string that identifies the file that contains the icon.</param>
            <param name="cchMax">The size of the buffer, in characters, pointed to by pszIconFile.</param>
            <param name="piIndex">A pointer to an int that receives the index of the icon in the file pointed to by pszIconFile.</param>
            <param name="pwFlags">A pointer to a UINT value that receives zero or a combination of the following value</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.Interop.IExtractIconW.Extract(System.String,System.UInt32,System.IntPtr@,System.IntPtr@,System.UInt32)">
            <summary>
            Extracts an icon image from the specified location.
            </summary>
            <param name="pszFile">A pointer to a null-terminated string that specifies the icon location.</param>
            <param name="nIconIndex">The index of the icon in the file pointed to by pszFile.</param>
            <param name="phiconLarge">A pointer to an HICON value that receives the handle to the large icon. This parameter may be NULL.</param>
            <param name="phiconSmall">A pointer to an HICON value that receives the handle to the small icon. This parameter may be NULL.</param>
            <param name="nIconSize">The desired size of the icon, in pixels. The low word contains the size of the large icon, and the high word contains the size of the small icon. The size specified can be the width or height. The width of an icon always equals its height.</param>
            <returns>
            Returns S_OK if the function extracted the icon, or S_FALSE if the calling application should extract the icon.
            </returns>
        </member>
        <member name="T:SharpShell.Interop.IInputObject">
            <summary>
            Exposes methods that change UI activation and process accelerators for a user input object contained in the Shell.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IInputObject.UIActivateIO(System.Boolean,SharpShell.Interop.MSG@)">
            <summary>
            UI-activates or deactivates the object.
            </summary>
            <param name="fActivate">Indicates if the object is being activated or deactivated. If this value is nonzero, the object is being activated. If this value is zero, the object is being deactivated.</param>
            <param name="msg">A pointer to an MSG structure that contains the message that caused the activation change. This value may be NULL.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IInputObject.HasFocusIO">
            <summary>
            Determines if one of the object's windows has the keyboard focus.
            </summary>
            <returns>Returns S_OK if one of the object's windows has the keyboard focus, or S_FALSE otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IInputObject.TranslateAcceleratorIO(SharpShell.Interop.MSG@)">
            <summary>
            Enables the object to process keyboard accelerators.
            </summary>
            <param name="msg">The address of an MSG structure that contains the keyboard message that is being translated.</param>
            <returns>Returns S_OK if the accelerator was translated, or S_FALSE otherwise.</returns>
        </member>
        <member name="T:SharpShell.Interop.IInputObjectSite">
            <summary>
            Informs the browser that the focus has changed.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IInputObjectSite.OnFocusChangeIS(System.Object,System.Boolean)">
            <summary>
            Informs the browser that the focus has changed.
            </summary>
            <param name="punkObj">The address of the IUnknown interface of the object gaining or losing the focus.</param>
            <param name="fSetFocus">Indicates if the object has gained or lost the focus. If this value is nonzero, the object has gained the focus. If this value is zero, the object has lost the focus.</param>
            <returns></returns>
        </member>
        <member name="T:SharpShell.Interop.IFolderView">
            <summary>
            Exposes methods that retrieve information about a folder's display options, select specified items in that folder, and set the folder's view mode.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.GetCurrentViewMode(System.UInt32@)">
            <summary>
            Gets an address containing a value representing the folder's current view mode.
            </summary>
            <param name="pViewMode">A pointer to a memory location at which to store the folder's current view mode.</param>
            TODO: Use FOLDERVIEWMODE
        </member>
        <member name="M:SharpShell.Interop.IFolderView.SetCurrentViewMode(System.UInt32)">
            <summary>
            Sets the selected folder's view mode.
            </summary>
            <param name="ViewMode">One of the following values from the FOLDERVIEWMODE enumeration.</param>
            TODO: Use FOLDERVIEWMODE
        </member>
        <member name="M:SharpShell.Interop.IFolderView.GetFolder(System.Guid@,System.IntPtr@)">
            <summary>
            Gets the folder object.
            </summary>
            <param name="riid">Reference to the desired IID to represent the folder.</param>
            <param name="ppv">When this method returns, contains the interface pointer requested in riid. This is typically IShellFolder or a related interface. This can also be an IShellItemArray with a single element.</param>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.Item(System.Int32,System.IntPtr@)">
            <summary>
            Gets the identifier of a specific item in the folder view, by index.
            </summary>
            <param name="iItemIndex">The index of the item in the view.</param>
            <param name="ppidl">The address of a pointer to a PIDL containing the item's identifier information.</param>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.ItemCount(System.UInt32,System.Int32@)">
            <summary>
            Gets the number of items in the folder. This can be the number of all items, or a subset such as the number of selected items.
            </summary>
            <param name="uFlags">Flags from the _SVGIO enumeration that limit the count to certain types of items.</param>
            <param name="pcItems">Pointer to an integer that receives the number of items (files and folders) displayed in the folder view.</param>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.Items(System.UInt32,System.Guid@,System.IntPtr@)">
            <summary>
            Gets the address of an enumeration object based on the collection of items in the folder view.
            </summary>
            <param name="uFlags">_SVGIO values that limit the enumeration to certain types of items.</param>
            <param name="riid">Reference to the desired IID to represent the folder.</param>
            <param name="ppv">When this method returns, contains the interface pointer requested in riid. This is typically an IEnumIDList, IDataObject, or IShellItemArray. If an error occurs, this value is NULL.</param>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.GetSelectionMarkedItem(System.Int32@)">
            <summary>
            Gets the index of an item in the folder's view which has been marked by using the SVSI_SELECTIONMARK in IFolderView::SelectItem.
            </summary>
            <param name="piItem">A pointer to the index of the marked item.</param>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.GetFocusedItem(System.Int32@)">
            <summary>
            Gets the index of the item that currently has focus in the folder's view.
            </summary>
            <param name="piItem">A pointer to the index of the item.</param>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.GetItemPosition(System.IntPtr,SharpShell.Interop.POINT@)">
            <summary>
            Gets the position of an item in the folder's view.
            </summary>
            <param name="pidl">A pointer to an ITEMIDLIST interface.</param>
            <param name="ppt">A pointer to a structure that receives the position of the item's upper-left corner.</param>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.GetSpacing(SharpShell.Interop.POINT@)">
            <summary>
            Gets a POINT structure containing the width (x) and height (y) dimensions, including the surrounding white space, of an item.
            </summary>
            <param name="ppt">A pointer to an existing structure to be filled with the current sizing dimensions of the items in the folder's view.</param>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.GetDefaultSpacing(SharpShell.Interop.POINT@)">
            <summary>
            Gets a pointer to a POINT structure containing the default width (x) and height (y) measurements of an item, including the surrounding white space.
            </summary>
            <param name="ppt">Pointer to an existing structure to be filled with the default sizing dimensions of the items in the folder's view.</param>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.GetAutoArrange">
            <summary>
            Gets the current state of the folder's Auto Arrange mode.
            </summary>
            <returns>Returns S_OK if the folder is in Auto Arrange mode; S_FALSE if it is not.</returns>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.SelectItem(System.Int32,System.UInt32)">
            <summary>
            Selects an item in the folder's view.
            </summary>
            <param name="iItem">The index of the item to select in the folder's view.</param>
            <param name="dwFlags">One of the _SVSIF constants that specify the type of selection to apply.</param>
        </member>
        <member name="M:SharpShell.Interop.IFolderView.SelectAndPositionItems(System.UInt32,System.IntPtr[],SharpShell.Interop.POINT@,System.UInt32)">
            <summary>
            Allows the selection and positioning of items visible in the folder's view.
            </summary>
            <param name="cidl">The number of items to select.</param>
            <param name="apidl">A pointer to an array of size cidl that contains the PIDLs of the items.</param>
            <param name="apt">A pointer to an array of cidl structures containing the locations each corresponding element in apidl should be positioned.</param>
            <param name="dwFlags">One of the _SVSIF constants that specifies the type of selection to apply.</param>
        </member>
        <member name="T:SharpShell.Interop.IPersistIDList">
            <summary>
            Exposes methods that are used to persist item identifier lists.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IPersistIDList.GetClassID(System.Guid@)">
            <summary>
            Retrieves the class identifier (CLSID) of the object.
            </summary>
            <param name="pClassID">A pointer to the location that receives the CLSID on return.
            The CLSID is a globally unique identifier (GUID) that uniquely represents an object class that defines the code that can manipulate the object's data.</param>
            <returns>
            If the method succeeds, the return value is S_OK. Otherwise, it is E_FAIL.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IPersistIDList.SetIDList(System.IntPtr)">
            <summary>
            Sets a persisted item identifier list.
            </summary>
            <param name="pidl">A pointer to the item identifier list to set.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPersistIDList.GetIDList(System.IntPtr@)">
            <summary>
            Gets an item identifier list.
            </summary>
            <param name="pidl">The address of a pointer to the item identifier list to get.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.IPersistStream">
            <summary>
            Enables the saving and loading of objects that use a simple serial stream for their storage needs.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IPersistStream.GetClassID(System.Guid@)">
            <summary>
            Retrieves the class identifier (CLSID) of the object.
            </summary>
            <param name="pClassID">A pointer to the location that receives the CLSID on return.
            The CLSID is a globally unique identifier (GUID) that uniquely represents an object class that defines the code that can manipulate the object's data.</param>
            <returns>
            If the method succeeds, the return value is S_OK. Otherwise, it is E_FAIL.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IPersistStream.IsDirty">
            <summary>
            Determines whether this instance is dirty.
            </summary>
            <returns></returns>
        </member>
        <member name="M:SharpShell.Interop.IPersistStream.Load(System.Object)">
            <summary>
            Initializes an object from the stream where it was saved previously.
            </summary>
            <param name="pStm">An IStream pointer to the stream from which the object should be loaded.</param>
            <returns>This method can return the following values. S_OK, E_OUTOFMEMORY, E_FAIL.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPersistStream.Save(System.IntPtr,System.Boolean)">
            <summary>
            Saves an object to the specified stream.
            </summary>
            <param name="pStm">An IStream pointer to the stream into which the object should be saved.</param>
            <param name="fClearDirty">Indicates whether to clear the dirty flag after the save is complete. If TRUE, the flag should be cleared. If FALSE, the flag should be left unchanged.</param>
            <returns>This method can return the following values. S_OK, STG_E_CANTSAVE, STG_E_MEDIUMFULL.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPersistStream.GetSizeMax(System.UInt64@)">
            <summary>
            Retrieves the size of the stream needed to save the object.
            </summary>
            <param name="pcbSize">The size in bytes of the stream needed to save this object, in bytes.</param>
            <returns>This method returns S_OK to indicate that the size was retrieved successfully.</returns>
        </member>
        <member name="T:SharpShell.Interop.LVCFMT">
            <summary>
            Specifies column format flags.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LVCFMT.LVCFMT_LEFT">
            <summary>
            Left aligned.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LVCFMT.LVCFMT_RIGHT">
            <summary>
            Right aligned.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LVCFMT.LVCFMT_CENTER">
            <summary>
            Centered
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LVCFMT.LVCFMT_COL_HAS_IMAGES">
            <summary>
            The column has an icon.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.MARGINS">
            <summary>
            Returned by the GetThemeMargins function to define the margins of windows that have visual styles applied.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MARGINS.cxLeftWidth">
            <summary>
            Width of left border that retains its size
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MARGINS.cxRightWidth">
            <summary>
            Width of right border that retains its size
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MARGINS.cyTopHeight">
            <summary>
            Height of top border that retains its size
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MARGINS.cyBottomHeight">
            <summary>
            Height of bottom border that retains its size
            </summary>
        </member>
        <member name="T:SharpShell.Interop.MEASUREITEMSTRUCT">
            <summary>
            Informs the system of the dimensions of an owner-drawn control or menu item. This allows the system to process user interaction with the control correctly.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MEASUREITEMSTRUCT.CtlType">
            <summary>
            The control type. This member can be one of the values shown in the following table.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MEASUREITEMSTRUCT.CtlID">
            <summary>
            The identifier of the combo box or list box. This member is not used for a menu.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MEASUREITEMSTRUCT.itemID">
            <summary>
            The identifier for a menu item or the position of a list box or combo box item. This value is specified for a list box only if it has the LBS_OWNERDRAWVARIABLE style; this value is specified for a combo box only if it has the CBS_OWNERDRAWVARIABLE style.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MEASUREITEMSTRUCT.itemWidth">
            <summary>
            The width, in pixels, of a menu item. Before returning from the message, the owner of the owner-drawn menu item must fill this member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MEASUREITEMSTRUCT.itemHeight">
            <summary>
            The height, in pixels, of an individual item in a list box or a menu. Before returning from the message, the owner of the owner-drawn combo box, list box, or menu item must fill out this member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MEASUREITEMSTRUCT.itemData">
            <summary>
            The application-defined value associated with the menu item. For a control, this member specifies the value last assigned to the list box or combo box by the LB_SETITEMDATA or CB_SETITEMDATA message. If the list box or combo box has the LB_HASSTRINGS or CB_HASSTRINGS style, this value is initially zero. Otherwise, this value is initially the value passed to the list box or combo box in the lParam parameter of one of the following messages:
            </summary>
        </member>
        <member name="T:SharpShell.Interop.PROPERTYKEY">
            <summary>
            Specifies the FMTID/PID identifier that programmatically identifies a property. Replaces <see cref="T:SharpShell.Interop.SHCOLUMNID"/>.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPERTYKEY.fmtid">
            <summary>
            A unique GUID for the property.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPERTYKEY.pid">
            <summary>
            A property identifier (PID). This parameter is not used as in SHCOLUMNID. It is recommended that you set this value to PID_FIRST_USABLE. Any value greater than or equal to 2 is acceptable.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.CSFV">
            <summary>
            Used with the SHCreateShellFolderViewEx function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CSFV.cbSize">
            <summary>
            The size of the CSFV structure, in bytes.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CSFV.pshf">
            <summary>
            A pointer to the IShellFolder object for which to create the view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CSFV.psvOuter">
            <summary>
            A pointer to the parent IShellView interface. This parameter can be NULL.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CSFV.pidl">
            <summary>
            Ignored.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CSFV.lEvents">
            <summary>
            
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CSFV.pfnCallback">
            <summary>
            A pointer to the LPFNVIEWCALLBACK function used by this folder view to handle callback messages. This parameter can be NULL.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CSFV.fvm">
            <summary>
            
            </summary>
        </member>
        <member name="T:SharpShell.Interop.CSIDL">
            <summary>
            CSIDL (constant special item ID list) values provide a unique system-independent way to identify special folders used frequently by applications, but which may not have the same name or location on any given system. For example, the system folder may be "C:\Windows" on one system and "C:\Winnt" on another. These constants are defined in Shlobj.h.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.EXTRASEARCH">
            <summary>
            Used by an IEnumExtraSearch enumerator object to return information on the search objects supported by a Shell Folder object.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.EXTRASEARCH.guidSearch">
            <summary>
            A search object's GUID.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.EXTRASEARCH.wszFriendlyName">
            <summary>
            A Unicode string containing the search object's friendly name. It will be used to identify the search engine on the Search Assistant menu.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.EXTRASEARCH.wszUrl">
            <summary>
            The URL that will be displayed in the search pane.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.FILE_ATTRIBUTE">
            <summary>
            File attributes are metadata values stored by the file system on disk and are used by the system and are available to developers via various file I/O APIs. For a list of related APIs and topics, see the See Also section.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_ARCHIVE">
            <summary>
            A file or directory that is an archive file or directory. Applications typically use this attribute to mark files for backup or removal.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_COMPRESSED">
            <summary>
            A file or directory that is compressed. For a file, all of the data in the file is compressed. For a directory, compression is the default for newly created files and subdirectories.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_DEVICE">
            <summary>
            This value is reserved for system use.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_DIRECTORY">
            <summary>
            The handle that identifies a directory.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_ENCRYPTED">
            <summary>
            A file or directory that is encrypted. For a file, all data streams in the file are encrypted. For a directory, encryption is the default for newly created files and subdirectories.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_HIDDEN">
            <summary>
            The file or directory is hidden. It is not included in an ordinary directory listing.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_INTEGRITY_STREAM">
            <summary>
            The directory or user data stream is configured with integrity (only supported on ReFS volumes). It is not included in an ordinary directory listing. The integrity setting persists with the file if it's renamed. If a file is copied the destination file will have integrity set if either the source file or destination directory have integrity set.
            Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP:  This flag is not supported until Windows Server 2012.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_NORMAL">
            <summary>
            A file that does not have other attributes set. This attribute is valid only when used alone.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED">
            <summary>
            The file or directory is not to be indexed by the content indexing service.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_NO_SCRUB_DATA">
            <summary>
            The user data stream not to be read by the background data integrity scanner (AKA scrubber). When set on a directory it only provides inheritance. This flag is only supported on Storage Spaces and ReFS volumes. It is not included in an ordinary directory listing.
            Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP:  This flag is not supported until Windows 8 and Windows Server 2012.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_OFFLINE">
            <summary>
            The data of a file is not available immediately. This attribute indicates that the file data is physically moved to offline storage. This attribute is used by Remote Storage, which is the hierarchical storage management software. Applications should not arbitrarily change this attribute.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_READONLY">
            <summary>
            A file that is read-only. Applications can read the file, but cannot write to it or delete it. This attribute is not honored on directories. For more information, see You cannot view or change the Read-only or the System attributes of folders in Windows Server 2003, in Windows XP, in Windows Vista or in Windows 7.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_REPARSE_POINT">
            <summary>
            A file or directory that has an associated reparse point, or a file that is a symbolic link.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_SPARSE_FILE">
            <summary>
            A file that is a sparse file.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_SYSTEM">
            <summary>
            A file or directory that the operating system uses a part of, or uses exclusively.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_TEMPORARY">
            <summary>
            A file that is being used for temporary storage. File systems avoid writing data back to mass storage if sufficient cache memory is available, because typically, an application deletes a temporary file after the handle is closed. In that scenario, the system can entirely avoid writing the data. Otherwise, the data is written after the handle is closed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FILE_ATTRIBUTE.FILE_ATTRIBUTE_VIRTUAL">
            <summary>
            This value is reserved for system use.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.FOLDERFLAGS">
            <summary>
            A set of flags that specify folder view options. The flags are independent of each other and can be used in any combination.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NONE">
            <summary>
            Windows 7 and later. No special view options.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_AUTOARRANGE">
            <summary>
            Automatically arrange the elements in the view. This implies LVS_AUTOARRANGE if the list-view control is used to implement the view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_ABBREVIATEDNAMES">
            <summary>
            Not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_SNAPTOGRID">
            <summary>
            Not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_OWNERDATA">
            <summary>
            Not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_BESTFITWINDOW">
            <summary>
            Not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_DESKTOP">
            <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>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_SINGLESEL">
            <summary>
            Do not allow more than a single item to be selected. This is used in the common dialog boxes.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOSUBFOLDERS">
            <summary>
            Do not show subfolders.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_TRANSPARENT">
            <summary>
            Draw transparently. This is used only for the desktop.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOCLIENTEDGE">
            <summary>
            Not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOSCROLL">
            <summary>
            Do not add scroll bars. This is used only for the desktop.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_ALIGNLEFT">
            <summary>
            The view should be left-aligned. This implies LVS_ALIGNLEFT if the list-view control is used to implement the view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOICONS">
            <summary>
            The view should not display icons.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_SHOWSELALWAYS">
            <summary>
            This flag is deprecated as of Windows XP and has no effect. Always show the selection.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOVISIBLE">
            <summary>
            Not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_SINGLECLICKACTIVATE">
            <summary>
            Not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOWEBVIEW">
            <summary>
            The view should not be shown as a web view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_HIDEFILENAMES">
            <summary>
            The view should not display file names.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_CHECKSELECT">
            <summary>
            Turns on the check mode for the view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOENUMREFRESH">
            <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>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOGROUPING">
            <summary>
            Windows Vista and later. Do not allow grouping in the view
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_FULLROWSELECT">
            <summary>
            Windows Vista and later. When an item is selected, the item and all its sub-items are highlighted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOFILTERS">
            <summary>
            Windows Vista and later. Do not display filters in the view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOCOLUMNHEADER">
            <summary>
            Windows Vista and later. Do not display a column header in the view in any view mode.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOHEADERINALLVIEWS">
            <summary>
            Windows Vista and later. Only show the column header in details view mode.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_EXTENDEDTILES">
            <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>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_TRICHECKSELECT">
            <summary>
            Windows Vista and later. Not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_AUTOCHECKSELECT">
            <summary>
            Windows Vista and later. Items can be selected using checkboxes.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_NOBROWSERVIEWSTATE">
            <summary>
            Windows Vista and later. The view should not save view state in the browser.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_SUBSETGROUPS">
            <summary>
            Windows Vista and later. The view should list the number of items displayed in each group. To be used with IFolderView2::SetGroupSubsetCount.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_USESEARCHFOLDER">
            <summary>
            Windows Vista and later. Use the search folder for stacking and searching.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERFLAGS.FWF_ALLOWRTLREADING">
            <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>
        </member>
        <member name="T:SharpShell.Interop.FOLDERSETTINGS">
            <summary>
            Contains folder view information.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERSETTINGS.ViewMode">
            <summary>
            Folder view mode. One of the FOLDERVIEWMODE values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERSETTINGS.fFlags">
            <summary>
            A set of flags that indicate the options for the folder. This can be zero or a combination of the FOLDERFLAGS values.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.FOLDERVIEWMODE">
            <summary>
            Specifies the folder view type.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERVIEWMODE.FVM_AUTO">
            <summary>
            The view should determine the best option.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERVIEWMODE.FVM_FIRST">
            <summary>
            The minimum constant value in FOLDERVIEWMODE, for validation purposes.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERVIEWMODE.FVM_ICON">
            <summary>
            The view should display medium-size icons.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERVIEWMODE.FVM_SMALLICON">
            <summary>
            The view should display small icons.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERVIEWMODE.FVM_LIST">
            <summary>
            Object names are displayed in a list view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERVIEWMODE.FVM_DETAILS">
            <summary>
            Object names and other selected information, such as the size or date last updated, are shown.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERVIEWMODE.FVM_THUMBNAIL">
            <summary>
            The view should display thumbnail icons.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERVIEWMODE.FVM_TILE">
            <summary>
            The view should display large icons.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERVIEWMODE.FVM_THUMBSTRIP">
            <summary>
            The view should display icons in a filmstrip format.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERVIEWMODE.FVM_CONTENT">
            <summary>
            Windows 7 and later. The view should display content mode.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FOLDERVIEWMODE.FVM_LAST">
            <summary>
            The maximum constant value in FOLDERVIEWMODE, for validation purposes.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.FontCharSet">
            <summary>
            Font charset values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.ANSI_CHARSET">
            <summary>
            The ANSI CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.DEFAULT_CHARSET">
            <summary>
            The DEFAULT CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.SYMBOL_CHARSET">
            <summary>
            The SYMBOL CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.SHIFTJIS_CHARSET">
            <summary>
            The SHIFTJIS_ CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.HANGEUL_CHARSET">
            <summary>
            The HANGEUL CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.HANGUL_CHARSET">
            <summary>
            The HANGUL CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.GB2312_CHARSET">
            <summary>
            The G B2312 CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.CHINESEBIG5_CHARSET">
            <summary>
            The CHINESEBIG5 CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.OEM_CHARSET">
            <summary>
            The OEM CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.JOHAB_CHARSET">
            <summary>
            The JOHAB_CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.HEBREW_CHARSET">
            <summary>
            The HEBREW_CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.ARABIC_CHARSET">
            <summary>
            The ARABIC_CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.GREEK_CHARSET">
            <summary>
            The GREEK_CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.TURKISH_CHARSET">
            <summary>
            The TURKISH_CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.VIETNAMESE_CHARSET">
            <summary>
            The VIETNAMESE_CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.THAI_CHARSET">
            <summary>
            The THAI_CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.EASTEUROPE_CHARSET">
            <summary>
            The EASTEUROPE_CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.RUSSIAN_CHARSET">
            <summary>
            The RUSSIAN_CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.MAC_CHARSET">
            <summary>
            The MAC_CHARSET
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontCharSet.BALTIC_CHARSET">
            <summary>
            The BALTIC_CHARSET
            </summary>
        </member>
        <member name="T:SharpShell.Interop.FontClipPrecision">
            <summary>
            The clipping precision. The clipping precision defines how to clip characters that are partially outside the clipping region. It can be one or more of the following values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontClipPrecision.CLIP_DEFAULT_PRECIS">
            <summary>
            Specifies default clipping behavior.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontClipPrecision.CLIP_CHARACTER_PRECIS">
            <summary>
            Not used.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontClipPrecision.CLIP_STROKE_PRECIS">
            <summary>
            Not used by the font mapper, but is returned when raster, vector, or TrueType fonts are enumerated.
            For compatibility, this value is always returned when enumerating fonts.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontClipPrecision.CLIP_MASK">
            <summary>
            Not used.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontClipPrecision.CLIP_LH_ANGLES">
            <summary>
            When this value is used, the rotation for all fonts depends on whether the orientation of the coordinate system is left-handed or right-handed.
            If not used, device fonts always rotate counterclockwise, but the rotation of other fonts is dependent on the orientation of the coordinate system.
            For more information about the orientation of coordinate systems, see the description of the nOrientation parameter
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontClipPrecision.CLIP_TT_ALWAYS">
            <summary>
            Not used.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontClipPrecision.CLIP_DFA_DISABLE">
            <summary>
            Windows XP SP1: Turns off font association for the font. Note that this flag is not guaranteed to have any effect on any platform after Windows Server 2003.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontClipPrecision.CLIP_EMBEDDED">
            <summary>
            You must specify this flag to use an embedded read-only font.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.FontPitchAndFamily">
            <summary>
            The pitch and family of the font. The two low-order bits specify the pitch of the font, the four high-order bits specify the font family.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPitchAndFamily.DEFAULT_PITCH">
            <summary>
            The default pitch.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPitchAndFamily.FIXED_PITCH">
            <summary>
            The fixed pitch.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPitchAndFamily.VARIABLE_PITCH">
            <summary>
            The variable pitch.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPitchAndFamily.FF_DONTCARE">
            <summary>
            Use default font.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPitchAndFamily.FF_ROMAN">
            <summary>
            Fonts with variable stroke width and with serifs. MS Serif is an example.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPitchAndFamily.FF_SWISS">
            <summary>
            Fonts with variable stroke width and without serifs. MS?Sans Serif is an example.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPitchAndFamily.FF_MODERN">
            <summary>
            Fonts with constant stroke width, with or without serifs. Pica, Elite, and Courier New are examples.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPitchAndFamily.FF_SCRIPT">
            <summary>
            Fonts designed to look like handwriting. Script and Cursive are examples.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPitchAndFamily.FF_DECORATIVE">
            <summary>
            Novelty fonts. Old English is an example.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.FontPrecision">
            <summary>
            The output precision. The output precision defines how closely the output must match the requested font's height, width, character orientation, escapement, pitch, and font type. It can be one of the following values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPrecision.OUT_DEFAULT_PRECIS">
            <summary>
            The default font mapper behavior.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPrecision.OUT_STRING_PRECIS">
            <summary>
            This value is not used by the font mapper, but it is returned when raster fonts are enumerated.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPrecision.OUT_CHARACTER_PRECIS">
            <summary>
            Not used.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPrecision.OUT_STROKE_PRECIS">
            <summary>
            This value is not used by the font mapper, but it is returned when TrueType, other outline-based fonts, and vector fonts are enumerated.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPrecision.OUT_TT_PRECIS">
            <summary>
            Instructs the font mapper to choose a TrueType font when the system contains multiple fonts with the same name.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPrecision.OUT_DEVICE_PRECIS">
            <summary>
            Instructs the font mapper to choose a Device font when the system contains multiple fonts with the same name.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPrecision.OUT_RASTER_PRECIS">
            <summary>
            Instructs the font mapper to choose a raster font when the system contains multiple fonts with the same name.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPrecision.OUT_TT_ONLY_PRECIS">
            <summary>
            Instructs the font mapper to choose from only TrueType fonts. If there are no TrueType fonts installed in the system, the font mapper returns to default behavior.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPrecision.OUT_OUTLINE_PRECIS">
            <summary>
            This value instructs the font mapper to choose from TrueType and other outline-based fonts.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPrecision.OUT_SCREEN_OUTLINE_PRECIS">
            <summary>
            A value that specifies a preference for TrueType and other outline fonts.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontPrecision.OUT_PS_ONLY_PRECIS">
            <summary>
            Instructs the font mapper to choose from only PostScript fonts. If there are no PostScript fonts installed in the system, the font mapper returns to default behavior.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.FontQuality">
            <summary>
            The output quality. The output quality defines how carefully GDI must attempt to match the logical-font attributes to those of an actual physical font. It can be one of the following values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontQuality.DEFAULT_QUALITY">
            <summary>
            Appearance of the font does not matter.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontQuality.DRAFT_QUALITY">
            <summary>
            Appearance of the font is less important than when the PROOF_QUALITY value is used. For GDI raster fonts, scaling is enabled, which means that more font sizes are available, but the quality may be lower. Bold, italic, underline, and strikeout fonts are synthesized, if necessary.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontQuality.PROOF_QUALITY">
            <summary>
            Character quality of the font is more important than exact matching of the logical-font attributes. For GDI raster fonts, scaling is disabled and the font closest in size is chosen. Although the chosen font size may not be mapped exactly when PROOF_QUALITY is used, the quality of the font is high and there is no distortion of appearance. Bold, italic, underline, and strikeout fonts are synthesized, if necessary.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontQuality.NONANTIALIASED_QUALITY">
            <summary>
            Font is never antialiased, that is, font smoothing is not done.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontQuality.ANTIALIASED_QUALITY">
            <summary>
            Font is antialiased, or smoothed, if the font supports it and the size of the font is not too small or too large.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontQuality.CLEARTYPE_QUALITY">
            <summary>
            If set, text is rendered (when possible) using ClearType antialiasing method. See Remarks for more information.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontQuality.CLEARTYPE_NATURAL_QUALITY">
            <summary>
            The cleartype natural quality value.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.FontWeight">
            <summary>
            The Font Weight values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontWeight.FW_DONTCARE">
            <summary>
            The FW_DONTCARE
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontWeight.FW_THIN">
            <summary>
            The FW_THIN
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontWeight.FW_EXTRALIGHT">
            <summary>
            The FW_EXTRALIGHT
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontWeight.FW_LIGHT">
            <summary>
            The FW_LIGHT
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontWeight.FW_NORMAL">
            <summary>
            The FW_NORMAL
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontWeight.FW_MEDIUM">
            <summary>
            The FW_MEDIUM
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontWeight.FW_SEMIBOLD">
            <summary>
            The FW_SEMIBOLD
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontWeight.FW_BOLD">
            <summary>
            The FW_BOLD
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontWeight.FW_EXTRABOLD">
            <summary>
            The FW_EXTRABOLD
            </summary>
        </member>
        <member name="F:SharpShell.Interop.FontWeight.FW_HEAVY">
            <summary>
            The FW_HEAVY
            </summary>
        </member>
        <member name="T:SharpShell.Interop.IContextMenu2">
            <summary>
            Exposes methods that either create or merge a shortcut (context) menu associated with a Shell object. Extends IContextMenu by adding a method that allows client objects to handle messages associated with owner-drawn menu items.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu2.QueryContextMenu(System.IntPtr,System.UInt32,System.Int32,System.Int32,SharpShell.Interop.CMF)">
            <summary>
            Adds commands to a shortcut menu.
            </summary>
            <param name="hMenu">A handle to the shortcut menu. The handler should specify this handle when adding menu items.</param>
            <param name="indexMenu">The zero-based position at which to insert the first new menu item.</param>
            <param name="idCmdFirst">The minimum value that the handler can specify for a menu item identifier.</param>
            <param name="idCmdLast">The maximum value that the handler can specify for a menu item identifier.</param>
            <param name="uFlags">Optional flags that specify how the shortcut menu can be changed. This parameter can be set to a combination of the following values. The remaining bits of the low-order word are reserved by the system. The high-order word can be used for context-specific communications. The CMF_RESERVED value can be used to mask the low-order word.</param>
            <returns>
            If successful, returns an HRESULT value that has its severity value set to SEVERITY_SUCCESS and its code value set to the offset of the largest command identifier that was assigned, plus one. For example, if idCmdFirst is set to 5 and you add three items to the menu with command identifiers of 5, 7, and 8, the return value should be MAKE_HRESULT(SEVERITY_SUCCESS, 0, 8 - 5 + 1). Otherwise, it returns a COM error value.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu2.InvokeCommand(System.IntPtr)">
            <summary>
            Carries out the command associated with a shortcut menu item.
            </summary>
            <param name="pici">A pointer to a CMINVOKECOMMANDINFO or CMINVOKECOMMANDINFOEX structure containing information about the command. For further details, see the Remarks section.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu2.GetCommandString(System.Int32,SharpShell.Interop.GCS,System.Int32,System.Text.StringBuilder,System.Int32)">
            <summary>
            Gets information about a shortcut menu command, including the help string and the language-independent, or canonical, name for the command.
            </summary>
            <param name="idcmd">Menu command identifier offset.</param>
            <param name="uflags">Flags specifying the information to return. This parameter can have one of the following values.</param>
            <param name="reserved">Reserved. Applications must specify NULL when calling this method and handlers must ignore this parameter when called.</param>
            <param name="commandstring">The address of the buffer to receive the null-terminated string being retrieved.</param>
            <param name="cch">Size of the buffer, in characters, to receive the null-terminated string.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu2.HandleMenuMsg(System.UInt32,System.IntPtr,System.IntPtr)">
            <summary>
            Enables client objects of the IContextMenu interface to handle messages associated with owner-drawn menu items.
            </summary>
            <param name="uMsg">The message to be processed. In the case of some messages, such as WM_INITMENUPOPUP, WM_DRAWITEM, WM_MENUCHAR, or WM_MEASUREITEM, the client object being called may provide owner-drawn menu items.</param>
            <param name="wParam">Additional message information. The value of this parameter depends on the value of the uMsg parameter.</param>
            <param name="lParam">Additional message information. The value of this parameter depends on the value of the uMsg parameter.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.IContextMenu3">
            <summary>
            Exposes methods that either create or merge a shortcut menu associated with a Shell object. Allows client objects to handle messages associated with owner-drawn menu items and extends IContextMenu2 by accepting a return value from that message handling.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu3.QueryContextMenu(System.IntPtr,System.UInt32,System.Int32,System.Int32,SharpShell.Interop.CMF)">
            <summary>
            Adds commands to a shortcut menu.
            </summary>
            <param name="hMenu">A handle to the shortcut menu. The handler should specify this handle when adding menu items.</param>
            <param name="indexMenu">The zero-based position at which to insert the first new menu item.</param>
            <param name="idCmdFirst">The minimum value that the handler can specify for a menu item identifier.</param>
            <param name="idCmdLast">The maximum value that the handler can specify for a menu item identifier.</param>
            <param name="uFlags">Optional flags that specify how the shortcut menu can be changed. This parameter can be set to a combination of the following values. The remaining bits of the low-order word are reserved by the system. The high-order word can be used for context-specific communications. The CMF_RESERVED value can be used to mask the low-order word.</param>
            <returns>
            If successful, returns an HRESULT value that has its severity value set to SEVERITY_SUCCESS and its code value set to the offset of the largest command identifier that was assigned, plus one. For example, if idCmdFirst is set to 5 and you add three items to the menu with command identifiers of 5, 7, and 8, the return value should be MAKE_HRESULT(SEVERITY_SUCCESS, 0, 8 - 5 + 1). Otherwise, it returns a COM error value.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu3.InvokeCommand(System.IntPtr)">
            <summary>
            Carries out the command associated with a shortcut menu item.
            </summary>
            <param name="pici">A pointer to a CMINVOKECOMMANDINFO or CMINVOKECOMMANDINFOEX structure containing information about the command. For further details, see the Remarks section.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu3.GetCommandString(System.Int32,SharpShell.Interop.GCS,System.Int32,System.Text.StringBuilder,System.Int32)">
            <summary>
            Gets information about a shortcut menu command, including the help string and the language-independent, or canonical, name for the command.
            </summary>
            <param name="idcmd">Menu command identifier offset.</param>
            <param name="uflags">Flags specifying the information to return. This parameter can have one of the following values.</param>
            <param name="reserved">Reserved. Applications must specify NULL when calling this method and handlers must ignore this parameter when called.</param>
            <param name="commandstring">The address of the buffer to receive the null-terminated string being retrieved.</param>
            <param name="cch">Size of the buffer, in characters, to receive the null-terminated string.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu3.HandleMenuMsg(System.UInt32,System.IntPtr,System.IntPtr)">
            <summary>
            Enables client objects of the IContextMenu interface to handle messages associated with owner-drawn menu items.
            </summary>
            <param name="uMsg">The message to be processed. In the case of some messages, such as WM_INITMENUPOPUP, WM_DRAWITEM, WM_MENUCHAR, or WM_MEASUREITEM, the client object being called may provide owner-drawn menu items.</param>
            <param name="wParam">Additional message information. The value of this parameter depends on the value of the uMsg parameter.</param>
            <param name="lParam">Additional message information. The value of this parameter depends on the value of the uMsg parameter.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu3.HandleMenuMsg2(System.UInt32,System.IntPtr,System.IntPtr,System.IntPtr@)">
            <summary>
            Allows client objects of the IContextMenu3 interface to handle messages associated with owner-drawn menu items.
            </summary>
            <param name="uMsg">The message to be processed. In the case of some messages, such as WM_INITMENUPOPUP, WM_DRAWITEM, WM_MENUCHAR, or WM_MEASUREITEM, the client object being called may provide owner-drawn menu items.</param>
            <param name="wParam">Additional message information. The value of this parameter depends on the value of the uMsg parameter.</param>
            <param name="lParam">Additional message information. The value of this parameter depends on the value of the uMsg parameter.</param>
            <param name="plResult">The address of an LRESULT value that the owner of the menu will return from the message. This parameter can be NULL.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.IDockingWindow">
            <summary>
            Exposes methods that notify the docking window object of changes, including showing, hiding, and impending removal. 
            This interface is implemented by window objects that can be docked within the border space of a Windows Explorer window.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IDockingWindow.ShowDW(System.Boolean)">
            <summary>
            Instructs the docking window object to show or hide itself.
            </summary>
            <param name="bShow">TRUE if the docking window object should show its window. 
            FALSE if the docking window object should hide its window and return its border space by calling SetBorderSpaceDW with zero values.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IDockingWindow.CloseDW(System.UInt32)">
            <summary>
            Notifies the docking window object that it is about to be removed from the frame. 
            The docking window object should save any persistent information at this time.
            </summary>
            <param name="dwReserved">Reserved. This parameter should always be zero.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IDockingWindow.ResizeBorderDW(SharpShell.Interop.RECT,System.IntPtr,System.Boolean)">
            <summary>
            Notifies the docking window object that the frame's border space has changed. 
            In response to this method, the IDockingWindow implementation must call SetBorderSpaceDW, even if no border space is required or a change is not necessary.
            </summary>
            <param name="rcBorder">Pointer to a RECT structure that contains the frame's available border space.</param>
            <param name="punkToolbarSite">Pointer to the site's IUnknown interface. The docking window object should call the QueryInterface method for this interface, requesting IID_IDockingWindowSite.
            The docking window object then uses that interface to negotiate its border space. It is the docking window object's responsibility to release this interface when it is no longer needed.</param>
            <param name="fReserved">Reserved. This parameter should always be zero.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.IDropTarget">
            <summary>
            The IDropTarget interface is one of the interfaces you implement to provide drag-and-drop operations in your application. It contains methods used in any application that can be a target for data during a drag-and-drop operation. 
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IDropTarget.DragEnter(System.Runtime.InteropServices.ComTypes.IDataObject,System.UInt32,SharpShell.Interop.POINT,System.UInt32@)">
            <summary>
            Indicates whether a drop can be accepted, and, if so, the effect of the drop.
            </summary>
            <param name="pDataObj">A pointer to the IDataObject interface on the data object. This data object contains the data being transferred in the drag-and-drop operation. If the drop occurs, this data object will be incorporated into the target.</param>
            <param name="grfKeyState">The current state of the keyboard modifier keys on the keyboard. Possible values can be a combination of any of the flags MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON, and MK_RBUTTON.</param>
            <param name="pt">A POINTL structure containing the current cursor coordinates in screen coordinates.</param>
            <param name="pdwEffect">On input, pointer to the value of the pdwEffect parameter of the DoDragDrop function. On return, must contain one of the DROPEFFECT flags, which indicates what the result of the drop operation would be.</param>
            <returns>This method returns S_OK on success.</returns>
        </member>
        <member name="M:SharpShell.Interop.IDropTarget.DragOver(System.UInt32,SharpShell.Interop.POINT,System.UInt32@)">
            <summary>
            Provides target feedback to the user and communicates the drop's effect to the DoDragDrop function so it can communicate the effect of the drop back to the source.
            </summary>
            <param name="grfKeyState">The current state of the keyboard modifier keys on the keyboard. Valid values can be a combination of any of the flags MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON, and MK_RBUTTON.</param>
            <param name="pt">A POINTL structure containing the current cursor coordinates in screen coordinates.</param>
            <param name="pdwEffect">On input, pointer to the value of the pdwEffect parameter of the DoDragDrop function. On return, must contain one of the DROPEFFECT flags, which indicates what the result of the drop operation would be.</param>
            <returns>This method returns S_OK on success. </returns>
        </member>
        <member name="M:SharpShell.Interop.IDropTarget.DragLeave">
            <summary>
            Removes target feedback and releases the data object.
            </summary>
            <returns>This method returns S_OK on success.</returns>
        </member>
        <member name="M:SharpShell.Interop.IDropTarget.Drop(System.Runtime.InteropServices.ComTypes.IDataObject,System.UInt32,SharpShell.Interop.POINT,System.UInt32@)">
            <summary>
            Incorporates the source data into the target window, removes target feedback, and releases the data object.
            </summary>
            <param name="pDataObj">A pointer to the IDataObject interface on the data object being transferred in the drag-and-drop operation.</param>
            <param name="grfKeyState">The current state of the keyboard modifier keys on the keyboard. Possible values can be a combination of any of the flags MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON, and MK_RBUTTON.</param>
            <param name="pt">A POINTL structure containing the current cursor coordinates in screen coordinates.</param>
            <param name="pdwEffect">On input, pointer to the value of the pdwEffect parameter of the DoDragDrop function. On return, must contain one of the DROPEFFECT flags, which indicates what the result of the drop operation would be.</param>
            <returns>This method returns S_OK on success.</returns>
        </member>
        <member name="T:SharpShell.Interop.IEnumExtraSearch">
            <summary>
            A standard OLE enumerator used by a client to determine the available search objects for a folder.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IEnumExtraSearch.Next(System.UInt32,SharpShell.Interop.EXTRASEARCH[],System.UInt32@)">
            <summary>
            Used to request information on one or more search objects.
            </summary>
            <param name="celt">The number of search objects to be enumerated, starting from the current object. If celt is too large, the method should stop and return the actual number of search objects in pceltFetched.</param>
            <param name="rgelt">A pointer to an array of pceltFetched EXTRASEARCH structures containing information on the enumerated objects.</param>
            <param name="pceltFetched">The number of objects actually enumerated. This may be less than celt.</param>
            <returns>Returns S_OK if successful, or a COM-defined error code otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IEnumExtraSearch.Skip(System.UInt32)">
            <summary>
            Skip a specified number of objects.
            </summary>
            <param name="celt">The number of objects to skip.</param>
            <returns>Returns S_OK if successful, or a COM-defined error code otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IEnumExtraSearch.Reset">
            <summary>
            Used to reset the enumeration index to zero.
            </summary>
            <returns>Returns S_OK if successful, or a COM-defined error code otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IEnumExtraSearch.Clone(SharpShell.Interop.IEnumExtraSearch@)">
            <summary>
            Used to request a duplicate of the enumerator object to preserve its current state.
            </summary>
            <param name="ppenum">A pointer to the IEnumExtraSearch interface of a new enumerator object.</param>
            <returns>Returns S_OK if successful, or a COM-defined error code otherwise.</returns>
        </member>
        <member name="T:SharpShell.Interop.IEnumIDList">
            <summary>
            Exposes a standard set of methods used to enumerate the pointers to item identifier lists (PIDLs) of the items in a Shell folder.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IEnumIDList.Next(System.UInt32,System.IntPtr,System.UInt32@)">
            <summary>
            Retrieves the specified number of item identifiers in the 
            enumeration sequence and advances the current position by 
            the number of items retrieved.
            </summary>
            <param name="celt">Number of elements in the array pointed to by the rgelt parameter.</param>
            <param name="rgelt">
            Address of an array of ITEMIDLIST pointers that receives the item identifiers. The implementation must allocate these item identifiers
            using the Shell's allocator (retrieved by the SHGetMalloc function). The calling application is responsible for freeing the item 
            identifiers using the Shell's allocator.
            </param>
            <param name="pceltFetched">
            Address of a value that receives a count of the item identifiers actually returned in rgelt. The count can be smaller than the value
            specified in the celt parameter. This parameter can be NULL only if celt is one.
            </param>
        </member>
        <member name="M:SharpShell.Interop.IEnumIDList.Skip(System.UInt32)">
            <summary>
            Skips over the specified number of elements in the enumeration sequence. 
            </summary>
            <param name="celt">Number of item identifiers to skip.</param>
        </member>
        <member name="M:SharpShell.Interop.IEnumIDList.Reset">
            <summary>
            Returns to the beginning of the enumeration sequence. 
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IEnumIDList.Clone(SharpShell.Interop.IEnumIDList@)">
            <summary>
            Creates a new item enumeration object with the same contents and state as the current one. 
            </summary>
            <param name="ppenum">
            Address of a pointer to the new enumeration object. The calling application must
            eventually free the new object by calling its Release member function. 
            </param>
        </member>
        <member name="T:SharpShell.Interop.IImageList">
            <summary>
            Exposes methods that manipulate and interact with image lists.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IImageList.Add(System.IntPtr,System.IntPtr,System.Int32@)">
            <summary>
            Adds an image or images to an image list.
            </summary>
            <param name="hbmImage">A handle to the bitmap that contains the image or images. The number of images is inferred from the width of the bitmap.</param>
            <param name="hbmMask">A handle to the bitmap that contains the mask. If no mask is used with the image list, this parameter is ignored.</param>
            <param name="pi">When this method returns, contains a pointer to the index of the first new image. If the method fails to successfully add the new image, this value is -1.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.ReplaceIcon(System.Int32,System.IntPtr,System.Int32@)">
            <summary>
            Replaces an image with an icon or cursor.
            </summary>
            <param name="i">A value of type int that contains the index of the image to replace. If i is -1, the function adds the image to the end of the list.</param>
            <param name="hicon">A handle to the icon or cursor that contains the bitmap and mask for the new image.</param>
            <param name="pi">A pointer to an int that will contain the index of the image on return if successful, or -1 otherwise.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.SetOverlayImage(System.Int32,System.Int32)">
            <summary>
            Adds a specified image to the list of images used as overlay masks. An image list can have up to four overlay masks in Common Controls version 4.70 and earlier, and up to 15 in version 4.71 or later. The method assigns an overlay mask index to the specified image.
            </summary>
            <param name="iImage">A value of type int that contains the zero-based index of an image in the image list. This index identifies the image to use as an overlay mask.</param>
            <param name="iOverlay">A value of type int that contains the one-based index of the overlay mask.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.Replace(System.Int32,System.IntPtr,System.IntPtr)">
            <summary>
            Replaces an image in an image list with a new image.
            </summary>
            <param name="i">A value of type int that contains the index of the image to replace.</param>
            <param name="hbmImage">A handle to the bitmap that contains the image.</param>
            <param name="hbmMask">A handle to the bitmap that contains the mask. If no mask is used with the image list, this parameter is ignored.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.AddMasked(System.IntPtr,System.Int32,System.Int32@)">
            <summary>
            Adds an image or images to an image list, generating a mask from the specified bitmap.
            </summary>
            <param name="hbmImage">A handle to the bitmap that contains one or more images. The number of images is inferred from the width of the bitmap.</param>
            <param name="crMask">The color used to generate the mask. Each pixel of this color in the specified bitmap is changed to black, and the corresponding bit in the mask is set to 1.</param>
            <param name="pi">A pointer to an int that contains the index of the first new image when it returns, if successful, or -1 otherwise.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.Draw(SharpShell.Interop.IMAGELISTDRAWPARAMS@)">
            <summary>
            Draws an image list item in the specified device context.
            </summary>
            <param name="pimldp">A pointer to an IMAGELISTDRAWPARAMS structure that contains the drawing parameters.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.Remove(System.Int32)">
            <summary>
            Removes an image from an image list.
            </summary>
            <param name="i">A value of type int that contains the index of the image to remove. If this parameter is -1, the method removes all images.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.GetIcon(System.Int32,System.Int32,System.IntPtr@)">
            <summary>
            Creates an icon from an image and a mask in an image list.
            </summary>
            <param name="i">A value of type int that contains the index of the image.</param>
            <param name="flags">A combination of flags that specify the drawing style. For a list of values, see IImageList::Draw.</param>
            <param name="picon">A pointer to an int that contains the handle to the icon if successful, or NULL if otherwise.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.GetImageInfo(System.Int32,SharpShell.Interop.IMAGEINFO@)">
            <summary>
            Gets information about an image.
            </summary>
            <param name="i">A value of type int that contains the index of the image.</param>
            <param name="pImageInfo">A pointer to an IMAGEINFO structure that receives information about the image. The information in this structure can directly manipulate the bitmaps of the image.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.Copy(System.Int32,SharpShell.Interop.IImageList,System.Int32,System.Int32)">
            <summary>
            Copies images from a given image list.
            </summary>
            <param name="iDst">A value of type int that contains the zero-based index of the destination image for the copy operation.</param>
            <param name="punkSrc">A pointer to the IUnknown interface for the source image list.</param>
            <param name="iSrc">A value of type int that contains the zero-based index of the source image for the copy operation.</param>
            <param name="uFlags">A value that specifies the type of copy operation to be made.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.Merge(System.Int32,SharpShell.Interop.IImageList,System.Int32,System.Int32,System.Int32,System.Guid@,System.IntPtr@)">
            <summary>
            Creates a new image by combining two existing images. This method also creates a new image list in which to store the image.
            </summary>
            <param name="i1">A value of type int that contains the index of the first existing image.</param>
            <param name="punk2">A pointer to the IUnknown interface of the image list that contains the second image.</param>
            <param name="i2">A value of type int that contains the index of the second existing image.</param>
            <param name="dx">A value of type int that contains the x-component of the offset of the second image relative to the first image.</param>
            <param name="dy">A value of type int that contains the y-component of the offset of the second image relative to the first image.</param>
            <param name="riid">An IID of the interface for the new image list.</param>
            <param name="ppv">A raw pointer to the interface for the new image list.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.Clone(System.Guid@,System.IntPtr@)">
            <summary>
            Clones an existing image list.
            </summary>
            <param name="riid">An IID for the new image list.</param>
            <param name="ppv">The address of a pointer to the interface for the new image list.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.GetImageRect(System.Int32,SharpShell.Interop.RECT@)">
            <summary>
            Gets an image's bounding rectangle.
            </summary>
            <param name="i">A value of type int that contains the index of the image.</param>
            <param name="prc">A pointer to a RECT that contains the bounding rectangle when the method returns.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.GetIconSize(System.Int32@,System.Int32@)">
            <summary>
            Gets the dimensions of images in an image list. All images in an image list have the same dimensions.
            </summary>
            <param name="cx">A pointer to an int that receives the width, in pixels, of each image.</param>
            <param name="cy">A pointer to an int that receives the height, in pixels, of each image.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.SetIconSize(System.Int32,System.Int32)">
            <summary>
            Sets the dimensions of images in an image list and removes all images from the list.
            </summary>
            <param name="cx">A value of type int that contains the width, in pixels, of the images in the image list. All images in an image list have the same dimensions.</param>
            <param name="cy">A value of type int that contains the height, in pixels, of the images in the image list. All images in an image list have the same dimensions.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.GetImageCount(System.Int32@)">
            <summary>
            Gets the number of images in an image list.
            </summary>
            <param name="pi">A pointer to an int that contains the number of images when the method returns.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.SetImageCount(System.Int32)">
            <summary>
            Resizes an existing image list.
            </summary>
            <param name="uNewCount">A value that specifies the new size of the image list.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.SetBkColor(System.Int32,System.Int32@)">
            <summary>
            Sets the background color for an image list. This method only functions if you add an icon to the image list or use the IImageList::AddMasked method to add a black and white bitmap. Without a mask, the entire image draws, and the background color is not visible.
            </summary>
            <param name="clrBk">The background color to set. If this parameter is set to CLR_NONE, then images draw transparently using the mask.</param>
            <param name="pclr">A pointer to a COLORREF that contains the previous background color on return if successful, or CLR_NONE otherwise.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.GetBkColor(System.Int32@)">
            <summary>
            Gets the current background color for an image list.
            </summary>
            <param name="pclr">A pointer to a COLORREF that contains the background color when the method returns.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.BeginDrag(System.Int32,System.Int32,System.Int32)">
            <summary>
            Begins dragging an image.
            </summary>
            <param name="iTrack">A value of type int that contains the index of the image to drag.</param>
            <param name="dxHotspot">A value of type int that contains the x-component of the drag position relative to the upper-left corner of the image.</param>
            <param name="dyHotspot">A value of type int that contains the y-component of the drag position relative to the upper-left corner of the image.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.EndDrag">
            <summary>
            Ends a drag operation.
            </summary>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.DragEnter(System.IntPtr,System.Int32,System.Int32)">
            <summary>
            Locks updates to the specified window during a drag operation and displays the drag image at the specified position within the window.
            </summary>
            <param name="hwndLock">A handle to the window that owns the drag image.</param>
            <param name="x">The x-coordinate at which to display the drag image. The coordinate is relative to the upper-left corner of the window, not the client area.</param>
            <param name="y">The y-coordinate at which to display the drag image. The coordinate is relative to the upper-left corner of the window, not the client area.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.DragLeave(System.IntPtr)">
            <summary>
            Unlocks the specified window and hides the drag image, which enables the window to update.
            </summary>
            <param name="hwndLock">A handle to the window that contains the drag image.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.DragMove(System.Int32,System.Int32)">
            <summary>
            Moves the image that is being dragged during a drag-and-drop operation. This function is typically called in response to a WM_MOUSEMOVE message.
            </summary>
            <param name="x">A value of type int that contains the x-coordinate where the drag image appears. The coordinate is relative to the upper-left corner of the window, not the client area.</param>
            <param name="y">A value of type int that contains the y-coordinate where the drag image appears. The coordinate is relative to the upper-left corner of the window, not the client area.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.SetDragCursorImage(SharpShell.Interop.IImageList@,System.Int32,System.Int32,System.Int32)">
            <summary>
            Creates a new drag image by combining the specified image, which is typically a mouse cursor image, with the current drag image.
            </summary>
            <param name="punk">A pointer to the IUnknown interface that accesses the image list interface, which contains the new image to combine with the drag image.</param>
            <param name="iDrag">A value of type int that contains the index of the new image to combine with the drag image.</param>
            <param name="dxHotspot">A value of type int that contains the x-component of the hot spot within the new image.</param>
            <param name="dyHotspot">A value of type int that contains the x-component of the hot spot within the new image.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.DragShowNolock(System.Int32)">
            <summary>
            Shows or hides the image being dragged.
            </summary>
            <param name="fShow">A value that specifies whether to show or hide the image being dragged. Specify TRUE to show the image or FALSE to hide the image.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.GetDragImage(SharpShell.Interop.POINT@,SharpShell.Interop.POINT@,System.Guid@,System.IntPtr@)">
            <summary>
            Gets the temporary image list that is used for the drag image. The function also retrieves the current drag position and the offset of the drag image relative to the drag position.
            </summary>
            <param name="ppt">A pointer to a POINT structure that receives the current drag position. Can be NULL.</param>
            <param name="pptHotspot">A pointer to a POINT structure that receives the offset of the drag image relative to the drag position. Can be NULL.</param>
            <param name="riid">An IID for the image list.</param>
            <param name="ppv">The address of a pointer to the interface for the image list if successful, NULL otherwise.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.GetItemFlags(System.Int32,System.Int32@)">
            <summary>
            Gets the flags of an image.
            </summary>
            <param name="i">A value of type int that contains the index of the images whose flags need to be retrieved.</param>
            <param name="dwFlags">A pointer to a DWORD that contains the flags when the method returns. One of the following values:</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IImageList.GetOverlayImage(System.Int32,System.Int32@)">
            <summary>
            Retrieves a specified image from the list of images used as overlay masks.
            </summary>
            <param name="iOverlay">A value of type int that contains the one-based index of the overlay mask.</param>
            <param name="piIndex">A pointer to an int that receives the zero-based index of an image in the image list. This index identifies the image that is used as an overlay mask.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.IObjectWithSite">
            <summary>
            Provides a simple way to support communication between an object and its site in the container.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IObjectWithSite.SetSite(System.Object)">
            <summary>
            Enables a container to pass an object a pointer to the interface for its site.
            </summary>
            <param name="pUnkSite">A pointer to the IUnknown interface pointer of the site managing this object. If NULL, the object should call Release on any existing site at which point the object no longer knows its site.</param>
            <returns>This method returns S_OK on success.</returns>
        </member>
        <member name="M:SharpShell.Interop.IObjectWithSite.GetSite(System.Guid@,System.IntPtr@)">
            <summary>
            Retrieves the latest site passed using SetSite.
            </summary>
            <param name="riid">The IID of the interface pointer that should be returned in ppvSite.</param>
            <param name="ppvSite">Address of pointer variable that receives the interface pointer requested in riid. Upon successful return, *ppvSite contains the requested interface pointer to the site last seen in SetSite. The specific interface returned depends on the riid argument—in essence, the two arguments act identically to those in QueryInterface. If the appropriate interface pointer is available, the object must call AddRef on that pointer before returning successfully. If no site is available, or the requested interface is not supported, this method must *ppvSite to NULL and return a failure code.</param>
            <returns>This method returns S_OK on success.</returns>
        </member>
        <member name="T:SharpShell.Interop.IOleWindow">
            <summary>
            The IOleWindow interface provides methods that allow an application to obtain the handle to the various windows that participate in in-place activation, and also to enter and exit context-sensitive help mode.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IOleWindow.GetWindow(System.IntPtr@)">
            <summary>
            Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
            </summary>
            <param name="phwnd">A pointer to a variable that receives the window handle.</param>
            <returns>This method returns S_OK on success. </returns>
        </member>
        <member name="M:SharpShell.Interop.IOleWindow.ContextSensitiveHelp(System.Boolean)">
            <summary>
            Determines whether context-sensitive help mode should be entered during an in-place activation session.
            </summary>
            <param name="fEnterMode">TRUE if help mode should be entered; FALSE if it should be exited.</param>
            <returns>This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in fEnterMode.</returns>
        </member>
        <member name="T:SharpShell.Interop.IPersist">
            <summary>
            Provides the CLSID of an object that can be stored persistently in the system. 
            Allows the object to specify which object handler to use in the client process, as it is used in the default implementation of marshaling.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IPersist.GetClassID(System.Guid@)">
            <summary>
            Retrieves the class identifier (CLSID) of the object.
            </summary>
            <param name="pClassID">A pointer to the location that receives the CLSID on return. 
            The CLSID is a globally unique identifier (GUID) that uniquely represents an object class that defines the code that can manipulate the object's data.</param>
            <returns>If the method succeeds, the return value is S_OK. Otherwise, it is E_FAIL.</returns>
        </member>
        <member name="T:SharpShell.Interop.IPersistFolder">
            <summary>
            Exposes a method that initializes Shell folder objects.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IPersistFolder.GetClassID(System.Guid@)">
            <summary>
            Retrieves the class identifier (CLSID) of the object.
            </summary>
            <param name="pClassID">A pointer to the location that receives the CLSID on return.
            The CLSID is a globally unique identifier (GUID) that uniquely represents an object class that defines the code that can manipulate the object's data.</param>
            <returns>
            If the method succeeds, the return value is S_OK. Otherwise, it is E_FAIL.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IPersistFolder.Initialize(System.IntPtr)">
            <summary>
            Instructs a Shell folder object to initialize itself based on the information passed.
            </summary>
            <param name="pidl">The address of the ITEMIDLIST (item identifier list) structure that specifies the absolute location of the folder.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.IPersistFolder2">
            <summary>
            Exposes methods that obtain information from Shell folder objects.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IPersistFolder2.GetClassID(System.Guid@)">
            <summary>
            Retrieves the class identifier (CLSID) of the object.
            </summary>
            <param name="pClassID">A pointer to the location that receives the CLSID on return.
            The CLSID is a globally unique identifier (GUID) that uniquely represents an object class that defines the code that can manipulate the object's data.</param>
            <returns>
            If the method succeeds, the return value is S_OK. Otherwise, it is E_FAIL.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IPersistFolder2.Initialize(System.IntPtr)">
            <summary>
            Instructs a Shell folder object to initialize itself based on the information passed.
            </summary>
            <param name="pidl">The address of the ITEMIDLIST (item identifier list) structure that specifies the absolute location of the folder.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IPersistFolder2.GetCurFolder(System.IntPtr@)">
            <summary>
            Gets the ITEMIDLIST for the folder object.
            </summary>
            <param name="ppidl">The address of an ITEMIDLIST pointer. This PIDL represents the absolute location of the folder and must be relative to the desktop. This is typically a copy of the PIDL passed to Initialize.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <remarks>If the folder object has not been initialized, this method returns S_FALSE and ppidl is set to NULL.</remarks>
        </member>
        <member name="T:SharpShell.Interop.IPreviewHandler">
            <summary>
            Exposes methods for the display of rich previews.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandler.SetWindow(System.IntPtr,SharpShell.Interop.RECT@)">
            <summary>
            Sets the parent window of the previewer window, as well as the area within the parent to be used for the previewer window.
            </summary>
            <param name="hwnd">A handle to the parent window.</param>
            <param name="prc">A pointer to a RECT defining the area for the previewer.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandler.SetRect(SharpShell.Interop.RECT@)">
            <summary>
            Directs the preview handler to change the area within the parent hwnd that it draws into.
            </summary>
            <param name="prc">A pointer to a RECT to be used for the preview.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandler.DoPreview">
            <summary>
            Directs the preview handler to load data from the source specified in an earlier Initialize method call, and to begin rendering to the previewer window.
            </summary>
            <returns>This method can return one of these values.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandler.Unload">
            <summary>
            Directs the preview handler to cease rendering a preview and to release all resources that have been allocated based on the item passed in during the initialization.
            </summary>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandler.SetFocus">
            <summary>
            Directs the preview handler to set focus to itself.
            </summary>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandler.QueryFocus(System.IntPtr@)">
            <summary>
            Directs the preview handler to return the HWND from calling the GetFocus Function.
            </summary>
            <param name="phwnd">When this method returns, contains a pointer to the HWND returned from calling the GetFocus Function from the preview handler's foreground thread.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandler.TranslateAccelerator(SharpShell.Interop.MSG)">
            <summary>
            Directs the preview handler to handle a keystroke passed up from the message pump of the process in which the preview handler is running.
            </summary>
            <param name="pmsg">A pointer to a window message.</param>
            <returns>If the keystroke message can be processed by the preview handler, the handler will process it and return S_OK. If the preview handler cannot process the keystroke message, it will offer it to the host using TranslateAccelerator. If the host processes the message, this method will return S_OK. If the host does not process the message, this method will return S_FALSE.</returns>
        </member>
        <member name="T:SharpShell.Interop.IPreviewHandlerFrame">
            <summary>
            Enables preview handlers to pass keyboard shortcuts to the host. This interface retrieves a list of keyboard shortcuts and directs the host to handle a keyboard shortcut.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandlerFrame.GetWindowContext(SharpShell.Interop.PREVIEWHANDLERFRAMEINFO)">
            <summary>
            Gets a list of the keyboard shortcuts for the preview host.
            </summary>
            <param name="pinfo">A pointer to a PREVIEWHANDLERFRAMEINFO structure that receives accelerator table information.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandlerFrame.TranslateAccelerator(SharpShell.Interop.MSG)">
            <summary>
            Directs the host to handle an keyboard shortcut passed from the preview handler.
            </summary>
            <param name="pmsg">A pointer to a WM_COMMAND or WM_SYSCOMMAND window message that corresponds to a keyboard shortcut.</param>
            <returns>If the keyboard shortcut is one that the host intends to handle, the host will process it and return S_OK; otherwise, it returns S_FALSE.</returns>
        </member>
        <member name="T:SharpShell.Interop.IPreviewHandlerVisuals">
            <summary>
            Exposes methods for applying color and font information to preview handlers.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandlerVisuals.SetBackgroundColor(SharpShell.Interop.COLORREF)">
            <summary>
            Sets the background color of the preview handler.
            </summary>
            <param name="color">A value of type COLORREF to use for the preview handler background.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandlerVisuals.SetFont(SharpShell.Interop.LOGFONT@)">
            <summary>
            Sets the font attributes to be used for text within the preview handler.
            </summary>
            <param name="plf">A pointer to a LOGFONTW Structure containing the necessary attributes for the font to use.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IPreviewHandlerVisuals.SetTextColor(SharpShell.Interop.COLORREF)">
            <summary>
            Sets the color of the text within the preview handler.
            </summary>
            <param name="color">A value of type COLORREF to use for the preview handler text color.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error cod</returns>
        </member>
        <member name="T:SharpShell.Interop.IServiceProvider">
            <summary>
            Defines a mechanism for retrieving a service object; that is, an object that provides custom support to other objects.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IServiceProvider.QueryService(System.Guid@,System.Guid@,SharpShell.Interop.IShellBrowser@)">
            <summary>
            Defines a mechanism for retrieving a service object; that is, an object that provides custom support to other objects.
            </summary>
            <param name="guidService">The unique identifier of the service (an SID).</param>
            <param name="riid">The unique identifier of the interface that the caller wants to receive for the service.</param>
            <param name="ppvObject">The address of the caller-allocated variable to receive the interface pointer of the service on successful return from this function. The caller becomes responsible for calling Release through this interface pointer when the service is no longer required.</param>
            <returns>Returns one of the following values.</returns>
        </member>
        <member name="T:SharpShell.Interop.IShellBrowser">
            <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>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.GetWindow(System.IntPtr@)">
            <summary>
            Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
            </summary>
            <param name="phwnd">A pointer to a variable that receives the window handle.</param>
            <returns>This method returns S_OK on success. </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.ContextSensitiveHelp(System.Boolean)">
            <summary>
            Determines whether context-sensitive help mode should be entered during an in-place activation session.
            </summary>
            <param name="fEnterMode">TRUE if help mode should be entered; FALSE if it should be exited.</param>
            <returns>This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in fEnterMode.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.InsertMenusSB(System.IntPtr,System.IntPtr@)">
            <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>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.SetMenuSB(System.IntPtr,System.IntPtr,System.IntPtr)">
            <summary>
            Installs the composite menu in the view window.
            </summary>
            <param name="hmenuShared">A handle to the composite menu constructed by calls to IShellBrowser::InsertMenusSB and the InsertMenu function.</param>
            <param name="holemenuRes"></param>
            <param name="hwndActiveObject">The view's window handle.</param>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.RemoveMenusSB(System.IntPtr)">
            <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>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.SetStatusTextSB(System.String)">
            <summary>
            Sets and displays status text about the in-place object in the container's frame-window status bar.
            </summary>
            <param name="pszStatusText">A pointer to a null-terminated character string that contains the message to display.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.EnableModelessSB(System.Boolean)">
            <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>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.TranslateAcceleratorSB(System.IntPtr,System.Int16)">
            <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>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.BrowseObject(System.IntPtr,SharpShell.Interop.SBSP)">
            <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. It can be zero or one or more of the following values.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.GetViewStateStream(System.Int64,System.Runtime.InteropServices.ComTypes.IStream@)">
            <summary>
            Gets an IStream interface that can be used for storage of view-specific state information.
            </summary>
            <param name="grfMode">Read/write access of the IStream interface. This may be one of the following values.</param>
            <param name="ppStrm">The address that receives the IStream interface pointer.</param>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.GetControlWindow(System.UInt32,System.IntPtr@)">
            <summary>
            Gets the window handle to a browser control.
            </summary>
            <param name="id">The control handle that is being requested. This parameter can be one of the following values:</param>
            <param name="phwnd">The address of the window handle to the Windows Explorer control.</param>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.SendControlMsg(System.UInt32,System.UInt32,System.Int16,System.Int64,System.Int64@)">
            <summary>
            Sends control messages to either the toolbar or the status bar in a Windows Explorer window.
            </summary>
            <param name="id">An identifier for either a toolbar (FCW_TOOLBAR) or for a status bar window (FCW_STATUS).</param>
            <param name="uMsg">The message to be sent to the control.</param>
            <param name="wParam">The value depends on the message specified in the uMsg parameter.</param>
            <param name="lParam">The value depends on the message specified in the uMsg parameter.</param>
            <param name="pret">The address of the return value of the SendMessage function.</param>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.QueryActiveShellView(SharpShell.Interop.IShellView@)">
            <summary>
            Retrieves the currently active (displayed) Shell view object.
            </summary>
            <param name="ppshv">The address of the pointer to the currently active Shell view object.</param>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.OnViewWindowActive(SharpShell.Interop.IShellView)">
            <summary>
            Called by the Shell view when the view window or one of its child windows gets the focus or becomes active.
            </summary>
            <param name="pshv">Address of the view object's IShellView pointer.</param>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellBrowser.SetToolbarItems(System.IntPtr,System.UInt32,System.UInt32)">
            <summary>
            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. This parameter can be one or more of the following values.</param>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="T:SharpShell.Interop.IShellDetails">
            <summary>
            Exposed by Shell folders to provide detailed information about the items in a folder. This is the same information that is displayed by the Windows Explorer when the view of the folder is set to Details. For Windows 2000 and later systems, IShellDetails is superseded by IShellFolder2.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IShellDetails.GetDetailsOf(System.IntPtr,System.UInt32,SharpShell.Interop.SHELLDETAILS)">
            <summary>
            Gets detailed information on an item in a Shell folder.
            </summary>
            <param name="pidl">The PIDL of the item that you are requesting information for. If this parameter is set to NULL, the title of the information field specified by iColumn will be returned in the SHELLDETAILS structure pointed to by pDetails.</param>
            <param name="iColumn">The zero-based index of the desired information field. It is identical to column number of the information as it is displayed in a Windows Explorer Details view.</param>
            <param name="pDetails">A pointer to a SHELLDETAILS structure with the detail information.</param>
            <returns>Returns S_OK if successful. Returns E_FAIL if iColumn exceeds the number of columns supported by the folder. Otherwise, returns a standard COM error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellDetails.ColumnClick(System.UInt32)">
            <summary>
            Rearranges a column.
            </summary>
            <param name="iColumn">The index of the column to be rearranged.</param>
            <returns>Returns S_FALSE to tell the calling application to sort the selected column. Otherwise, returns S_OK if successful, a COM error code otherwise.</returns>
        </member>
        <member name="T:SharpShell.Interop.IShellFolder">
            <summary>
            Exposed by all Shell namespace folder objects, its methods are used to manage folders.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder.ParseDisplayName(System.IntPtr,System.IntPtr,System.String,System.UInt32@,System.IntPtr@,SharpShell.Interop.SFGAO@)">
            <summary>
            Translates the display name of a file object or a folder into an item identifier list.
            </summary>
            <param name="hwnd">A window handle. The client should provide a window handle if it displays a dialog or message box. Otherwise set hwnd to NULL.</param>
            <param name="pbc">Optional. A pointer to a bind context used to pass parameters as inputs and outputs to the parsing function.</param>
            <param name="pszDisplayName">A null-terminated Unicode string with the display name.</param>
            <param name="pchEaten">A pointer to a ULONG value that receives the number of characters of the display name that was parsed. If your application does not need this information, set pchEaten to NULL, and no value will be returned.</param>
            <param name="ppidl">When this method returns, contains a pointer to the PIDL for the object.</param>
            <param name="pdwAttributes">The value used to query for file attributes. If not used, it should be set to NULL.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder.EnumObjects(System.IntPtr,SharpShell.Interop.SHCONTF,SharpShell.Interop.IEnumIDList@)">
             <summary>
            Allows a client to determine the contents of a folder by creating an item identifier enumeration object and returning its IEnumIDList interface. 
            Return value: error code, if any
             </summary>
             <param name="hwnd">If user input is required to perform the enumeration, this window handle should be used by the enumeration object as the parent window to take user input.</param>
             <param name="grfFlags">Flags indicating which items to include in the  enumeration. For a list of possible values, see the SHCONTF enum. </param>
             <param name="ppenumIDList">Address that receives a pointer to the IEnumIDList interface of the enumeration object created by this method. </param>
             <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder.BindToObject(System.IntPtr,System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Retrieves an IShellFolder object for a subfolder.
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure (PIDL) that identifies the subfolder.</param>
            <param name="pbc">Optional address of an IBindCtx interface on a bind context object to be used during this operation.</param>
            <param name="riid">Identifier of the interface to return. </param>
            <param name="ppv">Address that receives the interface pointer.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder.BindToStorage(System.IntPtr,System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Requests a pointer to an object's storage interface. 
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure that identifies the subfolder relative to its parent folder. </param>
            <param name="pbc">Optional address of an IBindCtx interface on a bind context object to be  used during this operation.</param>
            <param name="riid">Interface identifier (IID) of the requested storage interface.</param>
            <param name="ppv"> Address that receives the interface pointer specified by riid.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder.CompareIDs(System.IntPtr,System.IntPtr,System.IntPtr)">
             <summary>
             Determines the relative order of two file objects or folders, given 
             their item identifier lists. Return value: If this method is 
             successful, the CODE field of the HRESULT contains one of the 
             following values (the code can be retrived using the helper function
             GetHResultCode): Negative A negative return value indicates that the first item should precede the second (pidl1 &lt; pidl2). 
            Positive A positive return value indicates that the first item should
            follow the second (pidl1 > pidl2).  Zero A return value of zero
            indicates that the two items are the same (pidl1 = pidl2). 
             </summary>
             <param name="lParam">Value that specifies how the comparison  should be performed. The lower Sixteen bits of lParam define the sorting  rule. 
              The upper sixteen bits of lParam are used for flags that modify the sorting rule. values can be from  the SHCIDS enum
             </param>
             <param name="pidl1">Pointer to the first item's ITEMIDLIST structure.</param>
             <param name="pidl2"> Pointer to the second item's ITEMIDLIST structure.</param>
             <returns></returns>
             <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder.CreateViewObject(System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Requests an object that can be used to obtain information from or interact
            with a folder object.
            Return value: error code, if any
            </summary>
            <param name="hwndOwner">Handle to the owner window.</param>
            <param name="riid">Identifier of the requested interface.</param>
            <param name="ppv">Address of a pointer to the requested interface. </param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder.GetAttributesOf(System.UInt32,System.IntPtr,SharpShell.Interop.SFGAO@)">
            <summary>
            Retrieves the attributes of one or more file objects or subfolders. 
            Return value: error code, if any
            </summary>
            <param name="cidl">Number of file objects from which to retrieve attributes. </param>
            <param name="apidl">Address of an array of pointers to ITEMIDLIST structures, each of which  uniquely identifies a file object relative to the parent folder.</param>
            <param name="rgfInOut">Address of a single ULONG value that, on entry contains the attributes that the caller is 
            requesting. On exit, this value contains the requested attributes that are common to all of the specified objects. this value can be from the SFGAO enum
            </param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder.GetUIObjectOf(System.IntPtr,System.UInt32,System.IntPtr,System.Guid@,System.UInt32,System.IntPtr@)">
            <summary>
            Retrieves an OLE interface that can be used to carry out actions on the 
            specified file objects or folders. Return value: error code, if any
            </summary>
            <param name="hwndOwner">Handle to the owner window that the client should specify if it displays a dialog box or message box.</param>
            <param name="cidl">Number of file objects or subfolders specified in the apidl parameter. </param>
            <param name="apidl">Address of an array of pointers to ITEMIDLIST  structures, each of which  uniquely identifies a file object or subfolder relative to the parent folder.</param>
            <param name="riid">Identifier of the COM interface object to return.</param>
            <param name="rgfReserved"> Reserved. </param>
            <param name="ppv">Pointer to the requested interface.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder.GetDisplayNameOf(System.IntPtr,SharpShell.Interop.SHGDNF,SharpShell.Interop.STRRET@)">
            <summary>
            Retrieves the display name for the specified file object or subfolder. 
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure (PIDL)  that uniquely identifies the file  object or subfolder relative to the parent  folder. </param>
            <param name="uFlags">Flags used to request the type of display name to return. For a list of possible values. </param>
            <param name="pName"> Address of a STRRET structure in which to return the display name.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder.SetNameOf(System.IntPtr,System.IntPtr,System.String,SharpShell.Interop.SHGDNF,System.IntPtr@)">
            <summary>
            Sets the display name of a file object or subfolder, changing the item
            identifier in the process.
            Return value: error code, if any
            </summary>
            <param name="hwnd"> Handle to the owner window of any dialog or message boxes that the client displays.</param>
            <param name="pidl"> Pointer to an ITEMIDLIST structure that uniquely identifies the file object or subfolder relative to the parent folder. </param>
            <param name="pszName"> Pointer to a null-terminated string that specifies the new display name.</param>
            <param name="uFlags">Flags indicating the type of name specified by  the lpszName parameter. For a list of possible values, see the description of the SHGNO enum.</param>
            <param name="ppidlOut"></param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.IShellFolder2">
            <summary>
            Extends the capabilities of IShellFolder. Its methods provide a variety of information about the contents of a Shell folder.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.ParseDisplayName(System.IntPtr,System.IntPtr,System.String,System.UInt32@,System.IntPtr@,SharpShell.Interop.SFGAO@)">
            <summary>
            Translates the display name of a file object or a folder into an item identifier list.
            </summary>
            <param name="hwnd">A window handle. The client should provide a window handle if it displays a dialog or message box. Otherwise set hwnd to NULL.</param>
            <param name="pbc">Optional. A pointer to a bind context used to pass parameters as inputs and outputs to the parsing function.</param>
            <param name="pszDisplayName">A null-terminated Unicode string with the display name.</param>
            <param name="pchEaten">A pointer to a ULONG value that receives the number of characters of the display name that was parsed. If your application does not need this information, set pchEaten to NULL, and no value will be returned.</param>
            <param name="ppidl">When this method returns, contains a pointer to the PIDL for the object.</param>
            <param name="pdwAttributes">The value used to query for file attributes. If not used, it should be set to NULL.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.EnumObjects(System.IntPtr,SharpShell.Interop.SHCONTF,SharpShell.Interop.IEnumIDList@)">
            <summary>
            Allows a client to determine the contents of a folder by creating an item identifier enumeration object and returning its IEnumIDList interface.
            Return value: error code, if any
            </summary>
            <param name="hwnd">If user input is required to perform the enumeration, this window handle should be used by the enumeration object as the parent window to take user input.</param>
            <param name="grfFlags">Flags indicating which items to include in the  enumeration. For a list of possible values, see the SHCONTF enum.</param>
            <param name="ppenumIDList">Address that receives a pointer to the IEnumIDList interface of the enumeration object created by this method.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.BindToObject(System.IntPtr,System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Retrieves an IShellFolder object for a subfolder.
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure (PIDL) that identifies the subfolder.</param>
            <param name="pbc">Optional address of an IBindCtx interface on a bind context object to be used during this operation.</param>
            <param name="riid">Identifier of the interface to return.</param>
            <param name="ppv">Address that receives the interface pointer.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.BindToStorage(System.IntPtr,System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Requests a pointer to an object's storage interface.
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure that identifies the subfolder relative to its parent folder.</param>
            <param name="pbc">Optional address of an IBindCtx interface on a bind context object to be  used during this operation.</param>
            <param name="riid">Interface identifier (IID) of the requested storage interface.</param>
            <param name="ppv">Address that receives the interface pointer specified by riid.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.CompareIDs(System.IntPtr,System.IntPtr,System.IntPtr)">
            <summary>
            Determines the relative order of two file objects or folders, given
            their item identifier lists. Return value: If this method is
            successful, the CODE field of the HRESULT contains one of the
            following values (the code can be retrived using the helper function
            GetHResultCode): Negative A negative return value indicates that the first item should precede the second (pidl1 &lt; pidl2).
            Positive A positive return value indicates that the first item should
            follow the second (pidl1 &gt; pidl2).  Zero A return value of zero
            indicates that the two items are the same (pidl1 = pidl2).
            </summary>
            <param name="lParam">Value that specifies how the comparison  should be performed. The lower Sixteen bits of lParam define the sorting  rule.
            The upper sixteen bits of lParam are used for flags that modify the sorting rule. values can be from  the SHCIDS enum</param>
            <param name="pidl1">Pointer to the first item's ITEMIDLIST structure.</param>
            <param name="pidl2">Pointer to the second item's ITEMIDLIST structure.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.CreateViewObject(System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Requests an object that can be used to obtain information from or interact
            with a folder object.
            Return value: error code, if any
            </summary>
            <param name="hwndOwner">Handle to the owner window.</param>
            <param name="riid">Identifier of the requested interface.</param>
            <param name="ppv">Address of a pointer to the requested interface.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.GetAttributesOf(System.UInt32,System.IntPtr,SharpShell.Interop.SFGAO@)">
            <summary>
            Retrieves the attributes of one or more file objects or subfolders.
            Return value: error code, if any
            </summary>
            <param name="cidl">Number of file objects from which to retrieve attributes.</param>
            <param name="apidl">Address of an array of pointers to ITEMIDLIST structures, each of which  uniquely identifies a file object relative to the parent folder.</param>
            <param name="rgfInOut">Address of a single ULONG value that, on entry contains the attributes that the caller is
            requesting. On exit, this value contains the requested attributes that are common to all of the specified objects. this value can be from the SFGAO enum</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.GetUIObjectOf(System.IntPtr,System.UInt32,System.IntPtr,System.Guid@,System.UInt32,System.IntPtr@)">
            <summary>
            Retrieves an OLE interface that can be used to carry out actions on the
            specified file objects or folders. Return value: error code, if any
            </summary>
            <param name="hwndOwner">Handle to the owner window that the client should specify if it displays a dialog box or message box.</param>
            <param name="cidl">Number of file objects or subfolders specified in the apidl parameter.</param>
            <param name="apidl">Address of an array of pointers to ITEMIDLIST  structures, each of which  uniquely identifies a file object or subfolder relative to the parent folder.</param>
            <param name="riid">Identifier of the COM interface object to return.</param>
            <param name="rgfReserved">Reserved.</param>
            <param name="ppv">Pointer to the requested interface.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.GetDisplayNameOf(System.IntPtr,SharpShell.Interop.SHGDNF,SharpShell.Interop.STRRET@)">
            <summary>
            Retrieves the display name for the specified file object or subfolder.
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure (PIDL)  that uniquely identifies the file  object or subfolder relative to the parent  folder.</param>
            <param name="uFlags">Flags used to request the type of display name to return. For a list of possible values.</param>
            <param name="pName">Address of a STRRET structure in which to return the display name.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.SetNameOf(System.IntPtr,System.IntPtr,System.String,SharpShell.Interop.SHGDNF,System.IntPtr@)">
            <summary>
            Sets the display name of a file object or subfolder, changing the item
            identifier in the process.
            Return value: error code, if any
            </summary>
            <param name="hwnd">Handle to the owner window of any dialog or message boxes that the client displays.</param>
            <param name="pidl">Pointer to an ITEMIDLIST structure that uniquely identifies the file object or subfolder relative to the parent folder.</param>
            <param name="pszName">Pointer to a null-terminated string that specifies the new display name.</param>
            <param name="uFlags">Flags indicating the type of name specified by  the lpszName parameter. For a list of possible values, see the description of the SHGNO enum.</param>
            <param name="ppidlOut"></param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.GetDefaultSearchGUID(System.Guid@)">
            <summary>
            Returns the globally unique identifier (GUID) of the default search object for the folder.
            </summary>
            <param name="pguid">The GUID of the default search object.</param>
            <returns>Returns S_OK if successful, or a COM error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.EnumSearches(SharpShell.Interop.IEnumExtraSearch@)">
            <summary>
            Requests a pointer to an interface that allows a client to enumerate the available search objects.
            </summary>
            <param name="ppenum">The address of a pointer to an enumerator object's IEnumExtraSearch interface.</param>
            <returns>Returns S_OK if successful, or a COM error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.GetDefaultColumn(System.UInt32,System.UInt32@,System.UInt32@)">
            <summary>
            Gets the default sorting and display columns.
            </summary>
            <param name="dwRes">Reserved. Set to zero.</param>
            <param name="pSort">A pointer to a value that receives the index of the default sorted column.</param>
            <param name="pDisplay">A pointer to a value that receives the index of the default display column.</param>
            <returns>Returns S_OK if successful, or a COM error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.GetDefaultColumnState(System.UInt32,SharpShell.Interop.SHCOLSTATEF@)">
            <summary>
            Gets the default state for a specified column.
            </summary>
            <param name="iColumn">An integer that specifies the column number.</param>
            <param name="pcsFlags">A pointer to a value that contains flags that indicate the default column state. This parameter can include a combination of the following flags.</param>
            <returns>Returns S_OK if successful, or a COM error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.GetDetailsEx(System.IntPtr,SharpShell.Interop.PROPERTYKEY,System.Object@)">
            <summary>
            Gets detailed information, identified by a property set identifier (FMTID) and a property identifier (PID), on an item in a Shell folder.
            </summary>
            <param name="pidl">A PIDL of the item, relative to the parent folder. This method accepts only single-level PIDLs. The structure must contain exactly one SHITEMID structure followed by a terminating zero. This value cannot be NULL.</param>
            <param name="pscid">A pointer to an SHCOLUMNID structure that identifies the column.</param>
            <param name="pv">A pointer to a VARIANT with the requested information. The value is fully typed. The value returned for properties from the property system must conform to the type specified in that property definition's typeInfo as the legacyType attribute.</param>
            <returns>Returns S_OK if successful, or a COM error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.GetDetailsOf(System.IntPtr,System.UInt32,SharpShell.Interop.SHELLDETAILS@)">
            <summary>
            Gets detailed information, identified by a column index, on an item in a Shell folder.
            </summary>
            <param name="pidl">PIDL of the item for which you are requesting information. This method accepts only single-level PIDLs. The structure must contain exactly one SHITEMID structure followed by a terminating zero. If this parameter is set to NULL, the title of the information field specified by iColumn is returned.</param>
            <param name="iColumn">The zero-based index of the desired information field. It is identical to the column number of the information as it is displayed in a Windows Explorer Details view.</param>
            <param name="psd">The zero-based index of the desired information field. It is identical to the column number of the information as it is displayed in a Windows Explorer Details view.</param>
            <returns>Returns S_OK if successful, or a COM error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellFolder2.MapColumnToSCID(System.UInt32,SharpShell.Interop.PROPERTYKEY@)">
            <summary>
            Converts a column to the appropriate property set ID (FMTID) and property ID (PID).
            </summary>
            <param name="iColumn">The column ID.</param>
            <param name="pscid">A pointer to an SHCOLUMNID structure containing the FMTID and PID.</param>
            <returns>Returns S_OK if successful, or a COM error value otherwise.</returns>
        </member>
        <member name="T:SharpShell.Interop.IShellFolderViewCB">
            <summary>
            Exposes a method that allows communication between Windows Explorer and a folder view implemented using the system folder view object (the IShellView object returned through SHCreateShellFolderView) so that the folder view can be notified of events and modify its view accordingly.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IShellFolderViewCB.MessageSFVCB(SharpShell.Interop.SFVM,System.IntPtr,System.IntPtr,System.IntPtr@)">
            <summary>
            Allows communication between the system folder view object and a system folder view callback object.
            </summary>
            <param name="uMsg">One of the following notifications.</param>
            <param name="wParam">Additional information.</param>
            <param name="lParam">Additional information.</param>
            <param name="plResult">Additional information.</param>
            <returns>S_OK if the message was handled, E_NOTIMPL if the shell should perform default processing.</returns>
        </member>
        <member name="T:SharpShell.Interop.IShellIconOverlayIdentifier">
            <summary>
            Exposes methods that handle all communication between icon overlay handlers and the Shell.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IShellIconOverlayIdentifier.IsMemberOf(System.String,SharpShell.Interop.FILE_ATTRIBUTE)">
            <summary>
            Specifies whether an icon overlay should be added to a Shell object's icon.
            </summary>
            <param name="pwszPath">A Unicode string that contains the fully qualified path of the Shell object.</param>
            <param name="dwAttrib">The object's attributes. For a complete list of file attributes and their associated flags, see IShellFolder::GetAttributesOf.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellIconOverlayIdentifier.GetOverlayInfo(System.IntPtr,System.Int32,System.Int32@,SharpShell.Interop.ISIOI@)">
            <summary>
            Provides the location of the icon overlay's bitmap.
            </summary>
            <param name="pwszIconFile">A null-terminated Unicode string that contains the fully qualified path of the file containing the icon. The .dll, .exe, and .ico file types are all acceptable. You must set the ISIOI_ICONFILE flag in pdwFlags if you return a file name.</param>
            <param name="cchMax">The size of the pwszIconFile buffer, in Unicode characters.</param>
            <param name="pIndex">Pointer to an index value used to identify the icon in a file that contains multiple icons. You must set the ISIOI_ICONINDEX flag in pdwFlags if you return an index.</param>
            <param name="pdwFlags">Pointer to a bitmap that specifies the information that is being returned by the method. This parameter can be one or both of the following values: ISIOI_ICONFILE, ISIOI_ICONINDEX.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellIconOverlayIdentifier.GetPriority(System.Int32@)">
            <summary>
            Specifies the priority of an icon overlay.
            </summary>
            <param name="pPriority">The address of a value that indicates the priority of the overlay identifier. Possible values range from zero to 100, with zero the highest priority.</param>
            <returns>Returns S_OK if successful, or a COM error code otherwise.</returns>
        </member>
        <member name="T:SharpShell.Interop.IShellView">
            <summary>
            Exposes methods that present a view in the Windows Explorer or folder windows.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IShellView.GetWindow(System.IntPtr@)">
            <summary>
            Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
            </summary>
            <param name="phwnd">A pointer to a variable that receives the window handle.</param>
            <returns>This method returns S_OK on success. </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellView.ContextSensitiveHelp(System.Boolean)">
            <summary>
            Determines whether context-sensitive help mode should be entered during an in-place activation session.
            </summary>
            <param name="fEnterMode">TRUE if help mode should be entered; FALSE if it should be exited.</param>
            <returns>This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in fEnterMode.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellView.TranslateAcceleratorA(SharpShell.Interop.MSG)">
            <summary>
            Translates keyboard shortcut (accelerator) key strokes when a namespace extension's view has the focus.
            </summary>
            <param name="lpmsg">The address of the message to be translated.</param>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise. If the view returns S_OK, it indicates that the message was translated and should not be translated or dispatched by Windows Explorer. </returns>
        </member>
        <member name="M:SharpShell.Interop.IShellView.EnableModeless(System.Boolean)">
            <summary>
            Enables or disables modeless dialog boxes. This method is not currently implemented.
            </summary>
            <param name="fEnable">Nonzero to enable modeless dialog box windows or zero to disable them.</param>
        </member>
        <member name="M:SharpShell.Interop.IShellView.UIActivate(SharpShell.Interop.SVUIA_STATUS)">
            <summary>
            Called when the activation state of the view window is changed by an event that is not caused by the Shell view itself. For example, if the TAB key is pressed when the tree has the focus, the view should be given the focus.
            </summary>
            <param name="uState">Flag specifying the activation state of the window.</param>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellView.Refresh">
            <summary>
            Refreshes the view's contents in response to user input.
            </summary>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellView.CreateViewWindow(SharpShell.Interop.IShellView,SharpShell.Interop.FOLDERSETTINGS@,SharpShell.Interop.IShellBrowser,SharpShell.Interop.RECT@,System.IntPtr@)">
            <summary>
            Creates a view window. This can be either the right pane of Windows Explorer or the client window of a folder window..
            </summary>
            <param name="psvPrevious">The address of the IShellView interface of the view window being exited. Views can use this parameter to communicate with a previous view of the same implementation. This interface can be used to optimize browsing between like views. This pointer may be NULL.</param>
            <param name="pfs">The address of a FOLDERSETTINGS structure. The view should use this when creating its view.</param>
            <param name="psb">The address of the current instance of the IShellBrowser interface. The view should call this interface's AddRef method and keep the interface pointer to allow communication with the Windows Explorer window.</param>
            <param name="prcView">The dimensions of the new view, in client coordinates.</param>
            <param name="phWnd">The address of the window handle being created.</param>
            <returns>Returns a success code if successful, or a COM error code otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellView.DestroyViewWindow">
            <summary>
            Destroys the view window.
            </summary>
            <returns>Returns a success code if successful, or a COM error code otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellView.GetCurrentInfo(SharpShell.Interop.FOLDERSETTINGS@)">
            <summary>
            Gets the current folder settings.
            </summary>
            <param name="pfs">The address of a FOLDERSETTINGS structure to receive the settings.</param>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellView.AddPropertySheetPages(System.Int64,System.IntPtr@,System.IntPtr)">
            <summary>
            Allows the view to add pages to the Options property sheet from the View menu.
            </summary>
            <param name="dwReserved">Reserved.</param>
            <param name="lpfn">The address of the callback function used to add the pages.</param>
            <param name="lparam">A value that must be passed as the callback function's lparam parameter.</param>
            <returns>Returns S_OK if successful, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellView.SaveViewState">
            <summary>
            Saves the Shell's view settings so the current state can be restored during a subsequent browsing session.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IShellView.SelectItem(System.IntPtr,SharpShell.Interop._SVSIF)">
            <summary>
            Changes the selection state of one or more items within the Shell view window.
            </summary>
            <param name="pidlItem">The address of the ITEMIDLIST structure.</param>
            <param name="uFlags">One of the _SVSIF constants that specify the type of selection to apply.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellView.GetItemObject(SharpShell.Interop._SVGIO,System.Guid@,System.IntPtr@)">
            <summary>
            Gets an interface that refers to data presented in the view.
            </summary>
            <param name="uItem">The constants that refer to an aspect of the view. This parameter can be any one of the _SVGIO constants.</param>
            <param name="riid">The identifier of the COM interface being requested.</param>
            <param name="ppv">The address that receives the interface pointer. If an error occurs, the pointer returned must be NULL.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.ISIOI">
            <summary>
            Flags for IShellIconOverlayIdentifer::GetOverlayInfo.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ISIOI.ISIOI_ICONFILE">
            <summary>
            The path of the icon file is returned through pwszIconFile.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.ISIOI.ISIOI_ICONINDEX">
            <summary>
            There is more than one icon in pwszIconFile. The icon's index is returned through pIndex.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.IThumbnailProvider">
            <summary>
            Exposes a method for getting a thumbnail image.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IThumbnailProvider.GetThumbnail(System.UInt32,System.IntPtr@,SharpShell.Interop.WTS_ALPHATYPE@)">
            <summary>
            Gets a thumbnail image and alpha type.
            </summary>
            <param name="cx">The maximum thumbnail size, in pixels. The Shell draws the returned bitmap at this size or smaller. The returned bitmap should fit into a square of width and height cx, though it does not need to be a square image. The Shell scales the bitmap to render at lower sizes. For example, if the image has a 6:4 aspect ratio, then the returned bitmap should also have a 6:4 aspect ratio.</param>
            <param name="phbmp">When this method returns, contains a pointer to the thumbnail image handle. The image must be a DIB section and 32 bits per pixel. The Shell scales down the bitmap if its width or height is larger than the size specified by cx. The Shell always respects the aspect ratio and never scales a bitmap larger than its original size.</param>
            <param name="pdwAlpha">When this method returns, contains a pointer to one of the following values from the WTS_ALPHATYPE enumeration.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.KnownFolders">
            <summary>
            KnownFolders contain the known folder ids for windows.
            </summary>
            <remarks>
            See:
                http://msdn.microsoft.com/en-us/library/windows/desktop/dd378457.aspx
            For details on known folders.
            </remarks>
        </member>
        <member name="T:SharpShell.Interop.KNOWN_FOLDER_FLAG">
            <summary>
            Specify special retrieval options for known folders. These values supersede CSIDL values, which have parallel meanings.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.KNOWN_FOLDER_FLAG.KF_NO_FLAGS">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.KNOWN_FOLDER_FLAG.KF_FLAG_SIMPLE_IDLIST">
            <summary>
            Build a simple IDList (PIDL) This value can be used when you want to retrieve the file system path but do not specify this value if you are retrieving the localized display name of the folder because it might not resolve correctly.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.KNOWN_FOLDER_FLAG.KF_FLAG_NOT_PARENT_RELATIVE">
            <summary>
            Gets the folder's default path independent of the current location of its parent. KF_FLAG_DEFAULT_PATH must also be set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.KNOWN_FOLDER_FLAG.KF_FLAG_DEFAULT_PATH">
            <summary>
            Gets the default path for a known folder. If this flag is not set, the function retrieves the current—and possibly redirected—path of the folder. The execution of this flag includes a verification of the folder's existence unless KF_FLAG_DONT_VERIFY is set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.KNOWN_FOLDER_FLAG.KF_FLAG_INIT">
            <summary>
            Initializes the folder using its Desktop.ini settings. If the folder cannot be initialized, the function returns a failure code and no path is returned. This flag should always be combined with KF_FLAG_CREATE.
            If the folder is located on a network, the function might take a longer time to execute.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.KNOWN_FOLDER_FLAG.KF_FLAG_NO_ALIAS">
            <summary>
            Gets the true system path for the folder, free of any aliased placeholders such as %USERPROFILE%, returned by SHGetKnownFolderIDList and IKnownFolder::GetIDList. This flag has no effect on paths returned by SHGetKnownFolderPath and IKnownFolder::GetPath. By default, known folder retrieval functions and methods return the aliased path if an alias exists.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.KNOWN_FOLDER_FLAG.KF_FLAG_DONT_UNEXPAND">
            <summary>
            Stores the full path in the registry without using environment strings. If this flag is not set, portions of the path may be represented by environment strings such as %USERPROFILE%. This flag can only be used with SHSetKnownFolderPath and IKnownFolder::SetPath.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.KNOWN_FOLDER_FLAG.KF_FLAG_DONT_VERIFY">
            <summary>
            Do not verify the folder's existence before attempting to retrieve the path or IDList. If this flag is not set, an attempt is made to verify that the folder is truly present at the path. If that verification fails due to the folder being absent or inaccessible, the function returns a failure code and no path is returned.
            If the folder is located on a network, the function might take a longer time to execute. Setting this flag can reduce that lag time.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.KNOWN_FOLDER_FLAG.KF_FLAG_CREATE">
            <summary>
            Forces the creation of the specified folder if that folder does not already exist. The security provisions predefined for that folder are applied. If the folder does not exist and cannot be created, the function returns a failure code and no path is returned. This value can be used only with the following functions and methods:
            </summary>
        </member>
        <member name="F:SharpShell.Interop.KNOWN_FOLDER_FLAG.KF_FLAG_NO_APPCONTAINER_REDIRECTION">
            <summary>
            Introduced in Windows 7: When running inside an app container, or when providing an app container token, this flag prevents redirection to app container folders. Instead, it retrieves the path that would be returned where it not running inside an app container.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.KNOWN_FOLDER_FLAG.KF_FLAG_ALIAS_ONLY">
            <summary>
            Introduced in Windows 7. Return only aliased PIDLs. Do not use the file system path.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.LOGFONT">
            <summary>
            The LOGFONT structure defines the attributes of a font.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfHeight">
            <summary>
            The height, in logical units, of the font's character cell or character. The character height value (also known as the em height) is the character cell height value minus the internal-leading value.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfWidth">
            <summary>
            The average width, in logical units, of characters in the font. If lfWidth is zero, the aspect ratio of the device is matched against the digitization aspect ratio of the available fonts to find the closest match, determined by the absolute value of the difference.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfEscapement">
            <summary>
            The angle, in tenths of degrees, between the escapement vector and the x-axis of the device. The escapement vector is parallel to the base line of a row of text.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfOrientation">
            <summary>
            The angle, in tenths of degrees, between each character's base line and the x-axis of the device.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfWeight">
            <summary>
            The weight of the font in the range 0 through 1000. For example, 400 is normal and 700 is bold. If this value is zero, a default weight is used.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfItalic">
            <summary>
            An italic font if set to TRUE.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfUnderline">
            <summary>
            An underlined font if set to TRUE.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfStrikeOut">
            <summary>
            A strikeout font if set to TRUE.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfCharSet">
            <summary>
            The character set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfOutPrecision">
            <summary>
            The output precision. The output precision defines how closely the output must match the requested font's height, width, character orientation, escapement, pitch, and font type.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfClipPrecision">
            <summary>
            The clipping precision. The clipping precision defines how to clip characters that are partially outside the clipping region.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfQuality">
            <summary>
            The output quality. The output quality defines how carefully the graphics device interface (GDI) must attempt to match the logical-font attributes to those of an actual physical font
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfPitchAndFamily">
            <summary>
            The pitch and family of the font.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LOGFONT.lfFaceName">
            <summary>
            A null-terminated string that specifies the typeface name of the font. The length of this string must not exceed 32 TCHAR values, including the terminating NULL. The EnumFontFamiliesEx function can be used to enumerate the typeface names of all currently available fonts. If lfFaceName is an empty string, GDI uses the first font that matches the other specified attributes.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.MSG">
            <summary>
            Contains message information from a thread's message queue.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MSG.hwnd">
            <summary>
            A handle to the window whose window procedure receives the message. This member is NULL when the message is a thread message.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MSG.message">
            <summary>
            The message identifier. Applications can only use the low word; the high word is reserved by the system.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MSG.wParam">
            <summary>
            Additional information about the message. The exact meaning depends on the value of the message member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MSG.lParam">
            <summary>
            Additional information about the message. The exact meaning depends on the value of the message member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MSG.time">
            <summary>
            The time at which the message was posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MSG.pt">
            <summary>
            The cursor position, in screen coordinates, when the message was posted.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.NMHDR">
            <summary>
            Contains information about a notification message.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.NMHDR.hwndFrom">
            <summary>
            A window handle to the control sending the message.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.NMHDR.idFrom">
            <summary>
            An identifier of the control sending the message.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.NMHDR.code">
            <summary>
            A notification code. This member can be one of the common notification codes (see Notifications under General Control Reference), or it can be a control-specific notification code.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.PSHNOTIFY">
            <summary>
            The notify struct for Property Sheet notifications.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSHNOTIFY.hdr">
            <summary>
            The header.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSHNOTIFY.lParam">
            <summary>
            The lparam
            </summary>
        </member>
        <member name="T:SharpShell.Interop.OLEMENUGROUPWIDTHS">
            <summary>
            Indicates the number of menu items in each of the six menu groups of a menu shared between a container and an object server during an in-place editing session. This is the mechanism for building a shared menu.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.OLEMENUGROUPWIDTHS.width">
            <summary>
            An array whose elements contain the number of menu items in each of the six menu groups of a shared in-place editing menu. Each menu group can have any number of menu items. The container uses elements 0, 2, and 4 to indicate the number of menu items in its File, View, and Window menu groups. The object server uses elements 1, 3, and 5 to indicate the number of menu items in its Edit, Object, and Help menu groups.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.PREVIEWHANDLERFRAMEINFO">
            <summary>
            Accelerator table structure. Used by IPreviewHandlerFrame::GetWindowContext.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PREVIEWHANDLERFRAMEINFO.haccel">
            <summary>
            A handle to the accelerator table.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PREVIEWHANDLERFRAMEINFO.cAccelEntries">
            <summary>
            The number of entries in the accelerator table.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.PSN">
            <summary>
            Property Sheet Notifications.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSN.PSN_SETACTIVE">
            <summary>
            Notifies a page that it is about to be activated.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSN.PSN_KILLACTIVE">
            <summary>
            Notifies a page that it is about to lose activation either because another page is being activated or the user has clicked the OK button.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSN.PSN_APPLY">
            <summary>
            Sent to every page in the property sheet to indicate that the user has clicked the OK, Close, or Apply button and wants all changes to take effect. This notification code is sent in the form of a WM_NOTIFY message.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSN.PSN_RESET">
            <summary>
            Notifies a page that the property sheet is about to be destroyed. 
            </summary>
        </member>
        <member name="T:SharpShell.Interop.PSP">
            <summary>
            Flags that indicate which options to use when creating the property sheet page. This member can be a combination of the following values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_DEFAULT">
            <summary>
            Uses the default meaning for all structure members. This flag is not supported when using the Aero-style wizard (PSH_AEROWIZARD).
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_DLGINDIRECT">
            <summary>
            Creates the page from the dialog box template in memory pointed to by the pResource member. The PropertySheet function assumes that the template that is in memory is not write-protected. A read-only template will cause an exception in some versions of Windows.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_USEHICON">
            <summary>
            Uses hIcon as the small icon on the tab for the page. This flag is not supported when using the Aero-style wizard (PSH_AEROWIZARD).
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_USEICONID">
            <summary>
            Uses pszIcon as the name of the icon resource to load and use as the small icon on the tab for the page. This flag is not supported when using the Aero-style wizard (PSH_AEROWIZARD).
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_USETITLE">
            <summary>
            Uses the pszTitle member as the title of the property sheet dialog box instead of the title stored in the dialog box template. This flag is not supported when using the Aero-style wizard (PSH_AEROWIZARD).
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_RTLREADING">
            <summary>
            Reverses the direction in which pszTitle is displayed. Normal windows display all text, including pszTitle, left-to-right (LTR). For languages such as Hebrew or Arabic that read right-to-left (RTL), a window can be mirrored and all text will be displayed RTL. If PSP_RTLREADING is set, pszTitle will instead read RTL in a normal parent window, and LTR in a mirrored parent window.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_HASHELP">
            <summary>
            Enables the property sheet Help button when the page is active. This flag is not supported when using the Aero-style wizard (PSH_AEROWIZARD).
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_USEREFPARENT">
            <summary>
            Maintains the reference count specified by the pcRefParent member for the lifetime of the property sheet page created from this structure.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_USECALLBACK">
            <summary>
            Calls the function specified by the pfnCallback member when creating or destroying the property sheet page defined by this structure.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_PREMATURE">
            <summary>
            Version 4.71 or later. Causes the page to be created when the property sheet is created. If this flag is not specified, the page will not be created until it is selected the first time. This flag is not supported when using the Aero-style wizard (PSH_AEROWIZARD).
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_HIDEHEADER">
            <summary>
            Version 5.80 and later. Causes the wizard property sheet to hide the header area when the page is selected. If a watermark has been provided, it will be painted on the left side of the page. This flag should be set for welcome and completion pages, and omitted for interior pages. This flag is not supported when using the Aero-style wizard (PSH_AEROWIZARD).
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_USEHEADERTITLE">
            <summary>
            Version 5.80 or later. Displays the string pointed to by the pszHeaderTitle member as the title in the header of a Wizard97 interior page. You must also set the PSH_WIZARD97 flag in the dwFlags member of the associated PROPSHEETHEADER structure. The PSP_USEHEADERTITLE flag is ignored if PSP_HIDEHEADER is set. This flag is not supported when using the Aero-style wizard (PSH_AEROWIZARD).
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSP.PSP_USEHEADERSUBTITLE">
            <summary>
            Version 5.80 or later. Displays the string pointed to by the pszHeaderSubTitle member as the subtitle of the header area of a Wizard97 page. To use this flag, you must also set the PSH_WIZARD97 flag in the dwFlags member of the associated PROPSHEETHEADER structure. The PSP_USEHEADERSUBTITLE flag is ignored if PSP_HIDEHEADER is set. In Aero-style wizards, the title appears near the top of the client area.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.RECT">
            <summary>
            The RECT structure defines the coordinates of the upper-left and lower-right corners of a rectangle.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.RECT.#ctor(System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Interop.RECT"/> struct.
            </summary>
            <param name="left">The left.</param>
            <param name="top">The top.</param>
            <param name="right">The right.</param>
            <param name="bottom">The bottom.</param>
        </member>
        <member name="F:SharpShell.Interop.RECT.left">
            <summary>
            The x-coordinate of the upper-left corner of the rectangle.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.RECT.top">
            <summary>
            The y-coordinate of the upper-left corner of the rectangle.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.RECT.right">
            <summary>
            The x-coordinate of the lower-right corner of the rectangle.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.RECT.bottom">
            <summary>
            The y-coordinate of the lower-right corner of the rectangle.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.RECT.Width">
            <summary>
            Gets the width.
            </summary>
            <returns>The width.</returns>
        </member>
        <member name="M:SharpShell.Interop.RECT.Height">
            <summary>
            Gets the height.
            </summary>
            <returns>The height.</returns>
        </member>
        <member name="M:SharpShell.Interop.RECT.Offset(System.Int32,System.Int32)">
            <summary>
            Offsets the rectangle.
            </summary>
            <param name="x">The x offset.</param>
            <param name="y">The y offset.</param>
        </member>
        <member name="M:SharpShell.Interop.RECT.Set(System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Sets the rectangle coordinates.
            </summary>
            <param name="left">The left.</param>
            <param name="top">The top.</param>
            <param name="right">The right.</param>
            <param name="bottom">The bottom.</param>
        </member>
        <member name="M:SharpShell.Interop.RECT.IsEmpty">
            <summary>
            Determines whether this rectangle is empty.
            </summary>
            <returns>
              <c>true</c> if this rectangle is empty; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="T:SharpShell.Interop.SBSP">
            <summary>
            Flags specifying the folder to be browsed. It can be zero or one or more of the following values.
            These flags specify whether another window is to be created.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_DEFBROWSER">
            <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>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_SAMEBROWSER">
            <summary>
            Browse to another folder with the same Windows Explorer window.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_NEWBROWSER">
            <summary>
            Creates another window for the specified folder.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_DEFMODE">
            <summary>
            Use the current window.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_OPENMODE">
            <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>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_EXPLOREMODE">
            <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>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_HELPMODE">
            <summary>
            Not supported. Do not use.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_NOTRANSFERHIST">
            <summary>
            Do not transfer the browsing history to the new window.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_ABSOLUTE">
            <summary>
            An absolute PIDL, relative to the desktop.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_RELATIVE">
            <summary>
            A relative PIDL, relative to the current folder.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_PARENT">
            <summary>
            Browse the parent folder, ignore the PIDL.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_NAVIGATEBACK">
            <summary>
            Navigate back, ignore the PIDL.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_NAVIGATEFORWARD">
            <summary>
            Navigate forward, ignore the PIDL.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_ALLOW_AUTONAVIGATE">
            <summary>
            Enable auto-navigation.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_KEEPSAMETEMPLATE">
            <summary>
            Windows Vista and later. Not supported. Do not use.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_KEEPWORDWHEELTEXT">
            <summary>
            Windows Vista and later. Navigate without clearing the search entry field.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_ACTIVATE_NOFOCUS">
            <summary>
            Windows Vista and later. Navigate without the default behavior of setting focus into the new view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_CREATENOHISTORY">
            <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>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_PLAYNOSOUND">
            <summary>
            Windows 7 and later. Do not make the navigation complete sound for each keystroke in the search box.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_CALLERUNTRUSTED">
            <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>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_TRUSTFIRSTDOWNLOAD">
            <summary>
            Suppress selection in the history pane.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_UNTRUSTEDFORDOWNLOAD">
            <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>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_NOAUTOSELECT">
            <summary>
            Suppress selection in the history pane.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_WRITENOHISTORY">
            <summary>
            Write no history of this navigation in the history Shell folder.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_TRUSTEDFORACTIVEX">
            <summary>
            Microsoft Internet Explorer 6 Service Pack 2 (SP2) and later. The navigate should allow ActiveX prompts.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_FEEDNAVIGATION">
            <summary>
            Windows Internet Explorer 7 and later. If allowed by current registry settings, give the browser a destination to navigate to.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_REDIRECT">
            <summary>
            Enables redirection to another URL.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SBSP.SBSP_INITIATEDBYHLINKFRAME">
            <summary>
            
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SCHIDS">
            <summary>
            The system currently defines these modifier flags.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SCHIDS.SCHIDS_ALLFIELDS">
            <summary>
            Version 5.0. Compare all the information contained in the ITEMIDLIST structure, not just the display names. This flag is valid only for folder objects that support the IShellFolder2 interface. For instance, if the two items are files, the folder should compare their names, sizes, file times, attributes, and any other information in the structures. If this flag is set, the lower sixteen bits of lParam must be zero.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SCHIDS.SHCIDS_CANONICALONLY">
            <summary>
            Version 5.0. Compare all the information contained in the ITEMIDLIST structure, not just the display names. This flag is valid only for folder objects that support the IShellFolder2 interface. For instance, if the two items are files, the folder should compare their names, sizes, file times, attributes, and any other information in the structures. If this flag is set, the lower sixteen bits of lParam must be zero.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SCHIDS.SHCIDS_BITMASK">
            <summary>
            Bitmask for the flag field.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SCHIDS.SHCIDS_COLUMNMASK">
            <summary>
            Bitmask for the column field.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SEE">
            <summary>
            Flags that indicate the content and validity of the other structure members; a combination of the following values:
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_DEFAULT">
            <summary>
            Use default values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_CLASSNAME">
            <summary>
            Use the class name given by the lpClass member. If both SEE_MASK_CLASSKEY and SEE_MASK_CLASSNAME are set, the class key is used.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_CLASSKEY">
            <summary>
            Use the class key given by the hkeyClass member. If both SEE_MASK_CLASSKEY and SEE_MASK_CLASSNAME are set, the class key is used.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_IDLIST">
            <summary>
            Use the item identifier list given by the lpIDList member. The lpIDList member must point to an ITEMIDLIST structure.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_INVOKEIDLIST">
            <summary>
            Use the IContextMenu interface of the selected item's shortcut menu handler. Use either lpFile to identify the item by its file system path or lpIDList to identify the item by its PIDL. This flag allows applications to use ShellExecuteEx to invoke verbs from shortcut menu extensions instead of the static verbs listed in the registry.
            Note SEE_MASK_INVOKEIDLIST overrides and implies SEE_MASK_IDLIST.
             </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_ICON">
            <summary>
            Use the icon given by the hIcon member. This flag cannot be combined with SEE_MASK_HMONITOR.
            Note This flag is used only in Windows XP and earlier. It is ignored as of Windows Vista.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_HOTKEY">
            <summary>
            Use the keyboard shortcut given by the dwHotKey member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_NOCLOSEPROCESS">
            <summary>
            Use to indicate that the hProcess member receives the process handle. This handle is typically used to allow an application to find out when a process created with ShellExecuteEx terminates. In some cases, such as when execution is satisfied through a DDE conversation, no handle will be returned. The calling application is responsible for closing the handle when it is no longer needed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_CONNECTNETDRV">
            <summary>
            Validate the share and connect to a drive letter. This enables reconnection of disconnected network drives. The lpFile member is a UNC path of a file on a network.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_NOASYNC">
            <summary>
            Wait for the execute operation to complete before returning. This flag should be used by callers that are using ShellExecute forms that might result in an async activation, for example DDE, and create a process that might be run on a background thread. (Note: ShellExecuteEx runs on a background thread by default if the caller's threading model is not Apartment., Calls to ShellExecuteEx from processes already running on background threads should always pass this flag. Also, applications that exit immediately after calling ShellExecuteEx should specify this flag.
            If the execute operation is performed on a background thread and the caller did not specify the SEE_MASK_ASYNCOK flag, then the calling thread waits until the new process has started before returning. This typically means that either CreateProcess has been called, the DDE communication has completed, or that the custom execution delegate has notified ShellExecuteEx that it is done. If the SEE_MASK_WAITFORINPUTIDLE flag is specified, then ShellExecuteEx calls WaitForInputIdle and waits for the new process to idle before returning, with a maximum timeout of 1 minute.
            For further discussion on when this flag is necessary, see the Remarks section.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_FLAG_DDEWAIT">
            <summary>
            Do not use; use SEE_MASK_NOASYNC instead.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_DOENVSUBST">
            <summary>
            Expand any environment variables specified in the string given by the lpDirectory or lpFile member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_FLAG_NO_UI">
            <summary>
            Do not display an error message box if an error occurs.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_UNICODE">
            <summary>
            Use this flag to indicate a Unicode application.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_NO_CONSOLE">
            <summary>
            Use to inherit the parent's console for the new process instead of having it create a new console. It is the opposite of using a CREATE_NEW_CONSOLE flag with CreateProcess.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_ASYNCOK">
            <summary>
            The execution can be performed on a background thread and the call should return immediately without waiting for the background thread to finish. Note that in certain cases ShellExecuteEx ignores this flag and waits for the process to finish before returning.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_NOQUERYCLASSSTORE">
            <summary>
            Not used.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_HMONITOR">
            <summary>
            Use this flag when specifying a monitor on multi-monitor systems. The monitor is specified in the hMonitor member. This flag cannot be combined with SEE_MASK_ICON.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_NOZONECHECKS">
            <summary>
            Introduced in Windows XP. Do not perform a zone check. This flag allows ShellExecuteEx to bypass zone checking put into place by IAttachmentExecute.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_WAITFORINPUTIDLE">
            <summary>
            After the new process is created, wait for the process to become idle before returning, with a one minute timeout. See WaitForInputIdle for more details.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_FLAG_LOG_USAGE">
            <summary>
            Introduced in Windows XP. Keep track of the number of times this application has been launched. Applications with sufficiently high counts appear in the Start Menu's list of most frequently used programs.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SEE.SEE_MASK_FLAG_HINST_IS_SITE">
            <summary>
            Introduced in Windows 8. The hInstApp member is used to specify the IUnknown of the object that will be used as a site pointer. The site pointer is used to provide services to the ShellExecute function, the handler binding process, and invoked verb handlers.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SFGAO">
            <summary>
            Flags for IShellFolder::GetAttributesOf.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_CANCOPY">
            <summary>
            Objects can be copied  (DROPEFFECT_COPY)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_CANMOVE">
            <summary>
            Objects can be moved   (DROPEFFECT_MOVE)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_CANLINK">
            <summary>
            Objects can be linked  (DROPEFFECT_LINK)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_STORAGE">
            <summary>
            Supports BindToObject(IID_IStorage)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_CANRENAME">
            <summary>
            Objects can be renamed
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_CANDELETE">
            <summary>
            Objects can be deleted
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_HASPROPSHEET">
            <summary>
             Objects have property sheets
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_DROPTARGET">
            <summary>
            Objects are drop target
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_CAPABILITYMASK">
            <summary>
            Mask for capabilities.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_ENCRYPTED">
            <summary>
            Object is encrypted (use alt color)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_ISSLOW">
            <summary>
            'Slow' object
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_GHOSTED">
            <summary>
            Ghosted icon
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_LINK">
            <summary>
            Shortcut (link)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_SHARE">
            <summary>
            Shared
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_READONLY">
            <summary>
            Read-only
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_HIDDEN">
            <summary>
            Hidden object
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_DISPLAYATTRMASK">
            <summary>
            Display attribute mask.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_FILESYSANCESTOR">
            <summary>
             May contain children with SFGAO_FILESYSTEM
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_FOLDER">
            <summary>
            Support BindToObject(IID_IShellFolder)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_FILESYSTEM">
            <summary>
            Is a win32 file system object (file/folder/root)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_HASSUBFOLDER">
            <summary>
            May contain children with SFGAO_FOLDER
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_CONTENTSMASK">
            <summary>
            Contents mask.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_VALIDATE">
            <summary>
            Invalidate cached information
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_REMOVABLE">
            <summary>
            Is this removeable media?
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_COMPRESSED">
            <summary>
            Object is compressed (use alt color)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_BROWSABLE">
            <summary>
            Supports IShellFolder, but only implements CreateViewObject() (non-folder view)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_NONENUMERATED">
            <summary>
             Is a non-enumerated object
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_NEWCONTENT">
            <summary>
            Should show bold in explorer tree
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_CANMONIKER">
            <summary>
            Defunct
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_HASSTORAGE">
            <summary>
            Defunct
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_STREAM">
            <summary>
            Supports BindToObject(IID_IStream)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_STORAGEANCESTOR">
            <summary>
            May contain children with SFGAO_STORAGE or SFGAO_STREAM
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFGAO.SFGAO_STORAGECAPMASK">
            <summary>
            For determining storage capabilities, ie for open/save semantics
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SFV_CREATE">
            <summary>
            This structure is used with the SHCreateShellFolderView function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFV_CREATE.cbSize">
            <summary>
            The size of the SFV_CREATE structure, in bytes.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFV_CREATE.pshf">
            <summary>
            The IShellFolder interface of the folder for which to create the view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFV_CREATE.psvOuter">
            <summary>
            A pointer to the parent IShellView interface. This parameter may be NULL. This parameter is used only when the view created by SHCreateShellFolderView is hosted in a common dialog box.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SFV_CREATE.psfvcb">
            <summary>
            A pointer to the IShellFolderViewCB interface that handles the view's callbacks when various events occur. This parameter may be NULL.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SHCOLSTATEF">
            <summary>
            A pointer to a value that contains flags that indicate the default column state. This parameter can include a combination of the following flags.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_DEFAULT">
            <summary>
            The default state.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_TYPE_STR">
            <summary>
            A string.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_TYPE_INT">
            <summary>
            An integer.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_TYPE_DATE">
            <summary>
            A date.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_ONBYDEFAULT">
            <summary>
            Should be shown by default in the Windows Explorer Details view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_SLOW">
            <summary>
            Recommends that the folder view extract column information asynchronously, on a background thread, because extracting this information can be time consuming.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_EXTENDED">
            <summary>
            Provided by a handler, not the folder object.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_SECONDARYUI">
            <summary>
            Not displayed in the shortcut menu, but listed in the More dialog box.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_HIDDEN">
            <summary>
            Not displayed in the user interface.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_PREFER_VARCMP">
            <summary>
            Uses default sorting rather than CompareIDs to get the sort order.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_PREFER_FMTCMP">
            <summary>
            
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_NOSORTBYFOLDERNESS">
            <summary>
            
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_VIEWONLY">
            <summary>
            
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_BATCHREAD">
            <summary>
            
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_NO_GROUPBY">
            <summary>
            
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_FIXED_WIDTH">
            <summary>
            
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_NODPISCALE">
            <summary>
            
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLSTATEF.SHCOLSTATE_FIXED_RATIO">
            <summary>
            
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SHCOLUMNID">
            <summary>
            Specifies the FMTID/PID identifier of a column that will be displayed by the Windows Explorer Details view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLUMNID.fmtid">
            <summary>
            A property set format identifier or FMTID (a GUID). The Shell supports the storage, Shell details, and summary information property sets. Other property sets can be supported by particular folders.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCOLUMNID.pid">
            <summary>
            The column's property identifier (PID).
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SHCONTF">
            <summary>
            Determines the types of items included in an enumeration. These values are used with the IShellFolder::EnumObjects method.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_CHECKING_FOR_CHILDREN">
            <summary>
            Windows 7 and later. The calling application is checking for the existence of child items in the folder.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_FOLDERS">
            <summary>
            Include items that are folders in the enumeration.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_NONFOLDERS">
            <summary>
            Include items that are not folders in the enumeration.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_INCLUDEHIDDEN">
            <summary>
            Include hidden items in the enumeration. This does not include hidden system items. (To include hidden system items, use SHCONTF_INCLUDESUPERHIDDEN.)
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_INIT_ON_FIRST_NEXT">
            <summary>
            No longer used; always assumed. IShellFolder::EnumObjects can return without validating the enumeration object. Validation can be postponed until the first call to IEnumIDList::Next. Use this flag when a user interface might be displayed prior to the first IEnumIDList::Next call. For a user interface to be presented, hwnd must be set to a valid window handle.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_NETPRINTERSRCH">
            <summary>
            The calling application is looking for printer objects.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_SHAREABLE">
            <summary>
            The calling application is looking for resources that can be shared.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_STORAGE">
            <summary>
            Include items with accessible storage and their ancestors, including hidden items.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_NAVIGATION_ENUM">
            <summary>
            Windows 7 and later. Child folders should provide a navigation enumeration.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_FASTITEMS">
            <summary>
            Windows Vista and later. The calling application is looking for resources that can be enumerated quickly.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_FLATLIST">
            <summary>
            Windows Vista and later. Enumerate items as a simple list even if the folder itself is not structured in that way.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_ENABLE_ASYNC">
            <summary>
            Windows Vista and later. The calling application is monitoring for change notifications. This means that the enumerator does not have to return all results. Items can be reported through change notifications.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHCONTF.SHCONTF_INCLUDESUPERHIDDEN">
            <summary>
            Windows 7 and later. Include hidden system items in the enumeration. This value does not include hidden non-system items. (To include hidden non-system items, use SHCONTF_INCLUDEHIDDEN.)
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SHELLDETAILS">
            <summary>
            Reports detailed information on an item in a Shell folder.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLDETAILS.fmt">
            <summary>
            The alignment of the column heading and the subitem text in the column.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLDETAILS.cxChar">
            <summary>
            The number of average-sized characters in the header.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLDETAILS.str">
            <summary>
            An STRRET structure that includes a string with the requested information. To convert this structure to a string, use StrRetToBuf or StrRetToStr.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SHELLEXECUTEINFO">
            <summary>
            Contains information used by ShellExecuteEx.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.cbSize">
            <summary>
            Required. The size of this structure, in bytes.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.fMask">
            <summary>
            Flags that indicate the content and validity of the other structure members.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.hwnd">
            <summary>
            Optional. A handle to the parent window, used to display any message boxes that the system might produce while executing this function. This value can be NULL.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.lpVerb">
            <summary>
            A string, referred to as a verb, that specifies the action to be performed. The set of available verbs depends on the particular file or folder. Generally, the actions available from an object's shortcut menu are available verbs. This parameter can be NULL, in which case the default verb is used if available. If not, the "open" verb is used. If neither verb is available, the system uses the first verb listed in the registry.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.lpFile">
            <summary>
            The address of a null-terminated string that specifies the name of the file or object on which ShellExecuteEx will perform the action specified by the lpVerb parameter. The system registry verbs that are supported by the ShellExecuteEx function include "open" for executable files and document files and "print" for document files for which a print handler has been registered. Other applications might have added Shell verbs through the system registry, such as "play" for .avi and .wav files. To specify a Shell namespace object, pass the fully qualified parse name and set the SEE_MASK_INVOKEIDLIST flag in the fMask parameter.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.lpParameters">
            <summary>
            Optional. The address of a null-terminated string that contains the application parameters. The parameters must be separated by spaces. If the lpFile member specifies a document file, lpParameters should be NULL.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.lpDirectory">
            <summary>
            Optional. The address of a null-terminated string that specifies the name of the working directory. If this member is NULL, the current directory is used as the working directory.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.nShow">
            <summary>
            Required. Flags that specify how an application is to be shown when it is opened; one of the SW_ values listed for the ShellExecute function. If lpFile specifies a document file, the flag is simply passed to the associated application. It is up to the application to decide how to handle it.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.hInstApp">
            <summary>
            [out] If SEE_MASK_NOCLOSEPROCESS is set and the ShellExecuteEx call succeeds, it sets this member to a value greater than 32. If the function fails, it is set to an SE_ERR_XXX error value that indicates the cause of the failure. Although hInstApp is declared as an HINSTANCE for compatibility with 16-bit Windows applications, it is not a true HINSTANCE. It can be cast only to an int and compared to either 32 or the following SE_ERR_XXX error codes.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.lpIDList">
            <summary>
            The address of an absolute ITEMIDLIST structure (PCIDLIST_ABSOLUTE) to contain an item identifier list that uniquely identifies the file to execute. This member is ignored if the fMask member does not include SEE_MASK_IDLIST or SEE_MASK_INVOKEIDLIST.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.lpClass">
            <summary>
            The address of a null-terminated string that specifies one of the following:
                A ProgId. For example, "Paint.Picture".
                A URI protocol scheme. For example, "http".
                A file extension. For example, ".txt".
                A registry path under HKEY_CLASSES_ROOT that names a subkey that contains one or more Shell verbs. This key will have a subkey that conforms to the Shell verb registry schema, such as
                shell\verb name
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.hkeyClass">
            <summary>
            A handle to the registry key for the file type. The access rights for this registry key should be set to KEY_READ. This member is ignored if fMask does not include SEE_MASK_CLASSKEY.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.dwHotKey">
            <summary>
            A keyboard shortcut to associate with the application. The low-order word is the virtual key code, and the high-order word is a modifier flag (HOTKEYF_). For a list of modifier flags, see the description of the WM_SETHOTKEY message. This member is ignored if fMask does not include SEE_MASK_HOTKEY.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.hIcon">
            <summary>
            A handle to the icon for the file type. This member is ignored if fMask does not include SEE_MASK_ICON. This value is used only in Windows XP and earlier. It is ignored as of Windows Vista.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHELLEXECUTEINFO.hProcess">
            <summary>
            A handle to the monitor upon which the document is to be displayed. This member is ignored if fMask does not include SEE_MASK_HMONITOR.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SHFILEINFO">
            <summary>
            Contains information about a file object.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHFILEINFO.hIcon">
            <summary>
            A handle to the icon that represents the file. You are responsible for destroying this handle with DestroyIcon when you no longer need it.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHFILEINFO.iIcon">
            <summary>
            The index of the icon image within the system image list.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHFILEINFO.dwAttributes">
            <summary>
            An array of values that indicates the attributes of the file object. For information about these values, see the IShellFolder::GetAttributesOf method.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHFILEINFO.szDisplayName">
            <summary>
            A string that contains the name of the file as it appears in the Windows Shell, or the path and file name of the file that contains the icon representing the file.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHFILEINFO.szTypeName">
            <summary>
            A string that describes the type of file.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SHGDNF">
            <summary>
            Defines the values used with the IShellFolder::GetDisplayNameOf and IShellFolder::SetNameOf methods to specify the type of file or folder names used by those methods.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGDNF.SHGDN_NORMAL">
            <summary>
            When not combined with another flag, return the parent-relative name that identifies the item, suitable for displaying to the user. This name often does not include extra information such as the file name extension and does not need to be unique. This name might include information that identifies the folder that contains the item. For instance, this flag could cause IShellFolder::GetDisplayNameOf to return the string "username (on Machine)" for a particular user's folder.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGDNF.SHGDN_INFOLDER">
            <summary>
            The name is relative to the folder from which the request was made. This is the name display to the user when used in the context of the folder. For example, it is used in the view and in the address bar path segment for the folder. This name should not include disambiguation information—for instance "username" instead of "username (on Machine)" for a particular user's folder.
            Use this flag in combinations with SHGDN_FORPARSING and SHGDN_FOREDITING.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGDNF.SHGDN_FOREDITING">
            <summary>
            The name is used for in-place editing when the user renames the item.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGDNF.SHGDN_FORADDRESSBAR">
            <summary>
            The name is displayed in an address bar combo box.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGDNF.SHGDN_FORPARSING">
            <summary>
            The name is used for parsing. That is, it can be passed to IShellFolder::ParseDisplayName to recover the object's PIDL. The form this name takes depends on the particular object. When SHGDN_FORPARSING is used alone, the name is relative to the desktop. When combined with SHGDN_INFOLDER, the name is relative to the folder from which the request was made.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SHGFI">
            <summary>
            The flags that specify the file information to retrieve.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_ICON">
            <summary>
            Retrieve the handle to the icon that represents the file and the index of the icon within the system image list. The handle is copied to the hIcon member of the structure specified by psfi, and the index is copied to the iIcon member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_DISPLAYNAME">
            <summary>
            Retrieve the display name for the file. The name is copied to the szDisplayName member of the structure specified in psfi. The returned display name uses the long file name, if there is one, rather than the 8.3 form of the file name.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_TYPENAME">
            <summary>
            Retrieve the string that describes the file's type. The string is copied to the szTypeName member of the structure specified in psfi.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_ATTRIBUTES">
            <summary>
            Retrieve the item attributes. The attributes are copied to the dwAttributes member of the structure specified in the psfi parameter. These are the same attributes that are obtained from IShellFolder::GetAttributesOf.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_ICONLOCATION">
            <summary>
            Retrieve the name of the file that contains the icon representing the file specified by pszPath, as returned by the IExtractIcon::GetIconLocation method of the file's icon handler. Also retrieve the icon index within that file. The name of the file containing the icon is copied to the szDisplayName member of the structure specified by psfi. The icon's index is copied to that structure's iIcon member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_EXETYPE">
            <summary>
            Retrieve the type of the executable file if pszPath identifies an executable file. The information is packed into the return value. This flag cannot be specified with any other flags.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_SYSICONINDEX">
            <summary>
            Retrieve the index of a system image list icon. If successful, the index is copied to the iIcon member of psfi. The return value is a handle to the system image list. Only those images whose indices are successfully copied to iIcon are valid. Attempting to access other images in the system image list will result in undefined behavior.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_LINKOVERLAY">
            <summary>
            Modify SHGFI_ICON, causing the function to add the link overlay to the file's icon. The SHGFI_ICON flag must also be set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_SELECTED">
            <summary>
            Modify SHGFI_ICON, causing the function to blend the file's icon with the system highlight color. The SHGFI_ICON flag must also be set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_ATTR_SPECIFIED">
            <summary>
            Modify SHGFI_ATTRIBUTES to indicate that the dwAttributes member of the SHFILEINFO structure at psfi contains the specific attributes that are desired. These attributes are passed to IShellFolder::GetAttributesOf. If this flag is not specified, 0xFFFFFFFF is passed to IShellFolder::GetAttributesOf, requesting all attributes. This flag cannot be specified with the SHGFI_ICON flag.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_LARGEICON">
            <summary>
            Modify SHGFI_ICON, causing the function to retrieve the file's large icon. The SHGFI_ICON flag must also be set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_SMALLICON">
            <summary>
            Modify SHGFI_ICON, causing the function to retrieve the file's small icon. Also used to modify SHGFI_SYSICONINDEX, causing the function to return the handle to the system image list that contains small icon images. The SHGFI_ICON and/or SHGFI_SYSICONINDEX flag must also be set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_OPENICON">
            <summary>
            Modify SHGFI_ICON, causing the function to retrieve the file's open icon. Also used to modify SHGFI_SYSICONINDEX, causing the function to return the handle to the system image list that contains the file's small open icon. A container object displays an open icon to indicate that the container is open. The SHGFI_ICON and/or SHGFI_SYSICONINDEX flag must also be set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_SHELLICONSIZE">
            <summary>
            Modify SHGFI_ICON, causing the function to retrieve a Shell-sized icon. If this flag is not specified the function sizes the icon according to the system metric values. The SHGFI_ICON flag must also be set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_PIDL">
            <summary>
            Indicate that pszPath is the address of an ITEMIDLIST structure rather than a path name.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_USEFILEATTRIBUTES">
            <summary>
            Indicates that the function should not attempt to access the file specified by pszPath. Rather, it should act as if the file specified by pszPath exists with the file attributes passed in dwFileAttributes. This flag cannot be combined with the SHGFI_ATTRIBUTES, SHGFI_EXETYPE, or SHGFI_PIDL flags.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_ADDOVERLAYS">
            <summary>
            Version 5.0. Apply the appropriate overlays to the file's icon. The SHGFI_ICON flag must also be set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SHGFI.SHGFI_OVERLAYINDEX">
            <summary>
            Version 5.0. Return the index of the overlay icon. The value of the overlay index is returned in the upper eight bits of the iIcon member of the structure specified by psfi. This flag requires that the SHGFI_ICON be set as well.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.Shlwapi">
            <summary>
            Shlwapi shlwapi.dll imports.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.Shlwapi.StrRetToBuf(System.IntPtr,System.IntPtr,System.Text.StringBuilder,System.Int32)">
            <summary>
            Converts an STRRET structure returned by IShellFolder::GetDisplayNameOf to a string, and places the result in a buffer.
            </summary>
            <param name="pstr">A pointer to the STRRET structure. When the function returns, this pointer will no longer be valid.</param>
            <param name="pidl">A pointer to the item's ITEMIDLIST structure.</param>
            <param name="pszBuf">A buffer to hold the display name. It will be returned as a null-terminated string. If cchBuf is too small, the name will be truncated to fit.</param>
            <param name="cchBuf">The size of pszBuf, in characters. If cchBuf is too small, the string will be truncated to fit.</param>
            <returns>If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.SIZE">
            <summary>
            The SIZE structure specifies the width and height of a rectangle.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SIZE.cx">
            <summary>
            Specifies the rectangle's width. The units depend on which function uses this.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SIZE.cy">
            <summary>
            Specifies the rectangle's height. The units depend on which function uses this.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.SIZE.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Interop.SIZE"/> struct.
            </summary>
            <param name="cx">The width.</param>
            <param name="cy">The height.</param>
        </member>
        <member name="T:SharpShell.Interop.STRRET">
            <summary>
            Contains strings returned from the IShellFolder interface methods.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.STRRET.CreateUnicode(System.String)">
            <summary>
            Creates a unicode <see cref="T:SharpShell.Interop.STRRET"/> from a string.
            </summary>
            <param name="str">The string.</param>
            <returns>A unicode <see cref="T:SharpShell.Interop.STRRET"/> allocated on the shell allocator.</returns>
        </member>
        <member name="M:SharpShell.Interop.STRRET.GetStringValue">
            <summary>
            Gets the actual string value of a STRRET.
            </summary>
            <returns>The string represented by the STRRET.</returns>
            <exception cref="T:System.NotImplementedException">
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException"></exception>
        </member>
        <member name="T:SharpShell.Interop.STRRET.STRRETTYPE">
            <summary>
            A value that specifies the desired format of the string. This can be one of the following values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STRRET.STRRETTYPE.STRRET_WSTR">
            <summary>
            The string is at the address specified by pOleStr member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STRRET.STRRETTYPE.STRRET_OFFSET">
            <summary>
            The uOffset member value indicates the number of bytes from the beginning of the item identifier list where the string is located.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STRRET.STRRETTYPE.STRRET_CSTR">
            <summary>
            The string is returned in the cStr member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STRRET.uType">
            <summary>
            A value that specifies the desired format of the string.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STRRET.data">
            <summary>
            The string data.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.SVUIA_STATUS">
            <summary>
            Used with the IBrowserService2::_UIActivateView method to set the state of a browser view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.SVUIA_STATUS.SVUIA_DEACTIVATE">
            <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>
        </member>
        <member name="F:SharpShell.Interop.SVUIA_STATUS.SVUIA_ACTIVATE_NOFOCUS">
            <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>
        </member>
        <member name="F:SharpShell.Interop.SVUIA_STATUS.SVUIA_ACTIVATE_FOCUS">
            <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>
        </member>
        <member name="F:SharpShell.Interop.SVUIA_STATUS.SVUIA_INPLACEACTIVATE">
            <summary>
            The Shell view is active without focus. This flag is only used when UIActivate is exposed through the IShellView2 interface.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.TBBUTTON">
            <summary>
            Contains information about a button in a toolbar.
            TODO: This struct has different sizes on Windows x86 and x64, validate that it works in both modes.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.TBBUTTON.iBitmap">
            <summary>
            Zero-based index of the button image. Set this member to I_IMAGECALLBACK, and the toolbar will send the TBN_GETDISPINFO notification code to retrieve the image index when it is needed.
            Version 5.81. Set this member to I_IMAGENONE to indicate that the button does not have an image. The button layout will not include any space for a bitmap, only text.
            If the button is a separator, that is, if fsStyle is set to BTNS_SEP, iBitmap determines the width of the separator, in pixels. For information on selecting button images from image lists, see TB_SETIMAGELIST message.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.TBBUTTON.idCommand">
            <summary>
            Command identifier associated with the button. This identifier is used in a WM_COMMAND message when the button is chosen.
            </summary>
        </member>
        <member name="P:SharpShell.Interop.TBBUTTON.fsState">
            <summary>
            Button state flags. This member can be a combination of the values listed in Toolbar Button States.
            </summary>
        </member>
        <member name="P:SharpShell.Interop.TBBUTTON.fsStyle">
            <summary>
            Button style. This member can be a combination of the button style values listed in Toolbar Control and Button Styles.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.TBBUTTON.dwData">
            <summary>
            Application-defined value.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.TBBUTTON.iString">
            <summary>
            
            </summary>
        </member>
        <member name="T:SharpShell.Interop.WTS_ALPHATYPE">
            <summary>
            Alpha channel type information.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WTS_ALPHATYPE.WTSAT_UNKNOWN">
            <summary>
            The bitmap is an unknown format. The Shell tries nonetheless to detect whether the image has an alpha channel.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WTS_ALPHATYPE.WTSAT_RGB">
            <summary>
            The bitmap is an RGB image without alpha. The alpha channel is invalid and the Shell ignores it.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WTS_ALPHATYPE.WTSAT_ARGB">
            <summary>
            The bitmap is an ARGB image with a valid alpha channel.
            </summary>
        </member>
        <member name="T:SharpShell.Interop._SVGIO">
            <summary>
            Used with the IFolderView::Items, IFolderView::ItemCount, and IShellView::GetItemObject methods to restrict or control the items in their collections.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVGIO.SVGIO_BACKGROUND">
            <summary>
            Refers to the background of the view. It is used with IID_IContextMenu to get a shortcut menu for the view background and with IID_IDispatch to get a dispatch interface that represents the ShellFolderView object for the view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVGIO.SVGIO_SELECTION">
            <summary>
            Refers to the currently selected items. Used with IID_IDataObject to retrieve a data object that represents the selected items.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVGIO.SVGIO_ALLVIEW">
            <summary>
            Used in the same way as SVGIO_SELECTION but refers to all items in the view.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVGIO.SVGIO_CHECKED">
            <summary>
            Used in the same way as SVGIO_SELECTION but refers to checked items in views where checked mode is supported. For more details on checked mode, see FOLDERFLAGS.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVGIO.SVGIO_TYPE_MASK">
            <summary>
            Used in the same way as SVGIO_SELECTION but refers to checked items in views where checked mode is supported. For more details on checked mode, see FOLDERFLAGS.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVGIO.SVGIO_FLAG_VIEWORDER">
            <summary>
            Returns the items in the order they appear in the view. If this flag is not set, the selected item will be listed first.
            </summary>
        </member>
        <member name="T:SharpShell.Interop._SVSIF">
            <summary>
            Indicates flags used by IFolderView, IFolderView2, IShellView and IShellView2 to specify a type of selection to apply.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_DESELECT">
            <summary>
            Deselect the item.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_SELECT">
            <summary>
            Select the item.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_EDIT">
            <summary>
            Put the name of the item into rename mode. This value includes SVSI_SELECT.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_DESELECTOTHERS">
            <summary>
            Deselect all but the selected item. If the item parameter is NULL, deselect all items.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_ENSUREVISIBLE">
            <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>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_FOCUSED">
            <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>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_TRANSLATEPT">
            <summary>
            Convert the input point from screen coordinates to the list-view client coordinates.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_SELECTIONMARK">
            <summary>
            Mark the item so that it can be queried using IFolderView::GetSelectionMarkedItem.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_POSITIONITEM">
            <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>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_CHECK">
            <summary>
            The item should be checked. This flag is used with items in views where the checked mode is supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_CHECK2">
            <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>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_KEYBOARDSELECT">
            <summary>
            Selects the item and marks it as selected by the keyboard. This value includes SVSI_SELECT.
            </summary>
        </member>
        <member name="F:SharpShell.Interop._SVSIF.SVSI_NOTAKEFOCUS">
            <summary>
            An operation to select or focus an item should not also set focus on the view itself.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.IInitializeWithFile">
            <summary>
            Exposes a method to initialize a handler, such as a property handler, thumbnail handler, or preview handler, with a file path.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IInitializeWithFile.Initialize(System.String,SharpShell.Interop.STGM)">
            <summary>
            Initializes a handler with a file path.
            </summary>
            <param name="pszFilePath">A pointer to a buffer that contains the file path as a null-terminated Unicode string.</param>
            <param name="grfMode">One of the following STGM values that indicates the access mode for pszFilePath. STGM_READ or STGM_READWRITE.</param>
        </member>
        <member name="T:SharpShell.Interop.IInitializeWithStream">
            <summary>
            Exposes a method that initializes a handler, such as a property handler, thumbnail handler, or preview handler, with a stream.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IInitializeWithStream.Initialize(System.Runtime.InteropServices.ComTypes.IStream,System.UInt32)">
            <summary>
            Initializes a handler with a stream.
            </summary>
            <param name="pstream">A pointer to an IStream interface that represents the stream source.</param>
            <param name="grfMode">One of the following STGM values that indicates the access mode for pstream. STGM_READ or STGM_READWRITE.</param>
        </member>
        <member name="T:SharpShell.Interop.QITIPF">
            <summary>
            GetInfoTip flags.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.QITIPF.QITIPF_DEFAULT">
            <summary>
            No special handling.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.QITIPF.QITIPF_USENAME">
            <summary>
            Provide the name of the item in ppwszTip rather than the info tip text.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.QITIPF.QITIPF_LINKNOTARGET">
            <summary>
            If the item is a shortcut, retrieve the info tip text of the shortcut rather than its target.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.QITIPF.QITIPF_LINKUSETARGET">
            <summary>
            If the item is a shortcut, retrieve the info tip text of the shortcut's target.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.QITIPF.QITIPF_USESLOWTIP">
            <summary>
            Search the entire namespace for the information. This value can result in a delayed response time.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.QITIPF.QITIPF_SINGLELINE">
            <summary>
            Windows Vista and later. Put the info tip on a single line.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.CLSCTX">
            <summary>
            Values that are used in activation calls to indicate the execution contexts in which an object is to be run. These values are also used in calls to CoRegisterClassObject to indicate the set of execution contexts in which a class object is to be made available for requests to construct instances.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_INPROC_SERVER">
            <summary>
            The code that creates and manages objects of this class is a DLL that runs in the same process as the caller of the function specifying the class context.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_INPROC_HANDLER">
            <summary>
            The code that manages objects of this class is an in-process handler. This is a DLL that runs in the client process and implements client-side structures of this class when instances of the class are accessed remotely.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_LOCAL_SERVER">
            <summary>
            The EXE code that creates and manages objects of this class runs on same machine but is loaded in a separate process space.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_INPROC_SERVER16">
            <summary>
            Obsolete.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_REMOTE_SERVER">
            <summary>
            A remote context. The LocalServer32 or LocalService code that creates and manages objects of this class is run on a different computer.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_INPROC_HANDLER16">
            <summary>
            Obsolete.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_RESERVED1">
            <summary>
            Reserved.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_RESERVED2">
            <summary>
            Reserved.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_RESERVED3">
            <summary>
            Reserved.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_RESERVED4">
            <summary>
            Reserved.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_NO_CODE_DOWNLOAD">
            <summary>
            Disaables the downloading of code from the directory service or the Internet. This flag cannot be set at the same time as CLSCTX_ENABLE_CODE_DOWNLOAD.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_RESERVED5">
            <summary>
            Reserved.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_NO_CUSTOM_MARSHAL">
            <summary>
            Specify if you want the activation to fail if it uses custom marshalling.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_ENABLE_CODE_DOWNLOAD">
            <summary>
            Enables the downloading of code from the directory service or the Internet. This flag cannot be set at the same time as CLSCTX_NO_CODE_DOWNLOAD.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_NO_FAILURE_LOG">
            <summary>
            The CLSCTX_NO_FAILURE_LOG can be used to override the logging of failures in CoCreateInstanceEx.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_DISABLE_AAA">
            <summary>
            Disables activate-as-activator (AAA) activations for this activation only. This flag overrides the setting of the EOAC_DISABLE_AAA flag from the EOLE_AUTHENTICATION_CAPABILITIES enumeration. This flag cannot be set at the same time as CLSCTX_ENABLE_AAA. Any activation where a server process would be launched under the caller's identity is known as an activate-as-activator (AAA) activation. Disabling AAA activations allows an application that runs under a privileged account (such as LocalSystem) to help prevent its identity from being used to launch untrusted components. Library applications that use activation calls should always set this flag during those calls. This helps prevent the library application from being used in an escalation-of-privilege security attack. This is the only way to disable AAA activations in a library application because the EOAC_DISABLE_AAA flag from the EOLE_AUTHENTICATION_CAPABILITIES enumeration is applied only to the server process and not to the library application.
                Windows 2000:  This flag is not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_ENABLE_AAA">
            <summary>
            Enables activate-as-activator (AAA) activations for this activation only. This flag overrides the setting of the EOAC_DISABLE_AAA flag from the EOLE_AUTHENTICATION_CAPABILITIES enumeration. This flag cannot be set at the same time as CLSCTX_DISABLE_AAA. Any activation where a server process would be launched under the caller's identity is known as an activate-as-activator (AAA) activation. Enabling this flag allows an application to transfer its identity to an activated component.
                Windows 2000:  This flag is not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_FROM_DEFAULT_CONTEXT">
            <summary>
            Begin this activation from the default context of the current apartment.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_ACTIVATE_32_BIT_SERVER">
            <summary>
            Activate or connect to a 32-bit version of the server; fail if one is not registered.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_ACTIVATE_64_BIT_SERVER">
            <summary>
            Activate or connect to a 64 bit version of the server; fail if one is not registered.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_INPROC">
            <summary>
            Inproc combination.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_SERVER">
            <summary>
            Server combination.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CLSCTX.CLSCTX_ALL">
            <summary>
            All.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.CMF">
            <summary>
            Flags that specify how the shortcut menu can be changed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_NORMAL">
            <summary>
            Indicates normal operation. A shortcut menu extension, namespace extension, or drag-and-drop handler can add all menu items.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_DEFAULTONLY">
            <summary>
            The user is activating the default action, typically by double-clicking. This flag provides a hint for the shortcut menu extension to add nothing if it does not modify the default item in the menu. A shortcut menu extension or drag-and-drop handler should not add any menu items if this value is specified. A namespace extension should at most add only the default item.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_VERBSONLY">
            <summary>
            The shortcut menu is that of a shortcut file (normally, a .lnk file). Shortcut menu handlers should ignore this value.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_EXPLORE">
            <summary>
            The Windows Explorer tree window is present.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_NOVERBS">
            <summary>
            This flag is set for items displayed in the Send To menu. Shortcut menu handlers should ignore this value.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_CANRENAME">
            <summary>
            The calling application supports renaming of items. A shortcut menu or drag-and-drop handler should ignore this flag. A namespace extension should add a Rename item to the menu if applicable.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_NODEFAULT">
            <summary>
            No item in the menu has been set as the default. A drag-and-drop handler should ignore this flag. A namespace extension should not set any of the menu items as the default.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_INCLUDESTATIC">
            <summary>
            A static menu is being constructed. Only the browser should use this flag; all other shortcut menu extensions should ignore it.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_ITEMMENU">
            <summary>
            The calling application is invoking a shortcut menu on an item in the view (as opposed to the background of the view).
            Windows Server 2003 and Windows XP:  This value is not available.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_EXTENDEDVERBS">
            <summary>
            The calling application wants extended verbs. Normal verbs are displayed when the user right-clicks an object. To display extended verbs, the user must right-click while pressing the Shift key.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_DISABLEDVERBS">
            <summary>
            The calling application intends to invoke verbs that are disabled, such as legacy menus.
            Windows Server 2003 and Windows XP:  This value is not available.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_ASYNCVERBSTATE">
            <summary>
            The verb state can be evaluated asynchronously.
            Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP:  This value is not available.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_OPTIMIZEFORINVOKE">
            <summary>
            Informs context menu handlers that do not support the invocation of a verb through a canonical verb name to bypass IContextMenu::QueryContextMenu in their implementation.
                Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP:  This value is not available.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_SYNCCASCADEMENU">
            <summary>
            Populate submenus synchronously.
                Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP:  This value is not available.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_DONOTPICKDEFAULT">
            <summary>
            When no verb is explicitly specified, do not use a default verb in its place.
                Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP:  This value is not available.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMF.CMF_RESERVED">
            <summary>
            This flag is a bitmask that specifies all bits that should not be used. This is to be used only as a mask. Do not pass this as a parameter value.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.CMIC">
            <summary>
            Context Menu Command Invoke flags.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_ICON">
            <summary>
            The hIcon member is valid. As of Windows Vista this flag is not used.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_HOTKEY">
            <summary>
            The dwHotKey member is valid.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_NOASYNC">
            <summary>
            Windows Vista and later. The implementation of IContextMenu::InvokeCommand should be synchronous, not returning before it is complete. Since this is recommended, calling applications that specify this flag cannot guarantee that this request will be honored if they are not familiar with the implementation of the verb that they are invoking.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_FLAG_NO_UI">
            <summary>
            The system is prevented from displaying user interface elements (for example, error messages) while carrying out a command.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_UNICODE">
            <summary>
            The shortcut menu handler should use lpVerbW, lpParametersW, lpDirectoryW, and lpTitleW members instead of their ANSI equivalents. Because some shortcut menu handlers may not support Unicode, you should also pass valid ANSI strings in the lpVerb, lpParameters, lpDirectory, and lpTitle members.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_NO_CONSOLE">
            <summary>
            If a shortcut menu handler needs to create a new process, it will normally create a new console. Setting the CMIC_MASK_NO_CONSOLE flag suppresses the creation of a new console.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_ASYNCOK">
            <summary>
            Wait for the DDE conversation to terminate before returning.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_NOZONECHECKS">
            <summary>
            Do not perform a zone check. This flag allows ShellExecuteEx to bypass zone checking put into place by IAttachmentExecute.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_FLAG_LOG_USAGE">
            <summary>
            Indicates that the implementation of IContextMenu::InvokeCommand might want to keep track of the item being invoked for features like the "Recent documents" menu.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_SHIFT_DOWN">
            <summary>
            The SHIFT key is pressed. Use this instead of polling the current state of the keyboard that may have changed since the verb was invoked.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_PTINVOKE">
            <summary>
            The ptInvoke member is valid.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMIC.CMIC_MASK_CONTROL_DOWN">
            <summary>
            The CTRL key is pressed. Use this instead of polling the current state of the keyboard that may have changed since the verb was invoked.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.CMINVOKECOMMANDINFO">
            <summary>
            Contains information needed by IContextMenu::InvokeCommand to invoke a shortcut menu command.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMINVOKECOMMANDINFO.cbSize">
            <summary>
            The size of this structure, in bytes.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMINVOKECOMMANDINFO.fMask">
            <summary>
            Zero, or one or more of the following flags.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMINVOKECOMMANDINFO.hwnd">
            <summary>
            A handle to the window that is the owner of the shortcut menu. An extension can also use this handle as the owner of any message boxes or dialog boxes it displays.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMINVOKECOMMANDINFO.verb">
            <summary>
            The address of a null-terminated string that specifies the language-independent name of the command to carry out. This member is typically a string when a command is being activated by an application. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMINVOKECOMMANDINFO.parameters">
            <summary>
            An optional string containing parameters that are passed to the command. The format of this string is determined by the command that is to be invoked. This member is always NULL for menu items inserted by a Shell extension.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMINVOKECOMMANDINFO.directory">
            <summary>
            An optional working directory name. This member is always NULL for menu items inserted by a Shell extension.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMINVOKECOMMANDINFO.nShow">
            <summary>
            
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMINVOKECOMMANDINFO.dwHotKey">
            <summary>
            An optional keyboard shortcut to assign to any application activated by the command. If the fMask parameter does not specify CMIC_MASK_HOTKEY, this member is ignored.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.CMINVOKECOMMANDINFO.hIcon">
            <summary>
            An icon to use for any application activated by the command. If the fMask member does not specify CMIC_MASK_ICON, this member is ignored.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.GCS">
            <summary>
            Flags specifying the information to return. This parameter can have one of the following values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GCS.GCS_VERBA">
            <summary>
            Sets pszName to an ANSI string containing the language-independent command name for the menu item.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GCS.GCS_HELPTEXTA">
            <summary>
            Sets pszName to an ANSI string containing the help text for the command.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GCS.GCS_VALIDATEA">
            <summary>
            Returns S_OK if the menu item exists, or S_FALSE otherwise.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GCS.GCS_VERBW">
            <summary>
            Sets pszName to a Unicode string containing the language-independent command name for the menu item.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GCS.GCS_HELPTEXTW">
            <summary>
            Sets pszName to a Unicode string containing the help text for the command.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GCS.GCS_VALIDATEW">
            <summary>
            Returns S_OK if the menu item exists, or S_FALSE otherwise.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GCS.GCS_VERBICONW">
            <summary>
            Not documented.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GCS.GCS_UNICODE">
            <summary>
            Not documented.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.IContextMenu">
            <summary>
            Exposes methods that either create or merge a shortcut menu associated with a Shell object.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu.QueryContextMenu(System.IntPtr,System.UInt32,System.Int32,System.Int32,SharpShell.Interop.CMF)">
            <summary>
            Adds commands to a shortcut menu.
            </summary>
            <param name="hMenu">A handle to the shortcut menu. The handler should specify this handle when adding menu items.</param>
            <param name="indexMenu">The zero-based position at which to insert the first new menu item.</param>
            <param name="idCmdFirst">The minimum value that the handler can specify for a menu item identifier.</param>
            <param name="idCmdLast">The maximum value that the handler can specify for a menu item identifier.</param>
            <param name="uFlags">Optional flags that specify how the shortcut menu can be changed. This parameter can be set to a combination of the following values. The remaining bits of the low-order word are reserved by the system. The high-order word can be used for context-specific communications. The CMF_RESERVED value can be used to mask the low-order word.</param>
            <returns>If successful, returns an HRESULT value that has its severity value set to SEVERITY_SUCCESS and its code value set to the offset of the largest command identifier that was assigned, plus one. For example, if idCmdFirst is set to 5 and you add three items to the menu with command identifiers of 5, 7, and 8, the return value should be MAKE_HRESULT(SEVERITY_SUCCESS, 0, 8 - 5 + 1). Otherwise, it returns a COM error value.</returns>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu.InvokeCommand(System.IntPtr)">
            <summary>
            Carries out the command associated with a shortcut menu item.
            </summary>
            <param name="pici">A pointer to a CMINVOKECOMMANDINFO or CMINVOKECOMMANDINFOEX structure containing information about the command. For further details, see the Remarks section.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.IContextMenu.GetCommandString(System.Int32,SharpShell.Interop.GCS,System.Int32,System.Text.StringBuilder,System.Int32)">
            <summary>
            Gets information about a shortcut menu command, including the help string and the language-independent, or canonical, name for the command.
            </summary>
            <param name="idcmd">Menu command identifier offset.</param>
            <param name="uflags">Flags specifying the information to return. This parameter can have one of the following values.</param>
            <param name="reserved">Reserved. Applications must specify NULL when calling this method and handlers must ignore this parameter when called.</param>
            <param name="commandstring">The address of the buffer to receive the null-terminated string being retrieved.</param>
            <param name="cch">Size of the buffer, in characters, to receive the null-terminated string.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.GILOutFlags">
            <summary>
            Output GIL flags.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILOutFlags.GIL_DONTCACHE">
            <summary>
            The physical image bits for this icon are not cached by the calling application.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILOutFlags.GIL_NOTFILENAME">
            <summary>
            The location is not a file name/index pair. The values in pszIconFile and piIndex cannot be passed to ExtractIcon or ExtractIconEx.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILOutFlags.GIL_PERCLASS">
            <summary>
            All objects of this class have the same icon. This flag is used internally by the Shell. Typical implementations of IExtractIcon do not require this flag because the flag implies that an icon handler is not required to resolve the icon on a per-object basis. The recommended method for implementing per-class icons is to register a DefaultIcon for the class.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILOutFlags.GIL_PERINSTANCE">
            <summary>
            Each object of this class has its own icon. This flag is used internally by the Shell to handle cases like Setup.exe, where objects with identical names can have different icons. Typical implementations of IExtractIcon do not require this flag.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILOutFlags.GIL_SIMULATEDOC">
            <summary>
            The calling application should create a document icon using the specified icon.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILOutFlags.GIL_SHIELD">
            <summary>
            Windows Vista only. The calling application must stamp the icon with the UAC shield.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.GILOutFlags.GIL_FORCENOSHIELD">
            <summary>
            Windows Vista only. The calling application must not stamp the icon with the UAC shield.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.IQueryInfo">
            <summary>
            Exposes methods that the Shell uses to retrieve flags and info tip information 
            for an item that resides in an IShellFolder implementation. Info tips are usually
            displayed inside a tooltip control.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IQueryInfo.GetInfoTip(SharpShell.Interop.QITIPF,System.String@)">
            <summary>
            Gets the info tip text for an item.
            </summary>
            <param name="dwFlags">Flags that direct the handling of the item from which you're retrieving the info tip text. This value is commonly zero.</param>
            <param name="ppwszTip">he address of a Unicode string pointer that, when this method returns successfully, receives the tip string pointer. Applications that implement this method must allocate memory for ppwszTip by calling CoTaskMemAlloc.
            Calling applications must call CoTaskMemFree to free the memory when it is no longer needed.</param>
            <returns>Returns S_OK if the function succeeds. If no info tip text is available, ppwszTip is set to NULL. Otherwise, returns a COM-defined error value.</returns>
        </member>
        <member name="M:SharpShell.Interop.IQueryInfo.GetInfoFlags(System.Int32@)">
            <summary>
            Gets the information flags for an item. This method is not currently used.
            </summary>
            <param name="pdwFlags">A pointer to a value that receives the flags for the item. If no flags are to be returned, this value should be set to zero.</param>
            <returns>Returns S_OK if pdwFlags returns any flag values, or a COM-defined error value otherwise.</returns>
        </member>
        <member name="T:SharpShell.Interop.IShellExtInit">
            <summary>
            Exposes a method that initializes Shell extensions for property sheets, shortcut menus, and drag-and-drop handlers (extensions that add items to shortcut menus during nondefault drag-and-drop operations).
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IShellExtInit.Initialize(System.IntPtr,System.IntPtr,System.IntPtr)">
            <summary>
            Initializes a property sheet extension, shortcut menu extension, or drag-and-drop handler.
            </summary>
            <param name="pidlFolder">A pointer to an ITEMIDLIST structure that uniquely identifies a folder. For property sheet extensions, this parameter is NULL. For shortcut menu extensions, it is the item identifier list for the folder that contains the item whose shortcut menu is being displayed. For nondefault drag-and-drop menu extensions, this parameter specifies the target folder.</param>
            <param name="pDataObj">A pointer to an IDataObject interface object that can be used to retrieve the objects being acted upon.</param>
            <param name="hKeyProgID">The registry key for the file object or folder type.</param>
        </member>
        <member name="T:SharpShell.Interop.IShellPropSheetExt">
            <summary>
            Exposes methods that allow a property sheet handler to add or replace pages in the property sheet displayed for a file object.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.IShellPropSheetExt.AddPages(System.IntPtr,System.IntPtr)">
            <summary>
            Adds one or more pages to a property sheet that the Shell displays for a file object. The Shell calls this method for each property sheet handler registered to the file type.
            </summary>
            <param name="pfnAddPage">A pointer to a function that the property sheet handler calls to add a page to the property sheet. The function takes a property sheet handle returned by the CreatePropertySheetPage function and the lParam parameter passed to this method.</param>
            <param name="lParam">Handler-specific data to pass to the function pointed to by pfnAddPage.</param>
            <returns>If successful, returns a one-based index to specify the page that should be initially displayed. See Remarks for more information.</returns>
        </member>
        <member name="M:SharpShell.Interop.IShellPropSheetExt.ReplacePage(System.UInt32,SharpShell.Interop.AddPropertySheetPageDelegate,System.IntPtr)">
            <summary>
            Replaces a page in a property sheet for a Control Panel object.
            </summary>
            <param name="uPageID">Not used.
             Microsoft Windows XP and earlier: A type EXPPS identifier of the page to replace. The values for this parameter for Control Panels can be found in the Cplext.h header file.</param>
            <param name="lpfnReplacePage">A pointer to a function that the property sheet handler calls to replace a page to the property sheet. The function takes a property sheet handle returned by the CreatePropertySheetPage function and the lParam parameter passed to the ReplacePage method.</param>
            <param name="lParam">The parameter to pass to the function specified by the pfnReplacePage parameter.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="T:SharpShell.Interop.PropSheetCallback">
            <summary>
            Property sheet callback proc.
            </summary>
            <param name="hwnd">The window handle.</param>
            <param name="uMsg">The message.</param>
            <param name="ppsp">The property sheet page.</param>
            <returns>The return code.</returns>
        </member>
        <member name="T:SharpShell.Interop.DialogProc">
            <summary>
            Dialog proc.
            </summary>
            <param name="hwndDlg">The window handle.</param>
            <param name="uMsg">The message.</param>
            <param name="wParam">The w param.</param>
            <param name="lParam">The l param.</param>
            <returns>True if the message was handled.</returns>
        </member>
        <member name="T:SharpShell.Interop.Kernel32">
            <summary>
            Imports from the win32 kernel32.dll library.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.EnumResourceTypes(System.IntPtr,SharpShell.Interop.Kernel32.EnumResTypeProc,System.IntPtr)">
            <summary>
            Enumerates resource types within a binary module. Starting with Windows Vista, this is typically a language-neutral Portable Executable (LN file), and the enumeration also includes resources from one of the corresponding language-specific resource files (.mui files)—if one exists—that contain localizable language resources. It is also possible to use hModule to specify a .mui file, in which case only that file is searched for resource types.
            </summary>
            <param name="hModule">A handle to a module to be searched. This handle must be obtained through LoadLibrary or LoadLibraryEx.</param>
            <param name="lpEnumFunc">A pointer to the callback function to be called for each enumerated resource type. For more information, see the EnumResTypeProc function.</param>
            <param name="lParam">An application-defined value passed to the callback function.</param>
            <returns>Returns TRUE if successful; otherwise, FALSE. To get extended error information, call GetLastError.</returns>
        </member>
        <member name="T:SharpShell.Interop.Kernel32.EnumResTypeProc">
            <summary>
            An application-defined callback function used with the EnumResourceTypes and EnumResourceTypesEx functions. It receives resource types. The ENUMRESTYPEPROC type defines a pointer to this callback function. EnumResTypeProc is a placeholder for the application-defined function name.
            </summary>
            <param name="hModule">A handle to the module whose executable file contains the resources for which the types are to be enumerated. If this parameter is NULL, the function enumerates the resource types in the module used to create the current process.</param>
            <param name="lpszType">The type of resource for which the type is being enumerated. Alternately, rather than a pointer, this parameter can be MAKEINTRESOURCE(ID), where ID is the integer identifier of the given resource type. For standard resource types, see Resource Types. For more information, see the Remarks section below.</param>
            <param name="lParam">An application-defined parameter passed to the EnumResourceTypes or EnumResourceTypesEx function. This parameter can be used in error checking.</param>
            <returns>Returns TRUE to continue enumeration or FALSE to stop enumeration.</returns>
        </member>
        <member name="T:SharpShell.Interop.Kernel32.EnumResNameProc">
            <summary>
            An application-defined callback function used with the EnumResourceNames and EnumResourceNamesEx functions. It receives the type and name of a resource. The ENUMRESNAMEPROC type defines a pointer to this callback function. EnumResNameProc is a placeholder for the application-defined function name.
            </summary>
            <param name="hModule">A handle to the module whose executable file contains the resources that are being enumerated. If this parameter is NULL, the function enumerates the resource names in the module used to create the current process.</param>
            <param name="type">The type of resource for which the name is being enumerated. Alternately, rather than a pointer, this parameter can be MAKEINTRESOURCE(ID), where ID is an integer value representing a predefined resource type. For standard resource types, see Resource Types. For more information, see the Remarks section below.</param>
            <param name="name">The name of a resource of the type being enumerated. Alternately, rather than a pointer, this parameter can be MAKEINTRESOURCE(ID), where ID is the integer identifier of the resource. For more information, see the Remarks section below.</param>
            <param name="lParam">An application-defined parameter passed to the EnumResourceNames or EnumResourceNamesEx function. This parameter can be used in error checking.</param>
            <returns>Returns TRUE to continue enumeration or FALSE to stop enumeration.</returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.EnumResourceNames(System.IntPtr,System.IntPtr,SharpShell.Interop.Kernel32.EnumResNameProc,System.IntPtr)">
            <summary>
            Enumerates resources of a specified type within a binary module. For Windows Vista and later, this is typically a language-neutral Portable Executable (LN file), and the enumeration will also include resources from the corresponding language-specific resource files (.mui files) that contain localizable language resources. It is also possible for hModule to specify an .mui file, in which case only that file is searched for resources.
            </summary>
            <param name="hModule">A handle to a module to be searched. Starting with Windows Vista, if this is an LN file, then appropriate .mui files (if any exist) are included in the search.
            If this parameter is NULL, that is equivalent to passing in a handle to the module used to create the current process.</param>
            <param name="type">The type of the resource for which the name is being enumerated. Alternately, rather than a pointer, this parameter can be MAKEINTRESOURCE(ID), where ID is an integer value representing a predefined resource type. For a list of predefined resource types, see Resource Types. For more information, see</param>
            <param name="lpEnumFunc">A pointer to the callback function to be called for each enumerated resource name or ID. For more information, see EnumResNameProc.</param>
            <param name="lParam">An application-defined value passed to the callback function. This parameter can be used in error checking.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.LoadLibrary(System.String)">
            <summary>
            Loads the specified module into the address space of the calling process. The specified module may cause other modules to be loaded.
            For additional load options, use the LoadLibraryEx function.
            </summary>
            <param name="lpFileName">The name of the module. This can be either a library module (a .dll file) or an executable module (an .exe file). The name specified is the file name of the module and is not related to the name stored in the library module itself, as specified by the LIBRARY keyword in the module-definition (.def) file.
            If the string specifies a full path, the function searches only that path for the module.
            If the string specifies a relative path or a module name without a path, the function uses a standard search strategy to find the module; for more information, see the Remarks.
            If the function cannot find the module, the function fails.When specifying a path, be sure to use backslashes (), not forward slashes (/). For more information about paths, see Naming a File or Directory.
            If the string specifies a module name without a path and the file name extension is omitted, the function appends the default library extension .dll to the module name.To prevent the function from appending .dll to the module name, include a trailing point character (.) in the module name string.
            </param>
            <returns>If the function succeeds, the return value is a handle to the module.
            If the function fails, the return value is NULL.To get extended error information, call GetLastError.</returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.LoadLibraryEx(System.String,System.IntPtr,SharpShell.Interop.LoadLibraryFlags)">
            <summary>
            Loads the specified module into the address space of the calling process. The specified module may cause other modules to be loaded.
            </summary>
            <param name="lpFileName">Loads the specified module into the address space of the calling process. The specified module may cause other modules to be loaded.</param>
            <param name="hReservedNull">This parameter is reserved for future use. It must be NULL.</param>
            <param name="dwFlags">The action to be taken when loading the module. If no flags are specified, the behavior of this function is identical to that of the LoadLibrary function.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.GetProcAddress(System.IntPtr,System.String)">
            <summary>
            Loads the specified module into the address space of the calling process. The specified module may cause other modules to be loaded.
            </summary>
            <param name="hModule">A handle to the DLL module that contains the function or variable. The LoadLibrary, LoadLibraryEx, LoadPackagedLibrary, or GetModuleHandle function returns this handle.
            The GetProcAddress function does not retrieve addresses from modules that were loaded using the LOAD_LIBRARY_AS_DATAFILE flag.For more information, see LoadLibraryEx.</param>
            <param name="procedureName">The function or variable name, or the function's ordinal value. If this parameter is an ordinal value, it must be in the low-order word; the high-order word must be zero.</param>
            <returns>If the function succeeds, the return value is the address of the exported function or variable
            If the function fails, the return value is NULL.To get extended error information, call GetLastError.</returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.CopyMemory(System.IntPtr,System.IntPtr,System.UInt32)">
            <summary>
            Copies a block of memory from one location to another
            </summary>
            <param name="dest">A pointer to the starting address of the copied block's destination.</param>
            <param name="src">A pointer to the starting address of the block of memory to copy.</param>
            <param name="count">The size of the block of memory to copy, in bytes.</param>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.FreeLibrary(System.IntPtr)">
            <summary>
            Frees the loaded dynamic-link library (DLL) module and, if necessary, decrements its reference count. When the reference count reaches zero, the module is unloaded from the address space of the calling process and the handle is no longer valid.
            </summary>
            <param name="hModule">A handle to the loaded library module. The LoadLibrary, LoadLibraryEx, GetModuleHandle, or GetModuleHandleEx function returns this handle.</param>
            <returns>If the function succeeds, the return value is nonzero.
                If the function fails, the return value is zero.To get extended error information, call the GetLastError function.</returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.FindResource(System.IntPtr,System.IntPtr,System.IntPtr)">
            <summary>
            Determines the location of a resource with the specified type and name in the specified module.
            To specify a language, use the FindResourceEx function.
            </summary>
            <param name="hModule">A handle to the module whose portable executable file or an accompanying MUI file contains the resource. If this parameter is NULL, the function searches the module used to create the current process.</param>
            <param name="lpName">The name of the resource. Alternately, rather than a pointer, this parameter can be MAKEINTRESOURCE(ID), where ID is the integer identifier of the resource. For more information, see the Remarks section below.</param>
            <param name="lpType">The resource type. Alternately, rather than a pointer, this parameter can be MAKEINTRESOURCE(ID), where ID is the integer identifier of the given resource type. For standard resource types, see Resource Types.For more information, see the Remarks section below.</param>
            <returns>If the function succeeds, the return value is a handle to the specified resource's information block. To obtain a handle to the resource, pass this handle to the LoadResource function.
            If the function fails, the return value is NULL.To get extended error information, call GetLastError.</returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.LoadResource(System.IntPtr,System.IntPtr)">
            <summary>
            Retrieves a handle that can be used to obtain a pointer to the first byte of the specified resource in memory.
            </summary>
            <param name="hModule">A handle to the module whose executable file contains the resource.If hModule is NULL, the system loads the resource from the module that was used to create the current process.</param>
            <param name="hResInfo">A handle to the resource to be loaded. This handle is returned by the FindResource or FindResourceEx function.</param>
            <returns>If the function succeeds, the return value is a handle to the data associated with the resource. If the function fails, the return value is NULL.To get extended error information, call GetLastError.</returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.LockResource(System.IntPtr)">
            <summary>
            Retrieves a pointer to the specified resource in memory.
            </summary>
            <param name="hResData">A handle to the resource to be accessed. The LoadResource function returns this handle. Note that this parameter is listed as an HGLOBAL variable only for backward compatibility. Do not pass any value as a parameter other than a successful return value from the LoadResource function.</param>
            <returns>If the loaded resource is available, the return value is a pointer to the first byte of the resource; otherwise, it is NULL.</returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.GetProcessHeap">
            <summary>
            Retrieves a handle to the default heap of the calling process. This handle can then be used in subsequent calls to the heap functions.
            </summary>
            <returns>If the function succeeds, the return value is a handle to the calling process's heap.
            If the function fails, the return value is NULL.To get extended error information, call GetLastError.</returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.HeapAlloc(System.IntPtr,System.UInt32,System.UIntPtr)">
            <summary>
            Allocates a block of memory from a heap. The allocated memory is not movable.
            </summary>
            <param name="hHeap">A handle to the heap from which the memory will be allocated. This handle is returned by the HeapCreate or GetProcessHeap function.</param>
            <param name="dwFlags">The heap allocation options. Specifying any of these values will override the corresponding value specified when the heap was created with HeapCreate.</param>
            <param name="dwBytes">The number of bytes to be allocated.
            If the heap specified by the hHeap parameter is a "non-growable" heap, dwBytes must be less than 0x7FFF8. You create a non-growable heap by calling the HeapCreate function with a nonzero value.</param>
            <returns>If the function succeeds, the return value is a pointer to the allocated memory block.
            If the function fails and you have not specified HEAP_GENERATE_EXCEPTIONS, the return value is NULL.</returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.HeapFree(System.IntPtr,System.UInt32,System.IntPtr)">
            <summary>
            Frees a memory block allocated from a heap by the HeapAlloc or HeapReAlloc function.
            </summary>
            <param name="hHeap">A handle to the heap whose memory block is to be freed. This handle is returned by either the HeapCreate or GetProcessHeap function.</param>
            <param name="dwFlags">The heap free options. Specifying the following value overrides the corresponding value specified in the flOptions parameter when the heap was created by using the HeapCreate function.</param>
            <param name="lpMem">A pointer to the memory block to be freed. This pointer is returned by the HeapAlloc or HeapReAlloc function. If this pointer is NULL, the behavior is undefined.</param>
            <returns>If the function succeeds, the return value is nonzero.
            If the function fails, the return value is zero.An application can call GetLastError for extended error information.</returns>
        </member>
        <member name="M:SharpShell.Interop.Kernel32.SizeofResource(System.IntPtr,System.IntPtr)">
            <summary>
            Retrieves the size, in bytes, of the specified resource
            </summary>
            <param name="hModule">A handle to the module whose executable file contains the resource.</param>
            <param name="hResInfo">A handle to the resource. This handle must be created by using the FindResource or FindResourceEx function.</param>
            <returns>If the function succeeds, the return value is the number of bytes in the resource.
            If the function fails, the return value is zero.To get extended error information, call GetLastError.</returns>
        </member>
        <member name="T:SharpShell.Interop.LoadLibraryFlags">
            <summary>
            This parameter can be one of the following values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.None">
            <summary>
            No values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.DONT_RESOLVE_DLL_REFERENCES">
            <summary>
            If this value is used, and the executable module is a DLL, the system does not call DllMain for process and thread initialization and termination. Also, the system does not load additional executable modules that are referenced by the specified module.
            Note  Do not use this value; it is provided only for backward compatibility. If you are planning to access only data or resources in the DLL, use LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE or LOAD_LIBRARY_AS_IMAGE_RESOURCE or both. Otherwise, load the library as a DLL or executable module using the LoadLibrary function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.LOAD_IGNORE_CODE_AUTHZ_LEVEL">
            <summary>
            If this value is used, the system does not check AppLocker rules or apply Software Restriction Policies for the DLL. This action applies only to the DLL being loaded and not to its dependencies. This value is recommended for use in setup programs that must run extracted DLLs during installation.
            Windows Server 2008 R2 and Windows 7:  On systems with KB2532445 installed, the caller must be running as "LocalSystem" or "TrustedInstaller"; otherwise the system ignores this flag. For more information, see "You can circumvent AppLocker rules by using an Office macro on a computer that is running Windows 7 or Windows Server 2008 R2" in the Help and Support Knowledge Base at http://support.microsoft.com/kb/2532445.
            Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  AppLocker was introduced in Windows 7 and Windows Server 2008 R2.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.LOAD_LIBRARY_AS_DATAFILE">
            <summary>
            If this value is used, the system maps the file into the calling process's virtual address space as if it were a data file. Nothing is done to execute or prepare to execute the mapped file. Therefore, you cannot call functions like GetModuleFileName, GetModuleHandle or GetProcAddress with this DLL. Using this value causes writes to read-only memory to raise an access violation. Use this flag when you want to load a DLL only to extract messages or resources from it.
            This value can be used with LOAD_LIBRARY_AS_IMAGE_RESOURCE. For more information, see Remarks.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE">
            <summary>
            Similar to LOAD_LIBRARY_AS_DATAFILE, except that the DLL file is opened with exclusive write access for the calling process. Other processes cannot open the DLL file for write access while it is in use. However, the DLL can still be opened by other processes.
            This value can be used with LOAD_LIBRARY_AS_IMAGE_RESOURCE. For more information, see Remarks.
            Windows Server 2003 and Windows XP:  This value is not supported until Windows Vista.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.LOAD_LIBRARY_AS_IMAGE_RESOURCE">
            <summary>
            If this value is used, the system maps the file into the process's virtual address space as an image file. However, the loader does not load the static imports or perform the other usual initialization steps. Use this flag when you want to load a DLL only to extract messages or resources from it.
            Unless the application depends on the file having the in-memory layout of an image, this value should be used with either LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE or LOAD_LIBRARY_AS_DATAFILE. For more information, see the Remarks section.
            Windows Server 2003 and Windows XP:  This value is not supported until Windows Vista.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.LOAD_LIBRARY_SEARCH_APPLICATION_DIR">
            <summary>
            If this value is used, the application's installation directory is searched for the DLL and its dependencies. Directories in the standard search path are not searched. This value cannot be combined with LOAD_WITH_ALTERED_SEARCH_PATH.
            Windows 7, Windows Server 2008 R2, Windows Vista and Windows Server 2008:  This value requires KB2533623 to be installed.
            Windows Server 2003 and Windows XP:  This value is not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.LOAD_LIBRARY_SEARCH_DEFAULT_DIRS">
            <summary>
            This value is a combination of LOAD_LIBRARY_SEARCH_APPLICATION_DIR, LOAD_LIBRARY_SEARCH_SYSTEM32, and LOAD_LIBRARY_SEARCH_USER_DIRS. Directories in the standard search path are not searched. This value cannot be combined with LOAD_WITH_ALTERED_SEARCH_PATH.
            This value represents the recommended maximum number of directories an application should include in its DLL search path.
            Windows 7, Windows Server 2008 R2, Windows Vista and Windows Server 2008:  This value requires KB2533623 to be installed.
            Windows Server 2003 and Windows XP:  This value is not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR">
            <summary>
            If this value is used, the directory that contains the DLL is temporarily added to the beginning of the list of directories that are searched for the DLL's dependencies. Directories in the standard search path are not searched.
            The lpFileName parameter must specify a fully qualified path. This value cannot be combined with LOAD_WITH_ALTERED_SEARCH_PATH.
            For example, if Lib2.dll is a dependency of C:\Dir1\Lib1.dll, loading Lib1.dll with this value causes the system to search for Lib2.dll only in C:\Dir1. To search for Lib2.dll in C:\Dir1 and all of the directories in the DLL search path, combine this value with LOAD_LIBRARY_DEFAULT_DIRS
            Windows 7, Windows Server 2008 R2, Windows Vista and Windows Server 2008:  This value requires KB2533623 to be installed.
            Windows Server 2003 and Windows XP:  This value is not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.LOAD_LIBRARY_SEARCH_SYSTEM32">
            <summary>
            If this value is used, %windows%\system32 is searched for the DLL and its dependencies. Directories in the standard search path are not searched. This value cannot be combined with LOAD_WITH_ALTERED_SEARCH_PATH.
            Windows 7, Windows Server 2008 R2, Windows Vista and Windows Server 2008:  This value requires KB2533623 to be installed.
            Windows Server 2003 and Windows XP:  This value is not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.LOAD_LIBRARY_SEARCH_USER_DIRS">
            <summary>
            If this value is used, directories added using the AddDllDirectory or the SetDllDirectory function are searched for the DLL and its dependencies. If more than one directory has been added, the order in which the directories are searched is unspecified. Directories in the standard search path are not searched. This value cannot be combined with LOAD_WITH_ALTERED_SEARCH_PATH.
            Windows 7, Windows Server 2008 R2, Windows Vista and Windows Server 2008:  This value requires KB2533623 to be installed.
            Windows Server 2003 and Windows XP:  This value is not supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.LoadLibraryFlags.LOAD_WITH_ALTERED_SEARCH_PATH">
            <summary>
            If this value is used and lpFileName specifies an absolute path, the system uses the alternate file search strategy discussed in the Remarks section to find associated executable modules that the specified module causes to be loaded. If this value is used and lpFileName specifies a relative path, the behavior is undefined.
            If this value is not used, or if lpFileName does not specify a path, the system uses the standard search strategy discussed in the Remarks section to find associated executable modules that the specified module causes to be loaded.
            This value cannot be combined with any LOAD_LIBRARY_SEARCH flag.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.MENUITEMINFO">
            <summary>
            Contains information about a menu item.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.cbSize">
            <summary>
            The size of the structure, in bytes. The caller must set this member to sizeof(MENUITEMINFO).
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.fMask">
            <summary>
            Indicates the members to be retrieved or set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.fType">
            <summary>
            The menu item type.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.fState">
            <summary>
            The menu item state. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.wID">
            <summary>
            An application-defined value that identifies the menu item. Set fMask to MIIM_ID to use wID.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.hSubMenu">
            <summary>
            A handle to the drop-down menu or submenu associated with the menu item. If the menu item is not an item that opens a drop-down menu or submenu, this member is NULL. Set fMask to MIIM_SUBMENU to use hSubMenu.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.hbmpChecked">
            <summary>
            A handle to the bitmap to display next to the item if it is selected. If this member is NULL, a default bitmap is used. If the MFT_RADIOCHECK type value is specified, the default bitmap is a bullet. Otherwise, it is a check mark. Set fMask to MIIM_CHECKMARKS to use hbmpChecked.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.hbmpUnchecked">
            <summary>
            A handle to the bitmap to display next to the item if it is not selected. If this member is NULL, no bitmap is used. Set fMask to MIIM_CHECKMARKS to use hbmpUnchecked.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.dwItemData">
            <summary>
            An application-defined value associated with the menu item. Set fMask to MIIM_DATA to use dwItemData.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.dwTypeData">
            <summary>
            The contents of the menu item. The meaning of this member depends on the value of fType and is used only if the MIIM_TYPE flag is set in the fMask member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.cch">
            <summary>
            The length of the menu item text, in characters, when information is received about a menu item of the MFT_STRING type. However, cch is used only if the MIIM_TYPE flag is set in the fMask member and is zero otherwise. Also, cch is ignored when the content of a menu item is set by calling SetMenuItemInfo.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MENUITEMINFO.hbmpItem">
            <summary>
            A handle to the bitmap to be displayed, or it can be one of the values in the following table. It is used when the MIIM_BITMAP flag is set in the fMask member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MFS.MFS_ENABLED">
            <summary>
            Indicates that the menu item is enabled and restored from a grayed state so that it can be selected.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MFS.MFS_GRAYED">
            <summary>
            Indicates that the menu item is disabled and grayed so that it cannot be selected.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.MFS.MFS_DISABLED">
            <summary>
            Indicates that the menu item is disabled, but not grayed, so it cannot be selected.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.Ole32">
            <summary>
            Ole32 imports.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.Ole32.ReleaseStgMedium(System.Runtime.InteropServices.ComTypes.STGMEDIUM@)">
            <summary>
            Releases the STG medium.
            </summary>
            <param name="pmedium">The pmedium.</param>
        </member>
        <member name="M:SharpShell.Interop.Ole32.CoCreateInstance(System.Guid,System.Object,SharpShell.Interop.CLSCTX,System.Guid,System.Object@)">
            <summary>
            Coes the create instance.
            </summary>
            <param name="rclsid">The rclsid.</param>
            <param name="pUnkOuter">The p unk outer.</param>
            <param name="dwClsContext">The dw CLS context.</param>
            <param name="riid">The riid.</param>
            <param name="rReturnedComObject">The r returned COM object.</param>
            <returns></returns>
        </member>
        <member name="T:SharpShell.Interop.POINT">
            <summary>
            The POINT structure defines the x- and y- coordinates of a point.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.POINT.X">
            <summary>
            The x-coordinate of the point.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.POINT.Y">
            <summary>
            The y-coordinate of the point.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.PROPSHEETPAGE">
            <summary>
            Defines a page in a property sheet.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.dwSize">
            <summary>
            Size, in bytes, of this structure.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.dwFlags">
            <summary>
            Flags that indicate which options to use when creating the property sheet page. This member can be a combination of the following values.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.hInstance">
            <summary>
            Handle to the instance from which to load an icon or string resource. If the pszIcon, pszTitle, pszHeaderTitle, or pszHeaderSubTitle member identifies a resource to load, hInstance must be specified.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.pTemplate">
            <summary>
            Dialog box template to use to create the page. This member can specify either the resource identifier of the template or the address of a string that specifies the name of the template. If the PSP_DLGINDIRECT flag in the dwFlags member is set, pszTemplate is ignored. This member is declared as a union with pResource.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.hIcon">
            <summary>
            Handle to the icon to use as the icon in the tab of the page. If the dwFlags member does not include PSP_USEHICON, this member is ignored. This member is declared as a union with pszIcon.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.pszTitle">
            <summary>
            Title of the property sheet dialog box. This title overrides the title specified in the dialog box template. This member can specify either the identifier of a string resource or the address of a string that specifies the title. To use this member, you must set the PSP_USETITLE flag in the dwFlags member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.pfnDlgProc">
            <summary>
            Pointer to the dialog box procedure for the page. Because the pages are created as modeless dialog boxes, the dialog box procedure must not call the EndDialog function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.lParam">
            <summary>
            When the page is created, a copy of the page's PROPSHEETPAGE structure is passed to the dialog box procedure with a WM_INITDIALOG message. The lParam member is provided to allow you to pass application-specific information to the dialog box procedure. It has no effect on the page itself. For more information, see Property Sheet Creation.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.pfnCallback">
            <summary>
            Pointer to an application-defined callback function that is called when the page is created and when it is about to be destroyed. For more information about the callback function, see PropSheetPageProc. To use this member, you must set the PSP_USECALLBACK flag in the dwFlags member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.pcRefParent">
            <summary>
            Pointer to the reference count value. To use this member, you must set the PSP_USEREFPARENT flag in the dwFlags member.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.pszHeaderTitle">
            <summary>
            Version 5.80 or later. Title of the header area. To use this member under the Wizard97-style wizard, you must also do the following:
                 Set the PSP_USEHEADERTITLE flag in the dwFlags member.
                 Set the PSH_WIZARD97 flag in the dwFlags member of the page's PROPSHEETHEADER structure.
                 Make sure that the PSP_HIDEHEADER flag in the dwFlags member is not set.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PROPSHEETPAGE.pszHeaderSubTitle">
            <summary>
            Version 5.80. Subtitle of the header area. To use this member, you must do the following:
                Set the PSP_USEHEADERSUBTITLE flag in the dwFlags member.
                Set the PSH_WIZARD97 flag in the dwFlags member of the page's PROPSHEETHEADER structure.
                Make sure that the PSP_HIDEHEADER flag in the dwFlags member is not set.
            Note  This member is ignored when using the Aero-style wizard (PSH_AEROWIZARD).
            </summary>
        </member>
        <member name="T:SharpShell.Interop.PSPCB">
            <summary>
            Action flag.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSPCB.PSPCB_ADDREF">
            <summary>
            Version 5.80 or later. A page is being created. The return value is not used.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSPCB.PSPCB_RELEASE">
            <summary>
            A page is being destroyed. The return value is ignored.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.PSPCB.PSPCB_CREATE">
            <summary>
            A dialog box for a page is being created. Return nonzero to allow it to be created, or zero to prevent it.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.Shell32">
            <summary>
            Methods imported from Shell32.dll.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.Shell32.DragQueryFile(System.IntPtr,System.UInt32,System.Text.StringBuilder,System.UInt32)">
            <summary>
            Retrieves the names of dropped files that result from a successful drag-and-drop operation.
            </summary>
            <param name="hDrop">Identifier of the structure that contains the file names of the dropped files.</param>
            <param name="iFile">Index of the file to query. If the value of this parameter is 0xFFFFFFFF, DragQueryFile returns a count of the files dropped. If the value of this parameter is between zero and the total number of files dropped, DragQueryFile copies the file name with the corresponding value to the buffer pointed to by the lpszFile parameter.</param>
            <param name="lpszFile">The address of a buffer that receives the file name of a dropped file when the function returns. This file name is a null-terminated string. If this parameter is NULL, DragQueryFile returns the required size, in characters, of this buffer.</param>
            <param name="cch">The size, in characters, of the lpszFile buffer.</param>
            <returns>A nonzero value indicates a successful call.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.ShellExecuteEx(SharpShell.Interop.SHELLEXECUTEINFO@)">
            <summary>
            Performs an operation on a specified file.
            </summary>
            <param name="pExecInfo">A pointer to a SHELLEXECUTEINFO structure that contains and receives information about the application being executed.</param>
            <returns>Returns TRUE if successful; otherwise, FALSE. Call GetLastError for extended error information.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHGetKnownFolderIDList(System.Guid,SharpShell.Interop.KNOWN_FOLDER_FLAG,System.IntPtr,System.IntPtr@)">
            <summary>
            Retrieves the path of a known folder as an ITEMIDLIST structure.
            </summary>
            <param name="rfid">A reference to the KNOWNFOLDERID that identifies the folder. The folders associated with the known folder IDs might not exist on a particular system.</param>
            <param name="dwFlags">Flags that specify special retrieval options. This value can be 0; otherwise, it is one or more of the KNOWN_FOLDER_FLAG values.</param>
            <param name="hToken">An access token used to represent a particular user. This parameter is usually set to NULL, in which case the function tries to access the current user's instance of the folder.</param>
            <param name="ppidl">When this method returns, contains a pointer to the PIDL of the folder. This parameter is passed uninitialized. The caller is responsible for freeing the returned PIDL when it is no longer needed by calling ILFree.</param>
            <returns>Returns S_OK if successful, or an error value otherwise, including the following:</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHGetKnownFolderPath(System.Guid,SharpShell.Interop.KNOWN_FOLDER_FLAG,System.IntPtr,System.String@)">
            <summary>
            Retrieves the full path of a known folder identified by the folder's KNOWNFOLDERID.
            </summary>
            <param name="rfid">A reference to the KNOWNFOLDERID that identifies the folder. The folders associated with the known folder IDs might not exist on a particular system.</param>
            <param name="dwFlags">Flags that specify special retrieval options. This value can be 0; otherwise, it is one or more of the KNOWN_FOLDER_FLAG values.</param>
            <param name="hToken">An access token used to represent a particular user. This parameter is usually set to NULL, in which case the function tries to access the current user's instance of the folder.</param>
            <param name="pszPath">When this method returns, contains the address of a pointer to a null-terminated Unicode string that specifies the path of the known folder. The calling process is responsible for freeing this resource once it is no longer needed by calling CoTaskMemFree. The returned path does not include a trailing backslash. For example, "C:\Users" is returned rather than "C:\Users\".</param>
            <returns>Returns S_OK if successful, or an error value otherwise, including the following:</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.ILFree(System.IntPtr)">
            <summary>
            Frees an ITEMIDLIST structure allocated by the Shell.
            </summary>
            <param name="pidl">A pointer to the ITEMIDLIST structure to be freed. This parameter can be NULL.</param>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHCreateShellFolderView(SharpShell.Interop.SFV_CREATE@,SharpShell.Interop.IShellView@)">
            <summary>
            Creates a new instance of the default Shell folder view object (DefView).
            </summary>
            <param name="pcsfv">Pointer to a SFV_CREATE structure that describes the particulars used in creating this instance of the Shell folder view object.</param>
            <param name="ppsv">When this function returns successfully, contains an interface pointer to the new IShellView object. On failure, this value is NULL.</param>
            <returns>If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHCreateShellFolderViewEx(SharpShell.Interop.CSFV,SharpShell.Interop.IShellView@)">
            <summary>
            Creates a new instance of the default Shell folder view object. It is recommended that you use SHCreateShellFolderView rather than this function.
            </summary>
            <param name="pcsfv">Pointer to a structure that describes the details used in creating this instance of the Shell folder view object.</param>
            <param name="ppsv">The address of an IShellView interface pointer that, when this function returns successfully, points to the new view object. On failure, this value is NULL.</param>
            <returns>If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHGetDesktopFolder(SharpShell.Interop.IShellFolder@)">
            <summary>
            Retrieves the IShellFolder interface for the desktop folder, which is the root of the Shell's namespace.
            </summary>
            <param name="ppshf">When this method returns, receives an IShellFolder interface pointer for the desktop folder. The calling application is responsible for eventually freeing the interface by calling its IUnknown::Release method.</param>
            <returns>If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHGetFolderLocation(System.IntPtr,SharpShell.Interop.CSIDL,System.IntPtr,System.UInt32,System.IntPtr@)">
            <summary>
            Deprecated. Retrieves the path of a folder as an ITEMIDLIST structure
            </summary>
            <param name="hwndOwner">Reserved.</param>
            <param name="nFolder">A CSIDL value that identifies the folder to be located. The folders associated with the CSIDLs might not exist on a particular system.</param>
            <param name="hToken">An access token that can be used to represent a particular user.</param>
            <param name="dwReserved">Reserved.</param>
            <param name="ppidl">The address of a pointer to an item identifier list structure that specifies the folder's location relative to the root of the namespace (the desktop). The ppidl parameter is set to NULL on failure. The calling application is responsible for freeing this resource by calling ILFree.</param>
            <returns>Returns S_OK if successful, or an error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHGetPathFromIDList(System.IntPtr,System.Text.StringBuilder)">
            <summary>
            Converts an item identifier list to a file system path.
            </summary>
            <param name="pidl">The address of an item identifier list that specifies a file or directory location relative to the root of the namespace (the desktop).</param>
            <param name="pszPath">The address of a buffer to receive the file system path. This buffer must be at least MAX_PATH characters in size.</param>
            <returns>Returns TRUE if successful; otherwise, FALSE.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHStrDup(System.String,System.IntPtr@)">
            <summary>
            Makes a copy of a string in newly allocated memory.
            </summary>
            <param name="pszSource">A pointer to the null-terminated string to be copied.</param>
            <param name="ppwsz">A pointer to an allocated Unicode string that contains the result. SHStrDup allocates memory for this string with CoTaskMemAlloc. You should free the string with CoTaskMemFree when it is no longer needed. In the case of failure, this value is NULL.</param>
            <returns>Returns S_OK if successful, or a COM error value otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHCreateDefaultContextMenu(SharpShell.Interop.DEFCONTEXTMENU,System.Guid,System.IntPtr@)">
            <summary>
            Creates an object that represents the Shell's default context menu implementation.
            </summary>
            <param name="pdcm">A pointer to a constant DEFCONTEXTMENU structure.</param>
            <param name="riid">Reference to the interface ID of the interface on which to base the object. This is typically the IID of IContextMenu, IContextMenu2, or IContextMenu3.</param>
            <param name="ppv">When this method returns, contains the interface pointer requested in riid.</param>
            <returns>If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.AssocCreateForClasses(SharpShell.Interop.ASSOCIATIONELEMENT[],System.UInt32,System.Guid,System.IntPtr@)">
            <summary>
            Retrieves an object that implements an IQueryAssociations interface.
            </summary>
            <param name="rgClasses">A pointer to an array of ASSOCIATIONELEMENT structures.</param>
            <param name="cClasses">The number of elements in the array pointed to by rgClasses.</param>
            <param name="riid">Reference to the desired IID, normally IID_IQueryAssociations.</param>
            <param name="ppv">When this method returns, contains the interface pointer requested in riid. This is normally IQueryAssociations.</param>
            <returns>If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.ILIsEqual(System.IntPtr,System.IntPtr)">
            <summary>
            Tests whether two ITEMIDLIST structures are equal in a binary comparison.
            </summary>
            <param name="pidl1">The first ITEMIDLIST structure.</param>
            <param name="pidl2">The second ITEMIDLIST structure.</param>
            <returns>Returns TRUE if the two structures are equal, FALSE otherwise.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.ILCombine(System.IntPtr,System.IntPtr)">
            <summary>
            Combines two ITEMIDLIST structures.
            </summary>
            <param name="pidl1">A pointer to the first ITEMIDLIST structure.</param>
            <param name="pidl2">A pointer to the second ITEMIDLIST structure. This structure is appended to the structure pointed to by pidl1.</param>
            <returns>Returns an ITEMIDLIST containing the combined structures. If you set either pidl1 or pidl2 to NULL, the returned ITEMIDLIST structure is a clone of the non-NULL parameter. Returns NULL if pidl1 and pidl2 are both set to NULL.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.ILClone(System.IntPtr)">
            <summary>
            Clones an ITEMIDLIST structure.
            </summary>
            <param name="pidl">A pointer to the ITEMIDLIST structure to be cloned.</param>
            <returns>Returns a pointer to a copy of the ITEMIDLIST structure pointed to by pidl.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHGetFileInfo(System.String,System.UInt32,SharpShell.Interop.SHFILEINFO@,System.UInt32,SharpShell.Interop.SHGFI)">
            <summary>
            Retrieves information about an object in the file system, such as a file, folder, directory, or drive root.
            </summary>
            <param name="pszPath">A pointer to a null-terminated string of maximum length MAX_PATH that contains the path and file name. Both absolute and relative paths are valid.
            If the uFlags parameter includes the SHGFI_PIDL flag, this parameter must be the address of an ITEMIDLIST (PIDL) structure that contains the list of item identifiers that uniquely identifies the file within the Shell's namespace. The PIDL must be a fully qualified PIDL. Relative PIDLs are not allowed.
            If the uFlags parameter includes the SHGFI_USEFILEATTRIBUTES flag, this parameter does not have to be a valid file name. The function will proceed as if the file exists with the specified name and with the file attributes passed in the dwFileAttributes parameter. This allows you to obtain information about a file type by passing just the extension for pszPath and passing FILE_ATTRIBUTE_NORMAL in dwFileAttributes.
            This string can use either short (the 8.3 form) or long file names.</param>
            <param name="dwFileAttribs">A combination of one or more file attribute flags (FILE_ATTRIBUTE_ values as defined in Winnt.h). If uFlags does not include the SHGFI_USEFILEATTRIBUTES flag, this parameter is ignored.</param>
            <param name="psfi">A combination of one or more file attribute flags (FILE_ATTRIBUTE_ values as defined in Winnt.h). If uFlags does not include the SHGFI_USEFILEATTRIBUTES flag, this parameter is ignored.</param>
            <param name="cbFileInfo">A combination of one or more file attribute flags (FILE_ATTRIBUTE_ values as defined in Winnt.h). If uFlags does not include the SHGFI_USEFILEATTRIBUTES flag, this parameter is ignored.</param>
            <param name="uFlags">A combination of one or more file attribute flags (FILE_ATTRIBUTE_ values as defined in Winnt.h). If uFlags does not include the SHGFI_USEFILEATTRIBUTES flag, this parameter is ignored.</param>
            <returns>A combination of one or more file attribute flags (FILE_ATTRIBUTE_ values as defined in Winnt.h). If uFlags does not include the SHGFI_USEFILEATTRIBUTES flag, this parameter is ignored.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHGetFileInfo(System.IntPtr,System.UInt32,SharpShell.Interop.SHFILEINFO@,System.UInt32,SharpShell.Interop.SHGFI)">
            <summary>
            Retrieves information about an object in the file system, such as a file, folder, directory, or drive root.
            </summary>
            <param name="pszPath">A pointer to a null-terminated string of maximum length MAX_PATH that contains the path and file name. Both absolute and relative paths are valid.
            If the uFlags parameter includes the SHGFI_PIDL flag, this parameter must be the address of an ITEMIDLIST (PIDL) structure that contains the list of item identifiers that uniquely identifies the file within the Shell's namespace. The PIDL must be a fully qualified PIDL. Relative PIDLs are not allowed.
            If the uFlags parameter includes the SHGFI_USEFILEATTRIBUTES flag, this parameter does not have to be a valid file name. The function will proceed as if the file exists with the specified name and with the file attributes passed in the dwFileAttributes parameter. This allows you to obtain information about a file type by passing just the extension for pszPath and passing FILE_ATTRIBUTE_NORMAL in dwFileAttributes.
            This string can use either short (the 8.3 form) or long file names.</param>
            <param name="dwFileAttribs">A combination of one or more file attribute flags (FILE_ATTRIBUTE_ values as defined in Winnt.h). If uFlags does not include the SHGFI_USEFILEATTRIBUTES flag, this parameter is ignored.</param>
            <param name="psfi">A combination of one or more file attribute flags (FILE_ATTRIBUTE_ values as defined in Winnt.h). If uFlags does not include the SHGFI_USEFILEATTRIBUTES flag, this parameter is ignored.</param>
            <param name="cbFileInfo">A combination of one or more file attribute flags (FILE_ATTRIBUTE_ values as defined in Winnt.h). If uFlags does not include the SHGFI_USEFILEATTRIBUTES flag, this parameter is ignored.</param>
            <param name="uFlags">A combination of one or more file attribute flags (FILE_ATTRIBUTE_ values as defined in Winnt.h). If uFlags does not include the SHGFI_USEFILEATTRIBUTES flag, this parameter is ignored.</param>
            <returns>A combination of one or more file attribute flags (FILE_ATTRIBUTE_ values as defined in Winnt.h). If uFlags does not include the SHGFI_USEFILEATTRIBUTES flag, this parameter is ignored.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHGetImageList(System.Int32,System.Guid@,SharpShell.Interop.IImageList@)">
            <summary>
            Retrieves an image list.
            </summary>
            <param name="iImageList">The image type contained in the list. One of the following values:</param>
            <param name="riid">Reference to the image list interface identifier, normally IID_IImageList.</param>
            <param name="ppv">When this method returns, contains the interface pointer requested in riid. This is typically IImageList.</param>
            <returns>If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHGetSpecialFolderLocation(System.IntPtr,SharpShell.Interop.CSIDL,System.IntPtr@)">
            <summary>
            Retrieves a pointer to the ITEMIDLIST structure of a special folder.
            </summary>
            <param name="hwndOwner">Reserved.</param>
            <param name="nFolder">A CSIDL value that identifies the folder of interest.</param>
            <param name="ppidl">A PIDL specifying the folder's location relative to the root of the namespace (the desktop). It is the responsibility of the calling application to free the returned IDList by using CoTaskMemFree.</param>
            <returns>If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHCreateDefaultExtractIcon(System.Guid,SharpShell.Interop.IDefaultExtractIconInit@)">
            <summary>
            Creates a standard icon extractor, whose defaults can be further configured via the IDefaultExtractIconInit interface.
            </summary>
            <param name="guid">A reference to interface ID.</param>
            <param name="pdxi">The address of IDefaultExtractIconInit interface pointer.</param>
            <returns>If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHCreateDataObject(System.IntPtr,System.UInt32,System.IntPtr,System.Runtime.InteropServices.ComTypes.IDataObject,System.Guid,System.IntPtr@)">
            <summary>
            Creates a data object in a parent folder.
            </summary>
            <param name="pidlFolder">A pointer to an ITEMIDLIST (PIDL) of the parent folder that contains the data object.</param>
            <param name="cidl">The number of file objects or subfolders specified in the apidl parameter.</param>
            <param name="apidl">An array of pointers to constant ITEMIDLIST structures, each of which uniquely identifies a file object or subfolder relative to the parent folder. Each item identifier list must contain exactly one SHITEMID structure followed by a terminating zero.</param>
            <param name="pdtInner">A pointer to interface IDataObject. This parameter can be NULL. Specify pdtInner only if the data object created needs to support additional FORMATETC clipboard formats beyond the default formats it is assigned at creation. Alternatively, provide support for populating the created data object using non-default clipboard formats by calling method IDataObject::SetData and specifying the format in the FORMATETC structure passed in parameter pFormatetc.</param>
            <param name="riid">A reference to the IID of the interface to retrieve through ppv. This must be IID_IDataObject.</param>
            <param name="ppv">When this method returns successfully, contains the IDataObject interface pointer requested in riid.</param>
            <returns>If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.Interop.Shell32.SHChangeNotify(System.Int32,System.UInt32,System.IntPtr,System.IntPtr)">
            <summary>
            Notifies the system of an event that an application has performed. An application should use this function if it performs an action that may affect the Shell.
            </summary>
            <param name="wEventId">Describes the event that has occurred. Typically, only one event is specified at a time. If more than one event is specified, the values contained in the dwItem1 and dwItem2 parameters must be the same, respectively, for all specified events. This parameter can be one or more of the following values:</param>
            <param name="uFlags">Flags that, when combined bitwise with SHCNF_TYPE, indicate the meaning of the dwItem1 and dwItem2 parameters. The uFlags parameter must be one of the following values.</param>
            <param name="dwItem1">Optional. First event-dependent value.</param>
            <param name="dwItem2">Optional. Second event-dependent value.</param>
        </member>
        <member name="F:SharpShell.Interop.Shell32.SHCNE_ASSOCCHANGED">
            <summary>
            A file type association has changed. SHCNF_IDLIST must be specified in the uFlags parameter. dwItem1 and dwItem2 are not used and must be NULL. This event should also be sent for registered protocols.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.Shell32.IID_IQueryAssociations">
            <summary>
            Guid for IID_IQueryAssociations.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.Shell32.IID_IShellFolder">
            <summary>
            Guid for IID_IShellFolder.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.Shell32.IID_IImageList">
            <summary>
            Guid for IID_IImageList.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.Shell32.IID_ExtractIconW">
            <summary>
            Guid for IID_ExtractIconW.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.Shell32.IID_IDataObject">
            <summary>
            Guid for IID_IDataObject.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.Shell32.IID_IContextMenu">
            <summary>
            Guid for IID_IContextMenu.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.Shell32.IID_IShellBrowser">
            <summary>
            Guid for IID_IShellBrowser.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.Shell32.IID_IFolderView">
            <summary>
            Guid for IID_IFolderView.
            </summary>
        </member>
        <member name="T:SharpShell.Interop.STGM">
            <summary>
            Storage medium for a file.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.DIRECT">
            <summary>
            Indicates that, in direct mode, each change to a storage or stream element is written as it occurs. This is the default if neither STGM_DIRECT nor STGM_TRANSACTED is specified.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.TRANSACTED">
            <summary>
            Indicates that, in transacted mode, changes are buffered and written only if an explicit commit operation is called. To ignore the changes, call the Revert method in the IStream, IStorage, or IPropertyStorage interface. The COM compound file implementation of IStorage does not support transacted streams, which means that streams can be opened only in direct mode, and you cannot revert changes to them, however transacted storages are supported. The compound file, stand-alone, and NTFS file system implementations of IPropertySetStorage similarly do not support transacted, simple property sets because these property sets are stored in streams. However, transactioning of nonsimple property sets, which can be created by specifying the PROPSETFLAG_NONSIMPLE flag in the grfFlags parameter of IPropertySetStorage::Create, are supported.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.SIMPLE">
            <summary>
            Provides a faster implementation of a compound file in a limited, but frequently used, case. For more information, see the Remarks section.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.READ">
            <summary>
            Indicates that the object is read-only, meaning that modifications cannot be made.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.WRITE">
            <summary>
            Enables you to save changes to the object, but does not permit access to its data. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.READWRITE">
            <summary>
            Enables access and modification of object data. For example, if a stream object is created or opened in this mode, it is possible to call both IStream::Read and IStream::Write. Be aware that this constant is not a simple binary OR operation of the STGM_WRITE and STGM_READ elements.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.SHARE_DENY_NONE">
            <summary>
            Specifies that subsequent openings of the object are not denied read or write access. If no flag from the sharing group is specified, this flag is assumed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.SHARE_DENY_READ">
            <summary>
            Prevents others from subsequently opening the object in STGM_READ mode. It is typically used on a root storage object.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.SHARE_DENY_WRITE">
            <summary>
            Prevents others from subsequently opening the object for STGM_WRITE or STGM_READWRITE access. In transacted mode, sharing of STGM_SHARE_DENY_WRITE or STGM_SHARE_EXCLUSIVE can significantly improve performance because they do not require snapshots. For more information about transactioning, see the Remarks section.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.SHARE_EXCLUSIVE">
            <summary>
            Prevents others from subsequently opening the object in any mode. Be aware that this value is not a simple bitwise OR operation of the STGM_SHARE_DENY_READ and STGM_SHARE_DENY_WRITE values. In transacted mode, sharing of STGM_SHARE_DENY_WRITE or STGM_SHARE_EXCLUSIVE can significantly improve performance because they do not require snapshots. For more information about transactioning, see the Remarks section.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.PRIORITY">
            <summary>
            Opens the storage object with exclusive access to the most recently committed version. Thus, other users cannot commit changes to the object while you have it open in priority mode. You gain performance benefits for copy operations, but you prevent others from committing changes. Limit the time that objects are open in priority mode. You must specify STGM_DIRECT and STGM_READ with priority mode, and you cannot specify STGM_DELETEONRELEASE. STGM_DELETEONRELEASE is only valid when creating a root object, such as with StgCreateStorageEx. It is not valid when opening an existing root object, such as with StgOpenStorageEx. It is also not valid when creating or opening a subelement, such as with IStorage::OpenStorage.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.DELETEONRELEASE">
            <summary>
            Indicates that the underlying file is to be automatically destroyed when the root storage object is released. This feature is most useful for creating temporary files. This flag can only be used when creating a root object, such as with StgCreateStorageEx. It is not valid when opening a root object, such as with StgOpenStorageEx, or when creating or opening a subelement, such as with IStorage::CreateStream. It is also not valid to use this flag and the STGM_CONVERT flag simultaneously.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.NOSCRATCH">
            <summary>
            Indicates that, in transacted mode, a temporary scratch file is usually used to save modifications until the Commit method is called. Specifying STGM_NOSCRATCH permits the unused portion of the original file to be used as work space instead of creating a new file for that purpose. This does not affect the data in the original file, and in certain cases can result in improved performance. It is not valid to specify this flag without also specifying STGM_TRANSACTED, and this flag may only be used in a root open. For more information about NoScratch mode, see the Remarks section.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.CREATE">
            <summary>
            Indicates that an existing storage object or stream should be removed before the new object replaces it. A new object is created when this flag is specified only if the existing object has been successfully removed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.CONVERT">
            <summary>
            Creates the new object while preserving existing data in a stream named "Contents". In the case of a storage object or a byte array, the old data is formatted into a stream regardless of whether the existing file or byte array currently contains a layered storage object. This flag can only be used when creating a root storage object. It cannot be used within a storage object; for example, in IStorage::CreateStream. It is also not valid to use this flag and the STGM_DELETEONRELEASE flag simultaneously.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.FAILIFTHERE">
            <summary>
            Causes the create operation to fail if an existing object with the specified name exists. In this case, STG_E_FILEALREADYEXISTS is returned. This is the default creation mode; that is, if no other create flag is specified, STGM_FAILIFTHERE is implied.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.NOSNAPSHOT">
            <summary>
            This flag is used when opening a storage object with STGM_TRANSACTED and without STGM_SHARE_EXCLUSIVE or STGM_SHARE_DENY_WRITE. In this case, specifying STGM_NOSNAPSHOT prevents the system-provided implementation from creating a snapshot copy of the file. Instead, changes to the file are written to the end of the file. Unused space is not reclaimed unless consolidation is performed during the commit, and there is only one current writer on the file. When the file is opened in no snapshot mode, another open operation cannot be performed without specifying STGM_NOSNAPSHOT. This flag may only be used in a root open operation. For more information about NoSnapshot mode, see the Remarks section.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.STGM.DIRECT_SWMR">
            <summary>
            Supports direct mode for single-writer, multireader file operations. For more information, see the Remarks section.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.User32.LoadBitmap(System.IntPtr,System.IntPtr)">
            <summary>
            The LoadBitmap function loads the specified bitmap resource from a module's executable file.
            </summary>
            <param name="hInstance">A handle to the instance of the module whose executable file contains the bitmap to be loaded.</param>
            <param name="lpBitmapName">A pointer to a null-terminated string that contains the name of the bitmap resource to be loaded. Alternatively, this parameter can consist of the resource identifier in the low-order word and zero in the high-order word. The MAKEINTRESOURCE macro can be used to create this value.</param>
            <returns>If the function succeeds, the return value is the handle to the specified bitmap
            If the function fails, the return value is NULL.</returns>
        </member>
        <member name="M:SharpShell.Interop.User32.LoadIcon(System.IntPtr,System.IntPtr)">
            <summary>
            Loads the bitmap.
            </summary>
            <param name="hInstance">The h instance.</param>
            <param name="lpIconName">Name of the lp bitmap.</param>
            <returns>If the function succeeds, the return value is a handle to the newly loaded icon.
            If the function fails, the return value is NULL.To get extended error information, call GetLastError.</returns>
        </member>
        <member name="M:SharpShell.Interop.User32.SHGetPathFromIDListW(System.IntPtr,System.Text.StringBuilder)">
            <summary>
            Converts an item identifier list to a file system path. (Note: SHGetPathFromIDList calls the ANSI version, must call SHGetPathFromIDListW for .NET)
            </summary>
            <param name="pidl">Address of an item identifier list that specifies a file or directory location relative to the root of the namespace (the desktop).</param>
            <param name="pszPath">Address of a buffer to receive the file system path. This buffer must be at least MAX_PATH characters in size.</param>
            <returns>Returns TRUE if successful, or FALSE otherwise. </returns>
        </member>
        <member name="M:SharpShell.Interop.User32.GetParent(System.IntPtr)">
            <summary>
            Retrieves a handle to the specified window's parent or owner.
            </summary>
            <param name="hWnd">A handle to the window whose parent window handle is to be retrieved.</param>
            <returns>If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window with the WS_POPUP style, the return value is a handle to the owner window. If the function fails, the return value is NULL. To get extended error information, call GetLastError.</returns>
        </member>
        <member name="T:SharpShell.Interop.WM">
            <summary>
            Windows Messages
            Defined in winuser.h from Windows SDK v6.1
            Documentation pulled from MSDN.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NULL">
            <summary>
            The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CREATE">
            <summary>
            The WM_CREATE message is sent when an application requests that a window be created by calling the CreateWindowEx or CreateWindow function. (The message is sent before the function returns.) The window procedure of the new window receives this message after the window is created, but before the window becomes visible.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DESTROY">
            <summary>
            The WM_DESTROY message is sent when a window is being destroyed. It is sent to the window procedure of the window being destroyed after the window is removed from the screen. 
            This message is sent first to the window being destroyed and then to the child windows (if any) as they are destroyed. During the processing of the message, it can be assumed that all child windows still exist.
            /// </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MOVE">
            <summary>
            The WM_MOVE message is sent after a window has been moved. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SIZE">
            <summary>
            The WM_SIZE message is sent to a window after its size has changed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.ACTIVATE">
            <summary>
            The WM_ACTIVATE message is sent to both the window being activated and the window being deactivated. If the windows use the same input queue, the message is sent synchronously, first to the window procedure of the top-level window being deactivated, then to the window procedure of the top-level window being activated. If the windows use different input queues, the message is sent asynchronously, so the window is activated immediately. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SETFOCUS">
            <summary>
            The WM_SETFOCUS message is sent to a window after it has gained the keyboard focus. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.KILLFOCUS">
            <summary>
            The WM_KILLFOCUS message is sent to a window immediately before it loses the keyboard focus. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.ENABLE">
            <summary>
            The WM_ENABLE message is sent when an application changes the enabled state of a window. It is sent to the window whose enabled state is changing. This message is sent before the EnableWindow function returns, but after the enabled state (WS_DISABLED style bit) of the window has changed. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SETREDRAW">
            <summary>
            An application sends the WM_SETREDRAW message to a window to allow changes in that window to be redrawn or to prevent changes in that window from being redrawn. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SETTEXT">
            <summary>
            An application sends a WM_SETTEXT message to set the text of a window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.GETTEXT">
            <summary>
            An application sends a WM_GETTEXT message to copy the text that corresponds to a window into a buffer provided by the caller. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.GETTEXTLENGTH">
            <summary>
            An application sends a WM_GETTEXTLENGTH message to determine the length, in characters, of the text associated with a window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.PAINT">
            <summary>
            The WM_PAINT message is sent when the system or another application makes a request to paint a portion of an application's window. The message is sent when the UpdateWindow or RedrawWindow function is called, or by the DispatchMessage function when the application obtains a WM_PAINT message by using the GetMessage or PeekMessage function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CLOSE">
            <summary>
            The WM_CLOSE message is sent as a signal that a window or an application should terminate.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.QUERYENDSESSION">
            <summary>
            The WM_QUERYENDSESSION message is sent when the user chooses to end the session or when an application calls one of the system shutdown functions. If any application returns zero, the session is not ended. The system stops sending WM_QUERYENDSESSION messages as soon as one application returns zero.
            After processing this message, the system sends the WM_ENDSESSION message with the wParam parameter set to the results of the WM_QUERYENDSESSION message.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.QUERYOPEN">
            <summary>
            The WM_QUERYOPEN message is sent to an icon when the user requests that the window be restored to its previous size and position.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.ENDSESSION">
            <summary>
            The WM_ENDSESSION message is sent to an application after the system processes the results of the WM_QUERYENDSESSION message. The WM_ENDSESSION message informs the application whether the session is ending.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.QUIT">
            <summary>
            The WM_QUIT message indicates a request to terminate an application and is generated when the application calls the PostQuitMessage function. It causes the GetMessage function to return zero.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.ERASEBKGND">
            <summary>
            The WM_ERASEBKGND message is sent when the window background must be erased (for example, when a window is resized). The message is sent to prepare an invalidated portion of a window for painting. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SYSCOLORCHANGE">
            <summary>
            This message is sent to all top-level windows when a change is made to a system color setting. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SHOWWINDOW">
            <summary>
            The WM_SHOWWINDOW message is sent to a window when the window is about to be hidden or shown.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.WININICHANGE">
            <summary>
            An application sends the WM_WININICHANGE message to all top-level windows after making a change to the WIN.INI file. The SystemParametersInfo function sends this message after an application uses the function to change a setting in WIN.INI.
            Note  The WM_WININICHANGE message is provided only for compatibility with earlier versions of the system. Applications should use the WM_SETTINGCHANGE message.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SETTINGCHANGE">
            <summary>
            An application sends the WM_WININICHANGE message to all top-level windows after making a change to the WIN.INI file. The SystemParametersInfo function sends this message after an application uses the function to change a setting in WIN.INI.
            Note  The WM_WININICHANGE message is provided only for compatibility with earlier versions of the system. Applications should use the WM_SETTINGCHANGE message.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DEVMODECHANGE">
            <summary>
            The WM_DEVMODECHANGE message is sent to all top-level windows whenever the user changes device-mode settings. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.ACTIVATEAPP">
            <summary>
            The WM_ACTIVATEAPP message is sent when a window belonging to a different application than the active window is about to be activated. The message is sent to the application whose window is being activated and to the application whose window is being deactivated.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.FONTCHANGE">
            <summary>
            An application sends the WM_FONTCHANGE message to all top-level windows in the system after changing the pool of font resources. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.TIMECHANGE">
            <summary>
            A message that is sent whenever there is a change in the system time.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CANCELMODE">
            <summary>
            The WM_CANCELMODE message is sent to cancel certain modes, such as mouse capture. For example, the system sends this message to the active window when a dialog box or message box is displayed. Certain functions also send this message explicitly to the specified window regardless of whether it is the active window. For example, the EnableWindow function sends this message when disabling the specified window.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SETCURSOR">
            <summary>
            The WM_SETCURSOR message is sent to a window if the mouse causes the cursor to move within a window and mouse input is not captured. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MOUSEACTIVATE">
            <summary>
            The WM_MOUSEACTIVATE message is sent when the cursor is in an inactive window and the user presses a mouse button. The parent window receives this message only if the child window passes it to the DefWindowProc function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CHILDACTIVATE">
            <summary>
            The WM_CHILDACTIVATE message is sent to a child window when the user clicks the window's title bar or when the window is activated, moved, or sized.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.QUEUESYNC">
            <summary>
            The WM_QUEUESYNC message is sent by a computer-based training (CBT) application to separate user-input messages from other messages sent through the WH_JOURNALPLAYBACK Hook procedure. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.GETMINMAXINFO">
            <summary>
            The WM_GETMINMAXINFO message is sent to a window when the size or position of the window is about to change. An application can use this message to override the window's default maximized size and position, or its default minimum or maximum tracking size. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.PAINTICON">
            <summary>
            Windows NT 3.51 and earlier: The WM_PAINTICON message is sent to a minimized window when the icon is to be painted. This message is not sent by newer versions of Microsoft Windows, except in unusual circumstances explained in the Remarks.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.ICONERASEBKGND">
            <summary>
            Windows NT 3.51 and earlier: The WM_ICONERASEBKGND message is sent to a minimized window when the background of the icon must be filled before painting the icon. A window receives this message only if a class icon is defined for the window; otherwise, WM_ERASEBKGND is sent. This message is not sent by newer versions of Windows.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NEXTDLGCTL">
            <summary>
            The WM_NEXTDLGCTL message is sent to a dialog box procedure to set the keyboard focus to a different control in the dialog box. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SPOOLERSTATUS">
            <summary>
            The WM_SPOOLERSTATUS message is sent from Print Manager whenever a job is added to or removed from the Print Manager queue. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DRAWITEM">
            <summary>
            The WM_DRAWITEM message is sent to the parent window of an owner-drawn button, combo box, list box, or menu when a visual aspect of the button, combo box, list box, or menu has changed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MEASUREITEM">
            <summary>
            The WM_MEASUREITEM message is sent to the owner window of a combo box, list box, list view control, or menu item when the control or menu is created.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DELETEITEM">
            <summary>
            Sent to the owner of a list box or combo box when the list box or combo box is destroyed or when items are removed by the LB_DELETESTRING, LB_RESETCONTENT, CB_DELETESTRING, or CB_RESETCONTENT message. The system sends a WM_DELETEITEM message for each deleted item. The system sends the WM_DELETEITEM message for any deleted list box or combo box item with nonzero item data.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.VKEYTOITEM">
            <summary>
            Sent by a list box with the LBS_WANTKEYBOARDINPUT style to its owner in response to a WM_KEYDOWN message. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CHARTOITEM">
            <summary>
            Sent by a list box with the LBS_WANTKEYBOARDINPUT style to its owner in response to a WM_CHAR message. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SETFONT">
            <summary>
            An application sends a WM_SETFONT message to specify the font that a control is to use when drawing text. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.GETFONT">
            <summary>
            An application sends a WM_GETFONT message to a control to retrieve the font with which the control is currently drawing its text. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SETHOTKEY">
            <summary>
            An application sends a WM_SETHOTKEY message to a window to associate a hot key with the window. When the user presses the hot key, the system activates the window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.GETHOTKEY">
            <summary>
            An application sends a WM_GETHOTKEY message to determine the hot key associated with a window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.QUERYDRAGICON">
            <summary>
            The WM_QUERYDRAGICON message is sent to a minimized (iconic) window. The window is about to be dragged by the user but does not have an icon defined for its class. An application can return a handle to an icon or cursor. The system displays this cursor or icon while the user drags the icon.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.COMPAREITEM">
            <summary>
            The system sends the WM_COMPAREITEM message to determine the relative position of a new item in the sorted list of an owner-drawn combo box or list box. Whenever the application adds a new item, the system sends this message to the owner of a combo box or list box created with the CBS_SORT or LBS_SORT style. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.GETOBJECT">
            <summary>
            Active Accessibility sends the WM_GETOBJECT message to obtain information about an accessible object contained in a server application. 
            Applications never send this message directly. It is sent only by Active Accessibility in response to calls to AccessibleObjectFromPoint, AccessibleObjectFromEvent, or AccessibleObjectFromWindow. However, server applications handle this message. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.COMPACTING">
            <summary>
            The WM_COMPACTING message is sent to all top-level windows when the system detects more than 12.5 percent of system time over a 30- to 60-second interval is being spent compacting memory. This indicates that system memory is low.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.COMMNOTIFY">
            <summary>
            WM_COMMNOTIFY is Obsolete for Win32-Based Applications
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.WINDOWPOSCHANGING">
            <summary>
            The WM_WINDOWPOSCHANGING message is sent to a window whose size, position, or place in the Z order is about to change as a result of a call to the SetWindowPos function or another window-management function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.WINDOWPOSCHANGED">
            <summary>
            The WM_WINDOWPOSCHANGED message is sent to a window whose size, position, or place in the Z order has changed as a result of a call to the SetWindowPos function or another window-management function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.POWER">
            <summary>
            Notifies applications that the system, typically a battery-powered personal computer, is about to enter a suspended mode.
            Use: POWERBROADCAST
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.COPYDATA">
            <summary>
            An application sends the WM_COPYDATA message to pass data to another application. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CANCELJOURNAL">
            <summary>
            The WM_CANCELJOURNAL message is posted to an application when a user cancels the application's journaling activities. The message is posted with a NULL window handle. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NOTIFY">
            <summary>
            Sent by a common control to its parent window when an event has occurred or the control requires some information. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.INPUTLANGCHANGEREQUEST">
            <summary>
            The WM_INPUTLANGCHANGEREQUEST message is posted to the window with the focus when the user chooses a new input language, either with the hotkey (specified in the Keyboard control panel application) or from the indicator on the system taskbar. An application can accept the change by passing the message to the DefWindowProc function or reject the change (and prevent it from taking place) by returning immediately. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.INPUTLANGCHANGE">
            <summary>
            The WM_INPUTLANGCHANGE message is sent to the topmost affected window after an application's input language has been changed. You should make any application-specific settings and pass the message to the DefWindowProc function, which passes the message to all first-level child windows. These child windows can pass the message to DefWindowProc to have it pass the message to their child windows, and so on. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.TCARD">
            <summary>
            Sent to an application that has initiated a training card with Microsoft Windows Help. The message informs the application when the user clicks an authorable button. An application initiates a training card by specifying the HELP_TCARD command in a call to the WinHelp function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.HELP">
            <summary>
            Indicates that the user pressed the F1 key. If a menu is active when F1 is pressed, WM_HELP is sent to the window associated with the menu; otherwise, WM_HELP is sent to the window that has the keyboard focus. If no window has the keyboard focus, WM_HELP is sent to the currently active window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.USERCHANGED">
            <summary>
            The WM_USERCHANGED message is sent to all windows after the user has logged on or off. When the user logs on or off, the system updates the user-specific settings. The system sends this message immediately after updating the settings.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NOTIFYFORMAT">
            <summary>
            Determines if a window accepts ANSI or Unicode structures in the WM_NOTIFY notification message. WM_NOTIFYFORMAT messages are sent from a common control to its parent window and from the parent window to the common control.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CONTEXTMENU">
            <summary>
            The WM_CONTEXTMENU message notifies a window that the user clicked the right mouse button (right-clicked) in the window.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.STYLECHANGING">
            <summary>
            The WM_STYLECHANGING message is sent to a window when the SetWindowLong function is about to change one or more of the window's styles.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.STYLECHANGED">
            <summary>
            The WM_STYLECHANGED message is sent to a window after the SetWindowLong function has changed one or more of the window's styles
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DISPLAYCHANGE">
            <summary>
            The WM_DISPLAYCHANGE message is sent to all windows when the display resolution has changed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.GETICON">
            <summary>
            The WM_GETICON message is sent to a window to retrieve a handle to the large or small icon associated with a window. The system displays the large icon in the ALT+TAB dialog, and the small icon in the window caption. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SETICON">
            <summary>
            An application sends the WM_SETICON message to associate a new large or small icon with a window. The system displays the large icon in the ALT+TAB dialog box, and the small icon in the window caption. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCCREATE">
            <summary>
            The WM_NCCREATE message is sent prior to the WM_CREATE message when a window is first created.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCDESTROY">
            <summary>
            The WM_NCDESTROY message informs a window that its nonclient area is being destroyed. The DestroyWindow function sends the WM_NCDESTROY message to the window following the WM_DESTROY message. WM_DESTROY is used to free the allocated memory object associated with the window. 
            The WM_NCDESTROY message is sent after the child windows have been destroyed. In contrast, WM_DESTROY is sent before the child windows are destroyed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCCALCSIZE">
            <summary>
            The WM_NCCALCSIZE message is sent when the size and position of a window's client area must be calculated. By processing this message, an application can control the content of the window's client area when the size or position of the window changes.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCHITTEST">
            <summary>
            The WM_NCHITTEST message is sent to a window when the cursor moves, or when a mouse button is pressed or released. If the mouse is not captured, the message is sent to the window beneath the cursor. Otherwise, the message is sent to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCPAINT">
            <summary>
            The WM_NCPAINT message is sent to a window when its frame must be painted. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCACTIVATE">
            <summary>
            The WM_NCACTIVATE message is sent to a window when its nonclient area needs to be changed to indicate an active or inactive state.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.GETDLGCODE">
            <summary>
            The WM_GETDLGCODE message is sent to the window procedure associated with a control. By default, the system handles all keyboard input to the control; the system interprets certain types of keyboard input as dialog box navigation keys. To override this default behavior, the control can respond to the WM_GETDLGCODE message to indicate the types of input it wants to process itself.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SYNCPAINT">
            <summary>
            The WM_SYNCPAINT message is used to synchronize painting while avoiding linking independent GUI threads.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCMOUSEMOVE">
            <summary>
            The WM_NCMOUSEMOVE message is posted to a window when the cursor is moved within the nonclient area of the window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCLBUTTONDOWN">
            <summary>
            The WM_NCLBUTTONDOWN message is posted when the user presses the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCLBUTTONUP">
            <summary>
            The WM_NCLBUTTONUP message is posted when the user releases the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCLBUTTONDBLCLK">
            <summary>
            The WM_NCLBUTTONDBLCLK message is posted when the user double-clicks the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCRBUTTONDOWN">
            <summary>
            The WM_NCRBUTTONDOWN message is posted when the user presses the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCRBUTTONUP">
            <summary>
            The WM_NCRBUTTONUP message is posted when the user releases the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCRBUTTONDBLCLK">
            <summary>
            The WM_NCRBUTTONDBLCLK message is posted when the user double-clicks the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCMBUTTONDOWN">
            <summary>
            The WM_NCMBUTTONDOWN message is posted when the user presses the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCMBUTTONUP">
            <summary>
            The WM_NCMBUTTONUP message is posted when the user releases the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCMBUTTONDBLCLK">
            <summary>
            The WM_NCMBUTTONDBLCLK message is posted when the user double-clicks the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCXBUTTONDOWN">
            <summary>
            The WM_NCXBUTTONDOWN message is posted when the user presses the first or second X button while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCXBUTTONUP">
            <summary>
            The WM_NCXBUTTONUP message is posted when the user releases the first or second X button while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCXBUTTONDBLCLK">
            <summary>
            The WM_NCXBUTTONDBLCLK message is posted when the user double-clicks the first or second X button while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.INPUT_DEVICE_CHANGE">
            <summary>
            The WM_INPUT_DEVICE_CHANGE message is sent to the window that registered to receive raw input. A window receives this message through its WindowProc function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.INPUT">
            <summary>
            The WM_INPUT message is sent to the window that is getting raw input. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.KEYFIRST">
            <summary>
            This message filters for keyboard messages.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.KEYDOWN">
            <summary>
            The WM_KEYDOWN message is posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.KEYUP">
            <summary>
            The WM_KEYUP message is posted to the window with the keyboard focus when a nonsystem key is released. A nonsystem key is a key that is pressed when the ALT key is not pressed, or a keyboard key that is pressed when a window has the keyboard focus. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CHAR">
            <summary>
            The WM_CHAR message is posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. The WM_CHAR message contains the character code of the key that was pressed. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DEADCHAR">
            <summary>
            The WM_DEADCHAR message is posted to the window with the keyboard focus when a WM_KEYUP message is translated by the TranslateMessage function. WM_DEADCHAR specifies a character code generated by a dead key. A dead key is a key that generates a character, such as the umlaut (double-dot), that is combined with another character to form a composite character. For example, the umlaut-O character (Ö) is generated by typing the dead key for the umlaut character, and then typing the O key. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SYSKEYDOWN">
            <summary>
            The WM_SYSKEYDOWN message is posted to the window with the keyboard focus when the user presses the F10 key (which activates the menu bar) or holds down the ALT key and then presses another key. It also occurs when no window currently has the keyboard focus; in this case, the WM_SYSKEYDOWN message is sent to the active window. The window that receives the message can distinguish between these two contexts by checking the context code in the lParam parameter. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SYSKEYUP">
            <summary>
            The WM_SYSKEYUP message is posted to the window with the keyboard focus when the user releases a key that was pressed while the ALT key was held down. It also occurs when no window currently has the keyboard focus; in this case, the WM_SYSKEYUP message is sent to the active window. The window that receives the message can distinguish between these two contexts by checking the context code in the lParam parameter. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SYSCHAR">
            <summary>
            The WM_SYSCHAR message is posted to the window with the keyboard focus when a WM_SYSKEYDOWN message is translated by the TranslateMessage function. It specifies the character code of a system character key — that is, a character key that is pressed while the ALT key is down. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SYSDEADCHAR">
            <summary>
            The WM_SYSDEADCHAR message is sent to the window with the keyboard focus when a WM_SYSKEYDOWN message is translated by the TranslateMessage function. WM_SYSDEADCHAR specifies the character code of a system dead key — that is, a dead key that is pressed while holding down the ALT key. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.UNICHAR">
            <summary>
            The WM_UNICHAR message is posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. The WM_UNICHAR message contains the character code of the key that was pressed. 
            The WM_UNICHAR message is equivalent to WM_CHAR, but it uses Unicode Transformation Format (UTF)-32, whereas WM_CHAR uses UTF-16. It is designed to send or post Unicode characters to ANSI windows and it can can handle Unicode Supplementary Plane characters.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.KEYLAST">
            <summary>
            This message filters for keyboard messages.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_STARTCOMPOSITION">
            <summary>
            Sent immediately before the IME generates the composition string as a result of a keystroke. A window receives this message through its WindowProc function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_ENDCOMPOSITION">
            <summary>
            Sent to an application when the IME ends composition. A window receives this message through its WindowProc function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_COMPOSITION">
            <summary>
            Sent to an application when the IME changes composition status as a result of a keystroke. A window receives this message through its WindowProc function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_KEYLAST">
            <summary>
            Not documented.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.INITDIALOG">
            <summary>
            The WM_INITDIALOG message is sent to the dialog box procedure immediately before a dialog box is displayed. Dialog box procedures typically use this message to initialize controls and carry out any other initialization tasks that affect the appearance of the dialog box. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.COMMAND">
            <summary>
            The WM_COMMAND message is sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is translated. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SYSCOMMAND">
            <summary>
            A window receives this message when the user chooses a command from the Window menu, clicks the maximize button, minimize button, restore button, close button, or moves the form. You can stop the form from moving by filtering this out.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.TIMER">
            <summary>
            The WM_TIMER message is posted to the installing thread's message queue when a timer expires. The message is posted by the GetMessage or PeekMessage function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.HSCROLL">
            <summary>
            The WM_HSCROLL message is sent to a window when a scroll event occurs in the window's standard horizontal scroll bar. This message is also sent to the owner of a horizontal scroll bar control when a scroll event occurs in the control. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.VSCROLL">
            <summary>
            The WM_VSCROLL message is sent to a window when a scroll event occurs in the window's standard vertical scroll bar. This message is also sent to the owner of a vertical scroll bar control when a scroll event occurs in the control. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.INITMENU">
            <summary>
            The WM_INITMENU message is sent when a menu is about to become active. It occurs when the user clicks an item on the menu bar or presses a menu key. This allows the application to modify the menu before it is displayed. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.INITMENUPOPUP">
            <summary>
            The WM_INITMENUPOPUP message is sent when a drop-down menu or submenu is about to become active. This allows an application to modify the menu before it is displayed, without changing the entire menu. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MENUSELECT">
            <summary>
            The WM_MENUSELECT message is sent to a menu's owner window when the user selects a menu item. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MENUCHAR">
            <summary>
            The WM_MENUCHAR message is sent when a menu is active and the user presses a key that does not correspond to any mnemonic or accelerator key. This message is sent to the window that owns the menu. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.ENTERIDLE">
            <summary>
            The WM_ENTERIDLE message is sent to the owner window of a modal dialog box or menu that is entering an idle state. A modal dialog box or menu enters an idle state when no messages are waiting in its queue after it has processed one or more previous messages. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MENURBUTTONUP">
            <summary>
            The WM_MENURBUTTONUP message is sent when the user releases the right mouse button while the cursor is on a menu item. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MENUDRAG">
            <summary>
            The WM_MENUDRAG message is sent to the owner of a drag-and-drop menu when the user drags a menu item. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MENUGETOBJECT">
            <summary>
            The WM_MENUGETOBJECT message is sent to the owner of a drag-and-drop menu when the mouse cursor enters a menu item or moves from the center of the item to the top or bottom of the item. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.UNINITMENUPOPUP">
            <summary>
            The WM_UNINITMENUPOPUP message is sent when a drop-down menu or submenu has been destroyed. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MENUCOMMAND">
            <summary>
            The WM_MENUCOMMAND message is sent when the user makes a selection from a menu. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CHANGEUISTATE">
            <summary>
            An application sends the WM_CHANGEUISTATE message to indicate that the user interface (UI) state should be changed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.UPDATEUISTATE">
            <summary>
            An application sends the WM_UPDATEUISTATE message to change the user interface (UI) state for the specified window and all its child windows.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.QUERYUISTATE">
            <summary>
            An application sends the WM_QUERYUISTATE message to retrieve the user interface (UI) state for a window.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CTLCOLORMSGBOX">
            <summary>
            The WM_CTLCOLORMSGBOX message is sent to the owner window of a message box before Windows draws the message box. By responding to this message, the owner window can set the text and background colors of the message box by using the given display device context handle. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CTLCOLOREDIT">
            <summary>
            An edit control that is not read-only or disabled sends the WM_CTLCOLOREDIT message to its parent window when the control is about to be drawn. By responding to this message, the parent window can use the specified device context handle to set the text and background colors of the edit control. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CTLCOLORLISTBOX">
            <summary>
            Sent to the parent window of a list box before the system draws the list box. By responding to this message, the parent window can set the text and background colors of the list box by using the specified display device context handle. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CTLCOLORBTN">
            <summary>
            The WM_CTLCOLORBTN message is sent to the parent window of a button before drawing the button. The parent window can change the button's text and background colors. However, only owner-drawn buttons respond to the parent window processing this message. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CTLCOLORDLG">
            <summary>
            The WM_CTLCOLORDLG message is sent to a dialog box before the system draws the dialog box. By responding to this message, the dialog box can set its text and background colors using the specified display device context handle. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CTLCOLORSCROLLBAR">
            <summary>
            The WM_CTLCOLORSCROLLBAR message is sent to the parent window of a scroll bar control when the control is about to be drawn. By responding to this message, the parent window can use the display context handle to set the background color of the scroll bar control. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CTLCOLORSTATIC">
            <summary>
            A static control, or an edit control that is read-only or disabled, sends the WM_CTLCOLORSTATIC message to its parent window when the control is about to be drawn. By responding to this message, the parent window can use the specified device context handle to set the text and background colors of the static control. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MOUSEFIRST">
            <summary>
            Use WM_MOUSEFIRST to specify the first mouse message. Use the PeekMessage() Function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MOUSEMOVE">
            <summary>
            The WM_MOUSEMOVE message is posted to a window when the cursor moves. If the mouse is not captured, the message is posted to the window that contains the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.LBUTTONDOWN">
            <summary>
            The WM_LBUTTONDOWN message is posted when the user presses the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.LBUTTONUP">
            <summary>
            The WM_LBUTTONUP message is posted when the user releases the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.LBUTTONDBLCLK">
            <summary>
            The WM_LBUTTONDBLCLK message is posted when the user double-clicks the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.RBUTTONDOWN">
            <summary>
            The WM_RBUTTONDOWN message is posted when the user presses the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.RBUTTONUP">
            <summary>
            The WM_RBUTTONUP message is posted when the user releases the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.RBUTTONDBLCLK">
            <summary>
            The WM_RBUTTONDBLCLK message is posted when the user double-clicks the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MBUTTONDOWN">
            <summary>
            The WM_MBUTTONDOWN message is posted when the user presses the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MBUTTONUP">
            <summary>
            The WM_MBUTTONUP message is posted when the user releases the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MBUTTONDBLCLK">
            <summary>
            The WM_MBUTTONDBLCLK message is posted when the user double-clicks the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MOUSEWHEEL">
            <summary>
            The WM_MOUSEWHEEL message is sent to the focus window when the mouse wheel is rotated. The DefWindowProc function propagates the message to the window's parent. There should be no internal forwarding of the message, since DefWindowProc propagates it up the parent chain until it finds a window that processes it.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.XBUTTONDOWN">
            <summary>
            The WM_XBUTTONDOWN message is posted when the user presses the first or second X button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.XBUTTONUP">
            <summary>
            The WM_XBUTTONUP message is posted when the user releases the first or second X button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.XBUTTONDBLCLK">
            <summary>
            The WM_XBUTTONDBLCLK message is posted when the user double-clicks the first or second X button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MOUSEHWHEEL">
            <summary>
            The WM_MOUSEHWHEEL message is sent to the focus window when the mouse's horizontal scroll wheel is tilted or rotated. The DefWindowProc function propagates the message to the window's parent. There should be no internal forwarding of the message, since DefWindowProc propagates it up the parent chain until it finds a window that processes it.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MOUSELAST">
            <summary>
            Use WM_MOUSELAST to specify the last mouse message. Used with PeekMessage() Function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.PARENTNOTIFY">
            <summary>
            The WM_PARENTNOTIFY message is sent to the parent of a child window when the child window is created or destroyed, or when the user clicks a mouse button while the cursor is over the child window. When the child window is being created, the system sends WM_PARENTNOTIFY just before the CreateWindow or CreateWindowEx function that creates the window returns. When the child window is being destroyed, the system sends the message before any processing to destroy the window takes place.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.ENTERMENULOOP">
            <summary>
            The WM_ENTERMENULOOP message informs an application's main window procedure that a menu modal loop has been entered. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.EXITMENULOOP">
            <summary>
            The WM_EXITMENULOOP message informs an application's main window procedure that a menu modal loop has been exited. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NEXTMENU">
            <summary>
            The WM_NEXTMENU message is sent to an application when the right or left arrow key is used to switch between the menu bar and the system menu. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SIZING">
            <summary>
            The WM_SIZING message is sent to a window that the user is resizing. By processing this message, an application can monitor the size and position of the drag rectangle and, if needed, change its size or position. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CAPTURECHANGED">
            <summary>
            The WM_CAPTURECHANGED message is sent to the window that is losing the mouse capture.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MOVING">
            <summary>
            The WM_MOVING message is sent to a window that the user is moving. By processing this message, an application can monitor the position of the drag rectangle and, if needed, change its position.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.POWERBROADCAST">
            <summary>
            Notifies applications that a power-management event has occurred.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DEVICECHANGE">
            <summary>
            Notifies an application of a change to the hardware configuration of a device or the computer.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDICREATE">
            <summary>
            An application sends the WM_MDICREATE message to a multiple-document interface (MDI) client window to create an MDI child window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDIDESTROY">
            <summary>
            An application sends the WM_MDIDESTROY message to a multiple-document interface (MDI) client window to close an MDI child window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDIACTIVATE">
            <summary>
            An application sends the WM_MDIACTIVATE message to a multiple-document interface (MDI) client window to instruct the client window to activate a different MDI child window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDIRESTORE">
            <summary>
            An application sends the WM_MDIRESTORE message to a multiple-document interface (MDI) client window to restore an MDI child window from maximized or minimized size. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDINEXT">
            <summary>
            An application sends the WM_MDINEXT message to a multiple-document interface (MDI) client window to activate the next or previous child window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDIMAXIMIZE">
            <summary>
            An application sends the WM_MDIMAXIMIZE message to a multiple-document interface (MDI) client window to maximize an MDI child window. The system resizes the child window to make its client area fill the client window. The system places the child window's window menu icon in the rightmost position of the frame window's menu bar, and places the child window's restore icon in the leftmost position. The system also appends the title bar text of the child window to that of the frame window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDITILE">
            <summary>
            An application sends the WM_MDITILE message to a multiple-document interface (MDI) client window to arrange all of its MDI child windows in a tile format. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDICASCADE">
            <summary>
            An application sends the WM_MDICASCADE message to a multiple-document interface (MDI) client window to arrange all its child windows in a cascade format. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDIICONARRANGE">
            <summary>
            An application sends the WM_MDIICONARRANGE message to a multiple-document interface (MDI) client window to arrange all minimized MDI child windows. It does not affect child windows that are not minimized. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDIGETACTIVE">
            <summary>
            An application sends the WM_MDIGETACTIVE message to a multiple-document interface (MDI) client window to retrieve the handle to the active MDI child window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDISETMENU">
            <summary>
            An application sends the WM_MDISETMENU message to a multiple-document interface (MDI) client window to replace the entire menu of an MDI frame window, to replace the window menu of the frame window, or both. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.ENTERSIZEMOVE">
            <summary>
            The WM_ENTERSIZEMOVE message is sent one time to a window after it enters the moving or sizing modal loop. The window enters the moving or sizing modal loop when the user clicks the window's title bar or sizing border, or when the window passes the WM_SYSCOMMAND message to the DefWindowProc function and the wParam parameter of the message specifies the SC_MOVE or SC_SIZE value. The operation is complete when DefWindowProc returns. 
            The system sends the WM_ENTERSIZEMOVE message regardless of whether the dragging of full windows is enabled.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.EXITSIZEMOVE">
            <summary>
            The WM_EXITSIZEMOVE message is sent one time to a window, after it has exited the moving or sizing modal loop. The window enters the moving or sizing modal loop when the user clicks the window's title bar or sizing border, or when the window passes the WM_SYSCOMMAND message to the DefWindowProc function and the wParam parameter of the message specifies the SC_MOVE or SC_SIZE value. The operation is complete when DefWindowProc returns. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DROPFILES">
            <summary>
            Sent when the user drops a file on the window of an application that has registered itself as a recipient of dropped files.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MDIREFRESHMENU">
            <summary>
            An application sends the WM_MDIREFRESHMENU message to a multiple-document interface (MDI) client window to refresh the window menu of the MDI frame window. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_SETCONTEXT">
            <summary>
            Sent to an application when a window is activated. A window receives this message through its WindowProc function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_NOTIFY">
            <summary>
            Sent to an application to notify it of changes to the IME window. A window receives this message through its WindowProc function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_CONTROL">
            <summary>
            Sent by an application to direct the IME window to carry out the requested command. The application uses this message to control the IME window that it has created. To send this message, the application calls the SendMessage function with the following parameters.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_COMPOSITIONFULL">
            <summary>
            Sent to an application when the IME window finds no space to extend the area for the composition window. A window receives this message through its WindowProc function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_SELECT">
            <summary>
            Sent to an application when the operating system is about to change the current IME. A window receives this message through its WindowProc function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_CHAR">
            <summary>
            Sent to an application when the IME gets a character of the conversion result. A window receives this message through its WindowProc function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_REQUEST">
            <summary>
            Sent to an application to provide commands and request information. A window receives this message through its WindowProc function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_KEYDOWN">
            <summary>
            Sent to an application by the IME to notify the application of a key press and to keep message order. A window receives this message through its WindowProc function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.IME_KEYUP">
            <summary>
            Sent to an application by the IME to notify the application of a key release and to keep message order. A window receives this message through its WindowProc function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MOUSEHOVER">
            <summary>
            The WM_MOUSEHOVER message is posted to a window when the cursor hovers over the client area of the window for the period of time specified in a prior call to TrackMouseEvent.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.MOUSELEAVE">
            <summary>
            The WM_MOUSELEAVE message is posted to a window when the cursor leaves the client area of the window specified in a prior call to TrackMouseEvent.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCMOUSEHOVER">
            <summary>
            The WM_NCMOUSEHOVER message is posted to a window when the cursor hovers over the nonclient area of the window for the period of time specified in a prior call to TrackMouseEvent.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.NCMOUSELEAVE">
            <summary>
            The WM_NCMOUSELEAVE message is posted to a window when the cursor leaves the nonclient area of the window specified in a prior call to TrackMouseEvent.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.WTSSESSION_CHANGE">
            <summary>
            The WM_WTSSESSION_CHANGE message notifies applications of changes in session state.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.TABLET_FIRST">
            <summary>
            Tablet first.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.TABLET_LAST">
            <summary>
            Tablet last.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CUT">
            <summary>
            An application sends a WM_CUT message to an edit control or combo box to delete (cut) the current selection, if any, in the edit control and copy the deleted text to the clipboard in CF_TEXT format. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.COPY">
            <summary>
            An application sends the WM_COPY message to an edit control or combo box to copy the current selection to the clipboard in CF_TEXT format. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.PASTE">
            <summary>
            An application sends a WM_PASTE message to an edit control or combo box to copy the current content of the clipboard to the edit control at the current caret position. Data is inserted only if the clipboard contains data in CF_TEXT format. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CLEAR">
            <summary>
            An application sends a WM_CLEAR message to an edit control or combo box to delete (clear) the current selection, if any, from the edit control. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.UNDO">
            <summary>
            An application sends a WM_UNDO message to an edit control to undo the last operation. When this message is sent to an edit control, the previously deleted text is restored or the previously added text is deleted.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.RENDERFORMAT">
            <summary>
            The WM_RENDERFORMAT message is sent to the clipboard owner if it has delayed rendering a specific clipboard format and if an application has requested data in that format. The clipboard owner must render data in the specified format and place it on the clipboard by calling the SetClipboardData function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.RENDERALLFORMATS">
            <summary>
            The WM_RENDERALLFORMATS message is sent to the clipboard owner before it is destroyed, if the clipboard owner has delayed rendering one or more clipboard formats. For the content of the clipboard to remain available to other applications, the clipboard owner must render data in all the formats it is capable of generating, and place the data on the clipboard by calling the SetClipboardData function. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DESTROYCLIPBOARD">
            <summary>
            The WM_DESTROYCLIPBOARD message is sent to the clipboard owner when a call to the EmptyClipboard function empties the clipboard. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DRAWCLIPBOARD">
            <summary>
            The WM_DRAWCLIPBOARD message is sent to the first window in the clipboard viewer chain when the content of the clipboard changes. This enables a clipboard viewer window to display the new content of the clipboard. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.PAINTCLIPBOARD">
            <summary>
            The WM_PAINTCLIPBOARD message is sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the CF_OWNERDISPLAY format and the clipboard viewer's client area needs repainting. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.VSCROLLCLIPBOARD">
            <summary>
            The WM_VSCROLLCLIPBOARD message is sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the CF_OWNERDISPLAY format and an event occurs in the clipboard viewer's vertical scroll bar. The owner should scroll the clipboard image and update the scroll bar values. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SIZECLIPBOARD">
            <summary>
            The WM_SIZECLIPBOARD message is sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the CF_OWNERDISPLAY format and the clipboard viewer's client area has changed size. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.ASKCBFORMATNAME">
            <summary>
            The WM_ASKCBFORMATNAME message is sent to the clipboard owner by a clipboard viewer window to request the name of a CF_OWNERDISPLAY clipboard format.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CHANGECBCHAIN">
            <summary>
            The WM_CHANGECBCHAIN message is sent to the first window in the clipboard viewer chain when a window is being removed from the chain. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.HSCROLLCLIPBOARD">
            <summary>
            The WM_HSCROLLCLIPBOARD message is sent to the clipboard owner by a clipboard viewer window. This occurs when the clipboard contains data in the CF_OWNERDISPLAY format and an event occurs in the clipboard viewer's horizontal scroll bar. The owner should scroll the clipboard image and update the scroll bar values. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.QUERYNEWPALETTE">
            <summary>
            This message informs a window that it is about to receive the keyboard focus, giving the window the opportunity to realize its logical palette when it receives the focus.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.PALETTEISCHANGING">
            <summary>
            The WM_PALETTEISCHANGING message informs applications that an application is going to realize its logical palette. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.PALETTECHANGED">
            <summary>
            This message is sent by the OS to all top-level and overlapped windows after the window with the keyboard focus realizes its logical palette. 
            This message enables windows that do not have the keyboard focus to realize their logical palettes and update their client areas.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.HOTKEY">
            <summary>
            The WM_HOTKEY message is posted when the user presses a hot key registered by the RegisterHotKey function. The message is placed at the top of the message queue associated with the thread that registered the hot key. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.PRINT">
            <summary>
            The WM_PRINT message is sent to a window to request that it draw itself in the specified device context, most commonly in a printer device context.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.PRINTCLIENT">
            <summary>
            The WM_PRINTCLIENT message is sent to a window to request that it draw its client area in the specified device context, most commonly in a printer device context.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.APPCOMMAND">
            <summary>
            The WM_APPCOMMAND message notifies a window that the user generated an application command event, for example, by clicking an application command button using the mouse or typing an application command key on the keyboard.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.THEMECHANGED">
            <summary>
            The WM_THEMECHANGED message is broadcast to every window following a theme change event. Examples of theme change events are the activation of a theme, the deactivation of a theme, or a transition from one theme to another.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CLIPBOARDUPDATE">
            <summary>
            Sent when the contents of the clipboard have changed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DWMCOMPOSITIONCHANGED">
            <summary>
            The system will send a window the WM_DWMCOMPOSITIONCHANGED message to indicate that the availability of desktop composition has changed.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DWMNCRENDERINGCHANGED">
            <summary>
            WM_DWMNCRENDERINGCHANGED is called when the non-client area rendering status of a window has changed. Only windows that have set the flag DWM_BLURBEHIND.fTransitionOnMaximized to true will get this message. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DWMCOLORIZATIONCOLORCHANGED">
            <summary>
            Sent to all top-level windows when the colorization color has changed. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.DWMWINDOWMAXIMIZEDCHANGE">
            <summary>
            WM_DWMWINDOWMAXIMIZEDCHANGE will let you know when a DWM composed window is maximized. You also have to register for this message as well. You'd have other windowd go opaque when this message is sent.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.GETTITLEBARINFOEX">
            <summary>
            Sent to request extended title bar information. A window receives this message through its WindowProc function.
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.HANDHELDFIRST">
            <summary>
            The HANDHELDFIRST
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.HANDHELDLAST">
            <summary>
            The HANDHELDLAST
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.AFXFIRST">
            <summary>
            The AFXFIRST
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.AFXLAST">
            <summary>
            The AFXLAST
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.PENWINFIRST">
            <summary>
            The PENWINFIRST
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.PENWINLAST">
            <summary>
            The PENWINLAST
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.APP">
            <summary>
            The WM_APP constant is used by applications to help define private messages, usually of the form WM_APP+X, where X is an integer value. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.USER">
            <summary>
            The WM_USER constant is used by applications to help define private messages for use by private window classes, usually of the form WM_USER+X, where X is an integer value. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CPL_LAUNCH">
            <summary>
            An application sends the WM_CPL_LAUNCH message to Windows Control Panel to request that a Control Panel application be started. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.CPL_LAUNCHED">
            <summary>
            The WM_CPL_LAUNCHED message is sent when a Control Panel application, started by the WM_CPL_LAUNCH message, has closed. The WM_CPL_LAUNCHED message is sent to the window identified by the wParam parameter of the WM_CPL_LAUNCH message that started the application. 
            </summary>
        </member>
        <member name="F:SharpShell.Interop.WM.SYSTIMER">
            <summary>
            WM_SYSTIMER is a well-known yet still undocumented message. Windows uses WM_SYSTIMER for internal actions like scrolling.
            </summary>
        </member>
        <member name="M:SharpShell.Interop.WinError.MAKE_HRESULT(System.UInt32,System.UInt32,System.UInt32)">
            <summary>
            Create an HRESULT value from component pieces.
            </summary>
            <param name="sev">The severity to be used</param>
            <param name="fac">The facility to be used</param>
            <param name="code">The error number</param>
            <returns>A HRESULT constructed from the above 3 values</returns>
        </member>
        <member name="T:SharpShell.InitializeWithStreamServer">
            <summary>
            InitializeWithStreamServer provides a base for SharpShell Servers that must implement
            IInitializeWithStream (thumbnail handlers, etc).
            </summary>
        </member>
        <member name="M:SharpShell.InitializeWithStreamServer.Initialize(System.Runtime.InteropServices.ComTypes.IStream,System.UInt32)">
            <summary>
            Initializes a handler with a stream.
            </summary>
            <param name="pstream">A pointer to an IStream interface that represents the stream source.</param>
            <param name="grfMode">One of the following STGM values that indicates the access mode for pstream. STGM_READ or STGM_READWRITE.</param>
        </member>
        <member name="P:SharpShell.InitializeWithStreamServer.SelectedItemStream">
            <summary>
            Gets the selected item stream.
            </summary>
            <value>
            The selected item stream.
            </value>
        </member>
        <member name="T:SharpShell.Pidl.IdList">
            <summary>
            Reprents a Shell ID list. Used with the <see cref="T:SharpShell.Pidl.PidlManager" />.
            </summary>
        </member>
        <member name="M:SharpShell.Pidl.IdList.#ctor(System.Collections.Generic.List{SharpShell.Pidl.ShellId})">
            <summary>
            Prevents a default instance of the <see cref="T:SharpShell.Pidl.IdList"/> class from being created.
            </summary>
            <param name="ids">The ids.</param>
        </member>
        <member name="M:SharpShell.Pidl.IdList.Create(System.Collections.Generic.List{SharpShell.Pidl.ShellId})">
            <summary>
            Creates an IdList.
            </summary>
            <param name="ids">The ids.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.Pidl.IdList.ToParsingString">
            <summary>
            Converts an idlist to a parsing string.
            </summary>
            <returns>The id list in parsing string format.</returns>
        </member>
        <member name="M:SharpShell.Pidl.IdList.FromParsingString(System.String)">
            <summary>
            Creates an idlist from parsing string format.
            </summary>
            <param name="str">The string.</param>
            <returns>The idlist represented by the string.</returns>
        </member>
        <member name="M:SharpShell.Pidl.IdList.Matches(SharpShell.Pidl.IdList)">
            <summary>
            Determines whether two idlists are equal.
            </summary>
            <param name="idList">The ID list to compare against.</param>
            <returns>True if the id lists are equal, false otherwise.</returns>
        </member>
        <member name="F:SharpShell.Pidl.IdList.ids">
            <summary>
            The ids.
            </summary>
        </member>
        <member name="P:SharpShell.Pidl.IdList.Ids">
            <summary>
            Gets the ids.
            </summary>
        </member>
        <member name="T:SharpShell.Pidl.PidlManager">
            <summary>
            The PidlManager is a class that offers a set of functions for 
            working with PIDLs.
            </summary>
            <remarks>
            For more information on PIDLs, please see:
                http://msdn.microsoft.com/en-us/library/windows/desktop/cc144090.aspx
            </remarks>
        </member>
        <member name="M:SharpShell.Pidl.PidlManager.Decode(System.IntPtr)">
            <summary>
            Decodes the specified pidl.
            </summary>
            <param name="pidl">The pidl.</param>
            <returns>A set of Shell IDs.</returns>
        </member>
        <member name="M:SharpShell.Pidl.PidlManager.GetDesktop">
            <summary>
            Gets the desktop idlist.
            </summary>
            <returns>The desktop idlist.</returns>
        </member>
        <member name="M:SharpShell.Pidl.PidlManager.PidlToIdlist(System.IntPtr)">
            <summary>
            Converts a Win32 PIDL to a <see cref="T:SharpShell.Pidl.PidlManager"/> <see cref="T:SharpShell.Pidl.IdList"/>.
            The PIDL is not freed by the PIDL manager, if it has been allocated by the
            shell it is the caller's responsibility to manage it.
            </summary>
            <param name="pidl">The pidl.</param>
            <returns>An <see cref="T:SharpShell.Pidl.IdList"/> that corresponds to the PIDL.</returns>
        </member>
        <member name="M:SharpShell.Pidl.PidlManager.APidlToIdListArray(System.IntPtr,System.Int32)">
            <summary>
            Converts an array of PIDLs to an IdList array.
            </summary>
            <param name="apidl">The PIDL array.</param>
            <param name="count">The count.</param>
            <returns>An IdList array.</returns>
        </member>
        <member name="M:SharpShell.Pidl.PidlManager.IdListToPidl(SharpShell.Pidl.IdList)">
            <summary>
            Converts an IdList to a PIDL.
            </summary>
            <param name="idList">The identifier list.</param>
            <returns>A PIDL</returns>
        </member>
        <member name="M:SharpShell.Pidl.PidlManager.Combine(SharpShell.Pidl.IdList,SharpShell.Pidl.IdList)">
            <summary>
            Combines two IdLists.
            </summary>
            <param name="folderIdList">The folder identifier list.</param>
            <param name="folderItemIdList">The folder item identifier list.</param>
            <returns>A new, combined IdList.</returns>
        </member>
        <member name="M:SharpShell.Pidl.PidlManager.DeletePidl(System.IntPtr)">
            <summary>
            Deletes the underlying PIDL.
            </summary>
            <param name="pidl">The PIDL.</param>
        </member>
        <member name="M:SharpShell.Pidl.PidlManager.PidlsToAPidl(System.IntPtr[])">
            <summary>
            Takes a set of PIDLs and creates a PIDL array.
            </summary>
            <param name="pidls">The PIDLs.</param>
            <returns>A PIDL array.</returns>
        </member>
        <member name="M:SharpShell.Pidl.PidlManager.GetPidlDisplayName(System.IntPtr)">
            <summary>
            Gets the display name of the PIDL.
            </summary>
            <param name="pidl">The PIDL.</param>
            <returns>The display name of the PIDL.</returns>
        </member>
        <member name="T:SharpShell.Pidl.IdListType">
            <summary>
            Defines the type of an IdList, which can be relative or absolute.
            </summary>
        </member>
        <member name="F:SharpShell.Pidl.IdListType.Absolute">
            <summary>
            The IdList is absolute.
            </summary>
        </member>
        <member name="F:SharpShell.Pidl.IdListType.Relative">
            <summary>
            The IdList is relative.
            </summary>
        </member>
        <member name="T:SharpShell.Pidl.ShellId">
            <summary>
            A ShellId is a representation of a shell item that makes up an id list.
            Simply put, a ShellId names a Shell Item uniquely in the context of it's
            parent Shell Folder.
            </summary>
        </member>
        <member name="M:SharpShell.Pidl.ShellId.#ctor(System.Byte[])">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Pidl.ShellId"/> class.
            </summary>
            <param name="id">The identifier.</param>
        </member>
        <member name="M:SharpShell.Pidl.ShellId.FromString(System.String)">
            <summary>
            Creates a new Shell ID from a string.
            </summary>
            <param name="str">The string.</param>
            <returns>A new Shell ID from the given string.</returns>
        </member>
        <member name="M:SharpShell.Pidl.ShellId.FromData(System.Byte[])">
            <summary>
            Creates a Shell ID frm raw data.
            </summary>
            <param name="data">The data.</param>
            <returns>A new Shell ID from the given data.</returns>
            <exception cref="T:System.NullReferenceException">'data' cannot be null.</exception>
            <exception cref="T:System.InvalidOperationException">'data' must contain data.</exception>
        </member>
        <member name="M:SharpShell.Pidl.ShellId.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="M:SharpShell.Pidl.ShellId.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object" />, is equal to this instance.
            </summary>
            <param name="obj">The <see cref="T:System.Object" /> to compare with this instance.</param>
            <returns>
              <c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:SharpShell.Pidl.ShellId.GetHashCode">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <returns>
            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. 
            </returns>
        </member>
        <member name="P:SharpShell.Pidl.ShellId.RawId">
            <summary>
            Gets the raw identifier.
            </summary>
        </member>
        <member name="P:SharpShell.Pidl.ShellId.Length">
            <summary>
            Gets the length of the identifier.
            </summary>
        </member>
        <member name="F:SharpShell.Pidl.ShellId.id">
            <summary>
            The identifier.
            </summary>
        </member>
        <member name="M:SharpShell.Pidl.ShellId.AsUTF8">
            <summary>
            Gets the ShellId as a UFT8 string.
            </summary>
            <returns>The ShellId as a UFT8 string.</returns>
        </member>
        <member name="M:SharpShell.Pidl.ShellId.AsASCII">
            <summary>
            Gets the IdList as an ASCII string.
            </summary>
            <returns>The IdList as an ASCII string.</returns>
        </member>
        <member name="T:SharpShell.Registry.InMemoryRegistry">
            <summary>
            The In-Memory registry implements <see cref="T:SharpShell.Registry.IRegistry"/> with a simple in-memory structure.
            It is designed to support testing scenarios, for example, asserting the ServerRegistrationManager
            can correctly register differnt types of servers.
            </summary>
            <seealso cref="T:SharpShell.Registry.IRegistry" />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistry.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Registry.InMemoryRegistry"/> class.
            </summary>
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistry.OpenBaseKey(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistry.AddStructure(Microsoft.Win32.RegistryView,System.String)">
            <summary>
            Adds the given structure to the registry view. Generally used for testing only.
            </summary>
            <param name="registryView">The registry view.</param>
            <param name="structure">The structure, which matches the MSDN documentation for shell extensions.</param>
            <exception cref="T:System.InvalidOperationException">Thrown if the structure is malformed.</exception>
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistry.PrintKey(SharpShell.Registry.IRegistryKey,System.Int32)">
            <summary>
            Prints a registry key with the given depth.
            </summary>
            <param name="key">The key.</param>
            <param name="depth">The depth.</param>
            <returns>The key, printed at the given depth.</returns>
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistry.Print(Microsoft.Win32.RegistryView)">
            <summary>
            Prints the specified registry view. Used for functional testing.
            </summary>
            <param name="registryView">The registry view.</param>
            <returns>The registry view as a string.</returns>
        </member>
        <member name="T:SharpShell.Registry.InMemoryRegistryKey">
            <summary>
            An In-Memory registry key. Primarily used for testing scenarios.
            </summary>
            <seealso cref="T:SharpShell.Registry.IRegistryKey" />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.#ctor(Microsoft.Win32.RegistryView,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Registry.InMemoryRegistryKey"/> class.
            </summary>
            <param name="view">The registry view.</param>
            <param name="name">The name.</param>
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.Dispose">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.GetSubKeyNames">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.OpenSubKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.OpenSubKey(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.OpenSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.OpenSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck,System.Security.AccessControl.RegistryRights)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.GetValue(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.GetValue(System.String,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.GetValue(System.String,System.Object,Microsoft.Win32.RegistryValueOptions)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.CreateSubKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.CreateSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.CreateSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck,System.Security.AccessControl.RegistrySecurity)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.SetValue(System.String,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.DeleteSubKeyTree(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.DeleteSubKeyTree(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.GetValueNames">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.DeleteValue(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.DeleteValue(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.DeleteSubKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.InMemoryRegistryKey.DeleteSubKey(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:SharpShell.Registry.InMemoryRegistryKey.Name">
            <inheritdoc />
        </member>
        <member name="P:SharpShell.Registry.InMemoryRegistryKey.View">
            <summary>
            Gets the view for the key.
            </summary>
        </member>
        <member name="T:SharpShell.Registry.IRegistry">
            <summary>
            An interface for any type which can provide access to the registry. In most circumstances, the implementation
            will be <see cref="T:SharpShell.Registry.WindowsRegistry"/>. This service exists to support effective testing of registry access. 
            </summary>
        </member>
        <member name="M:SharpShell.Registry.IRegistry.OpenBaseKey(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView)">
            <summary>Opens a new <see cref="T:SharpShell.Registry.IRegistryKey"/> that represents the requested key on the local machine with the specified view.</summary>
            <returns>The requested registry key.</returns>
            <param name="hKey">The HKEY to open.</param>
            <param name="view">The registry view to use.</param>
            <exception cref="T:System.ArgumentException">
            <paramref name="hKey" /> or <paramref name="view" /> is invalid.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The user does not have the necessary registry rights.</exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to perform this action.</exception>
        </member>
        <member name="T:SharpShell.Registry.IRegistryKey">
            <summary>
            Interface which represents a key-level node in the Windows registry. This class is a registry encapsulation.
            </summary>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.GetSubKeyNames">
            <summary>Retrieves an array of strings that contains all the subkey names.</summary>
            <returns>An array of strings that contains the names of the subkeys for the current key.</returns>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to read from the key. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> being manipulated is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The user does not have the necessary registry rights.</exception>
            <exception cref="T:System.IO.IOException">A system error occurred, for example the current key has been deleted.</exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.OpenSubKey(System.String)">
            <summary>Retrieves a subkey as read-only.</summary>
            <returns>The subkey requested, or null if the operation failed.</returns>
            <param name="name">The name or path of the subkey to open as read-only. </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name" /> is null</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to read the registry key. </exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="\" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.OpenSubKey(System.String,System.Boolean)">
            <summary>Retrieves a specified subkey, and specifies whether write access is to be applied to the key. </summary>
            <returns>The subkey requested, or null if the operation failed.</returns>
            <param name="name">Name or path of the subkey to open. </param>
            <param name="writable">Set to true if you need write access to the key. </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name" /> is null. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to access the registry key in the specified mode. </exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
              <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.OpenSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck)">
            <summary>Retrieves the specified subkey for read or read/write access.</summary>
            <returns>The subkey requested, or null if the operation failed.</returns>
            <param name="name">The name or path of the subkey to create or open.</param>
            <param name="permissionCheck">One of the enumeration values that specifies whether the key is opened for read or read/write access.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name" /> is null</exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="permissionCheck" /> contains an invalid value.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to read the registry key. </exception>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.OpenSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck,System.Security.AccessControl.RegistryRights)">
            <summary>Retrieves the specified subkey for read or read/write access, requesting the specified access rights.</summary>
            <returns>The subkey requested, or null if the operation failed.</returns>
            <param name="name">The name or path of the subkey to create or open.</param>
            <param name="permissionCheck">One of the enumeration values that specifies whether the key is opened for read or read/write access.</param>
            <param name="rights">A bitwise combination of enumeration values that specifies the desired security access.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="name" /> is null</exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="permissionCheck" /> contains an invalid value.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.Security.SecurityException">
            <paramref name="rights" /> includes invalid registry rights values.-or-The user does not have the requested permissions. </exception>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.GetValue(System.String)">
            <summary>Retrieves the value associated with the specified name. Returns null if the name/value pair does not exist in the registry.</summary>
            <returns>The value associated with <paramref name="name" />, or null if <paramref name="name" /> is not found.</returns>
            <param name="name">The name of the value to retrieve. This string is not case-sensitive.</param>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to read from the registry key. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> that contains the specified value is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.IO.IOException">The <see cref="T:Microsoft.Win32.RegistryKey" /> that contains the specified value has been marked for deletion. </exception>
            <exception cref="T:System.UnauthorizedAccessException">The user does not have the necessary registry rights.</exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="\" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.GetValue(System.String,System.Object)">
            <summary>Retrieves the value associated with the specified name. If the name is not found, returns the default value that you provide.</summary>
            <returns>The value associated with <paramref name="name" />, with any embedded environment variables left unexpanded, or <paramref name="defaultValue" /> if <paramref name="name" /> is not found.</returns>
            <param name="name">The name of the value to retrieve. This string is not case-sensitive.</param>
            <param name="defaultValue">The value to return if <paramref name="name" /> does not exist. </param>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to read from the registry key. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> that contains the specified value is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.IO.IOException">The <see cref="T:Microsoft.Win32.RegistryKey" /> that contains the specified value has been marked for deletion. </exception>
            <exception cref="T:System.UnauthorizedAccessException">The user does not have the necessary registry rights.</exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="\" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.GetValue(System.String,System.Object,Microsoft.Win32.RegistryValueOptions)">
            <summary>Retrieves the value associated with the specified name and retrieval options. If the name is not found, returns the default value that you provide.</summary>
            <returns>The value associated with <paramref name="name" />, processed according to the specified <paramref name="options" />, or <paramref name="defaultValue" /> if <paramref name="name" /> is not found.</returns>
            <param name="name">The name of the value to retrieve. This string is not case-sensitive.</param>
            <param name="defaultValue">The value to return if <paramref name="name" /> does not exist. </param>
            <param name="options">One of the enumeration values that specifies optional processing of the retrieved value.</param>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to read from the registry key. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> that contains the specified value is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.IO.IOException">The <see cref="T:Microsoft.Win32.RegistryKey" /> that contains the specified value has been marked for deletion. </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="options" /> is not a valid <see cref="T:Microsoft.Win32.RegistryValueOptions" /> value; for example, an invalid value is cast to <see cref="T:Microsoft.Win32.RegistryValueOptions" />.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The user does not have the necessary registry rights.</exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="\" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.CreateSubKey(System.String)">
            <summary>Creates a new subkey or opens an existing subkey for write access.  </summary>
            <returns>The newly created subkey, or null if the operation failed. If a zero-length string is specified for <paramref name="subkey" />, the current <see cref="T:Microsoft.Win32.RegistryKey" /> object is returned.</returns>
            <param name="subkey">The name or path of the subkey to create or open. This string is not case-sensitive.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="subkey" /> is null. </exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to create or open the registry key. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> on which this method is being invoked is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The <see cref="T:Microsoft.Win32.RegistryKey" /> cannot be written to; for example, it was not opened as a writable key , or the user does not have the necessary access rights. </exception>
            <exception cref="T:System.IO.IOException">The nesting level exceeds 510.-or-A system error occurred, such as deletion of the key, or an attempt to create a key in the <see cref="F:Microsoft.Win32.Registry.LocalMachine" /> root.</exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
              <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.CreateSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck)">
            <summary>Creates a new subkey or opens an existing subkey for write access, using the specified permission check option. </summary>
            <returns>The newly created subkey, or null if the operation failed. If a zero-length string is specified for <paramref name="subkey" />, the current <see cref="T:Microsoft.Win32.RegistryKey" /> object is returned.</returns>
            <param name="subkey">The name or path of the subkey to create or open. This string is not case-sensitive.</param>
            <param name="permissionCheck">One of the enumeration values that specifies whether the key is opened for read or read/write access.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="subkey" /> is null. </exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to create or open the registry key. </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="permissionCheck" /> contains an invalid value.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> on which this method is being invoked is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The <see cref="T:Microsoft.Win32.RegistryKey" /> cannot be written to; for example, it was not opened as a writable key, or the user does not have the necessary access rights. </exception>
            <exception cref="T:System.IO.IOException">The nesting level exceeds 510.-or-A system error occurred, such as deletion of the key, or an attempt to create a key in the <see cref="F:Microsoft.Win32.Registry.LocalMachine" /> root.</exception>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.CreateSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck,System.Security.AccessControl.RegistrySecurity)">
            <summary>Creates a new subkey or opens an existing subkey for write access, using the specified permission check option and registry security. </summary>
            <returns>The newly created subkey, or null if the operation failed. If a zero-length string is specified for <paramref name="subkey" />, the current <see cref="T:Microsoft.Win32.RegistryKey" /> object is returned.</returns>
            <param name="subkey">The name or path of the subkey to create or open. This string is not case-sensitive.</param>
            <param name="permissionCheck">One of the enumeration values that specifies whether the key is opened for read or read/write access.</param>
            <param name="registrySecurity">The access control security for the new key.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="subkey" /> is null. </exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to create or open the registry key. </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="permissionCheck" /> contains an invalid value.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> on which this method is being invoked is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The current <see cref="T:Microsoft.Win32.RegistryKey" /> cannot be written to; for example, it was not opened as a writable key, or the user does not have the necessary access rights.</exception>
            <exception cref="T:System.IO.IOException">The nesting level exceeds 510.-or-A system error occurred, such as deletion of the key, or an attempt to create a key in the <see cref="F:Microsoft.Win32.Registry.LocalMachine" /> root.</exception>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.SetValue(System.String,System.Object)">
            <summary>Sets the specified name/value pair.</summary>
            <param name="name">The name of the value to store. </param>
            <param name="value">The data to be stored. </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="value" /> is null. </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="value" /> is an unsupported data type. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> that contains the specified value is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The <see cref="T:Microsoft.Win32.RegistryKey" /> is read-only, and cannot be written to; for example, the key has not been opened with write access. -or-The <see cref="T:Microsoft.Win32.RegistryKey" /> object represents a root-level node, and the operating system is Windows Millennium Edition or Windows 98.</exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to create or modify registry keys. </exception>
            <exception cref="T:System.IO.IOException">The <see cref="T:Microsoft.Win32.RegistryKey" /> object represents a root-level node, and the operating system is Windows 2000, Windows XP, or Windows Server 2003.</exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
              <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind)">
            <summary>Sets the value of a name/value pair in the registry key, using the specified registry data type.</summary>
            <param name="name">The name of the value to be stored. </param>
            <param name="value">The data to be stored. </param>
            <param name="valueKind">The registry data type to use when storing the data. </param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="value" /> is null. </exception>
            <exception cref="T:System.ArgumentException">The type of <paramref name="value" /> did not match the registry data type specified by <paramref name="valueKind" />, therefore the data could not be converted properly. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> that contains the specified value is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The <see cref="T:Microsoft.Win32.RegistryKey" /> is read-only, and cannot be written to; for example, the key has not been opened with write access.-or-The <see cref="T:Microsoft.Win32.RegistryKey" /> object represents a root-level node, and the operating system is Windows Millennium Edition or Windows 98. </exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to create or modify registry keys. </exception>
            <exception cref="T:System.IO.IOException">The <see cref="T:Microsoft.Win32.RegistryKey" /> object represents a root-level node, and the operating system is Windows 2000, Windows XP, or Windows Server 2003.</exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
              <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.DeleteSubKeyTree(System.String)">
            <summary>Deletes a subkey and any child subkeys recursively. </summary>
            <param name="subkey">The subkey to delete. This string is not case-sensitive.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="subkey" /> is null. </exception>
            <exception cref="T:System.ArgumentException">Deletion of a root hive is attempted.-or-<paramref name="subkey" /> does not specify a valid registry subkey. </exception>
            <exception cref="T:System.IO.IOException">An I/O error has occurred.</exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to delete the key. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> being manipulated is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The user does not have the necessary registry rights.</exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
              <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.DeleteSubKeyTree(System.String,System.Boolean)">
            <summary>Deletes the specified subkey and any child subkeys recursively, and specifies whether an exception is raised if the subkey is not found. </summary>
            <param name="subkey">The name of the subkey to delete. This string is not case-sensitive.</param>
            <param name="throwOnMissingSubKey">Indicates whether an exception should be raised if the specified subkey cannot be found. If this argument is true and the specified subkey does not exist, an exception is raised. If this argument is false and the specified subkey does not exist, no action is taken.</param>
            <exception cref="T:System.ArgumentException">An attempt was made to delete the root hive of the tree.-or-<paramref name="subkey" /> does not specify a valid registry subkey, and <paramref name="throwOnMissingSubKey" /> is true.</exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="subkey" /> is null.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> is closed (closed keys cannot be accessed).</exception>
            <exception cref="T:System.UnauthorizedAccessException">The user does not have the necessary registry rights.</exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to delete the key.</exception>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.GetValueNames">
            <summary>Retrieves an array of strings that contains all the value names associated with this key.</summary>
            <returns>An array of strings that contains the value names for the current key.</returns>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to read from the registry key. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" />  being manipulated is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The user does not have the necessary registry rights.</exception>
            <exception cref="T:System.IO.IOException">A system error occurred; for example, the current key has been deleted.</exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.DeleteValue(System.String)">
            <summary>Deletes the specified value from this key.</summary>
            <param name="name">The name of the value to delete. </param>
            <exception cref="T:System.ArgumentException">
            <paramref name="name" /> is not a valid reference to a value. </exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to delete the value. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> being manipulated is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The <see cref="T:Microsoft.Win32.RegistryKey" /> being manipulated is read-only. </exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
              <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.DeleteValue(System.String,System.Boolean)">
            <summary>Deletes the specified value from this key, and specifies whether an exception is raised if the value is not found.</summary>
            <param name="name">The name of the value to delete. </param>
            <param name="throwOnMissingValue">Indicates whether an exception should be raised if the specified value cannot be found. If this argument is true and the specified value does not exist, an exception is raised. If this argument is false and the specified value does not exist, no action is taken. </param>
            <exception cref="T:System.ArgumentException">
            <paramref name="name" /> is not a valid reference to a value and <paramref name="throwOnMissingValue" /> is true. -or- <paramref name="name" /> is null.</exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to delete the value. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> being manipulated is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The <see cref="T:Microsoft.Win32.RegistryKey" /> being manipulated is read-only. </exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
              <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.DeleteSubKey(System.String)">
            <summary>Deletes the specified subkey. </summary>
            <param name="subkey">The name of the subkey to delete. This string is not case-sensitive.</param>
            <exception cref="T:System.InvalidOperationException">The <paramref name="subkey" /> has child subkeys </exception>
            <exception cref="T:System.ArgumentException">The <paramref name="subkey" /> parameter does not specify a valid registry key </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="subkey" /> is null</exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to delete the key. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> being manipulated is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The user does not have the necessary registry rights.</exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
              <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" />
            </PermissionSet>
        </member>
        <member name="M:SharpShell.Registry.IRegistryKey.DeleteSubKey(System.String,System.Boolean)">
            <summary>Deletes the specified subkey, and specifies whether an exception is raised if the subkey is not found. </summary>
            <param name="subkey">The name of the subkey to delete. This string is not case-sensitive.</param>
            <param name="throwOnMissingSubKey">Indicates whether an exception should be raised if the specified subkey cannot be found. If this argument is true and the specified subkey does not exist, an exception is raised. If this argument is false and the specified subkey does not exist, no action is taken. </param>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="subkey" /> has child subkeys. </exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="subkey" /> does not specify a valid registry key, and <paramref name="throwOnMissingSubKey" /> is true. </exception>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="subkey" /> is null.</exception>
            <exception cref="T:System.Security.SecurityException">The user does not have the permissions required to delete the key. </exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> being manipulated is closed (closed keys cannot be accessed). </exception>
            <exception cref="T:System.UnauthorizedAccessException">The user does not have the necessary registry rights.</exception>
            <PermissionSet>
              <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
              <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" />
            </PermissionSet>
        </member>
        <member name="P:SharpShell.Registry.IRegistryKey.Name">
            <summary>Retrieves the name of the key.</summary>
            <returns>The absolute (qualified) name of the key.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Microsoft.Win32.RegistryKey" /> is closed (closed keys cannot be accessed). </exception>
        </member>
        <member name="T:SharpShell.Registry.WindowsRegistry">
            <summary>
            This class implements <see cref="T:SharpShell.Registry.IRegistry"/>, providing test-able access to the registry. SharpShell should
            never use the registry directly, it should use IRegistry so that we can test these interactions.
            </summary>
            <seealso cref="T:SharpShell.Registry.IRegistry" />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistry.OpenBaseKey(Microsoft.Win32.RegistryHive,Microsoft.Win32.RegistryView)">
            <inheritdoc />
        </member>
        <member name="T:SharpShell.Registry.WindowsRegistryKey">
            <summary>
            A Windows Registry Key. Essentially a wrapper around <see cref="T:Microsoft.Win32.RegistryKey"/>.
            </summary>
            <seealso cref="T:SharpShell.Registry.IRegistryKey" />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.#ctor(Microsoft.Win32.RegistryKey)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Registry.WindowsRegistryKey"/> class.
            </summary>
            <param name="registryKey">The registry key.</param>
            <exception cref="T:System.ArgumentNullException">registryKey</exception>
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.Dispose">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.GetSubKeyNames">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.OpenSubKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.OpenSubKey(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.OpenSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.OpenSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck,System.Security.AccessControl.RegistryRights)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.GetValue(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.GetValue(System.String,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.GetValue(System.String,System.Object,Microsoft.Win32.RegistryValueOptions)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.CreateSubKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.CreateSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.CreateSubKey(System.String,Microsoft.Win32.RegistryKeyPermissionCheck,System.Security.AccessControl.RegistrySecurity)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.SetValue(System.String,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.SetValue(System.String,System.Object,Microsoft.Win32.RegistryValueKind)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.DeleteSubKeyTree(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.DeleteSubKeyTree(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.GetValueNames">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.DeleteValue(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.DeleteValue(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.DeleteSubKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:SharpShell.Registry.WindowsRegistryKey.DeleteSubKey(System.String,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="P:SharpShell.Registry.WindowsRegistryKey.Name">
            <inheritdoc />
        </member>
        <member name="T:SharpShell.ServerRegistration.ClassRegistration">
            <summary>
            Helper class to determine the registration info of specific class.
            </summary>
        </member>
        <member name="M:SharpShell.ServerRegistration.ClassRegistration.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.ServerRegistration.ClassRegistration"/> class.
            </summary>
            <param name="className">Name of the class.</param>
        </member>
        <member name="M:SharpShell.ServerRegistration.ClassRegistration.DetermineSpecialRegistryClass">
            <summary>
            Determines the special registry class.
            </summary>
            <returns>The special registry class, if any.</returns>
        </member>
        <member name="P:SharpShell.ServerRegistration.ClassRegistration.ClassName">
            <summary>
            Gets or sets the name of the class.
            </summary>
            <value>
            The name of the class.
            </value>
        </member>
        <member name="T:SharpShell.ServerRegistration.FileExtensionClass">
            <summary>
            Provides methods for manipulating the file extension classes which may be present
            in the registry.
            </summary>
        </member>
        <member name="M:SharpShell.ServerRegistration.FileExtensionClass.Get(SharpShell.Registry.IRegistryKey,System.String,System.Boolean)">
            <summary>
            Gets the class of the given file extension, optionally creating it if it does not exist.
            </summary>
            <param name="classesKey">The classes key (HKEY_CLASSES_ROOT).</param>
            <param name="fileExtension">The file extension, with a leading dot.</param>
            <param name="createIfMissing">if set to <c>true</c> then if no class exists, one will be created.</param>
            <returns></returns>
            <exception cref="T:System.InvalidOperationException">Thrown if the extension is invalid.</exception>
        </member>
        <member name="T:SharpShell.ServerRegistration.ShellExtensionType">
            <summary>
            The Shell Extension Type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.None">
            <summary>
            None.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.ShortcutMenuHandler">
            <summary>
            The shortcut menu handler type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.CopyhookHandler">
            <summary>
            The copyhook handler type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.DragAndDropHandler">
            <summary>
            The drag and drop handler type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.PropertySheetHandler">
            <summary>
            The property sheet handler type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.ColumnProviderHandler">
            <summary>
            The column provider handler type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.DataHandler">
            <summary>
            The data handler type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.DropHandler">
            <summary>
            The drop handler type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.IconHandler">
            <summary>
            The icon handler type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.ImageHandler">
            <summary>
            The image handler type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.ThumbnailImageHandler">
            <summary>
            The thumbnail image handler type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.InfotipHandler">
            <summary>
            The infotip handler type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.ShellLinkANSI">
            <summary>
            The shell link ANSI type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.ShellLinkUNICODE">
            <summary>
            The shell link unicode type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.StructuredStorage">
            <summary>
            The structured storage type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.MetadataPropertyStore">
            <summary>
            The metadata property store type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.MetadataPropertySetStorage">
            <summary>
            The metadata property set storage type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.PinToStartMenu">
            <summary>
            The pin to start menu type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionType.PinToTaskbar">
            <summary>
            The pin to taskbar type.
            </summary>
        </member>
        <member name="T:SharpShell.ServerRegistration.SpecialRegistryClass">
            <summary>
            Defines and represents the special registry classes.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.None">
            <summary>
            Not a special class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.AllFiles">
            <summary>
            All files class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.AllFileSystemObjects">
            <summary>
            All file system objects class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.Folder">
            <summary>
            The folder class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.Directory">
            <summary>
            The directory class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.DirectoryBackground">
            <summary>
            The directory background class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.Drive">
            <summary>
            The drive class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.Network">
            <summary>
            The network class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.NetworkShares">
            <summary>
            The network shares class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.NetworkServers">
            <summary>
            The network servers class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.Printers">
            <summary>
            The printers class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.AudioCD">
            <summary>
            The audio cd class.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.SpecialRegistryClass.DVD">
            <summary>
            The DVD class.
            </summary>
        </member>
        <member name="T:SharpShell.ServerRegistration.RegistrationType">
            <summary>
            The registation type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.RegistrationType.OS32Bit">
            <summary>
            32 Bit operating system registration.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.RegistrationType.OS64Bit">
            <summary>
            64 Bit operating system registration.
            </summary>
        </member>
        <member name="T:SharpShell.ServerRegistration.ServerRegistationType">
            <summary>
            Represents the type of server registration.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistationType.PartiallyRegistered">
            <summary>
            The Server is partially registered only - there's no process models.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistationType.NativeInProc32">
            <summary>
            It's a native InProc32 server.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistationType.ManagedInProc32">
            <summary>
            It's a managed InProc32 server.
            </summary>
        </member>
        <member name="T:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo">
            <summary>
            Represents registration info for a server.
            </summary>
        </member>
        <member name="M:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.#ctor(SharpShell.ServerRegistration.ServerRegistationType,System.Guid)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo"/> class.
            </summary>
            <param name="serverRegistationType">Type of the server registation.</param>
            <param name="serverCLSID">The server CLSID.</param>
        </member>
        <member name="F:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.classRegistrations">
            <summary>
            The class registrations.
            </summary>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.ServerCLSID">
            <summary>
            Gets the server CLSID.
            </summary>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.ShellExtensionType">
            <summary>
            Gets the type of the shell extension.
            </summary>
            <value>
            The type of the shell extension.
            </value>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.DisplayName">
            <summary>
            Gets the display name.
            </summary>
            <value>
            The display name.
            </value>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.ServerPath">
            <summary>
            Gets the server path.
            </summary>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.ThreadingModel">
            <summary>
            Gets the threading model.
            </summary>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.AssemblyVersion">
            <summary>
            Gets the assembly version.
            </summary>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.Assembly">
            <summary>
            Gets the assembly.
            </summary>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.Class">
            <summary>
            Gets the class.
            </summary>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.RuntimeVersion">
            <summary>
            Gets the runtime version.
            </summary>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.CodeBase">
            <summary>
            Gets the codebase path.
            </summary>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.IsApproved">
            <summary>
            Gets a value indicating whether this extension is on the approved list.
            </summary>
            <value>
            	<c>true</c> if this instance is approved; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.ServerRegistationType">
            <summary>
            Gets the type of the server registation.
            </summary>
            <value>
            The type of the server registation.
            </value>
        </member>
        <member name="P:SharpShell.ServerRegistration.ShellExtensionRegistrationInfo.ClassRegistrations">
            <summary>
            Gets the class registrations.
            </summary>
            <value>
            The class registrations.
            </value>
        </member>
        <member name="T:SharpShell.ServerRegistration.ServerRegistrationManager">
            <summary>
            THe Server Registration Manager is an object that can be used to
            help with Server Registration tasks, such as registering, unregistering
            and checking servers. It will work with SharpShell Server objects or
            other servers.
            </summary>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.InstallServer(SharpShell.ISharpShellServer,SharpShell.ServerRegistration.RegistrationType,System.Boolean)">
            <summary>
            Installs a SharpShell COM server.
            </summary>
            <param name="server">The server.</param>
            <param name="registrationType">Type of the registration.</param>
            <param name="codeBase">if set to <c>true</c> use code base registration (i.e full assembly path, not the GAC).</param>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.UninstallServer(SharpShell.ISharpShellServer,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Uninstalls the server.
            </summary>
            <param name="server">The server.</param>
            <param name="registrationType">Type of the registration.</param>
            <returns>True if the server WAS installed and has been uninstalled, false if the server was not found.</returns>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.RegisterServer(SharpShell.ISharpShellServer,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Registers a SharpShell server. This will create the associations defined by the
            server's COMServerAssociation attribute.
            </summary>
            <param name="server">The server.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.UnregisterServer(SharpShell.ISharpShellServer,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Unregisters a SharpShell server. This will remove the associations defined by the
            server's COMServerAssociation attribute.
            </summary>
            <param name="server">The server.</param>
            <param name="registrationType">Type of the registration to undo.</param>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.EnumerateExtensions(SharpShell.ServerRegistration.RegistrationType,SharpShell.ServerRegistration.ShellExtensionType)">
            <summary>
            Enumerates Shell extensions.
            </summary>
            <param name="registrationType">Type of the registration.</param>
            <param name="shellExtensionTypes">The shell extension types.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.GetServerRegistrationInfo(SharpShell.ISharpShellServer,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Gets the server registration info.
            </summary>
            <param name="server">The server.</param>
            <param name="registrationType">Type of the registration.</param>
            <returns>
            The ServerRegistrationInfo if the server is registered, otherwise false.
            </returns>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.GetServerRegistrationInfo(System.Guid,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Gets the server registration info.
            </summary>
            <param name="serverCLSID">The server CLSID.</param>
            <param name="registrationType">Type of the registration.</param>
            <returns>
            The ServerRegistrationInfo if the server is registered, otherwise false.
            </returns>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.SetServerDisplayName(System.Guid,System.String,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Sets the display name of the a COM server.
            </summary>
            <param name="classId">The class identifier.</param>
            <param name="displayName">The display name.</param>
            <param name="registrationType">Type of the registration.</param>
            <exception cref="T:System.InvalidOperationException">Thrown if the class key does not exist for the COM server.</exception>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.SetDisableProcessIsolationValue(System.Guid,SharpShell.ServerRegistration.RegistrationType,System.Int32)">
            <summary>
            Sets the 'DisableProcessIsolation' value of the a COM server.
            </summary>
            <seealso cref="!:https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/cc144118"/>
            <param name="classId">The class identifier.</param>
            <param name="registrationType">Type of the registration.</param>
            <param name="disableProcessIsolationValue">The DisableProcessIsolation value, generally 1 or 0.</param>
            <exception cref="T:System.InvalidOperationException">Thrown if the class key does not exist for the COM server.</exception>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.RegisterServerAssociations(System.Guid,SharpShell.ServerType,System.String,System.Collections.Generic.IEnumerable{SharpShell.Attributes.COMServerAssociationAttribute},SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Registers the server associations.
            </summary>
            <param name="serverClsid">The server CLSID.</param>
            <param name="serverType">Type of the server.</param>
            <param name="serverName">Name of the server.</param>
            <param name="associationAttributes">The association attributes.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.SetIconHandlerDefaultIcon(SharpShell.Registry.IRegistryKey,System.String)">
            <summary>
            Sets the icon handler default icon, enabling an icon handler extension.
            </summary>
            <param name="classesKey">The classes key.</param>
            <param name="className">Name of the class.</param>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.UnsetIconHandlerDefaultIcon(SharpShell.Registry.IRegistryKey,System.String)">
            <summary>
            Unsets the icon handler default icon sharp shell value, restoring the backed up value.
            </summary>
            <param name="classesKey">The classes key.</param>
            <param name="className">Name of the class.</param>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.UnregisterServerAssociations(System.Guid,SharpShell.ServerType,System.String,System.Collections.Generic.IEnumerable{SharpShell.Attributes.COMServerAssociationAttribute},SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Unregisters the server associations.
            </summary>
            <param name="serverClsid">The server CLSID.</param>
            <param name="serverType">Type of the server.</param>
            <param name="serverName">Name of the server.</param>
            <param name="associationAttributes">The association attributes.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.CreateClassNamesForAssociations(SharpShell.Attributes.AssociationType,System.Collections.Generic.IEnumerable{System.String},SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Creates the class names for associations.
            </summary>
            <param name="associationType">Type of the association.</param>
            <param name="associations">The associations.</param>
            <param name="registrationType">Type of the registration.</param>
            <returns>
            The class names for the associations.
            </returns>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.GetKeyForServerType(System.String,SharpShell.ServerType,System.String)">
            <summary>
            Gets the type of the key for server.
            </summary>
            <param name="className">Name of the class.</param>
            <param name="serverType">Type of the server.</param>
            <param name="serverName">Name of the server.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.OpenClassesKey(SharpShell.ServerRegistration.RegistrationType,Microsoft.Win32.RegistryKeyPermissionCheck)">
            <summary>
            Opens the classes key.
            </summary>
            <param name="registrationType">Type of the registration.</param>
            <param name="permissions">The permissions.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.OpenClassesRoot(SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Opens the classes root.
            </summary>
            <param name="registrationType">Type of the registration.</param>
            <returns>The classes root key.</returns>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.GetValueOrEmpty(SharpShell.Registry.IRegistryKey,System.String)">
            <summary>
            Gets the value or empty.
            </summary>
            <param name="key">The key.</param>
            <param name="valueName">Name of the value.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.ApproveExtension(SharpShell.ISharpShellServer,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Approves an extension.
            </summary>
            <param name="server">The server.</param>
            <param name="registrationType">Type of the registration.</param>
            <exception cref="T:System.InvalidOperationException">Failed to open the Approved Extensions key.</exception>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.IsExtensionApproved(System.Guid,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Determines whether an extension is approved.
            </summary>
            <param name="serverClsid">The server CLSID.</param>
            <param name="registrationType">Type of the registration.</param>
            <returns>
              <c>true</c> if the extension is approved; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.InvalidOperationException">Failed to open the Approved Extensions key.</exception>
        </member>
        <member name="M:SharpShell.ServerRegistration.ServerRegistrationManager.UnapproveExtension(SharpShell.ISharpShellServer,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Unapproves an extension.
            </summary>
            <param name="server">The server.</param>
            <param name="registrationType">Type of the registration.</param>
            <exception cref="T:System.InvalidOperationException">Failed to open the Approved Extensions key.</exception>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistrationManager.KeyName_Classes">
            <summary>
            The classes key name.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistrationManager.KeyName_InProc32">
            <summary>
            The InProc32 key name.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistrationManager.KeyValue_NetFrameworkServer">
            <summary>
            The value for the net framework servers.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistrationManager.KeyName_ThreadingModel">
            <summary>
            The threading model key name.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistrationManager.KeyName_Assembly">
            <summary>
            THe assembly key name.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistrationManager.KeyName_Class">
            <summary>
            The class key name.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistrationManager.KeyName_RuntimeVersion">
            <summary>
            The runtime version key name.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistrationManager.KeyName_CodeBase">
            <summary>
            The codebase keyname.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistrationManager.KeyName_DefaultIcon">
            <summary>
            The default icon keyname.
            </summary>
        </member>
        <member name="F:SharpShell.ServerRegistration.ServerRegistrationManager.ValueName_DefaultIconBackup">
            <summary>
            The default icon backup value name.
            </summary>
        </member>
        <member name="T:SharpShell.ServiceRegistry.ServiceRegistry">
            <summary>
            Simple dependency injection container.
            </summary>
        </member>
        <member name="M:SharpShell.ServiceRegistry.ServiceRegistry.Reset">
            <summary>
            Resets all providers. Typically used only for testing.
            </summary>
        </member>
        <member name="M:SharpShell.ServiceRegistry.ServiceRegistry.GetService``1">
            <summary>
            Gets a service of type T.
            </summary>
            <typeparam name="T">The type of service to get.</typeparam>
            <returns>An instance of the service of type T.</returns>
            <exception cref="T:System.InvalidOperationException">Thrown if T is not registered.</exception>
        </member>
        <member name="M:SharpShell.ServiceRegistry.ServiceRegistry.RegisterService``1(System.Func{``0})">
            <summary>
            Registers a service.
            </summary>
            <typeparam name="T">The service type. Generally this must be the interface type, not the concrete type.</typeparam>
            <param name="serviceProvider">The service provider.</param>
        </member>
        <member name="T:SharpShell.SharpContextMenu.InvokeCommandInfo">
            <summary>
            The InvokeCommandInfo class stores data about an invoked command. It is typically
            retrieved in a <see cref="T:SharpShell.SharpContextMenu.SharpContextMenu"/> derived class for advanced menu#
            functionality.
            </summary>
        </member>
        <member name="P:SharpShell.SharpContextMenu.InvokeCommandInfo.WindowHandle">
            <summary>
            Gets the window handle.
            </summary>
            <value>
            The window handle.
            </value>
        </member>
        <member name="P:SharpShell.SharpContextMenu.InvokeCommandInfo.ShowCommand">
            <summary>
            Gets the show command.
            </summary>
            <value>
            The show command.
            </value>
        </member>
        <member name="T:SharpShell.SharpContextMenu.PARGB32">
            <summary>
            The PARGB32 Helper class is used to create Windows Vista PARGB32 bitmaps.
            </summary>
        </member>
        <member name="M:SharpShell.SharpContextMenu.PARGB32.CreatePARGB32HBitmap(System.IntPtr,System.Drawing.Size)">
            <summary>
            Creates a handle to a PARGB32 bitmap from an Icon.
            </summary>
            <param name="iconHandle">The handle to the icon.</param>
            <param name="iconSize">The iconSize of the icon.</param>
            <returns>A PARGB32 bitmap with the contents of the icon, including transparency.</returns>
        </member>
        <member name="M:SharpShell.SharpContextMenu.PARGB32.Create32BitHBITMAP(System.IntPtr,System.Drawing.Size,System.IntPtr@,System.IntPtr@)">
            <summary>
            Creates a 32 bit HBITMAP of the specified size.
            </summary>
            <param name="hdc">The HDC.</param>
            <param name="size">The size.</param>
            <param name="bits">The bits.</param>
            <param name="hBitmap">The bitmap handle.</param>
            <returns>True if the bitmap was created successfully.</returns>
        </member>
        <member name="M:SharpShell.SharpContextMenu.PARGB32.ConvertBufferToPARGB32(System.IntPtr,System.IntPtr,System.IntPtr,System.Drawing.Size)">
            <summary>
            Converts a buffer to PARGB32.
            </summary>
            <param name="hPaintBuffer">The paint buffer handle.</param>
            <param name="hdc">The device context handle.</param>
            <param name="iconHandle">The icon handle.</param>
            <param name="iconSize">The icon size.</param>
        </member>
        <member name="M:SharpShell.SharpContextMenu.PARGB32.HasAlpha(System.UInt32*,System.Drawing.Size,System.Int32)">
            <summary>
            Determines whether any pixel in an image has an alpha component.
            </summary>
            <param name="pargb">Pixel data.</param>
            <param name="imageSize">The image size.</param>
            <param name="rowLength">The row length.</param>
            <returns>
              <c>true</c> if the specified pargb has alpha; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:SharpShell.SharpContextMenu.PARGB32.ConvertToPARGB32(System.IntPtr,System.UInt32*,System.IntPtr,System.Drawing.Size,System.Int32)">
            <summary>
            Converts raw image data into PARGB32.
            </summary>
            <param name="hdc">The handle to the device context..</param>
            <param name="pargb">The pixel data.</param>
            <param name="hbmp">The bitmap handle.</param>
            <param name="imageSize">The image size.</param>
            <param name="rowLength">The row length.</param>
        </member>
        <member name="T:SharpShell.SharpContextMenu.SharpContextMenu">
            <summary>
            SharpContextMenu is the base class for Shell Context Menu Extensions supported
            by SharpShell. By providing the implementation of 'CanShowMenu' and 'CreateMenu',
            derived classes can provide all of the functionality required to create a fully
            functional shell context menu.
            </summary>
        </member>
        <member name="M:SharpShell.SharpContextMenu.SharpContextMenu.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpContextMenu.SharpContextMenu"/> class.
            </summary>
        </member>
        <member name="M:SharpShell.SharpContextMenu.SharpContextMenu.SharpShell#Interop#IContextMenu#QueryContextMenu(System.IntPtr,System.UInt32,System.Int32,System.Int32,SharpShell.Interop.CMF)">
            <summary>
            Called to query the context menu.
            </summary>
            <param name="hMenu">The handle to the parent menu.</param>
            <param name="indexMenu">The index of the menu.</param>
            <param name="idCmdFirst">The first command ID.</param>
            <param name="idCmdLast">The last command ID.</param>
            <param name="uFlags">The flags.</param>
            <returns>An HRESULT indicating success.</returns>
        </member>
        <member name="M:SharpShell.SharpContextMenu.SharpContextMenu.SharpShell#Interop#IContextMenu#InvokeCommand(System.IntPtr)">
            <summary>
            Called to invoke the comamand.
            </summary>
            <param name="pici">The command info pointer.</param>
        </member>
        <member name="M:SharpShell.SharpContextMenu.SharpContextMenu.SaveInvokeCommandInfo(System.Boolean,SharpShell.Interop.CMINVOKECOMMANDINFO,SharpShell.Interop.CMINVOKECOMMANDINFOEX)">
            <summary>
            Saves the invoke command information.
            </summary>
            <param name="isUnicode">if set to <c>true</c> the unicode structure is used.</param>
            <param name="ici">The ici.</param>
            <param name="iciex">The iciex.</param>
        </member>
        <member name="M:SharpShell.SharpContextMenu.SharpContextMenu.SharpShell#Interop#IContextMenu#GetCommandString(System.Int32,SharpShell.Interop.GCS,System.Int32,System.Text.StringBuilder,System.Int32)">
            <summary>
            Gets the command string.
            </summary>
            <param name="idcmd">The idcmd.</param>
            <param name="uflags">The uflags.</param>
            <param name="reserved">The reserved.</param>
            <param name="commandstring">The commandstring.</param>
            <param name="cch">The CCH.</param>
        </member>
        <member name="M:SharpShell.SharpContextMenu.SharpContextMenu.SharpShell#Interop#IContextMenu2#HandleMenuMsg(System.UInt32,System.IntPtr,System.IntPtr)">
            <summary>
            Enables client objects of the IContextMenu interface to handle messages associated with owner-drawn menu items.
            </summary>
            <param name="uMsg">The message to be processed. In the case of some messages, such as WM_INITMENUPOPUP, WM_DRAWITEM, WM_MENUCHAR, or WM_MEASUREITEM, the client object being called may provide owner-drawn menu items.</param>
            <param name="wParam">Additional message information. The value of this parameter depends on the value of the uMsg parameter.</param>
            <param name="lParam">Additional message information. The value of this parameter depends on the value of the uMsg parameter.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpContextMenu.SharpContextMenu.SharpShell#Interop#IContextMenu3#HandleMenuMsg2(System.UInt32,System.IntPtr,System.IntPtr,System.IntPtr@)">
            <summary>
            Allows client objects of the IContextMenu3 interface to handle messages associated with owner-drawn menu items.
            </summary>
            <param name="uMsg">The message to be processed. In the case of some messages, such as WM_INITMENUPOPUP, WM_DRAWITEM, WM_MENUCHAR, or WM_MEASUREITEM, the client object being called may provide owner-drawn menu items.</param>
            <param name="wParam">Additional message information. The value of this parameter depends on the value of the uMsg parameter.</param>
            <param name="lParam">Additional message information. The value of this parameter depends on the value of the uMsg parameter.</param>
            <param name="plResult">The address of an LRESULT value that the owner of the menu will return from the message. This parameter can be NULL.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="P:SharpShell.SharpContextMenu.SharpContextMenu.CurrentInvokeCommandInfo">
            <summary>
            Gets the current invoke command information. This will only be set when a command
            is invoked, and will be replaced when the next command is invoked.
            </summary>
        </member>
        <member name="M:SharpShell.SharpContextMenu.SharpContextMenu.CanShowMenu">
            <summary>
            Determines whether this instance can a shell context show menu, given the specified selected file list.
            </summary>
            <returns>
              <c>true</c> if this instance should show a shell context menu for the specified file list; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:SharpShell.SharpContextMenu.SharpContextMenu.CreateMenu">
            <summary>
            Creates the context menu. This can be a single menu item or a tree of them.
            </summary>
            <returns>The context menu for the shell context menu.</returns>
        </member>
        <member name="M:SharpShell.SharpContextMenu.SharpContextMenu.OnInitialiseMenu(System.Int32)">
            <summary>
            Called when the context menu is about to be displayed.
            This function can be used to customise the context menu based
            on the items selected.
            </summary>
            <param name="parentItemIndex">The index of the parent menu item.</param>
        </member>
        <member name="F:SharpShell.SharpContextMenu.SharpContextMenu.contextMenuStrip">
            <summary>
            The lazy context menu strip, only created when we actually need it.
            </summary>
        </member>
        <member name="F:SharpShell.SharpContextMenu.SharpContextMenu.nativeContextMenuWrapper">
            <summary>
            The native context menu wrapper.
            </summary>
        </member>
        <member name="F:SharpShell.SharpContextMenu.SharpContextMenu.currentInvokeCommandInfo">
            <summary>
            The current invoke command information.
            </summary>
        </member>
        <member name="T:SharpShell.SharpContextMenu.NativeContextMenuWrapper">
            <summary>
            The Native Context Menu Wrapper builds a native context menu from a WinForms context
            menu. It also allows command indexes and verbs back to the original menu items.
            </summary>
        </member>
        <member name="M:SharpShell.SharpContextMenu.NativeContextMenuWrapper.ResetNativeContextMenu">
            <summary>
            Resets the native context menu.
            </summary>
        </member>
        <member name="M:SharpShell.SharpContextMenu.NativeContextMenuWrapper.BuildNativeContextMenu(System.IntPtr,System.UInt32,System.UInt32,System.Windows.Forms.ToolStripItemCollection)">
            <summary>
            Builds a native context menu, on to the provided HMENU.
            </summary>
            <param name="hMenu">The handle to the menu.</param>
            <param name="itemIndex">The zero-based position at which to insert the first new menu item.</param>
            <param name="firstItemId">The first item id.</param>
            <param name="toolStripItems">The tool strip menu items.</param>
            <returns>The index of the last item created.</returns>
        </member>
        <member name="M:SharpShell.SharpContextMenu.NativeContextMenuWrapper.CreateNativeMenuItem(System.Windows.Forms.ToolStripItem,System.UInt32)">
            <summary>
            Creates the native menu item.
            </summary>
            <param name="toolStripItem">The tool strip item.</param>
            <param name="id">The id.</param>
            <returns>The native menu ite,.</returns>
        </member>
        <member name="M:SharpShell.SharpContextMenu.NativeContextMenuWrapper.BuildMenuItemInfo(SharpShell.Interop.MENUITEMINFO@,System.Windows.Forms.ToolStripMenuItem)">
            <summary>
            Builds the menu item info.
            </summary>
            <param name="menuItemInfo">The menu item info.</param>
            <param name="menuItem">The menu item.</param>
        </member>
        <member name="M:SharpShell.SharpContextMenu.NativeContextMenuWrapper.BuildSeparatorMenuItemInfo(SharpShell.Interop.MENUITEMINFO@)">
            <summary>
            Builds the menu item info.
            </summary>
            <param name="menuItemInfo">The menu item info.</param>
        </member>
        <member name="M:SharpShell.SharpContextMenu.NativeContextMenuWrapper.TryInvokeCommand(System.Int32)">
            <summary>
            Tries to invoke the command.
            </summary>
            <param name="index">The index.</param>
            <returns>True if the command is invoked.</returns>
        </member>
        <member name="M:SharpShell.SharpContextMenu.NativeContextMenuWrapper.TryInvokeCommand(System.String)">
            <summary>
            Tries to invoke the command.
            </summary>
            <param name="verb">The verb.</param>
            <returns>True if the command is invoked.</returns>
        </member>
        <member name="F:SharpShell.SharpContextMenu.NativeContextMenuWrapper.indexedCommands">
            <summary>
            Map of indexes to commands.
            </summary>
        </member>
        <member name="F:SharpShell.SharpContextMenu.NativeContextMenuWrapper.verbsToCommands">
            <summary>
            Map of verbs to commands.
            </summary>
        </member>
        <member name="T:SharpShell.SharpDataHandler.SharpDataHandler">
            <summary>
            The SharpDataHandler is the base class for SharpShell servers that provide
            custom Icon Handlers.
            </summary>
        </member>
        <member name="M:SharpShell.SharpDataHandler.SharpDataHandler.GetData">
            <summary>
            Gets the data for the selected item. The selected item's path is stored in the SelectedItemPath property.
            </summary>
            <returns>The data for the selected item, or null if there is none.</returns>
        </member>
        <member name="T:SharpShell.SharpDeskBand.BandOptions">
            <summary>
            Represents the band options.
            </summary>
        </member>
        <member name="P:SharpShell.SharpDeskBand.BandOptions.ShowTitle">
            <summary>
            Gets or sets a value indicating whether to show a band title.
            </summary>
            <value>
              <c>true</c> if a title should be shown; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:SharpShell.SharpDeskBand.BandOptions.Title">
            <summary>
            Gets or sets the title. Only shown if <see cref="P:SharpShell.SharpDeskBand.BandOptions.ShowTitle"/> is <c>true</c>
            </summary>
        </member>
        <member name="P:SharpShell.SharpDeskBand.BandOptions.HasVariableHeight">
            <summary>
            Gets or sets a value indicating whether the band has variable height.
            </summary>
            <value>
            <c>true</c> if the band has variable height; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:SharpShell.SharpDeskBand.BandOptions.VerticalSizingIncrement">
            <summary>
            Gets or sets the vertical sizing increment in pixels. Only used if <see cref="P:SharpShell.SharpDeskBand.BandOptions.HasVariableHeight"/>
            is <c>true</c>.
            </summary>
        </member>
        <member name="P:SharpShell.SharpDeskBand.BandOptions.UseBackgroundColour">
            <summary>
            Gets or sets a value indicating whether to use the background colour of the Band UI.
            If true, <see cref="P:System.Windows.Forms.Control.BackColor"/> is used as the background colour.
            </summary>
        </member>
        <member name="P:SharpShell.SharpDeskBand.BandOptions.IsSunken">
            <summary>
            Gets or sets a value indicating whether the band has a sunken border.
            </summary>
            <value>
              <c>true</c> if the band has a sunken border; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:SharpShell.SharpDeskBand.BandOptions.IsFixed">
            <summary>
            The band is of a fixed size - no grip is shown.
            </summary>
        </member>
        <member name="P:SharpShell.SharpDeskBand.BandOptions.IsUndeletable">
            <summary>
            Gets or sets a flag indicating whether the band cannot be removed from the container.
            </summary>
        </member>
        <member name="P:SharpShell.SharpDeskBand.BandOptions.HasChevron">
            <summary>
            Gets or sets a flag indicating whether to show a chevron if the band doesn't fit in the given space.
            </summary>
        </member>
        <member name="P:SharpShell.SharpDeskBand.BandOptions.AlwaysShowGripper">
            <summary>
            Gets or sets a flag indicating whether to always show a gripper.
            </summary>
        </member>
        <member name="P:SharpShell.SharpDeskBand.BandOptions.HasNoMargins">
            <summary>
            Gets or sets a flag indicating whether the band has no margins.
            </summary>
        </member>
        <member name="T:SharpShell.SharpDeskBand.SharpDeskBand">
            <summary>
            The SharpDeskBand class is the base class for any DeskBand shell extension.
            </summary>
            <seealso cref="T:SharpShell.SharpShellServer" />
            <seealso cref="T:SharpShell.Interop.IDeskBand2" />
            <seealso cref="T:SharpShell.Interop.IPersistStream" />
            <seealso cref="T:SharpShell.Interop.IObjectWithSite" />
            <seealso cref="T:SharpShell.Interop.IInputObject" />
        </member>
        <member name="M:SharpShell.SharpDeskBand.SharpDeskBand.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpDeskBand.SharpDeskBand"/> class.
            </summary>
        </member>
        <member name="F:SharpShell.SharpDeskBand.SharpDeskBand.inputObjectSite">
            <summary>
            The COM site (see IObjectWithSite implementation).
            </summary>
        </member>
        <member name="F:SharpShell.SharpDeskBand.SharpDeskBand.parentWindowHandle">
            <summary>
            The handle to the parent window site.
            </summary>
        </member>
        <member name="M:SharpShell.SharpDeskBand.SharpDeskBand.SharpShell#Interop#IInputObject#UIActivateIO(System.Boolean,SharpShell.Interop.MSG@)">
            <summary>
            UI-activates or deactivates the object.
            </summary>
            <param name="fActivate">Indicates if the object is being activated or deactivated. If this value is nonzero, the object is being activated. If this value is zero, the object is being deactivated.</param>
            <param name="msg">A pointer to an MSG structure that contains the message that caused the activation change. This value may be NULL.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpDeskBand.SharpDeskBand.SharpShell#Interop#IInputObject#HasFocusIO">
            <summary>
            Determines if one of the object's windows has the keyboard focus.
            </summary>
            <returns>
            Returns S_OK if one of the object's windows has the keyboard focus, or S_FALSE otherwise.
            </returns>
        </member>
        <member name="M:SharpShell.SharpDeskBand.SharpDeskBand.SharpShell#Interop#IInputObject#TranslateAcceleratorIO(SharpShell.Interop.MSG@)">
            <summary>
            Enables the object to process keyboard accelerators.
            </summary>
            <param name="msg">The address of an MSG structure that contains the keyboard message that is being translated.</param>
            <returns>
            Returns S_OK if the accelerator was translated, or S_FALSE otherwise.
            </returns>
        </member>
        <member name="M:SharpShell.SharpDeskBand.SharpDeskBand.CustomRegisterFunction(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            The custom registration function.
            </summary>
            <param name="serverType">Type of the server.</param>
            <param name="registrationType">Type of the registration.</param>
            <exception cref="T:System.InvalidOperationException">
            Unable to register a SharpNamespaceExtension as it is missing it's junction point definition.
            or
            Cannot open the Virtual Folder NameSpace key.
            or
            Failed to create the Virtual Folder NameSpace extension.
            or
            Cannot open the class key.
            or
            An exception occured creating the ShellFolder key.
            </exception>
        </member>
        <member name="M:SharpShell.SharpDeskBand.SharpDeskBand.CustomUnregisterFunction(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Customs the unregister function.
            </summary>
            <param name="serverType">Type of the server.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:SharpShell.SharpDeskBand.SharpDeskBand.GetMinimumSize">
            <summary>
            Gets the minimum size of the Band UI. This uses the <see cref="P:System.Windows.Forms.Control.MinimumSize"/> value or
            <see cref="P:System.Windows.Forms.Control.Size"/> if no minimum size is defined. This can be overriden to customise this
            behaviour.
            </summary>
            <returns>The minimum size of the Band UI.</returns>
        </member>
        <member name="M:SharpShell.SharpDeskBand.SharpDeskBand.GetMaximumSize">
            <summary>
            Gets the maximum size of the Band UI. This uses the <see cref="P:System.Windows.Forms.Control.MaximumSize"/> value or
            <see cref="P:System.Windows.Forms.Control.Size"/> if no maximum size is defined. This can be overriden to customise this
            behaviour.
            </summary>
            <returns>The minimum size of the Band UI.</returns>
        </member>
        <member name="M:SharpShell.SharpDeskBand.SharpDeskBand.OnBandRemoved">
            <summary>
            Called when the band is being removed from explorer.
            </summary>
        </member>
        <member name="M:SharpShell.SharpDeskBand.SharpDeskBand.CreateDeskBand">
            <summary>
            This function should return a new instance of the desk band's user interface,
            which will simply be a usercontrol.
            </summary>
            <returns></returns>
        </member>
        <member name="M:SharpShell.SharpDeskBand.SharpDeskBand.GetBandOptions">
            <summary>
            Gets the band options.
            </summary>
            <returns>The band options. See <see cref="T:SharpShell.SharpDeskBand.BandOptions"/> for more details.</returns>
        </member>
        <member name="F:SharpShell.SharpDeskBand.SharpDeskBand.lazyDeskBand">
            <summary>
            The lazy desk band provider.
            </summary>
        </member>
        <member name="T:SharpShell.SharpIconHandler.SharpIconHandler">
            <summary>
            The SharpIconHandler is the base class for SharpShell servers that provide
            custom Icon Handlers.
            </summary>
        </member>
        <member name="M:SharpShell.SharpIconHandler.SharpIconHandler.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpIconHandler.SharpIconHandler"/> class.
            </summary>
        </member>
        <member name="M:SharpShell.SharpIconHandler.SharpIconHandler.SharpShell#Interop#IExtractIconA#GetIconLocation(SharpShell.Interop.GILInFlags,System.Text.StringBuilder,System.Int32,System.Int32@,SharpShell.Interop.GILOutFlags@)">
            <summary>
            Gets the location and index of an icon.
            </summary>
            <param name="uFlags">One or more of the following values. This parameter can also be NULL.</param>
            <param name="szIconFile">A pointer to a buffer that receives the icon location. The icon location is a null-terminated string that identifies the file that contains the icon.</param>
            <param name="cchMax">The size of the buffer, in characters, pointed to by pszIconFile.</param>
            <param name="piIndex">A pointer to an int that receives the index of the icon in the file pointed to by pszIconFile.</param>
            <param name="pwFlags">A pointer to a UINT value that receives zero or a combination of the following value</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.SharpIconHandler.SharpIconHandler.SharpShell#Interop#IExtractIconA#Extract(System.String,System.UInt32,System.IntPtr@,System.IntPtr@,System.UInt32)">
            <summary>
            Extracts an icon image from the specified location.
            </summary>
            <param name="pszFile">A pointer to a null-terminated string that specifies the icon location.</param>
            <param name="nIconIndex">The index of the icon in the file pointed to by pszFile.</param>
            <param name="phiconLarge">A pointer to an HICON value that receives the handle to the large icon. This parameter may be NULL.</param>
            <param name="phiconSmall">A pointer to an HICON value that receives the handle to the small icon. This parameter may be NULL.</param>
            <param name="nIconSize">The desired size of the icon, in pixels. The low word contains the size of the large icon, and the high word contains the size of the small icon. The size specified can be the width or height. The width of an icon always equals its height.</param>
            <returns>
            Returns S_OK if the function extracted the icon, or S_FALSE if the calling application should extract the icon.
            </returns>
        </member>
        <member name="M:SharpShell.SharpIconHandler.SharpIconHandler.GetIconSpecificSize(System.Drawing.Icon,System.Drawing.Size)">
            <summary>
            Gets an icon of a specific size from a set of icons.
            </summary>
            <param name="icon">The icon.</param>
            <param name="size">The size required.</param>
            <returns>The icon that is cloest to the size provided.</returns>
        </member>
        <member name="M:SharpShell.SharpIconHandler.SharpIconHandler.GetIcon(System.Boolean,System.UInt32)">
            <summary>
            Gets the icon.
            </summary>
            <param name="smallIcon">if set to <c>true</c> provide a small icon.</param>
            <param name="iconSize">Size of the icon.</param>
            <returns>The icon for the file.</returns>
        </member>
        <member name="P:SharpShell.SharpIconHandler.SharpIconHandler.DontCacheIcons">
            <summary>
            Gets or sets a value indicating whether to force icons from this handler 
            to not be cached by the shell.
            </summary>
            <value>
            	<c>true</c> if icons mustn't be cached; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="T:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler">
            <summary>
            The SharpIconHandler is the base class for SharpShell servers that provide
            custom Icon Handlers.
            </summary>
        </member>
        <member name="M:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.SharpShell#Interop#IShellIconOverlayIdentifier#IsMemberOf(System.String,SharpShell.Interop.FILE_ATTRIBUTE)">
            <summary>
            Specifies whether an icon overlay should be added to a Shell object's icon.
            </summary>
            <param name="pwszPath">A Unicode string that contains the fully qualified path of the Shell object.</param>
            <param name="dwAttrib">The object's attributes. For a complete list of file attributes and their associated flags, see IShellFolder::GetAttributesOf.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.SharpShell#Interop#IShellIconOverlayIdentifier#GetOverlayInfo(System.IntPtr,System.Int32,System.Int32@,SharpShell.Interop.ISIOI@)">
            <summary>
            Provides the location of the icon overlay's bitmap.
            </summary>
            <param name="pwszIconFile">A null-terminated Unicode string that contains the fully qualified path of the file containing the icon. The .dll, .exe, and .ico file types are all acceptable. You must set the ISIOI_ICONFILE flag in pdwFlags if you return a file name.</param>
            <param name="cchMax">The size of the pwszIconFile buffer, in Unicode characters.</param>
            <param name="pIndex">Pointer to an index value used to identify the icon in a file that contains multiple icons. You must set the ISIOI_ICONINDEX flag in pdwFlags if you return an index.</param>
            <param name="pdwFlags">Pointer to a bitmap that specifies the information that is being returned by the method. This parameter can be one or both of the following values: ISIOI_ICONFILE, ISIOI_ICONINDEX.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.SharpShell#Interop#IShellIconOverlayIdentifier#GetPriority(System.Int32@)">
            <summary>
            Specifies the priority of an icon overlay.
            </summary>
            <param name="pPriority">The address of a value that indicates the priority of the overlay identifier. Possible values range from zero to 100, with zero the highest priority.</param>
            <returns>
            Returns S_OK if successful, or a COM error code otherwise.
            </returns>
        </member>
        <member name="M:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.GetIconFilePath">
            <summary>
            Gets the icon file path, creating the icon file if needed.
            </summary>
            <returns>The icon file path.</returns>
        </member>
        <member name="M:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.CustomRegisterFunction(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            The custom registration function.
            </summary>
            <param name="serverType">Type of the server.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.CustomUnregisterFunction(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Customs the unregister function.
            </summary>
            <param name="serverType">Type of the server.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.CreateTemporaryIconFilePath">
            <summary>
            Creates the temporary icon file path.
            </summary>
        </member>
        <member name="M:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.GetPriority">
            <summary>
            Called by the system to get the priority, which is used to determine
            which icon overlay to use if there are multiple handlers. The priority
            must be between 0 and 100, where 0 is the highest priority.
            </summary>
            <returns>A value between 0 and 100, where 0 is the highest priority.</returns>
        </member>
        <member name="M:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.CanShowOverlay(System.String,SharpShell.Interop.FILE_ATTRIBUTE)">
            <summary>
            Determines whether an overlay should be shown for the shell item with the path 'path' and
            the shell attributes 'attributes'.
            </summary>
            <param name="path">The path for the shell item. This is not necessarily the path
            to a physical file or folder.</param>
            <param name="attributes">The attributes of the shell item.</param>
            <returns>
              <c>true</c> if this an overlay should be shown for the specified item; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.GetOverlayIcon">
            <summary>
            Called to get the icon to show as the overlay icon.
            </summary>
            <returns>The overlay icon.</returns>
        </member>
        <member name="F:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.temporaryIconOverlayFilePath">
            <summary>
            The temporary icon overlay file path.
            </summary>
        </member>
        <member name="F:SharpShell.SharpIconOverlayHandler.SharpIconOverlayHandler.MaximumOverlayIdentifiers">
            <summary>
            The maximum number of overlay identifiers in Windows.
            </summary>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.AttributeFlags">
            <summary>
            Flags that can be specified for <see cref="T:SharpShell.SharpNamespaceExtension.IShellNamespaceItem"/> items.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.CanByCopied">
            <summary>
            Indicates that the item can be copied.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.CanBeMoved">
            <summary>
            Indicates that the item can be moved.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.CanBeLinked">
            <summary>
            Indicates that the item can be linked to.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsStorage">
            <summary>
            Indicates that the item is storable and can be bound to the storage system.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.CanBeRenamed">
            <summary>
            Indicates that the object can be renamed.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.CanBeDeleted">
            <summary>
            Indicates that the object can be deleted.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.HasPropertySheets">
            <summary>
            Indicates that the object has property sheets.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsDropTarget">
            <summary>
            Indicates that the object is a drop target.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsEncrypted">
            <summary>
            Indicates that the object is encrypted and is shown in an alternate colour.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsSlow">
            <summary>
            Indicates the object is 'slow' and should be treated by the shell as such.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsGhosted">
            <summary>
            Indicates that the icon should be shown with a 'ghosted' icon.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsLink">
            <summary>
            Indicates that the item is a link or shortcut.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsShared">
            <summary>
            Indicates that the item is shared.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsReadOnly">
            <summary>
            Indicates that the item is read only.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsHidden">
            <summary>
            Indicates that the item is hidden.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsFileSystemAncestor">
            <summary>
            Indicates that item may contain children that are part of the filesystem.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsFolder">
            <summary>
            Indicates that this item is a shell folder, i.e. it can contain 
            other shell items.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsFileSystem">
            <summary>
            Indicates that the object is part of the Windows file system.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.MayContainSubFolders">
            <summary>
            Indicates that the item may contain sub folders.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsVolatile">
            <summary>
            Indicates that the object is volatile, and the shell shouldn't cache
            data relating to it.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsRemovableMedia">
            <summary>
            Indicates that the object is removable media.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsCompressed">
            <summary>
            Indicates that the object is compressed and should be shown in an alternative colour.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsBrowsable">
            <summary>
            The item has children and is browsed with the default explorer UI.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.HasOrIsNewContent">
            <summary>
            A hint to explorer to show the item bold as it has or is new content.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsStream">
            <summary>
            Indicates that the item is a stream and supports binding to a stream.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.AttributeFlags.IsStorageAncestor">
            <summary>
            Indicates that the item can contain storage items, either streams or files.
            </summary>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.ColumnAlignment">
            <summary>
            Specifies column alignment.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ColumnAlignment.Left">
            <summary>
            Left aligned.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ColumnAlignment.Centre">
            <summary>
            Centre aligned.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ColumnAlignment.Right">
            <summary>
            Right aligned.
            </summary>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.CustomNamespaceFolderView">
            <summary>
            A NamespaceFolderView which uses a custom control.
            </summary>
            <seealso cref="T:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderView" />
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.CustomNamespaceFolderView.#ctor(System.Windows.Forms.UserControl)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpNamespaceExtension.CustomNamespaceFolderView"/> class.
            </summary>
            <param name="customView">The custom view.</param>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.CustomNamespaceFolderView.customView">
            <summary>
            The custom view.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.CustomNamespaceFolderView.CreateShellView(SharpShell.Interop.IShellFolder)">
            <summary>
            Creates the shell view.
            </summary>
            <param name="folder">The folder.</param>
            <returns>A shell view.</returns>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.DefaultNamespaceFolderView">
            <summary>
            The default shell namespace folder view.
            </summary>
            <seealso cref="T:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderView" />
            <seealso cref="T:SharpShell.Interop.IShellFolderViewCB" />
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.DefaultNamespaceFolderView.#ctor(System.Collections.Generic.IEnumerable{SharpShell.SharpNamespaceExtension.ShellDetailColumn},System.Func{SharpShell.SharpNamespaceExtension.IShellNamespaceItem,SharpShell.SharpNamespaceExtension.ShellDetailColumn,System.Object})">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpNamespaceExtension.DefaultNamespaceFolderView"/> class.
            </summary>
            <param name="detailColumns">The detail columns.</param>
            <param name="itemDetailProvider">The item detail provider.</param>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.DefaultNamespaceFolderView.CreateShellView(SharpShell.Interop.IShellFolder)">
            <summary>
            Creates a Shell View from a Shell Folder.
            </summary>
            <param name="folder">The folder.</param>
            <returns>
            The Shell View for the folder.
            </returns>
            <exception cref="T:System.Exception">An error occured creating the default folder view.</exception>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.DefaultNamespaceFolderView.Columns">
            <summary>
            Gets the columns.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.DefaultNamespaceFolderView.columns">
            <summary>
            The internal list of columns.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.DefaultNamespaceFolderView.itemDetailProvider">
            <summary>
            A provider to get the details of an item.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.DefaultNamespaceFolderView.MessageSFVCB(SharpShell.Interop.SFVM,System.IntPtr,System.IntPtr,System.IntPtr@)">
            <summary>
            Allows communication between the system folder view object and a system folder view callback object.
            </summary>
            <param name="uMsg">One of the following notifications.</param>
            <param name="wParam">Additional information.</param>
            <param name="lParam">Additional information.</param>
            <param name="plResult">Additional information.</param>
            <returns>
            S_OK if the message was handled, E_NOTIMPL if the shell should perform default processing.
            </returns>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.DisplayNameContext">
            <summary>
            The context that a Display Name will be used in, see <see cref="M:SharpShell.SharpNamespaceExtension.IShellNamespaceItem.GetDisplayName(SharpShell.SharpNamespaceExtension.DisplayNameContext)"/>
            for details.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.DisplayNameContext.Normal">
            <summary>
            The normal display name. Shown in the context of a parent folder and in the address bar.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.DisplayNameContext.OutOfFolder">
            <summary>
            The out of folder context, meaning that extra information can be shown if needed. For example,
            a printer might not just show the printer name, but something like "Printer1 on Computer3".
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.DisplayNameContext.Editing">
            <summary>
            The display name as it will be edited by the user. Typically the display name, but this can
            be different if this makes sense.
            </summary>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.IShellNamespaceFolder">
            <summary>
            A ShellNamespaceFolder is a Shell Namespace Item which contains other items.
            </summary>
            <seealso cref="T:SharpShell.SharpNamespaceExtension.IShellNamespaceItem" />
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.IShellNamespaceFolder.GetChildren(SharpShell.SharpNamespaceExtension.ShellNamespaceEnumerationFlags)">
            <summary>
            Gets the children.
            </summary>
            <param name="flags">The enumeration flags.</param>
            <returns>The folder children.</returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.IShellNamespaceFolder.GetView">
            <summary>
            Gets a view for the folder.
            </summary>
            <returns>A view for the folder.</returns>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.IShellNamespaceFolderContextMenuProvider">
            <summary>
            Defines the contract of an object that can provide a context menu
            for a Shell Namespace Folder. Typically this interface is implemented on classes
            that also implement <see cref="T:SharpShell.SharpNamespaceExtension.IShellNamespaceFolder" /> and is used in conjunction
            with <see cref="N:SharpShell.SharpContextMenu"/>.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.IShellNamespaceFolderContextMenuProvider.CreateContextMenu(SharpShell.Pidl.IdList,SharpShell.Pidl.IdList[])">
            <summary>
             Creates a context menu for a set of folder items.
             </summary>
             <param name="folderIdList">The folder identifier list.</param>
             <param name="folderItemIdLists">The folder item identifier lists. The user may
             select more than one item before right clicking.</param>
             <returns>A context menu for the item(s). This can be a custom type
             or more typically a <see cref="N:SharpShell.SharpContextMenu"/>.
             </returns>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.IShellNamespaceItem">
            <summary>
            The <see cref="T:SharpShell.SharpNamespaceExtension.IShellNamespaceItem"/> interface must be implemented
            on all types that are shell namespace types, i.e. entities that are folders
            in explorer or items within them.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.IShellNamespaceItem.GetShellId">
            <summary>
            Gets the shell identifier for this item. The only constraint for this shell identifier
            is that it must be unique within the parent folder, i.e. there cannot be a sibling with
            the same identifier.
            </summary>
            <returns>A shell identifier for the item.</returns>
            <remarks>
            A shell identifier can be created from raw data with <see cref="M:SharpShell.Pidl.ShellId.FromData(System.Byte[])"/> or 
            from a string with <see cref="M:SharpShell.Pidl.ShellId.FromString(System.String)"/>.
            </remarks>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.IShellNamespaceItem.GetDisplayName(SharpShell.SharpNamespaceExtension.DisplayNameContext)">
            <summary>
            Gets the display name of the item, which may be different for different contexts.
            </summary>
            <returns>The namespace item's display name.</returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.IShellNamespaceItem.GetAttributes">
            <summary>
            Gets the attributes for the shell item.
            </summary>
            <returns>The attributes for the shell item.</returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.IShellNamespaceItem.GetIcon">
            <summary>
            Gets the icon for a shell item. If none is provided, the system default is used.
            </summary>
            <returns>The icon to use for a shell item.</returns>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.NamespaceExtensionAvailability">
            <summary>
            Defines the availability for a namespace extension, either everyone or the current user only.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.NamespaceExtensionAvailability.Everyone">
            <summary>
            All users can use the namespace extension.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.NamespaceExtensionAvailability.CurrentUser">
            <summary>
            Only the current user can use the namespace extension.
            </summary>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.NamespaceExtensionJunctionPointAttribute">
            <summary>
            The <see cref="T:SharpShell.SharpNamespaceExtension.NamespaceExtensionJunctionPointAttribute"/> is an attribute that
            must be applied to Sharp Namespace Extensions to specify the location of the extension.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.NamespaceExtensionJunctionPointAttribute.#ctor(SharpShell.SharpNamespaceExtension.NamespaceExtensionAvailability,SharpShell.SharpNamespaceExtension.VirtualFolder,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpNamespaceExtension.NamespaceExtensionJunctionPointAttribute"/> class.
            </summary>
            <param name="availability">The availability.</param>
            <param name="location">The location.</param>
            <param name="name">The name.</param>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.NamespaceExtensionJunctionPointAttribute.GetJunctionPoint(System.Type)">
            <summary>
            Gets the junction point for a type, if defined.
            </summary>
            <param name="type">The type.</param>
            <returns>The junction point for a type, or null if one is not defined.</returns>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.NamespaceExtensionJunctionPointAttribute.Availablity">
            <summary>
            Gets the availablity of a junction point.
            </summary>
            <value>
            The availablity.
            </value>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.NamespaceExtensionJunctionPointAttribute.Location">
            <summary>
            Gets or sets the location of a junction point.
            </summary>
            <value>
            The location of a junction point.
            </value>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.NamespaceExtensionJunctionPointAttribute.Name">
            <summary>
            Gets the name of a junction point.
            </summary>
            <value>
            The name of a junction point.
            </value>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.NamespaceExtensionRegistrationSettings">
            <summary>
            The Namespace Extension Registration settings are requested by 
            SharpShell to when registering a <see cref="T:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension"/>.
            All configuration is used only during registration time.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.NamespaceExtensionRegistrationSettings.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpNamespaceExtension.NamespaceExtensionRegistrationSettings"/> class.
            </summary>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.NamespaceExtensionRegistrationSettings.HideFolderVerbs">
            <summary>
            If set to true, indicates that verbs associated with folders in the
            system should not appear in the shortcut menu for this extension.
            The default value is <c>false</c>.
            </summary>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.NamespaceExtensionRegistrationSettings.ExtensionAttributes">
            <summary>
            Flags that indicate how an extension behaves with the system.
            By default, none are set.
            </summary>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.NamespaceExtensionRegistrationSettings.Tooltip">
            <summary>
            Gets or sets the tooltip.
            </summary>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.NamespaceExtensionRegistrationSettings.UseAssemblyIcon">
            <summary>
            Gets or sets a value indicating whether to use the assembly icon for the 
            namespace icon.
            </summary>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.PropertyKey.FormatId">
            <summary>
            Gets the format identifier.
            </summary>
            <value>
            The format identifier.
            </value>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.PropertyKey.PropertyId">
            <summary>
            Gets the property identifier.
            </summary>
            <value>
            The property identifier.
            </value>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.ShellDetailColumn">
            <summary>
            A ShellDetailColumn is used to define a column in a <see cref="T:SharpShell.SharpNamespaceExtension.DefaultNamespaceFolderView" />.
            This class specifies how the column is shown, but also how the property of the shell item that is represented
            by the detail column is referenced, via it's <see cref="P:SharpShell.SharpNamespaceExtension.ShellDetailColumn.PropertyKey" />.
            Use standard property keys with the constructor that takes a <see cref="T:SharpShell.SharpNamespaceExtension.StandardPropertyKey" /> or create
            custom property keys by manually specifiying the guid for the <see cref="P:SharpShell.SharpNamespaceExtension.ShellDetailColumn.PropertyKey" />.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellDetailColumn.#ctor(System.String,SharpShell.SharpNamespaceExtension.PropertyKey)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpNamespaceExtension.ShellDetailColumn"/> class.
            </summary>
            <param name="name">The name of the column.</param>
            <param name="propertyKey">The property key.</param>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.ShellDetailColumn.Name">
            <summary>
            Gets the name of the column.
            </summary>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.ShellDetailColumn.PropertyKey">
            <summary>
            Gets the property key for the column and detail.
            </summary>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.ShellDetailColumn.ColumnAlignment">
            <summary>
            Gets or sets the column alignment. The default column alignment is left.
            </summary>
            <value>
            The column alignment.
            </value>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.ShellDetailColumn.AverageItemLength">
            <summary>
            Gets or sets the average length of the text for items in the column, used to 
            provide an initial size. The default value is 50 characters.
            </summary>
            <value>
            The average length of the item.
            </value>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.ShellDetailColumn.HasImage">
            <summary>
            Gets or sets a value indicating whether this column has an image.
            </summary>
            <value>
              <c>true</c> if this column has an image; otherwise, <c>false</c>.
            </value>
            <remarks>
            TODO: replace this with an icon member and set it automatically if the icon is not null.
            </remarks>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.ShellFolderImpl">
            <summary>
            The ShellFolderImpl is used to provide a single location of functionality for the 
            Shell Folder parts of a namespace extension, as well as a namespace extension's 
            child folder (if any).
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.#ctor(SharpShell.SharpNamespaceExtension.SharpNamespaceExtension,SharpShell.SharpNamespaceExtension.IShellNamespaceFolder)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpNamespaceExtension.ShellFolderImpl"/> class.
            This class must be initialised with a reference to the Shell Namespace Extension
            that is being used and the target object (which will be an <see cref="T:SharpShell.SharpNamespaceExtension.IShellNamespaceFolder" />.
            </summary>
            <param name="namespaceExtension">The namespace extension.</param>
            <param name="proxyFolder">The folder that we are acting as an implementation for.</param>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IShellFolder#ParseDisplayName(System.IntPtr,System.IntPtr,System.String,System.UInt32@,System.IntPtr@,SharpShell.Interop.SFGAO@)">
            <summary>
            Translates the display name of a file object or a folder into an item identifier list.
            </summary>
            <param name="hwnd">A window handle. The client should provide a window handle if it displays a dialog or message box. Otherwise set hwnd to NULL.</param>
            <param name="pbc">Optional. A pointer to a bind context used to pass parameters as inputs and outputs to the parsing function.</param>
            <param name="pszDisplayName">A null-terminated Unicode string with the display name.</param>
            <param name="pchEaten">A pointer to a ULONG value that receives the number of characters of the display name that was parsed. If your application does not need this information, set pchEaten to NULL, and no value will be returned.</param>
            <param name="ppidl">When this method returns, contains a pointer to the PIDL for the object.</param>
            <param name="pdwAttributes">The value used to query for file attributes. If not used, it should be set to NULL.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IShellFolder#EnumObjects(System.IntPtr,SharpShell.Interop.SHCONTF,SharpShell.Interop.IEnumIDList@)">
            <summary>
            Allows a client to determine the contents of a folder by creating an item identifier enumeration object and returning its IEnumIDList interface.
            Return value: error code, if any
            </summary>
            <param name="hwnd">If user input is required to perform the enumeration, this window handle should be used by the enumeration object as the parent window to take user input.</param>
            <param name="grfFlags">Flags indicating which items to include in the  enumeration. For a list of possible values, see the SHCONTF enum.</param>
            <param name="ppenumIDList">Address that receives a pointer to the IEnumIDList interface of the enumeration object created by this method.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IShellFolder#BindToObject(System.IntPtr,System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Retrieves an IShellFolder object for a subfolder.
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure (PIDL) that identifies the subfolder.</param>
            <param name="pbc">Optional address of an IBindCtx interface on a bind context object to be used during this operation.</param>
            <param name="riid">Identifier of the interface to return. </param>
            <param name="ppv">Address that receives the interface pointer.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IShellFolder#BindToStorage(System.IntPtr,System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Requests a pointer to an object's storage interface.
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure that identifies the subfolder relative to its parent folder.</param>
            <param name="pbc">Optional address of an IBindCtx interface on a bind context object to be  used during this operation.</param>
            <param name="riid">Interface identifier (IID) of the requested storage interface.</param>
            <param name="ppv">Address that receives the interface pointer specified by riid.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IShellFolder#CompareIDs(System.IntPtr,System.IntPtr,System.IntPtr)">
            <summary>
            Determines the relative order of two file objects or folders, given
            their item identifier lists. Return value: If this method is
            successful, the CODE field of the HRESULT contains one of the
            following values (the code can be retrived using the helper function
            GetHResultCode): Negative A negative return value indicates that the first item should precede the second (pidl1 &lt; pidl2).
            Positive A positive return value indicates that the first item should
            follow the second (pidl1 &gt; pidl2).  Zero A return value of zero
            indicates that the two items are the same (pidl1 = pidl2).
            </summary>
            <param name="lParam">Value that specifies how the comparison  should be performed. The lower Sixteen bits of lParam define the sorting  rule.
            The upper sixteen bits of lParam are used for flags that modify the sorting rule. values can be from  the SHCIDS enum</param>
            <param name="pidl1">Pointer to the first item's ITEMIDLIST structure.</param>
            <param name="pidl2">Pointer to the second item's ITEMIDLIST structure.</param>
            <returns></returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IShellFolder#CreateViewObject(System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Requests an object that can be used to obtain information from or interact
            with a folder object.
            Return value: error code, if any
            </summary>
            <param name="hwndOwner">Handle to the owner window.</param>
            <param name="riid">Identifier of the requested interface.</param>
            <param name="ppv">Address of a pointer to the requested interface.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IShellFolder#GetAttributesOf(System.UInt32,System.IntPtr,SharpShell.Interop.SFGAO@)">
            <summary>
            Retrieves the attributes of one or more file objects or subfolders.
            Return value: error code, if any
            </summary>
            <param name="cidl">Number of file objects from which to retrieve attributes.</param>
            <param name="apidl">Address of an array of pointers to ITEMIDLIST structures, each of which  uniquely identifies a file object relative to the parent folder.</param>
            <param name="rgfInOut">Address of a single ULONG value that, on entry contains the attributes that the caller is
            requesting. On exit, this value contains the requested attributes that are common to all of the specified objects. this value can be from the SFGAO enum</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IShellFolder#GetUIObjectOf(System.IntPtr,System.UInt32,System.IntPtr,System.Guid@,System.UInt32,System.IntPtr@)">
            <summary>
            Retrieves an OLE interface that can be used to carry out actions on the
            specified file objects or folders. Return value: error code, if any
            </summary>
            <param name="hwndOwner">Handle to the owner window that the client should specify if it displays a dialog box or message box.</param>
            <param name="cidl">Number of file objects or subfolders specified in the apidl parameter.</param>
            <param name="apidl">Address of an array of pointers to ITEMIDLIST  structures, each of which  uniquely identifies a file object or subfolder relative to the parent folder.</param>
            <param name="riid">Identifier of the COM interface object to return.</param>
            <param name="rgfReserved">Reserved.</param>
            <param name="ppv">Pointer to the requested interface.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.ProvideDefaultIExtractIcon(System.Boolean,System.IntPtr@)">
            <summary>
            Provides a default IExtractIcon implementation.
            </summary>
            <param name="folderIcon">if set to <c>true</c> use a folder icon, otherwise use an item icon.</param>
            <param name="interfacePointer">The interface pointer.</param>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IShellFolder#GetDisplayNameOf(System.IntPtr,SharpShell.Interop.SHGDNF,SharpShell.Interop.STRRET@)">
            <summary>
            Retrieves the display name for the specified file object or subfolder.
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure (PIDL)  that uniquely identifies the file  object or subfolder relative to the parent  folder.</param>
            <param name="uFlags">Flags used to request the type of display name to return. For a list of possible values.</param>
            <param name="pName">Address of a STRRET structure in which to return the display name.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IShellFolder#SetNameOf(System.IntPtr,System.IntPtr,System.String,SharpShell.Interop.SHGDNF,System.IntPtr@)">
            <summary>
            Sets the display name of a file object or subchanging the item
            identifier in the process.
            Return value: error code, if any
            </summary>
            <param name="hwnd">Handle to the owner window of any dialog or message boxes that the client displays.</param>
            <param name="pidl">Pointer to an ITEMIDLIST structure that uniquely identifies the file object or subfolder relative to the parent folder.</param>
            <param name="pszName">Pointer to a null-terminated string that specifies the new display name.</param>
            <param name="uFlags">Flags indicating the type of name specified by  the lpszName parameter. For a list of possible values, see the description of the SHGNO enum.</param>
            <param name="ppidlOut"></param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IPersist#GetClassID(System.Guid@)">
            <summary>
            Gets the class identifier.
            </summary>
            <param name="pClassID">The p class identifier.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellFolderImpl.SharpShell#Interop#IPersistFolder2#GetCurFolder(System.IntPtr@)">
            <summary>
            Gets the ITEMIDLIST for the folder object.
            </summary>
            <param name="ppidl">The address of an ITEMIDLIST pointer. This PIDL represents the absolute location of the folder and must be relative to the desktop. This is typically a copy of the PIDL passed to Initialize.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <remarks>
            If the folder object has not been initialized, this method returns S_FALSE and ppidl is set to NULL.
            </remarks>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ShellFolderImpl.namespaceExtension">
            <summary>
            The namespace extension that we are either a proxy for or that is that parent of a 
            folder we are a proxy for.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ShellFolderImpl.proxyFolder">
            <summary>
            The shell folder that we are providing an implementation for.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ShellFolderImpl.lazyFolderView">
            <summary>
            The lazy folder view. Initialised when required from the IShellNamespaceFolder object.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ShellFolderImpl.idListAbsolute">
            <summary>
            The absolute ID list of the folder. This is provided by IPersistFolder.
            </summary>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.ShellNamespaceEnumerationFlags">
            <summary>
            ShellNamespaceEnumerationFlags for an enumeration of shell items.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ShellNamespaceEnumerationFlags.Folders">
            <summary>
            The enumeration must include folders.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ShellNamespaceEnumerationFlags.Items">
            <summary>
            The enumeration must include items.
            </summary>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderView">
            <summary>
            A base class for a Shell Namespace Folder View.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderView.CreateShellView(SharpShell.Interop.IShellFolder)">
            <summary>
            Creates a Shell View from a Shell Folder.
            </summary>
            <param name="folder">The folder.</param>
            <returns>The Shell View for the folder.</returns>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.ShellViewHost">
            <summary>
            The ShellViewHost is the window created in the to host custom shell views.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellViewHost.SharpShell#Interop#IShellView#DestroyViewWindow">
            <summary>
            Destroys the view window.
            </summary>
            <returns>
            Returns a success code if successful, or a COM error code otherwise.
            </returns>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.RegistryKeyAttribute">
            <summary>
            Specifies the registry key for an enumeration member.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.RegistryKeyAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpNamespaceExtension.RegistryKeyAttribute"/> class.
            </summary>
            <param name="registryKey">The registry key.</param>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.RegistryKeyAttribute.GetRegistryKey(System.Enum)">
            <summary>
            Gets the registry key for an enumeration member, or null if it is not set.
            </summary>
            <param name="enum">The enumeration member.</param>
            <returns>The registry key attribute for the member, or null if it is not set.</returns>
        </member>
        <member name="P:SharpShell.SharpNamespaceExtension.RegistryKeyAttribute.RegistryKey">
            <summary>
            Gets the registry key.
            </summary>
            <value>
            The registry key.
            </value>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension">
            <summary>
            A <see cref="T:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension"/> is a SharpShell implemented Shell Namespace Extension.
            This is the base class for all Shell Namespace Extensions.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension"/> class.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IShellFolder#ParseDisplayName(System.IntPtr,System.IntPtr,System.String,System.UInt32@,System.IntPtr@,SharpShell.Interop.SFGAO@)">
            <summary>
            Translates the display name of a file object or a folder into an item identifier list.
            </summary>
            <param name="hwnd">A window handle. The client should provide a window handle if it displays a dialog or message box. Otherwise set hwnd to NULL.</param>
            <param name="pbc">Optional. A pointer to a bind context used to pass parameters as inputs and outputs to the parsing function.</param>
            <param name="pszDisplayName">A null-terminated Unicode string with the display name.</param>
            <param name="pchEaten">A pointer to a ULONG value that receives the number of characters of the display name that was parsed. If your application does not need this information, set pchEaten to NULL, and no value will be returned.</param>
            <param name="ppidl">When this method returns, contains a pointer to the PIDL for the object.</param>
            <param name="pdwAttributes">The value used to query for file attributes. If not used, it should be set to NULL.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IShellFolder#EnumObjects(System.IntPtr,SharpShell.Interop.SHCONTF,SharpShell.Interop.IEnumIDList@)">
            <summary>
            Allows a client to determine the contents of a folder by creating an item identifier enumeration object and returning its IEnumIDList interface.
            Return value: error code, if any
            </summary>
            <param name="hwnd">If user input is required to perform the enumeration, this window handle should be used by the enumeration object as the parent window to take user input.</param>
            <param name="grfFlags">Flags indicating which items to include in the  enumeration. For a list of possible values, see the SHCONTF enum.</param>
            <param name="ppenumIDList">Address that receives a pointer to the IEnumIDList interface of the enumeration object created by this method.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IShellFolder#BindToObject(System.IntPtr,System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Retrieves an IShellFolder object for a subfolder.
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure (PIDL) that identifies the subfolder.</param>
            <param name="pbc">Optional address of an IBindCtx interface on a bind context object to be used during this operation.</param>
            <param name="riid">Identifier of the interface to return. </param>
            <param name="ppv">Address that receives the interface pointer.</param>
            <returns>If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IShellFolder#BindToStorage(System.IntPtr,System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Requests a pointer to an object's storage interface.
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure that identifies the subfolder relative to its parent folder.</param>
            <param name="pbc">Optional address of an IBindCtx interface on a bind context object to be  used during this operation.</param>
            <param name="riid">Interface identifier (IID) of the requested storage interface.</param>
            <param name="ppv">Address that receives the interface pointer specified by riid.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IShellFolder#CompareIDs(System.IntPtr,System.IntPtr,System.IntPtr)">
            <summary>
            Determines the relative order of two file objects or folders, given
            their item identifier lists. Return value: If this method is
            successful, the CODE field of the HRESULT contains one of the
            following values (the code can be retrived using the helper function
            GetHResultCode): Negative A negative return value indicates that the first item should precede the second (pidl1 &lt; pidl2).
            Positive A positive return value indicates that the first item should
            follow the second (pidl1 &gt; pidl2).  Zero A return value of zero
            indicates that the two items are the same (pidl1 = pidl2).
            </summary>
            <param name="lParam">Value that specifies how the comparison  should be performed. The lower Sixteen bits of lParam define the sorting  rule.
            The upper sixteen bits of lParam are used for flags that modify the sorting rule. values can be from  the SHCIDS enum</param>
            <param name="pidl1">Pointer to the first item's ITEMIDLIST structure.</param>
            <param name="pidl2">Pointer to the second item's ITEMIDLIST structure.</param>
            <returns></returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IShellFolder#CreateViewObject(System.IntPtr,System.Guid@,System.IntPtr@)">
            <summary>
            Requests an object that can be used to obtain information from or interact
            with a folder object.
            Return value: error code, if any
            </summary>
            <param name="hwndOwner">Handle to the owner window.</param>
            <param name="riid">Identifier of the requested interface.</param>
            <param name="ppv">Address of a pointer to the requested interface.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IShellFolder#GetAttributesOf(System.UInt32,System.IntPtr,SharpShell.Interop.SFGAO@)">
            <summary>
            Retrieves the attributes of one or more file objects or subfolders.
            Return value: error code, if any
            </summary>
            <param name="cidl">Number of file objects from which to retrieve attributes.</param>
            <param name="apidl">Address of an array of pointers to ITEMIDLIST structures, each of which  uniquely identifies a file object relative to the parent folder.</param>
            <param name="rgfInOut">Address of a single ULONG value that, on entry contains the attributes that the caller is
            requesting. On exit, this value contains the requested attributes that are common to all of the specified objects. this value can be from the SFGAO enum</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IShellFolder#GetUIObjectOf(System.IntPtr,System.UInt32,System.IntPtr,System.Guid@,System.UInt32,System.IntPtr@)">
            <summary>
            Retrieves an OLE interface that can be used to carry out actions on the
            specified file objects or folders. Return value: error code, if any
            </summary>
            <param name="hwndOwner">Handle to the owner window that the client should specify if it displays a dialog box or message box.</param>
            <param name="cidl">Number of file objects or subfolders specified in the apidl parameter.</param>
            <param name="apidl">Address of an array of pointers to ITEMIDLIST  structures, each of which  uniquely identifies a file object or subfolder relative to the parent folder.</param>
            <param name="riid">Identifier of the COM interface object to return.</param>
            <param name="rgfReserved">Reserved.</param>
            <param name="ppv">Pointer to the requested interface.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IShellFolder#GetDisplayNameOf(System.IntPtr,SharpShell.Interop.SHGDNF,SharpShell.Interop.STRRET@)">
            <summary>
            Retrieves the display name for the specified file object or subfolder.
            Return value: error code, if any
            </summary>
            <param name="pidl">Address of an ITEMIDLIST structure (PIDL)  that uniquely identifies the file  object or subfolder relative to the parent  folder.</param>
            <param name="uFlags">Flags used to request the type of display name to return. For a list of possible values.</param>
            <param name="pName">Address of a STRRET structure in which to return the display name.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IShellFolder#SetNameOf(System.IntPtr,System.IntPtr,System.String,SharpShell.Interop.SHGDNF,System.IntPtr@)">
            <summary>
            Sets the display name of a file object or subfolder, changing the item
            identifier in the process.
            Return value: error code, if any
            </summary>
            <param name="hwnd">Handle to the owner window of any dialog or message boxes that the client displays.</param>
            <param name="pidl">Pointer to an ITEMIDLIST structure that uniquely identifies the file object or subfolder relative to the parent folder.</param>
            <param name="pszName">Pointer to a null-terminated string that specifies the new display name.</param>
            <param name="uFlags">Flags indicating the type of name specified by  the lpszName parameter. For a list of possible values, see the description of the SHGNO enum.</param>
            <param name="ppidlOut"></param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IPersist#GetClassID(System.Guid@)">
            <summary>
            Retrieves the class identifier (CLSID) of the object.
            </summary>
            <param name="pClassID">A pointer to the location that receives the CLSID on return.
            The CLSID is a globally unique identifier (GUID) that uniquely represents an object 
            class that defines the code that can manipulate the object's data.</param>
            <returns>
            If the method succeeds, the return value is S_OK. Otherwise, it is E_FAIL.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IPersistFolder#Initialize(System.IntPtr)">
            <summary>
            Instructs a Shell folder object to initialize itself based on the information passed.
            </summary>
            <param name="pidl">The address of the ITEMIDLIST (item identifier list) structure 
            that specifies the absolute location of the folder.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.SharpShell#Interop#IPersistFolder2#GetCurFolder(System.IntPtr@)">
            <summary>
            Gets the ITEMIDLIST for the folder object.
            </summary>
            <param name="ppidl">The address of an ITEMIDLIST pointer. This PIDL represents the absolute location of the folder and must be relative to the desktop. This is typically a copy of the PIDL passed to Initialize.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <remarks>
            If the folder object has not been initialized, this method returns S_FALSE and ppidl is set to NULL.
            </remarks>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.CustomRegisterFunction(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            The custom registration function.
            </summary>
            <param name="serverType">Type of the server.</param>
            <param name="registrationType">Type of the registration.</param>
            <exception cref="T:System.InvalidOperationException">
            Unable to register a SharpNamespaceExtension as it is missing it's junction point definition.
            or
            Cannot open the Virtual Folder NameSpace key.
            or
            Failed to create the Virtual Folder NameSpace extension.
            or
            Cannot open the class key.
            or
            An exception occured creating the ShellFolder key.
            </exception>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.CustomUnregisterFunction(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Customs the unregister function.
            </summary>
            <param name="serverType">Type of the server.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.GetRegistrationSettings">
            <summary>
            Gets the registration settings. This function is called only during the initial
            registration of a shell namespace extension to provide core configuration.
            </summary>
            <returns>Registration settings for the server.</returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.GetChildren(SharpShell.SharpNamespaceExtension.ShellNamespaceEnumerationFlags)">
            <summary>
            Gets the children of the extension.
            </summary>
            <param name="flags">The flags. Only return children that match the flags.</param>
            <returns>The children of the extension.</returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.GetView">
            <summary>
            Gets the folder view for the extension.
            This can be a <see cref="T:SharpShell.SharpNamespaceExtension.DefaultNamespaceFolderView" /> which uses the standard user
            interface with customised columns, or a <see cref="T:SharpShell.SharpNamespaceExtension.CustomNamespaceFolderView"/> which presents
            a fully customised user inteface.
            </summary>
            <returns>The folder view for the extension.</returns>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.SharpNamespaceExtension.shellFolderImpl">
            <summary>
            The shell folder implementation internally used to handle the implementation
            of the functionality.
            </summary>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderIdListEnumerator">
            <summary>
            Internally used class to enumerate the contents of a Sharp Namespace Extension folder.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderIdListEnumerator.Next(System.UInt32,System.IntPtr,System.UInt32@)">
            <summary>
            Retrieves the specified number of item identifiers in the
            enumeration sequence and advances the current position by
            the number of items retrieved.
            </summary>
            <param name="celt">Number of elements in the array pointed to by the rgelt parameter.</param>
            <param name="rgelt">Address of an array of ITEMIDLIST pointers that receives the item identifiers. The implementation must allocate these item identifiers
            using the Shell's allocator (retrieved by the SHGetMalloc function). The calling application is responsible for freeing the item
            identifiers using the Shell's allocator.</param>
            <param name="pceltFetched">Address of a value that receives a count of the item identifiers actually returned in rgelt. The count can be smaller than the value
            specified in the celt parameter. This parameter can be NULL only if celt is one.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderIdListEnumerator.Skip(System.UInt32)">
            <summary>
            Skips over the specified number of elements in the enumeration sequence.
            </summary>
            <param name="celt">Number of item identifiers to skip.</param>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderIdListEnumerator.Reset">
            <summary>
            Returns to the beginning of the enumeration sequence.
            </summary>
        </member>
        <member name="M:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderIdListEnumerator.Clone(SharpShell.Interop.IEnumIDList@)">
            <summary>
            Creates a new item enumeration object with the same contents and state as the current one.
            </summary>
            <param name="ppenum">Address of a pointer to the new enumeration object. The calling application must
            eventually free the new object by calling its Release member function.</param>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderIdListEnumerator.shellNamespaceFolder">
            <summary>
            The namespace extension that we're enumerating.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderIdListEnumerator._shellNamespaceEnumerationFlags">
            <summary>
            The enumeration flags.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.ShellNamespaceFolderIdListEnumerator.currentIndex">
            <summary>
            The current index of the enumerator.
            </summary>
        </member>
        <member name="T:SharpShell.SharpNamespaceExtension.VirtualFolder">
            <summary>
            A VirtualFolder is a location that a Shell Namespace Extension can be hosted.
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.VirtualFolder.ControlPanel">
            <summary>
            The control panel
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.VirtualFolder.Desktop">
            <summary>
            The desktop
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.VirtualFolder.EntireNetwork">
            <summary>
            The entire network
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.VirtualFolder.MyComputer">
            <summary>
            My computer
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.VirtualFolder.MyNetworkPlaces">
            <summary>
            My network places
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.VirtualFolder.RemoteComputer">
            <summary>
            The remote computer
            </summary>
        </member>
        <member name="F:SharpShell.SharpNamespaceExtension.VirtualFolder.UsersFiles">
            <summary>
            The users files
            </summary>
        </member>
        <member name="T:SharpShell.SharpPreviewHandler.PreviewHandlerAttribute">
            <summary>
            Defines metadata for Sharp Preview Handlers.
            </summary>
            <seealso cref="T:System.Attribute" />
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.PreviewHandlerAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpPreviewHandler.PreviewHandlerAttribute"/> class.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.PreviewHandlerAttribute.GetPreviewHandlerAttribute(System.Type)">
            <summary>
            Gets the preview handler attribute for a type, if one is set.
            If no preview handler is set, null is returned.
            </summary>
            <param name="type">The type.</param>
            <returns>The preview handler attribute, or null.</returns>
        </member>
        <member name="P:SharpShell.SharpPreviewHandler.PreviewHandlerAttribute.DisableLowILProcessIsolation">
            <summary>
            Disables low IL process isolation. Default is <c>false</c>.
            By default, preview handlers run in a low integrity level (IL) process 
            for security reasons. You can optionally disable running as a low IL 
            process by setting the following value in the registry. However, it 
            is not recommended to do so. Systems could eventually be configured to 
            reject any process that is not low IL.
            </summary>
            <value>
            <c>true</c> if low IL process isolation should be disabled; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:SharpShell.SharpPreviewHandler.PreviewHandlerAttribute.SurrogateHostType">
            <summary>
            Gets or sets the surrogate host type. Changing this from
            the default of SurrogateHostType.DedicatedPrevhost is not recommended.
            </summary>
            <value>
            The surrogate host type.
            </value>
        </member>
        <member name="T:SharpShell.SharpPreviewHandler.SurrogateHostType">
            <summary>
            Defines what sort of Surrogate Host will be used to host a preview handler.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPreviewHandler.SurrogateHostType.DedicatedPrevhost">
            <summary>
            A dedicated Prevhost.exe process will be used for all instances of this preview
            handler. This is the safest option as conflicts with .NET Framework versions
            cannot happen.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPreviewHandler.SurrogateHostType.Prevhost">
            <summary>
            The standard Prevhost.exe surrogate will be used. Not recommended.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPreviewHandler.SurrogateHostType.Prevhost32On64">
            <summary>
            A dedicated Prevhost.exe surrogate suitable for hosting 32 bit preview
            handlers on 64 systems will be used. Not recommended.
            </summary>
        </member>
        <member name="T:SharpShell.SharpPreviewHandler.PreviewHandlerControl">
            <summary>
            Base class for preview handler controls.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.PreviewHandlerControl.SetVisualsBackgroundColor(System.Drawing.Color)">
            <summary>
            Sets the color of the background, if possible, to coordinate with the windows
            color scheme.
            </summary>
            <param name="color">The color.</param>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.PreviewHandlerControl.SetVisualsTextColor(System.Drawing.Color)">
            <summary>
            Sets the color of the text, if possible, to coordinate with the windows
            color scheme.
            </summary>
            <param name="color">The color.</param>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.PreviewHandlerControl.SetVisualsFont(System.Drawing.Font)">
            <summary>
            Sets the font, if possible, to coordinate with the windows
            color scheme.
            </summary>
            <param name="font">The font.</param>
        </member>
        <member name="T:SharpShell.SharpPreviewHandler.PreviewHandlerHost">
            <summary>
            The PreviewHandlerHost is the window created in the preview 
            pane which will hold the derived preview handlers UI.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.PreviewHandlerHost.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpPreviewHandler.PreviewHandlerHost"/> class.
            </summary>
        </member>
        <member name="T:SharpShell.SharpPreviewHandler.PreviewHandlerRegistrar">
            <summary>
            A logic only class which can register a Preview Handler.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.PreviewHandlerRegistrar.Unregister(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Unregisters the SharpShell Preview Handler with the given type.
            </summary>
            <param name="serverType">Type of the server.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.PreviewHandlerRegistrar.CreatePrevhostApp(System.String)">
            <summary>
            Registers a new AppID pointing to prevhost.exe.
            </summary>
            <param name="appId">The application identifier.</param>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.PreviewHandlerRegistrar.DeletePrevhostApp(System.String)">
            <summary>
            Deletes a prevhost application registered for <paramref name="appId"/>, if it exixsts.
            </summary>
            <param name="appId">The application identifier.</param>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.PreviewHandlerRegistrar.GetAppIdForServerClsid(System.Guid)">
            <summary>
            Gets the application identifier for server CLSID.
            This is used when creating a new AppID registration for 
            a dedicate preview handler host.
            </summary>
            <param name="serverClsid">The server CLSID.</param>
            <returns>An AppID for the CLSID.</returns>
        </member>
        <member name="T:SharpShell.SharpPreviewHandler.SharpPreviewHandler">
            <summary>
            The SharpPreviewHandler is the base class for Shell Preview Handlers
            implemented with SharpShell.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpPreviewHandler.SharpPreviewHandler"/> class.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.OnPreviewHostThread(System.Action)">
            <summary>
            Calls a function on the preview host thread.
            </summary>
            <param name="action">The action to invoke on the preview host thread.</param>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.UpdateHost">
            <summary>
            Updates the host, setting the size, parent window and visibility if needed.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.UpdateBounds">
            <summary>
            Updates the size of the controls
            </summary>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IInitializeWithFile#Initialize(System.String,SharpShell.Interop.STGM)">
            <summary>
            Initializes a handler with a file path.
            </summary>
            <param name="pszFilePath">A pointer to a buffer that contains the file path as a null-terminated Unicode string.</param>
            <param name="grfMode">One of the following STGM values that indicates the access mode for pszFilePath. STGM_READ or STGM_READWRITE.</param>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IObjectWithSite#GetSite(System.Guid@,System.IntPtr@)">
            <summary>
            Retrieves the latest site passed using SetSite.
            </summary>
            <param name="riid">The IID of the interface pointer that should be returned in ppvSite.</param>
            <param name="ppvSite">Address of pointer variable that receives the interface pointer requested in riid. Upon successful return, *ppvSite contains the requested interface pointer to the site last seen in SetSite. The specific interface returned depends on the riid argument—in essence, the two arguments act identically to those in QueryInterface. If the appropriate interface pointer is available, the object must call AddRef on that pointer before returning successfully. If no site is available, or the requested interface is not supported, this method must *ppvSite to NULL and return a failure code.</param>
            <returns>
            This method returns S_OK on success.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IObjectWithSite#SetSite(System.Object)">
            <summary>
            Enables a container to pass an object a pointer to the interface for its site.
            </summary>
            <param name="pUnkSite">A pointer to the IUnknown interface pointer of the site managing this object. If NULL, the object should call Release on any existing site at which point the object no longer knows its site.</param>
            <returns>
            This method returns S_OK on success.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IOleWindow#GetWindow(System.IntPtr@)">
            <summary>
            Retrieves a handle to one of the windows participating in in-place activation (frame, document, parent, or in-place object window).
            </summary>
            <param name="phwnd">A pointer to a variable that receives the window handle.</param>
            <returns>
            This method returns S_OK on success.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IOleWindow#ContextSensitiveHelp(System.Boolean)">
            <summary>
            Determines whether context-sensitive help mode should be entered during an in-place activation session.
            </summary>
            <param name="fEnterMode">TRUE if help mode should be entered; FALSE if it should be exited.</param>
            <returns>
            This method returns S_OK if the help mode was entered or exited successfully, depending on the value passed in fEnterMode.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IPreviewHandler#SetWindow(System.IntPtr,SharpShell.Interop.RECT@)">
            <summary>
            Sets the parent window of the previewer window, as well as the area within the parent to be used for the previewer window.
            </summary>
            <param name="hwnd">A handle to the parent window.</param>
            <param name="prc">A pointer to a RECT defining the area for the previewer.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IPreviewHandler#SetRect(SharpShell.Interop.RECT@)">
            <summary>
            Directs the preview handler to change the area within the parent hwnd that it draws into.
            </summary>
            <param name="prc">A pointer to a RECT to be used for the preview.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IPreviewHandler#DoPreview">
            <summary>
            Directs the preview handler to load data from the source specified in an earlier Initialize method call, and to begin rendering to the previewer window.
            </summary>
            <returns>
            This method can return one of these values.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IPreviewHandler#Unload">
            <summary>
            Directs the preview handler to cease rendering a preview and to release all resources that have been allocated based on the item passed in during the initialization.
            </summary>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IPreviewHandler#SetFocus">
            <summary>
            Directs the preview handler to set focus to itself.
            </summary>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IPreviewHandler#QueryFocus(System.IntPtr@)">
            <summary>
            Directs the preview handler to return the HWND from calling the GetFocus Function.
            </summary>
            <param name="phwnd">When this method returns, contains a pointer to the HWND returned from calling the GetFocus Function from the preview handler's foreground thread.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IPreviewHandler#TranslateAccelerator(SharpShell.Interop.MSG)">
            <summary>
            Directs the preview handler to handle a keystroke passed up from the message pump of the process in which the preview handler is running.
            </summary>
            <param name="pmsg">A pointer to a window message.</param>
            <returns>
            If the keystroke message can be processed by the preview handler, the handler will process it and return S_OK. If the preview handler cannot process the keystroke message, it will offer it to the host using TranslateAccelerator. If the host processes the message, this method will return S_OK. If the host does not process the message, this method will return S_FALSE.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IPreviewHandlerVisuals#SetBackgroundColor(SharpShell.Interop.COLORREF)">
            <summary>
            Sets the background color of the preview handler.
            </summary>
            <param name="color">A value of type COLORREF to use for the preview handler background.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IPreviewHandlerVisuals#SetFont(SharpShell.Interop.LOGFONT@)">
            <summary>
            Sets the font attributes to be used for text within the preview handler.
            </summary>
            <param name="plf">A pointer to a LOGFONTW Structure containing the necessary attributes for the font to use.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SharpShell#Interop#IPreviewHandlerVisuals#SetTextColor(SharpShell.Interop.COLORREF)">
            <summary>
            Sets the color of the text within the preview handler.
            </summary>
            <param name="color">A value of type COLORREF to use for the preview handler text color.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error cod
            </returns>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.CustomRegisterFunction(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            The custom registration function.
            </summary>
            <param name="serverType">Type of the server.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.CustomUnregisterFunction(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Customs the unregister function.
            </summary>
            <param name="serverType">Type of the server.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:SharpShell.SharpPreviewHandler.SharpPreviewHandler.DoPreview">
            <summary>
            DoPreview must create the preview handler user interface and initialize it with data
            provided by the shell.
            </summary>
            <returns>The preview handler user interface.</returns>
        </member>
        <member name="F:SharpShell.SharpPreviewHandler.SharpPreviewHandler.previewArea">
            <summary>
            The preview area.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPreviewHandler.SharpPreviewHandler.previewHostHandle">
            <summary>
            The preview host handle.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPreviewHandler.SharpPreviewHandler.previewHandlerHost">
            <summary>
            The preview handler host control.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPreviewHandler.SharpPreviewHandler.site">
            <summary>
            The site provided by the system.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPreviewHandler.SharpPreviewHandler.previewHandlerFrame">
            <summary>
            The preview handler frame.
            </summary>
        </member>
        <member name="P:SharpShell.SharpPreviewHandler.SharpPreviewHandler.SelectedFilePath">
            <summary>
            Gets the selected file path.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPreviewHandler.SharpPreviewHandler.previewHandlerControl">
            <summary>
            The preview handler control.
            </summary>
        </member>
        <member name="P:SharpShell.SharpPreviewHandler.SharpPreviewHandler.AutomaticallyApplyVisuals">
            <summary>
            Gets or sets a value indicating whether to automatically apply visuals.
            </summary>
            <value>
            	<c>true</c> if apply visuals automatically; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="T:SharpShell.Exceptions.ServerRegistrationException">
            <summary>
            An exception that can be thrown during server registration. Typically thrown if
            servers are misconfigured.
            </summary>
        </member>
        <member name="M:SharpShell.Exceptions.ServerRegistrationException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Exceptions.ServerRegistrationException"/> class.
            </summary>
            <param name="message">The message that describes the error.</param>
        </member>
        <member name="M:SharpShell.Exceptions.ServerRegistrationException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Exceptions.ServerRegistrationException"/> class.
            </summary>
            <param name="message">The message.</param>
            <param name="inner">The inner.</param>
        </member>
        <member name="M:SharpShell.Exceptions.ServerRegistrationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.Exceptions.ServerRegistrationException"/> class.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.</param>
        </member>
        <member name="T:SharpShell.SharpPropertySheet.SharpPropertyPage">
            <summary>
            The SharpPropertyPage class is the base class for Property Pages used in 
            Shell Property Sheet Extension servers.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertyPage.Log(System.String)">
            <summary>
            Logs the specified message. Will include the Shell Extension name and page name if available.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertyPage.LogError(System.String,System.Exception)">
            <summary>
            Logs the specified message as an error.  Will include the Shell Extension name and page name if available.
            </summary>
            <param name="message">The message.</param>
            <param name="exception">Optional exception details.</param>
        </member>
        <member name="P:SharpShell.SharpPropertySheet.SharpPropertyPage.PageTitle">
            <summary>
            Gets or sets the page title.
            </summary>
            <value>
            The page title.
            </value>
        </member>
        <member name="P:SharpShell.SharpPropertySheet.SharpPropertyPage.PageIcon">
            <summary>
            Gets the page icon.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertyPage.OnPropertyPageInitialised(SharpShell.SharpPropertySheet.SharpPropertySheet)">
            <summary>
            Called when the page is initialised.
            </summary>
            <param name="parent">The parent property sheet.</param>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertyPage.OnPropertyPageSetActive">
            <summary>
            Called when the property page is activated.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertyPage.OnPropertyPageKillActive">
            <summary>
            Called when the property page is de-activated or about to be closed.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertyPage.OnPropertySheetApply">
            <summary>
            Called when apply is pressed on the property sheet, or the property
            sheet is dismissed with the OK button.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertyPage.OnPropertySheetOK">
            <summary>
            Called when OK is pressed on the property sheet.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertyPage.OnPropertySheetCancel">
            <summary>
            Called when Cancel is pressed on the property sheet.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertyPage.OnPropertySheetClose">
            <summary>
            Called when the cross button on the property sheet is pressed.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertyPage.OnRelease">
            <summary>
            Called when the property page is being released. Use this to clean up managed and unmanaged resources.
            Do *not* use it to close window handles - the window will be closed automatically as the sheet closes.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertyPage.SetPageDataChanged(System.Boolean)">
            <summary>
            Sets the page data changed.
            </summary>
            <param name="changed">if set to <c>true</c> the data has changed and the property sheet should enable the 'Apply' button.</param>
        </member>
        <member name="P:SharpShell.SharpPropertySheet.SharpPropertyPage.PropertyPageProxy">
            <summary>
            Gets or sets the proxy.
            </summary>
            <value>
            The proxy.
            </value>
        </member>
        <member name="T:SharpShell.SharpPropertySheet.PropertyPageProxy">
            <summary>
            The PropertyPageProxy is the object used to pass data between the 
            shell and the SharpPropertyPage.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.PropertyPageProxy.#ctor">
            <summary>
            Prevents a default instance of the <see cref="T:SharpShell.SharpPropertySheet.PropertyPageProxy"/> class from being created.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.PropertyPageProxy.Log(System.String)">
            <summary>
            Logs the specified message. Will include the Shell Extension name and page name if available.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.PropertyPageProxy.LogError(System.String,System.Exception)">
            <summary>
            Logs the specified message as an error.  Will include the Shell Extension name and page name if available.
            </summary>
            <param name="message">The message.</param>
            <param name="exception">Optional exception details.</param>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.PropertyPageProxy.#ctor(SharpShell.SharpPropertySheet.SharpPropertySheet,SharpShell.SharpPropertySheet.SharpPropertyPage)">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpPropertySheet.PropertyPageProxy"/> class.
            </summary>
            <param name="parent">The parent.</param>
            <param name="propertyPage">The target property page.</param>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.PropertyPageProxy.WindowProc(System.IntPtr,System.UInt32,System.IntPtr,System.IntPtr)">
            <summary>
            The WindowProc. Called by the shell and must delegate messages via the proxy to the user control.
            </summary>
            <param name="hWnd">The h WND.</param>
            <param name="uMessage">The u message.</param>
            <param name="wParam">The w param.</param>
            <param name="lParam">The l param.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.PropertyPageProxy.CallbackProc(System.IntPtr,SharpShell.Interop.PSPCB,SharpShell.Interop.PROPSHEETPAGE@)">
            <summary>
            The CallbackProc. Called by the shell to inform of key property page events.
            </summary>
            <param name="hWnd">The h WND.</param>
            <param name="uMsg">The u MSG.</param>
            <param name="ppsp">The PPSP.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.PropertyPageProxy.CreatePropertyPageHandle(SharpShell.NativeBridge.NativeBridge)">
            <summary>
            Creates the property page handle.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.PropertyPageProxy.SetDataChanged(System.Boolean)">
            <summary>
            Sets the data changed state of the parent property sheet, enabling (or disabling) the apply button.
            </summary>
            <param name="changed">if set to <c>true</c> data has changed.</param>
        </member>
        <member name="F:SharpShell.SharpPropertySheet.PropertyPageProxy.dialogProc">
            <summary>
            The dialog proc.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPropertySheet.PropertyPageProxy.callbackProc">
            <summary>
            The callback proc.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPropertySheet.PropertyPageProxy.propertySheetHandle">
            <summary>
            The property sheet handle.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPropertySheet.PropertyPageProxy.referenceCount">
            <summary>
            The reference count.
            </summary>
        </member>
        <member name="F:SharpShell.SharpPropertySheet.PropertyPageProxy.propertySheetPageHandle">
            <summary>
            The property sheet page handle.
            </summary>
        </member>
        <member name="P:SharpShell.SharpPropertySheet.PropertyPageProxy.Parent">
            <summary>
            Gets or sets the parent.
            </summary>
            <value>
            The parent.
            </value>
        </member>
        <member name="P:SharpShell.SharpPropertySheet.PropertyPageProxy.Target">
            <summary>
            Gets the property page.
            </summary>
            <value>
            The property page.
            </value>
        </member>
        <member name="P:SharpShell.SharpPropertySheet.PropertyPageProxy.HostWindowHandle">
            <summary>
            Gets the host window handle.
            </summary>
            <value>
            The host window handle.
            </value>
        </member>
        <member name="T:SharpShell.SharpPropertySheet.SharpPropertySheet">
            <summary>
            SharpPropertySheet is the base class for Shell Property Sheet Extensions supported
            by SharpShell.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertySheet.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:SharpShell.SharpPropertySheet.SharpPropertySheet"/> class.
            </summary>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertySheet.SharpShell#Interop#IShellPropSheetExt#AddPages(System.IntPtr,System.IntPtr)">
            <summary>
            Adds the pages.
            </summary>
            <param name="pfnAddPage">The PFN add page.</param>
            <param name="lParam">The l param.</param>
            <returns>
            If successful, returns a one-based index to specify the page that should be initially displayed. See Remarks for more information.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertySheet.SharpShell#Interop#IShellPropSheetExt#ReplacePage(System.UInt32,SharpShell.Interop.AddPropertySheetPageDelegate,System.IntPtr)">
            <summary>
            Replaces the page.
            </summary>
            <param name="uPageID">The u page ID.</param>
            <param name="lpfnReplacePage">The LPFN replace page.</param>
            <param name="lParam">The l param.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertySheet.CanShowSheet">
            <summary>
            Determines whether this instance can show a shell property sheet, given the specified selected file list.
            </summary>
            <returns>
              <c>true</c> if this instance should show a shell property sheet for the specified file list; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:SharpShell.SharpPropertySheet.SharpPropertySheet.CreatePages">
            <summary>
            Creates the pages.
            </summary>
            <returns>The property sheet pages.</returns>
        </member>
        <member name="F:SharpShell.SharpPropertySheet.SharpPropertySheet.propertySheetPages">
            <summary>
            The lazy property sheet pages, only created when we actually need them.
            </summary>
        </member>
        <member name="P:SharpShell.SharpPropertySheet.SharpPropertySheet.Pages">
            <summary>
            Gets the pages.
            </summary>
        </member>
        <member name="T:SharpShell.SharpThumbnailHandler.SharpItemThumbnailHandler">
            <summary>
            The SharpItemThumbnailHandler is the base class for SharpShell servers that provide
            custom Thumbnail Image Handlers. <see cref="T:SharpShell.SharpThumbnailHandler.SharpThumbnailHandler"/>, which initialises with a stream
            should be preferred for performance reasons.
            </summary>
        </member>
        <member name="M:SharpShell.SharpThumbnailHandler.SharpItemThumbnailHandler.SharpShell#Interop#IThumbnailProvider#GetThumbnail(System.UInt32,System.IntPtr@,SharpShell.Interop.WTS_ALPHATYPE@)">
            <summary>
            Gets a thumbnail image and alpha type.
            </summary>
            <param name="cx">The maximum thumbnail size, in pixels. The Shell draws the returned bitmap at this size or smaller. The returned bitmap should fit into a square of width and height cx, though it does not need to be a square image. The Shell scales the bitmap to render at lower sizes. For example, if the image has a 6:4 aspect ratio, then the returned bitmap should also have a 6:4 aspect ratio.</param>
            <param name="phbmp">When this method returns, contains a pointer to the thumbnail image handle. The image must be a DIB section and 32 bits per pixel. The Shell scales down the bitmap if its width or height is larger than the size specified by cx. The Shell always respects the aspect ratio and never scales a bitmap larger than its original size.</param>
            <param name="pdwAlpha">When this method returns, contains a pointer to one of the following values from the WTS_ALPHATYPE enumeration.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpThumbnailHandler.SharpItemThumbnailHandler.GetThumbnailImage(System.UInt32)">
            <summary>
            Gets the thumbnail image for the currently selected item (SelectedItemStream).
            </summary>
            <param name="width">The width of the image that should be returned.</param>
            <returns>The image for the thumbnail.</returns>
        </member>
        <member name="T:SharpShell.SharpThumbnailHandler.SharpThumbnailHandler">
            <summary>
            The SharpIconHandler is the base class for SharpShell servers that provide
            custom Thumbnail Image Handlers.
            </summary>
        </member>
        <member name="M:SharpShell.SharpThumbnailHandler.SharpThumbnailHandler.SharpShell#Interop#IThumbnailProvider#GetThumbnail(System.UInt32,System.IntPtr@,SharpShell.Interop.WTS_ALPHATYPE@)">
            <summary>
            Gets a thumbnail image and alpha type.
            </summary>
            <param name="cx">The maximum thumbnail size, in pixels. The Shell draws the returned bitmap at this size or smaller. The returned bitmap should fit into a square of width and height cx, though it does not need to be a square image. The Shell scales the bitmap to render at lower sizes. For example, if the image has a 6:4 aspect ratio, then the returned bitmap should also have a 6:4 aspect ratio.</param>
            <param name="phbmp">When this method returns, contains a pointer to the thumbnail image handle. The image must be a DIB section and 32 bits per pixel. The Shell scales down the bitmap if its width or height is larger than the size specified by cx. The Shell always respects the aspect ratio and never scales a bitmap larger than its original size.</param>
            <param name="pdwAlpha">When this method returns, contains a pointer to one of the following values from the WTS_ALPHATYPE enumeration.</param>
            <returns>
            If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
            </returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:SharpShell.SharpThumbnailHandler.SharpThumbnailHandler.GetThumbnailImage(System.UInt32)">
            <summary>
            Gets the thumbnail image for the currently selected item (SelectedItemStream).
            </summary>
            <param name="width">The width of the image that should be returned.</param>
            <returns>The image for the thumbnail.</returns>
        </member>
        <member name="T:SharpShell.ShellExtInitServer">
            <summary>
            The ShellExtInitServer is the base class for Shell Extension Servers
            that implement IShellExtInit.
            </summary>
        </member>
        <member name="M:SharpShell.ShellExtInitServer.SharpShell#Interop#IShellExtInit#Initialize(System.IntPtr,System.IntPtr,System.IntPtr)">
            <summary>
            Initializes the shell extension with the parent folder and data object.
            </summary>
            <param name="pidlFolder">The pidl of the parent folder.</param>
            <param name="pDataObj">The data object pointer.</param>
            <param name="hKeyProgID">The handle to the key prog id.</param>
        </member>
        <member name="F:SharpShell.ShellExtInitServer.selectedItemPaths">
            <summary>
            The selected item paths.
            </summary>
        </member>
        <member name="P:SharpShell.ShellExtInitServer.SelectedItemPaths">
            <summary>
            Gets the selected item paths.
            </summary>
        </member>
        <member name="P:SharpShell.ShellExtInitServer.FolderPath">
            <summary>
            Gets the folder path.
            </summary>
            <value>
            The folder path.
            </value>
        </member>
        <member name="T:SharpShell.SharpDropHandler.SharpDropHandler">
            <summary>
            The SharpDropHandler is the base class for SharpShell servers that provide
            custom Drop Handlers.
            </summary>
        </member>
        <member name="M:SharpShell.SharpDropHandler.SharpDropHandler.SharpShell#Interop#IDropTarget#DragEnter(System.Runtime.InteropServices.ComTypes.IDataObject,System.UInt32,SharpShell.Interop.POINT,System.UInt32@)">
            <summary>
            Indicates whether a drop can be accepted, and, if so, the effect of the drop.
            </summary>
            <param name="pDataObj">A pointer to the IDataObject interface on the data object. This data object contains the data being transferred in the drag-and-drop operation. If the drop occurs, this data object will be incorporated into the target.</param>
            <param name="grfKeyState">The current state of the keyboard modifier keys on the keyboard. Possible values can be a combination of any of the flags MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON, and MK_RBUTTON.</param>
            <param name="pt">A POINTL structure containing the current cursor coordinates in screen coordinates.</param>
            <param name="pdwEffect">On input, pointer to the value of the pdwEffect parameter of the DoDragDrop function. On return, must contain one of the DROPEFFECT flags, which indicates what the result of the drop operation would be.</param>
            <returns>
            This method returns S_OK on success.
            </returns>
        </member>
        <member name="M:SharpShell.SharpDropHandler.SharpDropHandler.SharpShell#Interop#IDropTarget#DragOver(System.UInt32,SharpShell.Interop.POINT,System.UInt32@)">
            <summary>
            Provides target feedback to the user and communicates the drop's effect to the DoDragDrop function so it can communicate the effect of the drop back to the source.
            </summary>
            <param name="grfKeyState">The current state of the keyboard modifier keys on the keyboard. Valid values can be a combination of any of the flags MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON, and MK_RBUTTON.</param>
            <param name="pt">A POINTL structure containing the current cursor coordinates in screen coordinates.</param>
            <param name="pdwEffect">On input, pointer to the value of the pdwEffect parameter of the DoDragDrop function. On return, must contain one of the DROPEFFECT flags, which indicates what the result of the drop operation would be.</param>
            <returns>
            This method returns S_OK on success.
            </returns>
        </member>
        <member name="M:SharpShell.SharpDropHandler.SharpDropHandler.SharpShell#Interop#IDropTarget#DragLeave">
            <summary>
            Removes target feedback and releases the data object.
            </summary>
            <returns>
            This method returns S_OK on success.
            </returns>
        </member>
        <member name="M:SharpShell.SharpDropHandler.SharpDropHandler.SharpShell#Interop#IDropTarget#Drop(System.Runtime.InteropServices.ComTypes.IDataObject,System.UInt32,SharpShell.Interop.POINT,System.UInt32@)">
            <summary>
            Incorporates the source data into the target window, removes target feedback, and releases the data object.
            </summary>
            <param name="pDataObj">A pointer to the IDataObject interface on the data object being transferred in the drag-and-drop operation.</param>
            <param name="grfKeyState">The current state of the keyboard modifier keys on the keyboard. Possible values can be a combination of any of the flags MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON, and MK_RBUTTON.</param>
            <param name="pt">A POINTL structure containing the current cursor coordinates in screen coordinates.</param>
            <param name="pdwEffect">On input, pointer to the value of the pdwEffect parameter of the DoDragDrop function. On return, must contain one of the DROPEFFECT flags, which indicates what the result of the drop operation would be.</param>
            <returns>
            This method returns S_OK on success.
            </returns>
        </member>
        <member name="M:SharpShell.SharpDropHandler.SharpDropHandler.DragEnter(System.Windows.Forms.DragEventArgs)">
            <summary>
            Checks what operations are available for dragging onto the target with the drag files.
            </summary>
            <param name="dragEventArgs">The <see cref="T:System.Windows.Forms.DragEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="M:SharpShell.SharpDropHandler.SharpDropHandler.Drop(System.Windows.Forms.DragEventArgs)">
            <summary>
            Performs the drop.
            </summary>
            <param name="dragEventArgs">The <see cref="T:System.Windows.Forms.DragEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="F:SharpShell.SharpDropHandler.SharpDropHandler.dragItems">
            <summary>
            The set of items being dragged.
            </summary>
        </member>
        <member name="P:SharpShell.SharpDropHandler.SharpDropHandler.DragItems">
            <summary>
            Gets the drag items.
            </summary>
        </member>
        <member name="T:SharpShell.PersistFileServer">
            <summary>
            PersistFileServer provides a base for SharpShell Servers that must implement
            IPersistFile (icon handlers, info tip handlers, etc).
            </summary>
        </member>
        <member name="M:SharpShell.PersistFileServer.System#Runtime#InteropServices#ComTypes#IPersistFile#GetClassID(System.Guid@)">
            <summary>
            Retrieves the class identifier (CLSID) of an object.
            </summary>
            <param name="pClassID">When this method returns, contains a reference to the CLSID. This parameter is passed uninitialized.</param>
        </member>
        <member name="M:SharpShell.PersistFileServer.System#Runtime#InteropServices#ComTypes#IPersistFile#IsDirty">
            <summary>
            Checks an object for changes since it was last saved to its current file.
            </summary>
            <returns>
            S_OK if the file has changed since it was last saved; S_FALSE if the file has not changed since it was last saved.
            </returns>
        </member>
        <member name="M:SharpShell.PersistFileServer.System#Runtime#InteropServices#ComTypes#IPersistFile#Load(System.String,System.Int32)">
            <summary>
            Opens the specified file and initializes an object from the file contents.
            </summary>
            <param name="pszFileName">A zero-terminated string containing the absolute path of the file to open.</param>
            <param name="dwMode">A combination of values from the STGM enumeration to indicate the access mode in which to open <paramref name="pszFileName"/>.</param>
        </member>
        <member name="M:SharpShell.PersistFileServer.System#Runtime#InteropServices#ComTypes#IPersistFile#Save(System.String,System.Boolean)">
            <summary>
            Saves a copy of the object into the specified file.
            </summary>
            <param name="pszFileName">A zero-terminated string containing the absolute path of the file to which the object is saved.</param>
            <param name="fRemember">true to used the <paramref name="pszFileName"/> parameter as the current working file; otherwise false.</param>
        </member>
        <member name="M:SharpShell.PersistFileServer.System#Runtime#InteropServices#ComTypes#IPersistFile#SaveCompleted(System.String)">
            <summary>
            Notifies the object that it can write to its file.
            </summary>
            <param name="pszFileName">The absolute path of the file where the object was previously saved.</param>
        </member>
        <member name="M:SharpShell.PersistFileServer.System#Runtime#InteropServices#ComTypes#IPersistFile#GetCurFile(System.String@)">
            <summary>
            Retrieves either the absolute path to the current working file of the object or, if there is no current working file, the default file name prompt of the object.
            </summary>
            <param name="ppszFileName">When this method returns, contains the address of a pointer to a zero-terminated string containing the path for the current file, or the default file name prompt (such as *.txt). This parameter is passed uninitialized.</param>
        </member>
        <member name="P:SharpShell.PersistFileServer.SelectedItemPath">
            <summary>
            Gets the selected item path.
            </summary>
        </member>
        <member name="T:SharpShell.SharpInfoTipHandler.SharpInfoTipHandler">
            <summary>
            The SharpIconHandler is the base class for SharpShell servers that provide
            custom Icon Handlers.
            </summary>
        </member>
        <member name="M:SharpShell.SharpInfoTipHandler.SharpInfoTipHandler.SharpShell#Interop#IQueryInfo#GetInfoTip(SharpShell.Interop.QITIPF,System.String@)">
            <summary>
            Gets the info tip text for an item.
            </summary>
            <param name="dwFlags">Flags that direct the handling of the item from which you're retrieving the info tip text. This value is commonly zero.</param>
            <param name="ppwszTip">The address of a Unicode string pointer that, when this method returns successfully, receives the tip string pointer. Applications that implement this method must allocate memory for ppwszTip by calling CoTaskMemAlloc.
            Calling applications must call CoTaskMemFree to free the memory when it is no longer needed.</param>
            <returns>
            Returns S_OK if the function succeeds. If no info tip text is available, ppwszTip is set to NULL. Otherwise, returns a COM-defined error value.
            </returns>
        </member>
        <member name="M:SharpShell.SharpInfoTipHandler.SharpInfoTipHandler.SharpShell#Interop#IQueryInfo#GetInfoFlags(System.Int32@)">
            <summary>
            Gets the information flags for an item. This method is not currently used.
            </summary>
            <param name="pdwFlags">A pointer to a value that receives the flags for the item. If no flags are to be returned, this value should be set to zero.</param>
            <returns>
            Returns S_OK if pdwFlags returns any flag values, or a COM-defined error value otherwise.
            </returns>
        </member>
        <member name="M:SharpShell.SharpInfoTipHandler.SharpInfoTipHandler.GetInfo(SharpShell.SharpInfoTipHandler.RequestedInfoType,System.Boolean)">
            <summary>
            Gets info for the selected item (SelectedItemPath).
            </summary>
            <param name="infoType">Type of info to return.</param>
            <param name="singleLine">if set to <c>true</c>, put the info in a single line.</param>
            <returns>
            Specified info for the selected file.
            </returns>
        </member>
        <member name="T:SharpShell.SharpInfoTipHandler.RequestedInfoType">
            <summary>
            Specifies the type of information requested.
            </summary>
        </member>
        <member name="F:SharpShell.SharpInfoTipHandler.RequestedInfoType.InfoTip">
            <summary>
            The InfoTip - the text that will be shown in the tooltip for the item.
            </summary>
        </member>
        <member name="F:SharpShell.SharpInfoTipHandler.RequestedInfoType.Name">
            <summary>
            Return the name of the item.
            </summary>
        </member>
        <member name="F:SharpShell.SharpInfoTipHandler.RequestedInfoType.InfoOfShortcut">
            <summary>
            If the item is a shortcut file, get the info of the shortcut itself.
            </summary>
        </member>
        <member name="F:SharpShell.SharpInfoTipHandler.RequestedInfoType.InfoOfShortcutTarget">
            <summary>
            If the item is a shortcut file, get the info of the target of the shortcut.
            </summary>
        </member>
        <member name="T:SharpShell.ISharpShellServer">
            <summary>
            Core interface for SharpShell COM servers.
            </summary>
        </member>
        <member name="P:SharpShell.ISharpShellServer.ServerType">
            <summary>
            Gets the type of the server.
            </summary>
            <value>
            The type of the server.
            </value>
        </member>
        <member name="P:SharpShell.ISharpShellServer.ServerClsid">
            <summary>
            Gets the server CLSID.
            </summary>
        </member>
        <member name="P:SharpShell.ISharpShellServer.DisplayName">
            <summary>
            Gets the display name.
            </summary>
            <value>
            The display name.
            </value>
        </member>
        <member name="T:SharpShell.NativeBridge.NativeBridge">
            <summary>
            The NativeBridge is an object that wraps the functionality of the SharpShellNativeBridge
            library. It also automatically extracts the DLL from the manifest resources.
            </summary>
        </member>
        <member name="M:SharpShell.NativeBridge.NativeBridge.Log(System.String)">
            <summary>
            Logs the specified message. Will include the Shell Extension name and page name if available.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:SharpShell.NativeBridge.NativeBridge.LogError(System.String,System.Exception)">
            <summary>
            Logs the specified message as an error.  Will include the Shell Extension name and page name if available.
            </summary>
            <param name="message">The message.</param>
            <param name="exception">Optional exception details.</param>
        </member>
        <member name="M:SharpShell.NativeBridge.NativeBridge.Initialise">
            <summary>
            Initialises the Native Bridge.
            </summary>
            <returns>True if the initialisation succeeded, otherwise false.</returns>
        </member>
        <member name="M:SharpShell.NativeBridge.NativeBridge.CallAddPropSheetPage(System.IntPtr,System.IntPtr,System.IntPtr)">
            <summary>
            Calls the add prop sheet page.
            </summary>
            <param name="pAddPropSheet">The p add prop sheet.</param>
            <param name="hProp">The h prop.</param>
            <param name="lParam">The l param.</param>
            <returns></returns>
        </member>
        <member name="M:SharpShell.NativeBridge.NativeBridge.GetProxyHostTemplate">
            <summary>
            Gets the proxy host template.
            </summary>
            <returns>The pointer to the proxy host template.</returns>
        </member>
        <member name="M:SharpShell.NativeBridge.NativeBridge.Deinitialise">
            <summary>
            Deinitialises this instance.
            </summary>
        </member>
        <member name="M:SharpShell.NativeBridge.NativeBridge.GetBridgeManifestResourceName">
            <summary>
            Gets the name of the bridge manifest resource.
            </summary>
            <returns>The name of the bridge manifest resource.</returns>
        </member>
        <member name="M:SharpShell.NativeBridge.NativeBridge.GetInstanceHandle">
            <summary>
            Gets the instance handle.
            </summary>
            <returns>The Instance Handle.</returns>
        </member>
        <member name="T:SharpShell.ServerType">
            <summary>
            The Server Type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.None">
            <summary>
            No Server Type.
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellContextMenu">
            <summary>
            A Shell Context Menu.
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellPropertySheet">
            <summary>
            A Shell Property Sheet.
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellIconHandler">
            <summary>
            A Shell Icon Handler.
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellInfoTipHandler">
            <summary>
            A Shell Info Tip Handler.
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellDropHandler">
            <summary>
            A Shell Drop Handler
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellIconOverlayHandler">
            <summary>
            A Shell Icon Overlay Handler.
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellPreviewHander">
            <summary>
            A Shell Preview Handler
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellDataHandler">
            <summary>
            A Shell Data Handler
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellThumbnailHandler">
            <summary>
            A Shell Thumbnail Handler
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellItemThumbnailHandler">
            <summary>
            A Shell Item Thumbnail Handler (as opposed to the standard stream handler).
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellNamespaceExtension">
            <summary>
            A Shell Namespace Extension
            </summary>
        </member>
        <member name="F:SharpShell.ServerType.ShellDeskBand">
            <summary>
            A Shell Desk Band Extension
            </summary>
        </member>
        <member name="T:SharpShell.SharpShellServer">
             <summary>
             The SharpShellServer class is the base class for all SharpShellServers.
             It provides the core standard functionality - registration, unregistration,
             identity information (as required by ISharpShellServer), MEF contract inheritance
             and definitions of virtual functions that can be overriden by advanced users
             to hook into key points in Server Lifecycle.
            
             Note that ALL derived classes will Export ISharpShellServer - this is a useful
             feature as it means that the ServerManager tool (and other tools) can interrogate
             assemblies via MEF to get information on servers they contain.
             </summary>
        </member>
        <member name="M:SharpShell.SharpShellServer.Register(System.Type)">
            <summary>
            The COM Register function. Called by regasm to register a COM server
            in the system. This function will register the server associations defined
            by the type's COMServerAssociation attributes.
            </summary>
            <param name="type">The type.</param>
        </member>
        <member name="M:SharpShell.SharpShellServer.Unregister(System.Type)">
            <summary>
            The COM Unregister function. Called by regasm to unregister a COM server
            in the system. This function will unregister the server associations defined
            by the type's COMServerAssociation attributes.
            </summary>
            <param name="type">The type.</param>
        </member>
        <member name="M:SharpShell.SharpShellServer.DoRegister(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Actually performs registration. The ComRegisterFunction decorated method will call this function
            internally with the flag appropriate for the operating system processor architecture.
            However, this function can also be called manually if needed.
            </summary>
            <param name="type">The type of object to register, this must be a SharpShellServer derived class.</param>
            <param name="registrationType">Type of the registration.</param>
        </member>
        <member name="M:SharpShell.SharpShellServer.DoUnregister(System.Type,SharpShell.ServerRegistration.RegistrationType)">
            <summary>
            Actually performs unregistration. The ComUnregisterFunction decorated method will call this function
            internally with the flag appropriate for the operating system processor architecture.
            However, this function can also be called manually if needed.
            </summary>
            <param name="type">The type of object to unregister, this must be a SharpShellServer derived class.</param>
            <param name="registrationType">Type of the registration to unregister.</param>
        </member>
        <member name="M:SharpShell.SharpShellServer.Log(System.String)">
            <summary>
            Logs the specified message to the SharpShell log, with the name of the type.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:SharpShell.SharpShellServer.LogError(System.String,System.Exception)">
            <summary>
            Logs the specified message to the SharpShell log as an error, with the name of the type.
            </summary>
            <param name="message">The message.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="P:SharpShell.SharpShellServer.DisplayName">
            <summary>
            Gets a display name for the server.
            If the [DisplayName] attribute is defined on the type, then the value
            of this attribute will be used. If not, then the type name will be used.
            </summary>
            <value>
            The name of the server.
            </value>
        </member>
        <member name="P:SharpShell.SharpShellServer.ServerType">
            <summary>
            Gets the type of the server.
            </summary>
            <value>
            The type of the server.
            </value>
        </member>
        <member name="P:SharpShell.SharpShellServer.ServerClsid">
            <summary>
            Gets the server CLSID.
            </summary>
        </member>
    </members>
</doc>
