mirror of https://github.com/dahall/Vanara.git
6901 lines
375 KiB
C#
6901 lines
375 KiB
C#
using System;
|
||
using System.Collections;
|
||
using System.Reflection;
|
||
using System.Runtime.CompilerServices;
|
||
using System.Runtime.InteropServices;
|
||
using System.Runtime.InteropServices.ComTypes;
|
||
using System.Security;
|
||
|
||
namespace Vanara.PInvoke
|
||
{
|
||
public static partial class Shell32
|
||
{
|
||
/// <summary>Specifies values used by IAutoComplete2::GetOptions and IAutoComplete2::SetOptions for options surrounding autocomplete.</summary>
|
||
[PInvokeData("shldisp.h")]
|
||
[Flags]
|
||
public enum AUTOCOMPLETEOPTIONS
|
||
{
|
||
/// <summary>Do not autocomplete.</summary>
|
||
ACO_NONE = 0,
|
||
|
||
/// <summary>Enable the autosuggest drop-down list.</summary>
|
||
ACO_AUTOSUGGEST = 0x1,
|
||
|
||
/// <summary>Enable autoappend.</summary>
|
||
ACO_AUTOAPPEND = 0x2,
|
||
|
||
/// <summary>Add a search item to the list of completed strings. When the user selects this item, it launches a search engine.</summary>
|
||
ACO_SEARCH = 0x4,
|
||
|
||
/// <summary>Do not match common prefixes, such as "www." or "http://".</summary>
|
||
ACO_FILTERPREFIXES = 0x8,
|
||
|
||
/// <summary>Use the TAB key to select an item from the drop-down list.</summary>
|
||
ACO_USETAB = 0x10,
|
||
|
||
/// <summary>Use the UP ARROW and DOWN ARROW keys to display the autosuggest drop-down list.</summary>
|
||
ACO_UPDOWNKEYDROPSLIST = 0x20,
|
||
|
||
/// <summary>
|
||
/// Normal windows display text left-to-right (LTR). Windows can be mirrored to display languages such as Hebrew or Arabic that
|
||
/// read right-to-left (RTL). Typically, control text is displayed in the same direction as the text in its parent window. If
|
||
/// ACO_RTLREADING is set, the text reads in the opposite direction from the text in the parent window.
|
||
/// </summary>
|
||
ACO_RTLREADING = 0x40,
|
||
|
||
/// <summary>
|
||
/// Windows Vista and later. If set, the autocompleted suggestion is treated as a phrase for search purposes. The suggestion,
|
||
/// Microsoft Office, would be treated as "Microsoft Office" (where both Microsoft AND Office must appear in the search results).
|
||
/// </summary>
|
||
ACO_WORD_FILTER = 0x80,
|
||
|
||
/// <summary>
|
||
/// Windows Vista and later. Disable prefix filtering when displaying the autosuggest dropdown. Always display all suggestions.
|
||
/// </summary>
|
||
ACO_NOPREFIXFILTERING = 0x100
|
||
}
|
||
|
||
/// <summary>The offline status of the folder.</summary>
|
||
[PInvokeData("shldisp.h")]
|
||
[Guid("35F1A0D0-3E9A-11D2-8499-005345000000")]
|
||
public enum OfflineFolderStatus
|
||
{
|
||
/// <summary>Server is online with unsynchronized changes.</summary>
|
||
OFS_DIRTYCACHE = 3,
|
||
|
||
/// <summary>Offline caching is not enabled for this folder.</summary>
|
||
OFS_INACTIVE = -1,
|
||
|
||
/// <summary>Server is offline.</summary>
|
||
OFS_OFFLINE = 1,
|
||
|
||
/// <summary>Server is online.</summary>
|
||
OFS_ONLINE = 0,
|
||
|
||
/// <summary>Server is offline but can be reached.</summary>
|
||
OFS_SERVERBACK = 2
|
||
}
|
||
|
||
/// <summary>Specifies the view options returned by the ViewOptions property.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/api/shldisp/ne-shldisp-shellfolderviewoptions typedef enum ShellFolderViewOptions {
|
||
// SFVVO_SHOWALLOBJECTS, SFVVO_SHOWEXTENSIONS, SFVVO_SHOWCOMPCOLOR, SFVVO_SHOWSYSFILES, SFVVO_WIN95CLASSIC,
|
||
// SFVVO_DOUBLECLICKINWEBVIEW, SFVVO_DESKTOPHTML } ;
|
||
[PInvokeData("shldisp.h", MSDNShortId = "7028ff38-7596-4126-aa98-c0be519243c9")]
|
||
[Guid("742A99A0-C77E-11D0-A32C-00A0C91EEDBA")]
|
||
[Flags]
|
||
public enum ShellFolderViewOptions
|
||
{
|
||
/// <summary>The Active Desktop – View as Web Page option is enabled.</summary>
|
||
SFVVO_DESKTOPHTML = 0x200,
|
||
|
||
/// <summary>The Double-Click to Open an Item option is enabled.</summary>
|
||
SFVVO_DOUBLECLICKINWEBVIEW = 0x80,
|
||
|
||
/// <summary>The Show All Files option is enabled.</summary>
|
||
SFVVO_SHOWALLOBJECTS = 1,
|
||
|
||
/// <summary>The Display Compressed Files and Folders with Alternate Color option is enabled.</summary>
|
||
SFVVO_SHOWCOMPCOLOR = 8,
|
||
|
||
/// <summary>The Hide extensions for known file types option is disabled.</summary>
|
||
SFVVO_SHOWEXTENSIONS = 2,
|
||
|
||
/// <summary>The Do Not Show Hidden Files option is enabled.</summary>
|
||
SFVVO_SHOWSYSFILES = 0x20,
|
||
|
||
/// <summary>The Classic Style option is enabled.</summary>
|
||
SFVVO_WIN95CLASSIC = 0x40
|
||
}
|
||
|
||
/// <summary>
|
||
/// Specifies unique, system-independent values that identify special folders. These folders are frequently used by applications but
|
||
/// which may not have the same name or location on any given system. For example, the system folder can be "C:\Windows" on one
|
||
/// system and "C:\Winnt" on another.
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <para>
|
||
/// The values in this enumeration are equivalent to their corresponding CSIDL or KNOWNFOLDERID values, used in C++ applications.
|
||
/// They supersede the use of environment variables for this purpose. Note that not all <c>CSIDL</c> or <c>KNOWNFOLDERID</c> values
|
||
/// have an equivalent value in <c>ShellSpecialFolderConstants</c>.
|
||
/// </para>
|
||
/// <para>
|
||
/// <c>Note</c> Where a constant identifies a file system folder, a commonly used path on Windows Vista systems is given as an
|
||
/// example. However, there is no guarantee that this path will be used on any particular system, including Windows Vista systems.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/api/shldisp/ne-shldisp-shellspecialfolderconstants typedef enum
|
||
// ShellSpecialFolderConstants { ssfDESKTOP, ssfPROGRAMS, ssfCONTROLS, ssfPRINTERS, ssfPERSONAL, ssfFAVORITES, ssfSTARTUP, ssfRECENT,
|
||
// ssfSENDTO, ssfBITBUCKET, ssfSTARTMENU, ssfDESKTOPDIRECTORY, ssfDRIVES, ssfNETWORK, ssfNETHOOD, ssfFONTS, ssfTEMPLATES,
|
||
// ssfCOMMONSTARTMENU, ssfCOMMONPROGRAMS, ssfCOMMONSTARTUP, ssfCOMMONDESKTOPDIR, ssfAPPDATA, ssfPRINTHOOD, ssfLOCALAPPDATA,
|
||
// ssfALTSTARTUP, ssfCOMMONALTSTARTUP, ssfCOMMONFAVORITES, ssfINTERNETCACHE, ssfCOOKIES, ssfHISTORY, ssfCOMMONAPPDATA, ssfWINDOWS,
|
||
// ssfSYSTEM, ssfPROGRAMFILES, ssfMYPICTURES, ssfPROFILE, ssfSYSTEMx86, ssfPROGRAMFILESx86 } ;
|
||
[PInvokeData("shldisp.h", MSDNShortId = "35338102-f3a9-4bcf-ad62-d395462e6d2c")]
|
||
[Guid("CA31EA20-48D0-11CF-8350-444553540000")]
|
||
public enum ShellSpecialFolderConstants
|
||
{
|
||
/// <summary>0x00 (0). Windows desktop—the virtual folder that is the root of the namespace.</summary>
|
||
ssfDESKTOP = 0,
|
||
|
||
/// <summary>
|
||
/// 0x02 (2). File system directory that contains the user's program groups (which are also file system directories). A typical
|
||
/// path is C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs.
|
||
/// </summary>
|
||
ssfPROGRAMS = 2,
|
||
|
||
/// <summary>0x03 (3). Virtual folder that contains icons for the Control Panel applications.</summary>
|
||
ssfCONTROLS,
|
||
|
||
/// <summary>0x04 (4). Virtual folder that contains installed printers.</summary>
|
||
ssfPRINTERS,
|
||
|
||
/// <summary>
|
||
/// 0x05 (5). File system directory that serves as a common repository for a user's documents. A typical path is C:\Users\username\Documents.
|
||
/// </summary>
|
||
ssfPERSONAL,
|
||
|
||
/// <summary>
|
||
/// 0x06 (6). File system directory that serves as a common repository for the user's favorite URLs. A typical path is
|
||
/// C:\Documents and Settings\username\Favorites.
|
||
/// </summary>
|
||
ssfFAVORITES,
|
||
|
||
/// <summary>
|
||
/// 0x07 (7). File system directory that corresponds to the user's Startup program group. The system starts these programs
|
||
/// whenever any user first logs into their profile after a reboot. A typical path is
|
||
/// C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\StartUp.
|
||
/// </summary>
|
||
ssfSTARTUP,
|
||
|
||
/// <summary>0x08 (8). File system directory that contains the user's most recently used documents. A typical path is C:\Users\username\AppData\Roaming\Microsoft\Windows\Recent.</summary>
|
||
ssfRECENT,
|
||
|
||
/// <summary>0x09 (9). File system directory that contains Send To menu items. A typical path is C:\Users\username\AppData\Roaming\Microsoft\Windows\SendTo.</summary>
|
||
ssfSENDTO,
|
||
|
||
/// <summary>0x0a (10). Virtual folder that contains the objects in the user's Recycle Bin.</summary>
|
||
ssfBITBUCKET,
|
||
|
||
/// <summary>
|
||
/// 0x0b (11). File system directory that contains Start menu items. A typical path is
|
||
/// C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu.
|
||
/// </summary>
|
||
ssfSTARTMENU,
|
||
|
||
/// <summary>
|
||
/// 0x10 (16). File system directory used to physically store the file objects that are displayed on the desktop. It is not to be
|
||
/// confused with the desktop folder itself, which is a virtual folder. A typical path is C:\Documents and Settings\username\Desktop.
|
||
/// </summary>
|
||
ssfDESKTOPDIRECTORY = 16,
|
||
|
||
/// <summary>
|
||
/// 0x11 (17). My Computer—the virtual folder that contains everything on the local computer: storage devices, printers, and
|
||
/// Control Panel. This folder can also contain mapped network drives.
|
||
/// </summary>
|
||
ssfDRIVES,
|
||
|
||
/// <summary>0x12 (18). Network Neighborhood—the virtual folder that represents the root of the network namespace hierarchy.</summary>
|
||
ssfNETWORK,
|
||
|
||
/// <summary>
|
||
/// 0x13 (19). A file system folder that contains any link objects in the My Network Places virtual folder. It is not the same as
|
||
/// ssfNETWORK, which represents the network namespace root. A typical path is
|
||
/// C:\Users\username\AppData\Roaming\Microsoft\Windows\Network Shortcuts.
|
||
/// </summary>
|
||
ssfNETHOOD,
|
||
|
||
/// <summary>0x14 (20). Virtual folder that contains installed fonts. A typical path is C:\Windows\Fonts.</summary>
|
||
ssfFONTS,
|
||
|
||
/// <summary>0x15 (21). File system directory that serves as a common repository for document templates.</summary>
|
||
ssfTEMPLATES,
|
||
|
||
/// <summary>
|
||
/// 0x16 (22). File system directory that contains the programs and folders that appear on the Start menu for all users. A
|
||
/// typical path is C:\Documents and Settings\All Users\Start Menu. Valid only for Windows NT systems.
|
||
/// </summary>
|
||
ssfCOMMONSTARTMENU,
|
||
|
||
/// <summary>
|
||
/// 0x17 (23). File system directory that contains the directories for the common program groups that appear on the Start menu
|
||
/// for all users. A typical path is C:\Documents and Settings\All Users\Start Menu\Programs. Valid only for Windows NT systems.
|
||
/// </summary>
|
||
ssfCOMMONPROGRAMS,
|
||
|
||
/// <summary>
|
||
/// 0x18 (24). File system directory that contains the programs that appear in the Startup folder for all users. A typical path
|
||
/// is C:\Documents and Settings\All Users\Microsoft\Windows\Start Menu\Programs\StartUp. Valid only for Windows NT systems.
|
||
/// </summary>
|
||
ssfCOMMONSTARTUP,
|
||
|
||
/// <summary>
|
||
/// 0x19 (25). File system directory that contains files and folders that appear on the desktop for all users. A typical path is
|
||
/// C:\Documents and Settings\All Users\Desktop. Valid only for Windows NT systems.
|
||
/// </summary>
|
||
ssfCOMMONDESKTOPDIR,
|
||
|
||
/// <summary>
|
||
/// 0x1a (26). Version 4.71. File system directory that serves as a common repository for application-specific data. A typical
|
||
/// path is C:\Documents and Settings\username\Application Data.
|
||
/// </summary>
|
||
ssfAPPDATA,
|
||
|
||
/// <summary>
|
||
/// 0x1b (27). File system directory that contains any link objects in the Printers virtual folder. A typical path is
|
||
/// C:\Users\username\AppData\Roaming\Microsoft\Windows\Printer Shortcuts.
|
||
/// </summary>
|
||
ssfPRINTHOOD,
|
||
|
||
/// <summary>
|
||
/// 0x1c (28). Version 5.0. File system directory that serves as a data repository for local (non-roaming) applications. A
|
||
/// typical path is C:\Users\username\AppData\Local.
|
||
/// </summary>
|
||
ssfLOCALAPPDATA,
|
||
|
||
/// <summary>0x1d (29). File system directory that corresponds to the user's non-localized Startup program group.</summary>
|
||
ssfALTSTARTUP,
|
||
|
||
/// <summary>
|
||
/// 0x1e (30). File system directory that corresponds to the non-localized Startup program group for all users. Valid only for
|
||
/// Windows NT systems.
|
||
/// </summary>
|
||
ssfCOMMONALTSTARTUP,
|
||
|
||
/// <summary>
|
||
/// 0x1f (31). File system directory that serves as a common repository for the favorite URLs shared by all users. Valid only for
|
||
/// Windows NT systems.
|
||
/// </summary>
|
||
ssfCOMMONFAVORITES,
|
||
|
||
/// <summary>
|
||
/// 0x20 (32). File system directory that serves as a common repository for temporary Internet files. A typical path is
|
||
/// C:\Users\username\AppData\Local\Microsoft\Windows\Temporary Internet Files.
|
||
/// </summary>
|
||
ssfINTERNETCACHE,
|
||
|
||
/// <summary>
|
||
/// 0x21 (33). File system directory that serves as a common repository for Internet cookies. A typical path is C:\Documents and
|
||
/// Settings\username\Application Data\Microsoft\Windows\Cookies.
|
||
/// </summary>
|
||
ssfCOOKIES,
|
||
|
||
/// <summary>0x22 (34). File system directory that serves as a common repository for Internet history items.</summary>
|
||
ssfHISTORY,
|
||
|
||
/// <summary>
|
||
/// 0x23 (35). Version 5.0. Application data for all users. A typical path is C:\Documents and Settings\All Users\Application Data.
|
||
/// </summary>
|
||
ssfCOMMONAPPDATA,
|
||
|
||
/// <summary>
|
||
/// 0x24 (36). Version 5.0. Windows directory. This corresponds to the %windir% or %SystemRoot% environment variables. A typical
|
||
/// path is C:\Windows.
|
||
/// </summary>
|
||
ssfWINDOWS,
|
||
|
||
/// <summary>0x25 (37). Version 5.0. The System folder. A typical path is C:\Windows\System32.</summary>
|
||
ssfSYSTEM,
|
||
|
||
/// <summary>0x26 (38). Version 5.0. Program Files folder. A typical path is C:\Program Files.</summary>
|
||
ssfPROGRAMFILES,
|
||
|
||
/// <summary>0x27 (39). My Pictures folder. A typical path is C:\Users\username\Pictures.</summary>
|
||
ssfMYPICTURES,
|
||
|
||
/// <summary>0x28 (40). Version 5.0. User's profile folder.</summary>
|
||
ssfPROFILE,
|
||
|
||
/// <summary>
|
||
/// 0x29 (41). Version 5.0. System folder. A typical path is C:\Windows\System32, or C:\Windows\Syswow32 on a 64-bit computer.
|
||
/// </summary>
|
||
ssfSYSTEMx86,
|
||
|
||
/// <summary>
|
||
/// 0x30 (48). Version 6.0. Program Files folder. A typical path is C:\Program Files, or C:\Program Files (X86) on a 64-bit computer.
|
||
/// </summary>
|
||
ssfPROGRAMFILESx86 = 48,
|
||
}
|
||
|
||
/// <summary>Constraint used in search command.</summary>
|
||
[ComImport, Guid("4A3DF050-23BD-11D2-939F-00A0C91EEDBA")]
|
||
public interface DFConstraint
|
||
{
|
||
/// <summary>Get the constraint name.</summary>
|
||
[DispId(0x60020000)]
|
||
string Name { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>Get the constraint value.</summary>
|
||
[DispId(0x60020001)]
|
||
object Value { [return: MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
}
|
||
|
||
/// <summary>Event interface for ShellFolderView.</summary>
|
||
[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIDispatch), Guid("62112AA2-EBE4-11CF-A5FB-0020AFE7292D"), CoClass(typeof(ShellFolderView))]
|
||
public interface DShellFolderViewEvents
|
||
{
|
||
/// <summary>The Selection in the view changed.</summary>
|
||
[PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(DISPID.DISPID_SELECTIONCHANGED)]
|
||
void SelectionChanged();
|
||
|
||
/// <summary>The folder has finished enumerating (flashlight is gone).</summary>
|
||
[PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(DISPID.DISPID_FILELISTENUMDONE)]
|
||
void EnumDone();
|
||
|
||
/// <summary>A verb was invoked on an items in the view (return false to cancel).</summary>
|
||
[PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(DISPID.DISPID_VERBINVOKED)]
|
||
[return: MarshalAs(UnmanagedType.VariantBool)]
|
||
bool VerbInvoked();
|
||
|
||
/// <summary>the default verb (double click) was invoked on an items in the view (return false to cancel).</summary>
|
||
[PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(DISPID.DISPID_DEFAULTVERBINVOKED)]
|
||
[return: MarshalAs(UnmanagedType.VariantBool)]
|
||
bool DefaultVerbInvoked();
|
||
|
||
/// <summary>user started to drag an item (return false to cancel).</summary>
|
||
[PreserveSig, MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(DISPID.DISPID_BEGINDRAG)]
|
||
[return: MarshalAs(UnmanagedType.VariantBool)]
|
||
bool BeginDrag();
|
||
}
|
||
|
||
/// <summary>
|
||
/// Represents a Shell folder. This object contains properties and methods that allow you to retrieve information about the folder.
|
||
/// </summary>
|
||
[PInvokeData("Shldisp.h")]
|
||
[ComImport, Guid("BBCBDE60-C3FF-11CE-8350-444553540000"), DefaultMember("Title")]
|
||
public interface Folder
|
||
{
|
||
/// <summary>Contains the title of the folder.</summary>
|
||
/// <value>Returns a <see cref="string"/> value.</value>
|
||
[DispId(0)]
|
||
string Title { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)] get; }
|
||
|
||
/// <summary>Contains the folder's Application object.</summary>
|
||
/// <value>An object reference to the Application object.</value>
|
||
/// <remarks>
|
||
/// The Application property returns the automation object supported by the application that contains the WebBrowser control, if
|
||
/// that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// <para>
|
||
/// Use this property with the Set and CreateObject commands or with the GetObject command to create and manipulate an instance
|
||
/// of the Internet Explorer application.
|
||
/// </para>
|
||
/// <note type="note">Not all methods are implemented for all folders. For example, the ParseName method is not implemented for
|
||
/// the Control Panel folder (CSIDL_CONTROLS). If you attempt to call an unimplemented method, a 0x800A01BD (decimal 445) error
|
||
/// is raised.</note>
|
||
/// </remarks>
|
||
[DispId(0x60020001)]
|
||
object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
[DispId(0x60020002)]
|
||
object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; }
|
||
|
||
/// <summary>Contains the parent Folder object.</summary>
|
||
/// <value>An object reference to the ParentFolder object.</value>
|
||
/// <remarks>
|
||
/// <note type="note">Not all methods are implemented for all folders. For example, the ParseName method is not implemented for
|
||
/// the Control Panel folder (CSIDL_CONTROLS). If you attempt to call an unimplemented method, a 0x800A01BD (decimal 445) error
|
||
/// is raised.</note>
|
||
/// </remarks>
|
||
[DispId(0x60020003)]
|
||
Folder ParentFolder { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)] get; }
|
||
|
||
/// <summary>Retrieves a FolderItems object that represents the collection of items in the folder.</summary>
|
||
/// <returns>An object reference to the FolderItems object.</returns>
|
||
/// <remarks>
|
||
/// <note type="note">Not all methods are implemented for all folders. For example, the ParseName method is not implemented for
|
||
/// the Control Panel folder (CSIDL_CONTROLS). If you attempt to call an unimplemented method, a 0x800A01BD (decimal 445) error
|
||
/// is raised.</note>
|
||
/// </remarks>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)]
|
||
FolderItems Items();
|
||
|
||
/// <summary>Creates and returns a FolderItem object that represents a specified item.</summary>
|
||
/// <param name="bName">A string that specifies the name of the item.</param>
|
||
/// <returns>An object reference to the FolderItem object.</returns>
|
||
/// <remarks>ParseName should not be used for virtual folders such as My Documents.</remarks>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
FolderItem ParseName([In, MarshalAs(UnmanagedType.BStr)] string bName);
|
||
|
||
/// <summary>Creates a new folder.</summary>
|
||
/// <param name="bName">A string that specifies the name of the new folder.</param>
|
||
/// <param name="vOptions">This value is not currently used.</param>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
void NewFolder([In, MarshalAs(UnmanagedType.BStr)] string bName, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vOptions);
|
||
|
||
/// <summary>Moves an item or items to this folder.</summary>
|
||
/// <param name="vItem">
|
||
/// The item or items to move. This can be a string that represents a file name, a FolderItem object, or a FolderItems object.
|
||
/// </param>
|
||
/// <param name="vOptions">
|
||
/// Options for the move operation. This value can be zero or a combination of the following values. These values are based upon
|
||
/// flags defined for use with the fFlags member of the C++ SHFILEOPSTRUCT structure. These flags are not defined as such for
|
||
/// Visual Basic, VBScript, or JScript, so you must define them yourself or use their numeric equivalents.
|
||
/// </param>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)]
|
||
void MoveHere([In, MarshalAs(UnmanagedType.Struct)] object vItem, [In, Optional, MarshalAs(UnmanagedType.Struct)] FILEOP_FLAGS vOptions);
|
||
|
||
/// <summary>Copies an item or items to a folder.</summary>
|
||
/// <param name="vItem">
|
||
/// The item or items to copy. This can be a string that represents a file name, a FolderItem object, or a FolderItems object.
|
||
/// </param>
|
||
/// <param name="vOptions">
|
||
/// Options for the copy operation. This value can be zero or a combination of the following values. These values are based upon
|
||
/// flags defined for use with the fFlags member of the C++ SHFILEOPSTRUCT structure. Each Shell namespace must provide its own
|
||
/// implementation of these flags, and each namespace can choose to ignore some or even all of these flags. These flags are not
|
||
/// defined by name for Visual Basic, VBScript, or JScript, so you must define them yourself or use their numeric equivalents.
|
||
/// </param>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)]
|
||
void CopyHere([In, MarshalAs(UnmanagedType.Struct)] object vItem, [In, Optional, MarshalAs(UnmanagedType.Struct)] FILEOP_FLAGS vOptions);
|
||
|
||
/// <summary>Retrieves details about an item in a folder. For example, its size, type, or the time of its last modification.</summary>
|
||
/// <param name="vItem">The item for which to retrieve the information. This must be a FolderItem object.</param>
|
||
/// <param name="iColumn">
|
||
/// An Integer value that specifies the information to be retrieved. The information available for an item depends on the folder
|
||
/// in which it is displayed. This value corresponds to the zero-based column number that is displayed in a Shell view.
|
||
/// </param>
|
||
/// <returns>String containing the retrieved detail.</returns>
|
||
[return: MarshalAs(UnmanagedType.BStr)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020009)]
|
||
string GetDetailsOf([In, MarshalAs(UnmanagedType.Struct)] object vItem, [In] int iColumn);
|
||
}
|
||
|
||
/// <summary>Extends the Folder object to support offline folders.</summary>
|
||
[PInvokeData("Shldisp.h")]
|
||
[ComImport, Guid("F0D2D8EF-3890-11D2-BF8B-00C04FB93661"), DefaultMember("Title")]
|
||
public interface Folder2 : Folder
|
||
{
|
||
/// <summary>Contains the title of the folder.</summary>
|
||
/// <value>Returns a <see cref="string"/> value.</value>
|
||
[DispId(0)]
|
||
new string Title { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)] get; }
|
||
|
||
/// <summary>Contains the folder's Application object.</summary>
|
||
/// <value>An object reference to the Application object.</value>
|
||
/// <remarks>
|
||
/// The Application property returns the automation object supported by the application that contains the WebBrowser control, if
|
||
/// that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// <para>
|
||
/// Use this property with the Set and CreateObject commands or with the GetObject command to create and manipulate an instance
|
||
/// of the Internet Explorer application.
|
||
/// </para>
|
||
/// <note type="note">Not all methods are implemented for all folders. For example, the ParseName method is not implemented for
|
||
/// the Control Panel folder (CSIDL_CONTROLS). If you attempt to call an unimplemented method, a 0x800A01BD (decimal 445) error
|
||
/// is raised.</note>
|
||
/// </remarks>
|
||
[DispId(0x60020001)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
[DispId(0x60020002)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; }
|
||
|
||
/// <summary>Contains the parent Folder object.</summary>
|
||
/// <value>An object reference to the ParentFolder object.</value>
|
||
/// <remarks>
|
||
/// <note type="note">Not all methods are implemented for all folders. For example, the ParseName method is not implemented for
|
||
/// the Control Panel folder (CSIDL_CONTROLS). If you attempt to call an unimplemented method, a 0x800A01BD (decimal 445) error
|
||
/// is raised.</note>
|
||
/// </remarks>
|
||
[DispId(0x60020003)]
|
||
new Folder ParentFolder { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)] get; }
|
||
|
||
/// <summary>Retrieves a FolderItems object that represents the collection of items in the folder.</summary>
|
||
/// <returns>An object reference to the FolderItems object.</returns>
|
||
/// <remarks>
|
||
/// <note type="note">Not all methods are implemented for all folders. For example, the ParseName method is not implemented for
|
||
/// the Control Panel folder (CSIDL_CONTROLS). If you attempt to call an unimplemented method, a 0x800A01BD (decimal 445) error
|
||
/// is raised.</note>
|
||
/// </remarks>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)]
|
||
new FolderItems Items();
|
||
|
||
/// <summary>Creates and returns a FolderItem object that represents a specified item.</summary>
|
||
/// <param name="bName">A string that specifies the name of the item.</param>
|
||
/// <returns>An object reference to the FolderItem object.</returns>
|
||
/// <remarks>ParseName should not be used for virtual folders such as My Documents.</remarks>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
new FolderItem ParseName([In, MarshalAs(UnmanagedType.BStr)] string bName);
|
||
|
||
/// <summary>Creates a new folder.</summary>
|
||
/// <param name="bName">A string that specifies the name of the new folder.</param>
|
||
/// <param name="vOptions">This value is not currently used.</param>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
new void NewFolder([In, MarshalAs(UnmanagedType.BStr)] string bName, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vOptions);
|
||
|
||
/// <summary>Moves an item or items to this folder.</summary>
|
||
/// <param name="vItem">
|
||
/// The item or items to move. This can be a string that represents a file name, a FolderItem object, or a FolderItems object.
|
||
/// </param>
|
||
/// <param name="vOptions">
|
||
/// Options for the move operation. This value can be zero or a combination of the following values. These values are based upon
|
||
/// flags defined for use with the fFlags member of the C++ SHFILEOPSTRUCT structure. These flags are not defined as such for
|
||
/// Visual Basic, VBScript, or JScript, so you must define them yourself or use their numeric equivalents.
|
||
/// </param>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)]
|
||
new void MoveHere([In, MarshalAs(UnmanagedType.Struct)] object vItem, [In, Optional, MarshalAs(UnmanagedType.Struct)] FILEOP_FLAGS vOptions);
|
||
|
||
/// <summary>Copies an item or items to a folder.</summary>
|
||
/// <param name="vItem">
|
||
/// The item or items to copy. This can be a string that represents a file name, a FolderItem object, or a FolderItems object.
|
||
/// </param>
|
||
/// <param name="vOptions">
|
||
/// Options for the copy operation. This value can be zero or a combination of the following values. These values are based upon
|
||
/// flags defined for use with the fFlags member of the C++ SHFILEOPSTRUCT structure. Each Shell namespace must provide its own
|
||
/// implementation of these flags, and each namespace can choose to ignore some or even all of these flags. These flags are not
|
||
/// defined by name for Visual Basic, VBScript, or JScript, so you must define them yourself or use their numeric equivalents.
|
||
/// </param>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)]
|
||
new void CopyHere([In, MarshalAs(UnmanagedType.Struct)] object vItem, [In, Optional, MarshalAs(UnmanagedType.Struct)] FILEOP_FLAGS vOptions);
|
||
|
||
/// <summary>Retrieves details about an item in a folder. For example, its size, type, or the time of its last modification.</summary>
|
||
/// <param name="vItem">The item for which to retrieve the information. This must be a FolderItem object.</param>
|
||
/// <param name="iColumn">
|
||
/// An Integer value that specifies the information to be retrieved. The information available for an item depends on the folder
|
||
/// in which it is displayed. This value corresponds to the zero-based column number that is displayed in a Shell view.
|
||
/// </param>
|
||
/// <returns>String containing the retrieved detail.</returns>
|
||
[return: MarshalAs(UnmanagedType.BStr)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020009)]
|
||
new string GetDetailsOf([In, MarshalAs(UnmanagedType.Struct)] object vItem, [In] int iColumn);
|
||
|
||
/// <summary>Contains the folder's FolderItem object.</summary>
|
||
/// <value>The object that evaluates to the folder's FolderItem object.</value>
|
||
[DispId(0x60030000)]
|
||
FolderItem Self { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)] get; }
|
||
|
||
/// <summary>Contains the offline status of the folder.</summary>
|
||
/// <value>Returns a <see cref="OfflineFolderStatus"/> value.</value>
|
||
[DispId(0x60030001)]
|
||
OfflineFolderStatus OfflineStatus { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030001)] get; }
|
||
|
||
/// <summary>Synchronizes all offline files in the folder.</summary>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030002)]
|
||
void Synchronize();
|
||
|
||
/// <summary>This property is not supported.</summary>
|
||
/// <value><see langword="true"/> if [have to show web view barricade]; otherwise, <see langword="false"/>.</value>
|
||
[DispId(1)]
|
||
bool HaveToShowWebViewBarricade { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(1)] get; }
|
||
|
||
/// <summary>Called in response to the web view barricade being dismissed by the user.</summary>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030004)]
|
||
void DismissedWebViewBarricade();
|
||
}
|
||
|
||
/// <summary>Extends the Folder object to support offline folders.</summary>
|
||
[PInvokeData("Shldisp.h")]
|
||
[ComImport, DefaultMember("Title"), Guid("A7AE5F64-C4D7-4D7F-9307-4D24EE54B841")]
|
||
public interface Folder3 : Folder2
|
||
{
|
||
/// <summary>Contains the title of the folder.</summary>
|
||
/// <value>Returns a <see cref="string"/> value.</value>
|
||
[DispId(0)]
|
||
new string Title { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)] get; }
|
||
|
||
/// <summary>Contains the folder's Application object.</summary>
|
||
/// <value>An object reference to the Application object.</value>
|
||
/// <remarks>
|
||
/// The Application property returns the automation object supported by the application that contains the WebBrowser control, if
|
||
/// that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// <para>
|
||
/// Use this property with the Set and CreateObject commands or with the GetObject command to create and manipulate an instance
|
||
/// of the Internet Explorer application.
|
||
/// </para>
|
||
/// <note type="note">Not all methods are implemented for all folders. For example, the ParseName method is not implemented for
|
||
/// the Control Panel folder (CSIDL_CONTROLS). If you attempt to call an unimplemented method, a 0x800A01BD (decimal 445) error
|
||
/// is raised.</note>
|
||
/// </remarks>
|
||
[DispId(0x60020001)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
[DispId(0x60020002)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; }
|
||
|
||
/// <summary>Contains the parent Folder object.</summary>
|
||
/// <value>An object reference to the ParentFolder object.</value>
|
||
/// <remarks>
|
||
/// <note type="note">Not all methods are implemented for all folders. For example, the ParseName method is not implemented for
|
||
/// the Control Panel folder (CSIDL_CONTROLS). If you attempt to call an unimplemented method, a 0x800A01BD (decimal 445) error
|
||
/// is raised.</note>
|
||
/// </remarks>
|
||
[DispId(0x60020003)]
|
||
new Folder ParentFolder { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)] get; }
|
||
|
||
/// <summary>Retrieves a FolderItems object that represents the collection of items in the folder.</summary>
|
||
/// <returns>An object reference to the FolderItems object.</returns>
|
||
/// <remarks>
|
||
/// <note type="note">Not all methods are implemented for all folders. For example, the ParseName method is not implemented for
|
||
/// the Control Panel folder (CSIDL_CONTROLS). If you attempt to call an unimplemented method, a 0x800A01BD (decimal 445) error
|
||
/// is raised.</note>
|
||
/// </remarks>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)]
|
||
new FolderItems Items();
|
||
|
||
/// <summary>Creates and returns a FolderItem object that represents a specified item.</summary>
|
||
/// <param name="bName">A string that specifies the name of the item.</param>
|
||
/// <returns>An object reference to the FolderItem object.</returns>
|
||
/// <remarks>ParseName should not be used for virtual folders such as My Documents.</remarks>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
new FolderItem ParseName([In, MarshalAs(UnmanagedType.BStr)] string bName);
|
||
|
||
/// <summary>Creates a new folder.</summary>
|
||
/// <param name="bName">A string that specifies the name of the new folder.</param>
|
||
/// <param name="vOptions">This value is not currently used.</param>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
new void NewFolder([In, MarshalAs(UnmanagedType.BStr)] string bName, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vOptions);
|
||
|
||
/// <summary>Moves an item or items to this folder.</summary>
|
||
/// <param name="vItem">
|
||
/// The item or items to move. This can be a string that represents a file name, a FolderItem object, or a FolderItems object.
|
||
/// </param>
|
||
/// <param name="vOptions">
|
||
/// Options for the move operation. This value can be zero or a combination of the following values. These values are based upon
|
||
/// flags defined for use with the fFlags member of the C++ SHFILEOPSTRUCT structure. These flags are not defined as such for
|
||
/// Visual Basic, VBScript, or JScript, so you must define them yourself or use their numeric equivalents.
|
||
/// </param>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)]
|
||
new void MoveHere([In, MarshalAs(UnmanagedType.Struct)] object vItem, [In, Optional, MarshalAs(UnmanagedType.Struct)] FILEOP_FLAGS vOptions);
|
||
|
||
/// <summary>Copies an item or items to a folder.</summary>
|
||
/// <param name="vItem">
|
||
/// The item or items to copy. This can be a string that represents a file name, a FolderItem object, or a FolderItems object.
|
||
/// </param>
|
||
/// <param name="vOptions">
|
||
/// Options for the copy operation. This value can be zero or a combination of the following values. These values are based upon
|
||
/// flags defined for use with the fFlags member of the C++ SHFILEOPSTRUCT structure. Each Shell namespace must provide its own
|
||
/// implementation of these flags, and each namespace can choose to ignore some or even all of these flags. These flags are not
|
||
/// defined by name for Visual Basic, VBScript, or JScript, so you must define them yourself or use their numeric equivalents.
|
||
/// </param>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)]
|
||
new void CopyHere([In, MarshalAs(UnmanagedType.Struct)] object vItem, [In, Optional, MarshalAs(UnmanagedType.Struct)] FILEOP_FLAGS vOptions);
|
||
|
||
/// <summary>Retrieves details about an item in a folder. For example, its size, type, or the time of its last modification.</summary>
|
||
/// <param name="vItem">The item for which to retrieve the information. This must be a FolderItem object.</param>
|
||
/// <param name="iColumn">
|
||
/// An Integer value that specifies the information to be retrieved. The information available for an item depends on the folder
|
||
/// in which it is displayed. This value corresponds to the zero-based column number that is displayed in a Shell view.
|
||
/// </param>
|
||
/// <returns>String containing the retrieved detail.</returns>
|
||
[return: MarshalAs(UnmanagedType.BStr)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020009)]
|
||
new string GetDetailsOf([In, MarshalAs(UnmanagedType.Struct)] object vItem, [In] int iColumn);
|
||
|
||
/// <summary>Contains the folder's FolderItem object.</summary>
|
||
/// <value>The object that evaluates to the folder's FolderItem object.</value>
|
||
[DispId(0x60030000)]
|
||
new FolderItem Self { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)] get; }
|
||
|
||
/// <summary>Contains the offline status of the folder.</summary>
|
||
/// <value>Returns a <see cref="OfflineFolderStatus"/> value.</value>
|
||
[DispId(0x60030001)]
|
||
new OfflineFolderStatus OfflineStatus { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030001)] get; }
|
||
|
||
/// <summary>Synchronizes all offline files in the folder.</summary>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030002)]
|
||
new void Synchronize();
|
||
|
||
/// <summary>This property is not supported.</summary>
|
||
/// <value><see langword="true"/> if [have to show web view barricade]; otherwise, <see langword="false"/>.</value>
|
||
[DispId(1)]
|
||
new bool HaveToShowWebViewBarricade { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(1)] get; }
|
||
|
||
/// <summary>Called in response to the web view barricade being dismissed by the user.</summary>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030004)]
|
||
new void DismissedWebViewBarricade();
|
||
|
||
/// <summary>Gets or sets a value indicating whether to show web view barricade.</summary>
|
||
[DispId(2)]
|
||
bool ShowWebViewBarricade { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(2)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(2)] set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Represents an item in a Shell folder. This object contains properties and methods that allow you to retrieve information about
|
||
/// the item.
|
||
/// </summary>
|
||
[PInvokeData("Shldisp.h")]
|
||
[ComImport, Guid("FAC32C80-CBE4-11CE-8350-444553540000"), DefaultMember("Name"), CoClass(typeof(ShellFolderItem))]
|
||
public interface FolderItem
|
||
{
|
||
/// <summary>Contains the Application object of the folder item.</summary>
|
||
/// <value>A variable of type IDispatch that receives the Application object.</value>
|
||
/// <remarks>
|
||
/// The Application property returns the automation object supported by the application that contains the WebBrowser control, if
|
||
/// that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// <para>
|
||
/// Use this property with the Set and CreateObject commands or with the GetObject command to create and manipulate an instance
|
||
/// of the Internet Explorer application.
|
||
/// </para>
|
||
/// </remarks>
|
||
[DispId(0x60020000)]
|
||
object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>Gets an object that represents the parent of the item.</summary>
|
||
/// <value>A variable of type IDispatch that receives the parent object.</value>
|
||
[DispId(0x60020001)]
|
||
object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>Gets or sets the item's name.</summary>
|
||
/// <value>A variable of type BSTR that specifies or receives the item's name.</value>
|
||
[DispId(0)]
|
||
string Name { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)] set; }
|
||
|
||
/// <summary>Contains the item's full path and name.</summary>
|
||
/// <value>A variable of type BSTR that receives the item's full path and name.</value>
|
||
[DispId(0x60020004)]
|
||
string Path { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)] get; }
|
||
|
||
/// <summary>Contains the item's ShellLinkObject object, if the item is a shortcut.</summary>
|
||
/// <value>A variable of type IDispatch that receives the ShellLinkObject object.</value>
|
||
[DispId(0x60020005)]
|
||
object GetLink { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)] get; }
|
||
|
||
/// <summary>Contains the item's Folder object, if the item is a folder.</summary>
|
||
/// <value>A variable of type IDispatch that receives the Folder object.</value>
|
||
[DispId(0x60020006)]
|
||
object GetFolder { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)] get; }
|
||
|
||
/// <summary>Indicates whether the item is a shortcut.</summary>
|
||
/// <value>A Boolean that receives <see langword="true"/> if the item is a shortcut or <see langword="false"/> if not.</value>
|
||
[DispId(0x60020007)]
|
||
bool IsLink { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)] get; }
|
||
|
||
/// <summary>Indicates if the item is a folder.</summary>
|
||
/// <value>A Boolean that receives <see langword="true"/> if the item is a folder or <see langword="false"/> if not.</value>
|
||
[DispId(0x60020008)]
|
||
bool IsFolder { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)] get; }
|
||
|
||
/// <summary>Indicates if the item is part of the file system.</summary>
|
||
/// <value>
|
||
/// A Boolean that receives <see langword="true"/> if the item is part of the file system or <see langword="false"/> if not.
|
||
/// </value>
|
||
[DispId(0x60020009)]
|
||
bool IsFileSystem { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020009)] get; }
|
||
|
||
/// <summary>Indicates if the item can be hosted inside a browser or Windows Explorer frame.</summary>
|
||
/// <value>A Boolean that receives <see langword="true"/> if the item can be browsed or <see langword="false"/> if not.</value>
|
||
[DispId(0x6002000a)]
|
||
bool IsBrowsable { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)] get; }
|
||
|
||
/// <summary>
|
||
/// For a file, sets or gets the date and time that it was last modified. For a folder, retrieves the date and time that a folder
|
||
/// was last modified, but cannot set it.
|
||
/// </summary>
|
||
/// <value>Date that specifies or receives the date and time that the item was last modified.</value>
|
||
[DispId(0x6002000b)]
|
||
DateTime ModifyDate { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000b)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000b)] set; }
|
||
|
||
/// <summary>Contains the item's size.</summary>
|
||
/// <value>An Integer that receives the item's size.</value>
|
||
[DispId(0x6002000d)]
|
||
int Size { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000d)] get; }
|
||
|
||
/// <summary>Contains a string representation of the item's type.</summary>
|
||
/// <value>A variable of type BSTR that receives the item's type.</value>
|
||
[DispId(0x6002000e)]
|
||
string Type { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e)] get; }
|
||
|
||
/// <summary>
|
||
/// Retrieves the item's FolderItemVerbs object. This object is the collection of verbs that can be executed on the item.
|
||
/// </summary>
|
||
/// <returns>An object reference to the FolderItemVerbs object.</returns>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000f)]
|
||
FolderItemVerbs Verbs();
|
||
|
||
/// <summary>Executes a verb on the item.</summary>
|
||
/// <param name="vVerb">
|
||
/// A string that specifies the verb to be executed. It must be one of the values returned by the item's FolderItemVerb.Name
|
||
/// property. If no verb is specified, the default verb will be invoked.
|
||
/// </param>
|
||
/// <remarks>
|
||
/// A verb is a string used to specify a particular action that an item supports. Invoking a verb is equivalent to selecting a
|
||
/// command from an item's shortcut menu. Typically, invoking a verb launches a related application. For example, invoking the
|
||
/// "open" verb on a .txt file opens the file with a text editor, usually Microsoft Notepad. See Launching Applications for
|
||
/// further discussion of verbs.
|
||
/// <para>
|
||
/// The FolderItemVerbs object represents the collection of verbs associated with the item.The default verb may vary for
|
||
/// different items, but it is typically "open".
|
||
/// </para>
|
||
/// </remarks>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020010)]
|
||
void InvokeVerb([In, Optional, MarshalAs(UnmanagedType.Struct)] string vVerb);
|
||
}
|
||
|
||
/// <summary>Extends the FolderItems object. It supports one additional method.</summary>
|
||
[PInvokeData("Shldisp.h")]
|
||
[ComImport, DefaultMember("Name"), Guid("EDC817AA-92B8-11D1-B075-00C04FC33AA5"), CoClass(typeof(ShellFolderItem))]
|
||
public interface FolderItem2 : FolderItem
|
||
{
|
||
/// <summary>Contains the Application object of the folder item.</summary>
|
||
/// <value>A variable of type IDispatch that receives the Application object.</value>
|
||
/// <remarks>
|
||
/// The Application property returns the automation object supported by the application that contains the WebBrowser control, if
|
||
/// that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// <para>
|
||
/// Use this property with the Set and CreateObject commands or with the GetObject command to create and manipulate an instance
|
||
/// of the Internet Explorer application.
|
||
/// </para>
|
||
/// </remarks>
|
||
[DispId(0x60020000)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>Gets an object that represents the parent of the item.</summary>
|
||
/// <value>A variable of type IDispatch that receives the parent object.</value>
|
||
[DispId(0x60020001)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>Gets or sets the item's name.</summary>
|
||
/// <value>A variable of type BSTR that specifies or receives the item's name.</value>
|
||
[DispId(0)]
|
||
new string Name { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)] set; }
|
||
|
||
/// <summary>Contains the item's full path and name.</summary>
|
||
/// <value>A variable of type BSTR that receives the item's full path and name.</value>
|
||
[DispId(0x60020004)]
|
||
new string Path { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)] get; }
|
||
|
||
/// <summary>Contains the item's ShellLinkObject object, if the item is a shortcut.</summary>
|
||
/// <value>A variable of type IDispatch that receives the ShellLinkObject object.</value>
|
||
[DispId(0x60020005)]
|
||
new object GetLink { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)] get; }
|
||
|
||
/// <summary>Contains the item's Folder object, if the item is a folder.</summary>
|
||
/// <value>A variable of type IDispatch that receives the Folder object.</value>
|
||
[DispId(0x60020006)]
|
||
new object GetFolder { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)] get; }
|
||
|
||
/// <summary>Indicates whether the item is a shortcut.</summary>
|
||
/// <value>A Boolean that receives <see langword="true"/> if the item is a shortcut or <see langword="false"/> if not.</value>
|
||
[DispId(0x60020007)]
|
||
new bool IsLink { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)] get; }
|
||
|
||
/// <summary>Indicates if the item is a folder.</summary>
|
||
/// <value>A Boolean that receives <see langword="true"/> if the item is a folder or <see langword="false"/> if not.</value>
|
||
[DispId(0x60020008)]
|
||
new bool IsFolder { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)] get; }
|
||
|
||
/// <summary>Indicates if the item is part of the file system.</summary>
|
||
/// <value>
|
||
/// A Boolean that receives <see langword="true"/> if the item is part of the file system or <see langword="false"/> if not.
|
||
/// </value>
|
||
[DispId(0x60020009)]
|
||
new bool IsFileSystem { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020009)] get; }
|
||
|
||
/// <summary>Indicates if the item can be hosted inside a browser or Windows Explorer frame.</summary>
|
||
/// <value>A Boolean that receives <see langword="true"/> if the item can be browsed or <see langword="false"/> if not.</value>
|
||
[DispId(0x6002000a)]
|
||
new bool IsBrowsable { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)] get; }
|
||
|
||
/// <summary>
|
||
/// For a file, sets or gets the date and time that it was last modified. For a folder, retrieves the date and time that a folder
|
||
/// was last modified, but cannot set it.
|
||
/// </summary>
|
||
/// <value>Date that specifies or receives the date and time that the item was last modified.</value>
|
||
[DispId(0x6002000b)]
|
||
new DateTime ModifyDate { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000b)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000b)] set; }
|
||
|
||
/// <summary>Contains the item's size.</summary>
|
||
/// <value>An Integer that receives the item's size.</value>
|
||
[DispId(0x6002000d)]
|
||
new int Size { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000d)] get; }
|
||
|
||
/// <summary>Contains a string representation of the item's type.</summary>
|
||
/// <value>A variable of type BSTR that receives the item's type.</value>
|
||
[DispId(0x6002000e)]
|
||
new string Type { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e)] get; }
|
||
|
||
/// <summary>
|
||
/// Retrieves the item's FolderItemVerbs object. This object is the collection of verbs that can be executed on the item.
|
||
/// </summary>
|
||
/// <returns>An object reference to the FolderItemVerbs object.</returns>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000f)]
|
||
new FolderItemVerbs Verbs();
|
||
|
||
/// <summary>Executes a verb on the item.</summary>
|
||
/// <param name="vVerb">
|
||
/// A string that specifies the verb to be executed. It must be one of the values returned by the item's FolderItemVerb.Name
|
||
/// property. If no verb is specified, the default verb will be invoked.
|
||
/// </param>
|
||
/// <remarks>
|
||
/// A verb is a string used to specify a particular action that an item supports. Invoking a verb is equivalent to selecting a
|
||
/// command from an item's shortcut menu. Typically, invoking a verb launches a related application. For example, invoking the
|
||
/// "open" verb on a .txt file opens the file with a text editor, usually Microsoft Notepad. See Launching Applications for
|
||
/// further discussion of verbs.
|
||
/// <para>
|
||
/// The FolderItemVerbs object represents the collection of verbs associated with the item.The default verb may vary for
|
||
/// different items, but it is typically "open".
|
||
/// </para>
|
||
/// </remarks>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020010)]
|
||
new void InvokeVerb([In, Optional, MarshalAs(UnmanagedType.Struct)] string vVerb);
|
||
|
||
/// <summary>
|
||
/// Executes a verb on a collection of FolderItem objects. This method is an extension of the InvokeVerb method, allowing
|
||
/// additional control of the operation through a set of flags.
|
||
/// </summary>
|
||
/// <param name="vVerb">
|
||
/// A Variant with the verb string that corresponds to the command to be executed. If no verb is specified, the default verb is executed.
|
||
/// </param>
|
||
/// <param name="vArgs">
|
||
/// A Variant that consists of a string with one or more arguments to the command specified by vVerb. The format of this string
|
||
/// depends on the particular verb.
|
||
/// </param>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)]
|
||
void InvokeVerbEx([In, Optional, MarshalAs(UnmanagedType.Struct)] string vVerb, [In, Optional, MarshalAs(UnmanagedType.Struct)] string vArgs);
|
||
|
||
/// <summary>Access an extended property</summary>
|
||
/// <param name="bstrPropName">Name of the property.</param>
|
||
/// <returns>Property value.</returns>
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030001)]
|
||
object ExtendedProperty([In, MarshalAs(UnmanagedType.BStr)] string bstrPropName);
|
||
}
|
||
|
||
/// <summary>
|
||
/// Represents the collection of items in a Shell folder. This object contains properties and methods that allow you to retrieve
|
||
/// information about the collection.
|
||
/// </summary>
|
||
[PInvokeData("Shldisp.h")]
|
||
[ComImport, Guid("744129E0-CBE5-11CE-8350-444553540000")]
|
||
public interface FolderItems
|
||
{
|
||
/// <summary>Contains the number of items in the collection.</summary>
|
||
/// <value>An Integer that contains a value for the Count property.</value>
|
||
[DispId(0x60020000)]
|
||
int Count { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>Contains the Application object of the folder items collection.</summary>
|
||
/// <value>An object reference to the Application object.</value>
|
||
[DispId(0x60020001)]
|
||
object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
[DispId(0x60020002)]
|
||
object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; }
|
||
|
||
/// <summary>Retrieves the FolderItem object for a specified item in the collection.</summary>
|
||
/// <param name="index">The zero-based index of the item to retrieve. This value must be less than the value of the Count property.</param>
|
||
/// <returns>An object reference to the FolderItem object.</returns>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
FolderItem Item([In, Optional, MarshalAs(UnmanagedType.Struct)] int index);
|
||
|
||
/// <summary>Creates and returns a new FolderItems object that is a copy of this FolderItemsss object.</summary>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(-4)]
|
||
object _NewEnum();
|
||
}
|
||
|
||
/// <summary>Extends the FolderItems object. It supports one additional method.</summary>
|
||
/// <seealso cref="FolderItems"/>
|
||
[PInvokeData("Shldisp.h")]
|
||
[ComImport, Guid("C94F0AD0-F363-11D2-A327-00C04F8EEC7F")]
|
||
public interface FolderItems2 : FolderItems
|
||
{
|
||
/// <summary>Contains the number of items in the collection.</summary>
|
||
/// <value>An Integer that contains a value for the Count property.</value>
|
||
[DispId(0x60020000)]
|
||
new int Count { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>Contains the Application object of the folder items collection.</summary>
|
||
/// <value>An object reference to the Application object.</value>
|
||
[DispId(0x60020001)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
[DispId(0x60020002)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; }
|
||
|
||
/// <summary>Retrieves the FolderItem object for a specified item in the collection.</summary>
|
||
/// <param name="index">The zero-based index of the item to retrieve. This value must be less than the value of the Count property.</param>
|
||
/// <returns>An object reference to the FolderItem object.</returns>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
new FolderItem Item([In, Optional, MarshalAs(UnmanagedType.Struct)] int index);
|
||
|
||
/// <summary>Creates and returns a new FolderItems object that is a copy of this FolderItemsss object.</summary>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(-4)]
|
||
new object _NewEnum();
|
||
|
||
/// <summary>
|
||
/// Executes a verb on a collection of FolderItem objects. This method is an extension of the InvokeVerb method, allowing
|
||
/// additional control of the operation through a set of flags.
|
||
/// </summary>
|
||
/// <param name="vVerb">
|
||
/// A Variant with the verb string that corresponds to the command to be executed. If no verb is specified, the default verb is executed.
|
||
/// </param>
|
||
/// <param name="vArgs">
|
||
/// A Variant that consists of a string with one or more arguments to the command specified by vVerb. The format of this string
|
||
/// depends on the particular verb.
|
||
/// </param>
|
||
/// <remarks>
|
||
/// A verb is a string used to specify a particular action associated with an item or collection of items. Typically, calling a
|
||
/// verb launches a related application. For example, calling the open verb on a .txt file normally opens the file with a text
|
||
/// editor, usually Microsoft Notepad. For further discussion of verbs, see Launching Applications.
|
||
/// </remarks>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)]
|
||
void InvokeVerbEx([In, Optional, MarshalAs(UnmanagedType.Struct)] string vVerb, [In, Optional, MarshalAs(UnmanagedType.Struct)] string vArgs);
|
||
}
|
||
|
||
/// <summary>Extends the FolderItems2 object. This object supports an additional method and property.</summary>
|
||
/// <seealso cref="FolderItems2"/>
|
||
[PInvokeData("Shldisp.h")]
|
||
[ComImport, Guid("EAA7C309-BBEC-49D5-821D-64D966CB667F"), DefaultMember("Verbs")]
|
||
public interface FolderItems3 : FolderItems2
|
||
{
|
||
/// <summary>Contains the number of items in the collection.</summary>
|
||
/// <value>An Integer that contains a value for the Count property.</value>
|
||
[DispId(0x60020000)]
|
||
new int Count { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>Contains the Application object of the folder items collection.</summary>
|
||
/// <value>An object reference to the Application object.</value>
|
||
[DispId(0x60020001)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
[DispId(0x60020002)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; }
|
||
|
||
/// <summary>Retrieves the FolderItem object for a specified item in the collection.</summary>
|
||
/// <param name="index">The zero-based index of the item to retrieve. This value must be less than the value of the Count property.</param>
|
||
/// <returns>An object reference to the FolderItem object.</returns>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
new FolderItem Item([In, Optional, MarshalAs(UnmanagedType.Struct)] int index);
|
||
|
||
/// <summary>Creates and returns a new FolderItems object that is a copy of this FolderItemsss object.</summary>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(-4)]
|
||
new object _NewEnum();
|
||
|
||
/// <summary>
|
||
/// Executes a verb on a collection of FolderItem objects. This method is an extension of the InvokeVerb method, allowing
|
||
/// additional control of the operation through a set of flags.
|
||
/// </summary>
|
||
/// <param name="vVerb">
|
||
/// A Variant with the verb string that corresponds to the command to be executed. If no verb is specified, the default verb is executed.
|
||
/// </param>
|
||
/// <param name="vArgs">
|
||
/// A Variant that consists of a string with one or more arguments to the command specified by vVerb. The format of this string
|
||
/// depends on the particular verb.
|
||
/// </param>
|
||
/// <remarks>
|
||
/// A verb is a string used to specify a particular action associated with an item or collection of items. Typically, calling a
|
||
/// verb launches a related application. For example, calling the open verb on a .txt file normally opens the file with a text
|
||
/// editor, usually Microsoft Notepad. For further discussion of verbs, see Launching Applications.
|
||
/// </remarks>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)]
|
||
new void InvokeVerbEx([In, Optional, MarshalAs(UnmanagedType.Struct)] string vVerb, [In, Optional, MarshalAs(UnmanagedType.Struct)] string vArgs);
|
||
|
||
/// <summary>Sets a wildcard filter to apply to the items returned.</summary>
|
||
/// <param name="grfFlags">This parameter can be one of the flags listed in SHCONTF.</param>
|
||
/// <param name="bstrFileSpec">A filter string that specifies what should be listed in the FolderItems collection.</param>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040000)]
|
||
void Filter([In] SHCONTF grfFlags, [In, MarshalAs(UnmanagedType.BStr)] string bstrFileSpec);
|
||
|
||
/// <summary>Gets the list of verbs common to all the folder items.</summary>
|
||
/// <value>Address of a pointer to the collection of verbs. See FolderItemVerbs.</value>
|
||
[DispId(0)]
|
||
FolderItemVerbs Verbs { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)] get; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Represents a single verb available to an item. This object contains properties and methods that allow you to retrieve information
|
||
/// about the verb.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/folderitemverb
|
||
[PInvokeData("shldisp.h", MSDNShortId = "22f52e3f-875e-4dde-8875-3228639bc7f1")]
|
||
[ComImport, DefaultMember("Name"), Guid("08EC3E00-50B0-11CF-960C-0080C7F4EE85")]
|
||
public interface FolderItemVerb
|
||
{
|
||
/// <summary>This property is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/folderitemverb-application
|
||
[DispId(0x60020000)]
|
||
object FolderItemVerb_Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/folderitemverb-parent
|
||
[DispId(0x60020001)]
|
||
object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Contains the verb's name.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/folderitemverb-name
|
||
[DispId(0)]
|
||
string Name { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)] get; }
|
||
|
||
/// <summary>Executes a verb on the <c>FolderItem</c> associated with the verb.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/folderitemverb-doit
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
void DoIt();
|
||
}
|
||
|
||
/// <summary>
|
||
/// Represents the collection of verbs for an item in a Shell folder. This object contains properties and methods that allow you to
|
||
/// retrieve information about the collection.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/folderitemverbs
|
||
[PInvokeData("shldisp.h", MSDNShortId = "31badb4b-b89e-4294-9dd7-bda716e163b2")]
|
||
[ComImport, Guid("1F8352C0-50B0-11CF-960C-0080C7F4EE85")]
|
||
public interface FolderItemVerbs : IEnumerable
|
||
{
|
||
/// <summary>
|
||
/// <para>Contains the number of items in the collection.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/folderitemverbs-count
|
||
[DispId(0x60020000)]
|
||
int Count { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/folderitemverbs-application
|
||
[DispId(0x60020001)]
|
||
object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/folderitemverbs-parent
|
||
[DispId(0x60020002)]
|
||
object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; }
|
||
|
||
/// <summary>Retrieves the <c>FolderItemVerb</c> object for a specified item in the collection.</summary>
|
||
/// <param name="index">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>The zero-based index of the item to retrieve. This value must be less than the value of the <c>Count</c> property.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>Object that receives the <c>FolderItemVerb</c> object.</para>
|
||
/// </returns>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/folderitemverbs-item
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
FolderItemVerb Item([In, Optional, MarshalAs(UnmanagedType.Struct)] int index);
|
||
|
||
/// <summary>Creates and returns a new FolderItemVerbs object that is a copy of this FolderItemVerbs object.</summary>
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(-4)]
|
||
object _NewEnum();
|
||
}
|
||
|
||
/// <summary>
|
||
/// Exposed by the autocomplete object (CLSID_AutoComplete). This interface allows applications to initialize, enable, and disable
|
||
/// the object.
|
||
/// </summary>
|
||
[PInvokeData("shldisp.h")]
|
||
[ComImport, SuppressUnmanagedCodeSecurity, Guid("00bb2762-6a77-11d0-a535-00c04fd7d062"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), CoClass(typeof(CAutoComplete))]
|
||
public interface IAutoComplete
|
||
{
|
||
/// <summary>Initializes the autocomplete object.</summary>
|
||
/// <param name="hwndEdit">A handle to the window for the system edit control for which autocompletion will be enabled.</param>
|
||
/// <param name="punkAcl">
|
||
/// A pointer to the IUnknown interface of the string list object that generates candidates for the completed string. The object
|
||
/// must expose an IEnumString interface.
|
||
/// </param>
|
||
/// <param name="pwszRegKeyPath">
|
||
/// A pointer to an optional, null-terminated Unicode string that gives the registry path, including the value name, where the
|
||
/// format string is stored as a REG_SZ value. The autocomplete object first looks for the path under HKEY_CURRENT_USER. If it
|
||
/// fails, it tries HKEY_LOCAL_MACHINE. For a discussion of the format string, see the definition of pwszQuickComplete.
|
||
/// </param>
|
||
/// <param name="pwszQuickComplete">
|
||
/// A pointer to an optional null-terminated Unicode string that specifies the format to be used if the user enters text and
|
||
/// presses CTRL+ENTER. Set this parameter to NULL to disable quick completion. Otherwise, the autocomplete object treats
|
||
/// pwszQuickComplete as a StringCchPrintf format string and the text in the edit box as its associated argument, to produce a
|
||
/// new string. For example, set pwszQuickComplete to "http://www.%s.com/". When a user enters "MyURL" into the edit box and
|
||
/// presses CTRL+ENTER, the text in the edit box is updated to "http://www.MyURL.com/".
|
||
/// </param>
|
||
void Init(HWND hwndEdit, IEnumString punkAcl, [MarshalAs(UnmanagedType.LPWStr)] string pwszRegKeyPath, [MarshalAs(UnmanagedType.LPWStr)] string pwszQuickComplete);
|
||
|
||
/// <summary>Enables or disables autocompletion.</summary>
|
||
/// <param name="fEnable">A value that is set to TRUE to enable autocompletion, or FALSE to disable it.</param>
|
||
void Enable([MarshalAs(UnmanagedType.Bool)] bool fEnable);
|
||
}
|
||
|
||
/// <summary>
|
||
/// Extends IAutoComplete. This interface enables clients of the autocomplete object to retrieve and set a number of options that
|
||
/// control how autocompletion operates.
|
||
/// </summary>
|
||
/// <seealso cref="IAutoComplete"/>
|
||
[PInvokeData("shldisp.h")]
|
||
[ComImport, SuppressUnmanagedCodeSecurity, Guid("EAC04BC0-3791-11D2-BB95-0060977B464C"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), CoClass(typeof(CAutoComplete))]
|
||
public interface IAutoComplete2 : IAutoComplete
|
||
{
|
||
/// <summary>Initializes the autocomplete object.</summary>
|
||
/// <param name="hwndEdit">A handle to the window for the system edit control for which autocompletion will be enabled.</param>
|
||
/// <param name="punkAcl">
|
||
/// A pointer to the IUnknown interface of the string list object that generates candidates for the completed string. The object
|
||
/// must expose an IEnumString interface.
|
||
/// </param>
|
||
/// <param name="pwszRegKeyPath">
|
||
/// A pointer to an optional, null-terminated Unicode string that gives the registry path, including the value name, where the
|
||
/// format string is stored as a REG_SZ value. The autocomplete object first looks for the path under HKEY_CURRENT_USER. If it
|
||
/// fails, it tries HKEY_LOCAL_MACHINE. For a discussion of the format string, see the definition of pwszQuickComplete.
|
||
/// </param>
|
||
/// <param name="pwszQuickComplete">
|
||
/// A pointer to an optional null-terminated Unicode string that specifies the format to be used if the user enters text and
|
||
/// presses CTRL+ENTER. Set this parameter to NULL to disable quick completion. Otherwise, the autocomplete object treats
|
||
/// pwszQuickComplete as a StringCchPrintf format string and the text in the edit box as its associated argument, to produce a
|
||
/// new string. For example, set pwszQuickComplete to "http://www.%s.com/". When a user enters "MyURL" into the edit box and
|
||
/// presses CTRL+ENTER, the text in the edit box is updated to "http://www.MyURL.com/".
|
||
/// </param>
|
||
new void Init(HWND hwndEdit, IEnumString punkAcl, [MarshalAs(UnmanagedType.LPWStr)] string pwszRegKeyPath, [MarshalAs(UnmanagedType.LPWStr)] string pwszQuickComplete);
|
||
|
||
/// <summary>Enables or disables autocompletion.</summary>
|
||
/// <param name="fEnable">A value that is set to TRUE to enable autocompletion, or FALSE to disable it.</param>
|
||
new void Enable([MarshalAs(UnmanagedType.Bool)] bool fEnable);
|
||
|
||
/// <summary>Sets the current autocomplete options.</summary>
|
||
/// <param name="dwFlag">One or more flags from the AUTOCOMPLETEOPTIONS enumeration that specify autocomplete options.</param>
|
||
void SetOptions(AUTOCOMPLETEOPTIONS dwFlag);
|
||
|
||
/// <summary>Gets the current autocomplete options.</summary>
|
||
/// <param name="dwFlag">
|
||
/// One or more flags from the AUTOCOMPLETEOPTIONS enumeration that indicate the options that are currently set.
|
||
/// </param>
|
||
void GetOptions(out AUTOCOMPLETEOPTIONS dwFlag);
|
||
}
|
||
|
||
/// <summary>Undocumented.</summary>
|
||
[PInvokeData("shldisp.h")]
|
||
[ComImport, Guid("2D91EEA1-9932-11D2-BE86-00A0C9A83DA1"), CoClass(typeof(FileSearchBand))]
|
||
public interface IFileSearchBand
|
||
{
|
||
/// <summary>Undocumented.</summary>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(1)]
|
||
void SetFocus();
|
||
|
||
/// <summary>Undocumented.</summary>
|
||
/// <param name="pbstrSearchID"/>
|
||
/// <param name="bNavToResults"/>
|
||
/// <param name="pvarScope"/>
|
||
/// <param name="pvarQueryFile"/>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(2)]
|
||
void SetSearchParameters([In, MarshalAs(UnmanagedType.BStr)] ref string pbstrSearchID, [In] bool bNavToResults, [In, Optional, MarshalAs(UnmanagedType.Struct)] ref object pvarScope, [In, Optional, MarshalAs(UnmanagedType.Struct)] ref object pvarQueryFile);
|
||
|
||
/// <summary>Undocumented.</summary>
|
||
[DispId(3)]
|
||
string SearchID { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(3)] get; }
|
||
|
||
/// <summary>Undocumented.</summary>
|
||
[DispId(4)]
|
||
object Scope { [return: MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(4)] get; }
|
||
|
||
/// <summary>Undocumented.</summary>
|
||
[DispId(5)]
|
||
object QueryFile { [return: MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(5)] get; }
|
||
}
|
||
|
||
/// <summary>Undocumented.</summary>
|
||
[PInvokeData("shldisp.h")]
|
||
[ComImport, Guid("9BA05970-F6A8-11CF-A442-00A0C90A8F39"), CoClass(typeof(ShellFolderViewOC))]
|
||
public interface IFolderViewOC
|
||
{
|
||
/// <summary>Undocumented.</summary>
|
||
/// <param name="pdisp"/>
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)]
|
||
void SetFolderView([In, MarshalAs(UnmanagedType.IDispatch)] object pdisp);
|
||
}
|
||
|
||
/// <summary>
|
||
/// Extends the <c>WebWizardHost</c> object by enabling server-side pages hosted in a wizard to verify that the user has been
|
||
/// authenticated through a Microsoft account.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/newwdevents
|
||
[PInvokeData("shldisp.h", MSDNShortId = "44f2431c-82a2-4142-bf20-55fdd0c88008")]
|
||
[ComImport, Guid("0751C551-7568-41C9-8E5B-E22E38919236")]
|
||
public interface INewWDEvents : IWebWizardHost
|
||
{
|
||
/// <summary>Navigates to the client-side page immediately preceding the page hosting the server-side HTML pages.</summary>
|
||
/// <remarks>
|
||
/// When the wizard displays the first server-side page and the user clicks the <c>Back</c> button, the server invokes
|
||
/// <c>FinalBack</c> when notified of that event by the client's event handler.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-finalback
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)]
|
||
new void FinalBack();
|
||
|
||
/// <summary>
|
||
/// Navigates to the client-side wizard page that follows the page that hosts the server-side HTML pages, or finishes the wizard
|
||
/// if there are no further client-side pages.
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// When the wizard is displaying the last server-side HTML page and the user clicks the <c>Next</c> or <c>Finish</c> button, the
|
||
/// server invokes <c>FinalNext</c> in that button's event handler.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-finalnext
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(1)]
|
||
new void FinalNext();
|
||
|
||
/// <summary>Simulates a <c>Cancel</c> button click.</summary>
|
||
/// <remarks>The client is responsible for responding to this method with the expected behavior by closing the wizard.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-cancel
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(2)]
|
||
new void Cancel();
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bb774352(v=vs.85)
|
||
[DispId(3)]
|
||
new string Caption { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(3)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(3)] set; }
|
||
|
||
/// <summary>Sets or retrieves a property's current value.</summary>
|
||
/// <value>The property value.</value>
|
||
/// <param name="bstrPropertyName">Name of the property.</param>
|
||
[DispId(4)]
|
||
new object this[string bstrPropertyName] { [return: MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(4)] get; [param: In, MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(4)] set; }
|
||
|
||
/// <summary>Updates the <c>Back</c>, <c>Next</c>, and <c>Finish</c> buttons in the client's wizard frame.</summary>
|
||
/// <param name="vfEnableBack">Enables the <c>Back</c> button.</param>
|
||
/// <param name="vfEnableNext">Enables the <c>Next</c> button.</param>
|
||
/// <param name="vfLastPage">Enables the <c>Finish</c> button. States that this is the last server-side page.</param>
|
||
/// <remarks>
|
||
/// Be sure to implement handler functions in each server-side page for OnBack() and OnNext(), corresponding to the wizard
|
||
/// buttons <c>Back</c> and <c>Next</c>. The OnBack() and OnNext() functions respond to <c>SetWizardButtons</c>. At the
|
||
/// appropriate time, the OnNext() function calls <c>SetWizardButtons</c> with vbLastPage= <c>true</c>, which can enable a
|
||
/// <c>Finish</c> button. OnNext() also calls <c>FinalNext</c> when a user clicks the <c>Finish</c> button.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-setwizardbuttons
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(5)]
|
||
new void SetWizardButtons([In] bool vfEnableBack, [In] bool vfEnableNext, [In] bool vfLastPage);
|
||
|
||
/// <summary>
|
||
/// Sets the title and subtitle that appear in the wizard header. In general, the client will display the header above the HTML
|
||
/// and below the title bar.
|
||
/// </summary>
|
||
/// <param name="bstrHeaderTitle">String containing the title.</param>
|
||
/// <param name="bstrHeaderSubtitle">String containing the subtitle.</param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-setheadertext
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(6)]
|
||
new void SetHeaderText([In, MarshalAs(UnmanagedType.BStr)] string bstrHeaderTitle, [In, MarshalAs(UnmanagedType.BStr)] string bstrHeaderSubtitle);
|
||
|
||
/// <summary>
|
||
/// Enables server-side pages hosted in a wizard to verify that the user has been authenticated through a Microsoft account.
|
||
/// </summary>
|
||
/// <param name="bstrSignInUrl">A string containing the URL of a webpage that redirects to the Microsoft account log on UI.</param>
|
||
/// <returns>Set to <c>true</c> if authentication succeeds, <c>false</c> otherwise.</returns>
|
||
/// <remarks>
|
||
/// This method may be called even if a user is already logged on to a Microsoft account. In that case, the method returns
|
||
/// <c>true</c> without displaying the Microsoft account log on UI.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/inewwdevents-passportauthenticate
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(7)]
|
||
bool PassportAuthenticate([In, MarshalAs(UnmanagedType.BStr)] string bstrSignInUrl);
|
||
}
|
||
|
||
/// <summary>
|
||
/// Represents an object in the Shell. Methods are provided to control the Shell and to execute commands within the Shell. There are
|
||
/// also methods to obtain other Shell-related objects.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch
|
||
[PInvokeData("shldisp.h", MSDNShortId = "9B429C03-7F80-45db-B8CD-58D19FAD2E61")]
|
||
[ComImport, Guid("D8F015C0-C278-11CE-A49E-444553540000"), CoClass(typeof(Shell))]
|
||
public interface IShellDispatch
|
||
{
|
||
/// <summary>
|
||
/// <para>Contains an object that represents an application.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <para>This property is implemented and accessed through the <c>Shell.EjectPC</c> property.</para>
|
||
/// <para>
|
||
/// The <c>Application</c> property returns the automation object supported by the application that contains the WebBrowser
|
||
/// control, if that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// </para>
|
||
/// <para>
|
||
/// Use this property with the <c>Set</c> and <c>CreateObject</c> commands or with the <c>GetObject</c> command to create and
|
||
/// manipulate an instance of the Windows Internet Explorer application.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-application
|
||
[DispId(0x60020000)]
|
||
object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Retrieves an object that represents the parent of the current object.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>This property is implemented and accessed through the <c>Shell.Parent</c> property.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-parent
|
||
[DispId(0x60020001)]
|
||
object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>Creates and returns a <c>Folder</c> object for the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder for which to create the <c>Folder</c> object. This can be a string that specifies the path of the folder or one of
|
||
/// the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.NameSpace</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-namespace
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)]
|
||
Folder NameSpace([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Creates a dialog box that enables the user to select a folder and then returns the selected folder's <c>Folder</c> object.
|
||
/// </summary>
|
||
/// <param name="Hwnd">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>The handle to the parent window of the dialog box. This value can be zero.</para>
|
||
/// </param>
|
||
/// <param name="Title">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> value that represents the title displayed inside the <c>Browse</c> dialog box.</para>
|
||
/// </param>
|
||
/// <param name="Options">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>
|
||
/// An <c>Integer</c> value that contains the options for the method. This can be zero or a combination of the values listed
|
||
/// under the <c>ulFlags</c> member of the <c>BROWSEINFO</c> structure.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="RootFolder">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The root folder to use in the dialog box. The user cannot browse higher in the tree than this folder. If this value is not
|
||
/// specified, the root folder used in the dialog box is the desktop. This value can be a string that specifies the path of the
|
||
/// folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in
|
||
/// <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric
|
||
/// values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.BrowseForFolder</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-browseforfolder
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
Folder BrowseForFolder([In] int Hwnd, [In, MarshalAs(UnmanagedType.BStr)] string Title, [In] int Options, [In, Optional, MarshalAs(UnmanagedType.Struct)] object RootFolder);
|
||
|
||
/// <summary>
|
||
/// Creates and returns a <c>ShellWindows</c> object. This object represents a collection of all of the open windows that belong
|
||
/// to the Shell.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Windows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-windows
|
||
[return: MarshalAs(UnmanagedType.IDispatch)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)]
|
||
object Windows();
|
||
|
||
/// <summary>Opens the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A string that specifies the path of the folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the
|
||
/// constant names found in <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In
|
||
/// those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// <para>
|
||
/// If vDir is set to one of the <c>ShellSpecialFolderConstants</c> and the special folder does not exist, this function will
|
||
/// create the folder.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Open</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-open
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
void Open([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>Opens a specified folder in a Windows Explorer window.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder to be displayed. This can be a string that specifies the path of the folder or one of the
|
||
/// <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Explore</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-explore
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
void Explore([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Minimizes all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Minimize All Windows</c> on older systems or clicking the <c>Show Desktop</c> icon on the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.MinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-minimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)]
|
||
void MinimizeAll();
|
||
|
||
/// <summary>
|
||
/// Restores all desktop windows to the state they were in before the last <c>MinimizeAll</c> command. This method has the same
|
||
/// effect as right-clicking the taskbar and selecting <c>Undo Minimize All Windows</c> (on older systems) or a second clicking
|
||
/// of the <c>Show Desktop</c> icon in the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.UndoMinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-undominimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)]
|
||
void UndoMinimizeALL();
|
||
|
||
/// <summary>Displays the <c>Run</c> dialog to the user.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FileRun</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-filerun
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020009)]
|
||
void FileRun();
|
||
|
||
/// <summary>
|
||
/// Cascades all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Cascade windows</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.CascadeWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-cascadewindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)]
|
||
void CascadeWindows();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop vertically. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows side by side</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileVertically</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilevertically
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000b)]
|
||
void TileVertically();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop horizontally. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows stacked</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileHorizontally</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilehorizontally
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000c)]
|
||
void TileHorizontally();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Shut Down Windows</c> dialog box. This is the same as clicking the <c>Start</c> menu and selecting <c>Shut Down</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ShutdownWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-shutdownwindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000d)]
|
||
void ShutdownWindows();
|
||
|
||
/// <summary>This method is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-suspend
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e)]
|
||
void Suspend();
|
||
|
||
/// <summary>
|
||
/// Ejects the computer from its docking station. This is the same as clicking the <c>Start</c> menu and selecting <c>Eject
|
||
/// PC</c>, if your computer supports this command.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.EjectPC</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-ejectpc
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000f)]
|
||
void EjectPC();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Date and Time</c> dialog box. This method has the same effect as right-clicking the clock in the taskbar
|
||
/// status area and selecting <c>Adjust date/time</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.SetTime</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-settime
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020010)]
|
||
void SetTime();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Taskbar and Start Menu Properties</c> dialog box. This method has the same effect as right-clicking the
|
||
/// taskbar and selecting <c>Properties</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-trayproperties
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020011)]
|
||
void TrayProperties();
|
||
|
||
/// <summary>
|
||
/// Displays the Windows Help and Support window. This method has the same effect as clicking the <c>Start</c> menu and selecting
|
||
/// <c>Help and Support</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Help</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-help
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020012)]
|
||
void Help();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Find: All Files</c> dialog box. This is the same as clicking the <c>Start</c> menu and then selecting <c>Search</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindFiles</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findfiles
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020013)]
|
||
void FindFiles();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Search Results: Computers</c> dialog box. The dialog box shows the result of the search for a specified computer.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindComputer</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findcomputer
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020014)]
|
||
void FindComputer();
|
||
|
||
/// <summary>Refreshes the contents of the <c>Start</c> menu. Used only with systems preceding Windows XP.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</para>
|
||
/// <para>
|
||
/// The functionality that <c>RefreshMenu</c> provides is handled automatically under Windows XP or later. Do not call this
|
||
/// method on Windows XP or later.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-refreshmenu
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020015)]
|
||
void RefreshMenu();
|
||
|
||
/// <summary>
|
||
/// Runs the specified Control Panel application. If the application is already open, it will activate the running instance.
|
||
/// </summary>
|
||
/// <param name="bstrDir">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>The Control Panel application's file name.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ControlPanelItem</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-controlpanelitem
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020016)]
|
||
void ControlPanelItem([In, MarshalAs(UnmanagedType.BStr)] string bstrDir);
|
||
}
|
||
|
||
/// <summary>Extends the <c>IShellDispatch</c> object with a variety of new functionality.</summary>
|
||
/// <remarks>For a discussion of Windows services, see the Services documentation.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-object
|
||
[PInvokeData("shldisp.h", MSDNShortId = "74687929-0777-479b-9853-2b0cf4b6adc9")]
|
||
[ComImport, Guid("A4C6892C-3BA9-11D2-9DEA-00C04FB16162"), CoClass(typeof(Shell))]
|
||
public interface IShellDispatch2 : IShellDispatch
|
||
{
|
||
/// <summary>
|
||
/// <para>Contains an object that represents an application.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <para>This property is implemented and accessed through the <c>Shell.EjectPC</c> property.</para>
|
||
/// <para>
|
||
/// The <c>Application</c> property returns the automation object supported by the application that contains the WebBrowser
|
||
/// control, if that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// </para>
|
||
/// <para>
|
||
/// Use this property with the <c>Set</c> and <c>CreateObject</c> commands or with the <c>GetObject</c> command to create and
|
||
/// manipulate an instance of the Windows Internet Explorer application.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-application
|
||
[DispId(0x60020000)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Retrieves an object that represents the parent of the current object.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>This property is implemented and accessed through the <c>Shell.Parent</c> property.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-parent
|
||
[DispId(0x60020001)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>Creates and returns a <c>Folder</c> object for the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder for which to create the <c>Folder</c> object. This can be a string that specifies the path of the folder or one of
|
||
/// the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.NameSpace</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-namespace
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)]
|
||
new Folder NameSpace([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Creates a dialog box that enables the user to select a folder and then returns the selected folder's <c>Folder</c> object.
|
||
/// </summary>
|
||
/// <param name="Hwnd">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>The handle to the parent window of the dialog box. This value can be zero.</para>
|
||
/// </param>
|
||
/// <param name="Title">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> value that represents the title displayed inside the <c>Browse</c> dialog box.</para>
|
||
/// </param>
|
||
/// <param name="Options">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>
|
||
/// An <c>Integer</c> value that contains the options for the method. This can be zero or a combination of the values listed
|
||
/// under the <c>ulFlags</c> member of the <c>BROWSEINFO</c> structure.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="RootFolder">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The root folder to use in the dialog box. The user cannot browse higher in the tree than this folder. If this value is not
|
||
/// specified, the root folder used in the dialog box is the desktop. This value can be a string that specifies the path of the
|
||
/// folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in
|
||
/// <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric
|
||
/// values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.BrowseForFolder</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-browseforfolder
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
new Folder BrowseForFolder([In] int Hwnd, [In, MarshalAs(UnmanagedType.BStr)] string Title, [In] int Options, [In, Optional, MarshalAs(UnmanagedType.Struct)] object RootFolder);
|
||
|
||
/// <summary>
|
||
/// Creates and returns a <c>ShellWindows</c> object. This object represents a collection of all of the open windows that belong
|
||
/// to the Shell.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Windows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-windows
|
||
[return: MarshalAs(UnmanagedType.IDispatch)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)]
|
||
new object Windows();
|
||
|
||
/// <summary>Opens the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A string that specifies the path of the folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the
|
||
/// constant names found in <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In
|
||
/// those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// <para>
|
||
/// If vDir is set to one of the <c>ShellSpecialFolderConstants</c> and the special folder does not exist, this function will
|
||
/// create the folder.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Open</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-open
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
new void Open([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>Opens a specified folder in a Windows Explorer window.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder to be displayed. This can be a string that specifies the path of the folder or one of the
|
||
/// <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Explore</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-explore
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
new void Explore([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Minimizes all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Minimize All Windows</c> on older systems or clicking the <c>Show Desktop</c> icon on the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.MinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-minimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)]
|
||
new void MinimizeAll();
|
||
|
||
/// <summary>
|
||
/// Restores all desktop windows to the state they were in before the last <c>MinimizeAll</c> command. This method has the same
|
||
/// effect as right-clicking the taskbar and selecting <c>Undo Minimize All Windows</c> (on older systems) or a second clicking
|
||
/// of the <c>Show Desktop</c> icon in the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.UndoMinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-undominimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)]
|
||
new void UndoMinimizeALL();
|
||
|
||
/// <summary>Displays the <c>Run</c> dialog to the user.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FileRun</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-filerun
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020009)]
|
||
new void FileRun();
|
||
|
||
/// <summary>
|
||
/// Cascades all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Cascade windows</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.CascadeWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-cascadewindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)]
|
||
new void CascadeWindows();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop vertically. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows side by side</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileVertically</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilevertically
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000b)]
|
||
new void TileVertically();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop horizontally. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows stacked</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileHorizontally</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilehorizontally
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000c)]
|
||
new void TileHorizontally();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Shut Down Windows</c> dialog box. This is the same as clicking the <c>Start</c> menu and selecting <c>Shut Down</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ShutdownWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-shutdownwindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000d)]
|
||
new void ShutdownWindows();
|
||
|
||
/// <summary>This method is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-suspend
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e)]
|
||
new void Suspend();
|
||
|
||
/// <summary>
|
||
/// Ejects the computer from its docking station. This is the same as clicking the <c>Start</c> menu and selecting <c>Eject
|
||
/// PC</c>, if your computer supports this command.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.EjectPC</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-ejectpc
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000f)]
|
||
new void EjectPC();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Date and Time</c> dialog box. This method has the same effect as right-clicking the clock in the taskbar
|
||
/// status area and selecting <c>Adjust date/time</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.SetTime</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-settime
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020010)]
|
||
new void SetTime();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Taskbar and Start Menu Properties</c> dialog box. This method has the same effect as right-clicking the
|
||
/// taskbar and selecting <c>Properties</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-trayproperties
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020011)]
|
||
new void TrayProperties();
|
||
|
||
/// <summary>
|
||
/// Displays the Windows Help and Support window. This method has the same effect as clicking the <c>Start</c> menu and selecting
|
||
/// <c>Help and Support</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Help</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-help
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020012)]
|
||
new void Help();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Find: All Files</c> dialog box. This is the same as clicking the <c>Start</c> menu and then selecting <c>Search</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindFiles</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findfiles
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020013)]
|
||
new void FindFiles();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Search Results: Computers</c> dialog box. The dialog box shows the result of the search for a specified computer.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindComputer</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findcomputer
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020014)]
|
||
new void FindComputer();
|
||
|
||
/// <summary>Refreshes the contents of the <c>Start</c> menu. Used only with systems preceding Windows XP.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</para>
|
||
/// <para>
|
||
/// The functionality that <c>RefreshMenu</c> provides is handled automatically under Windows XP or later. Do not call this
|
||
/// method on Windows XP or later.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-refreshmenu
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020015)]
|
||
new void RefreshMenu();
|
||
|
||
/// <summary>
|
||
/// Runs the specified Control Panel application. If the application is already open, it will activate the running instance.
|
||
/// </summary>
|
||
/// <param name="bstrDir">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>The Control Panel application's file name.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ControlPanelItem</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-controlpanelitem
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020016)]
|
||
new void ControlPanelItem([In, MarshalAs(UnmanagedType.BStr)] string bstrDir);
|
||
|
||
/// <summary>Retrieves a group's restriction setting from the registry.</summary>
|
||
/// <param name="sGroup">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the group name. This value is the name of a registry subkey under which to check for the restriction.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="sRestriction">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the restriction whose value is to be retrieved.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Integer*</c></para>
|
||
/// <para>The value of the restriction. If the specified restriction is not found, the return value is 0.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Integer*</c></para>
|
||
/// <para>The value of the restriction. If the specified restriction is not found, the return value is 0.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.IsRestricted</c> method.</para>
|
||
/// <para><c>IsRestricted</c> first looks for a subkey name that matches sGroup under the following key.</para>
|
||
/// <para>
|
||
/// Restrictions are declared as values of the individual policy subkeys. If the restriction named in sRestriction is found in
|
||
/// the subkey named in sGroup, <c>IsRestricted</c> returns the restriction's current value. If the restriction is not found
|
||
/// under <c>HKEY_LOCAL_MACHINE</c>, the same subkey is checked under <c>HKEY_CURRENT_USER</c>.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-isrestricted
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)]
|
||
int IsRestricted([In, MarshalAs(UnmanagedType.BStr)] string sGroup, [In, MarshalAs(UnmanagedType.BStr)] string sRestriction);
|
||
|
||
/// <summary>Performs a specified operation on a specified file.</summary>
|
||
/// <param name="sFile">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the name of the file on which <c>ShellExecute</c> will perform the action specified by vOperation.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vArguments">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>A string that contains parameter values for the operation.</para>
|
||
/// </param>
|
||
/// <param name="vDirectory">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The fully qualified path of the directory that contains the file specified by sFile. If this parameter is not specified, the
|
||
/// current working directory is used.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vOperation">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The operation to be performed. This value is set to one of the verb strings that is supported by the file. For a discussion
|
||
/// of verbs, see the Remarks section. If this parameter is not specified, the default operation is performed.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vShow">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A recommendation as to how the application window should be displayed initially. The application can ignore this
|
||
/// recommendation. This parameter can be one of the following values. If this parameter is not specified, the application uses
|
||
/// its default value.
|
||
/// </para>
|
||
/// <list type="table">
|
||
/// <listheader>
|
||
/// <term>Value</term>
|
||
/// <term>Meaning</term>
|
||
/// </listheader>
|
||
/// <item>
|
||
/// <term>0</term>
|
||
/// <term>Open the application with a hidden window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>1</term>
|
||
/// <term>
|
||
/// Open the application with a normal window. If the window is minimized or maximized, the system restores it to its original
|
||
/// size and position.
|
||
/// </term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>2</term>
|
||
/// <term>Open the application with a minimized window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>3</term>
|
||
/// <term>Open the application with a maximized window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>4</term>
|
||
/// <term>Open the application with its window at its most recent size and position. The active window remains active.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>5</term>
|
||
/// <term>Open the application with its window at its current size and position.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>7</term>
|
||
/// <term>Open the application with a minimized window. The active window remains active.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>10</term>
|
||
/// <term>Open the application with its window in the default state specified by the application.</term>
|
||
/// </item>
|
||
/// </list>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ShellExecute</c> method.</para>
|
||
/// <para>
|
||
/// This method is equivalent to launching one of the commands associated with a file's shortcut menu. Each command is
|
||
/// represented by a verb string. The set of supported verbs varies from file to file. The most commonly supported verb is
|
||
/// "open", which is also usually the default verb. Other verbs might be supported by only certain types of files. For further
|
||
/// discussion of Shell verbs, see Launching Applications or Extending Shortcut Menus.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-shellexecute
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030001)]
|
||
void ShellExecute([In, MarshalAs(UnmanagedType.BStr)] string sFile, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vArguments, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vDirectory, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vOperation, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vShow);
|
||
|
||
/// <summary>Displays the <c>Find Printer</c> dialog box.</summary>
|
||
/// <param name="Name">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer name.</para>
|
||
/// </param>
|
||
/// <param name="location">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer location.</para>
|
||
/// </param>
|
||
/// <param name="model">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer model.</para>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.FindPrinter</c> method.</para>
|
||
/// <para>
|
||
/// If you assign strings to one or more of the optional parameters, they are displayed as default values in the associated edit
|
||
/// control when the <c>Find Printer</c> dialog box is displayed. The user can either accept or override these values. If no
|
||
/// value is assigned to a parameter, the associated edit box is empty and the user must enter a value.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-findprinter
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030002)]
|
||
void FindPrinter([In, Optional, MarshalAs(UnmanagedType.BStr)] string Name, [In, Optional, MarshalAs(UnmanagedType.BStr)] string location, [In, Optional, MarshalAs(UnmanagedType.BStr)] string model);
|
||
|
||
/// <summary>Retrieves system information.</summary>
|
||
/// <param name="sName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that specifies the system information that is being requested.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Returns the value of the requested system information. The return type depends on which system information is requested. See
|
||
/// the Remarks section for details.
|
||
/// </para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Returns the value of the requested system information. The return type depends on which system information is requested. See
|
||
/// the Remarks section for details.
|
||
/// </para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.GetSystemInformation</c> method.</para>
|
||
/// <para>
|
||
/// This method can be used to request many system information values. The following table gives the sName value that is used to
|
||
/// request the information and the associated type of the returned value.
|
||
/// </para>
|
||
/// <para>sName</para>
|
||
/// <para>Return type</para>
|
||
/// <para>Description</para>
|
||
/// <para>DirectoryServiceAvailable</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the directory service is available; otherwise, <c>false</c>.</para>
|
||
/// <para>DoubleClickTime</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The double-click time, in milliseconds.</para>
|
||
/// <para>ProcessorLevel</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>
|
||
/// <c>Windows Vista and later</c>. The processor level. Returns 3, 4, or 5, for x386, x486, and Pentium-level processors, respectively.
|
||
/// </para>
|
||
/// <para>ProcessorSpeed</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The processor speed, in megahertz (MHz).</para>
|
||
/// <para>ProcessorArchitecture</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>
|
||
/// The processor architecture. For details, see the discussion of the <c>wProcessorArchitecture</c> member of the
|
||
/// <c>SYSTEM_INFO</c> structure.
|
||
/// </para>
|
||
/// <para>PhysicalMemoryInstalled</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The amount of physical memory installed, in bytes.</para>
|
||
/// <para>The following are valid only on Windows XP.</para>
|
||
/// <para>IsOS_Professional</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the operating system is Windows XP Professional Edition; otherwise, <c>false</c>.</para>
|
||
/// <para>IsOS_Personal</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the operating system is Windows XP Home Edition; otherwise, <c>false</c>.</para>
|
||
/// <para>The following is valid only on Windows XP and later.</para>
|
||
/// <para>IsOS_DomainMember</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the computer is a member of a domain; otherwise, <c>false</c>.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-getsysteminformation
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030003)]
|
||
object GetSystemInformation([In, MarshalAs(UnmanagedType.BStr)] string sName);
|
||
|
||
/// <summary>Starts a named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <param name="vPersistent">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Set to <c>true</c> to have the service started automatically by the service control manager during system startup. Set to
|
||
/// <c>false</c> to leave the service configuration unchanged.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ServiceStart</c> method.</para>
|
||
/// <para>
|
||
/// The method returns <c>false</c> if the service has already been started. Before calling this method, you can call
|
||
/// <c>Shell.IsServiceRunning</c> to ascertain the status of the service.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-servicestart
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030004)]
|
||
object ServiceStart([In, MarshalAs(UnmanagedType.BStr)] string sServiceName, [In, MarshalAs(UnmanagedType.Struct)] object vPersistent);
|
||
|
||
/// <summary>Stops a named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <param name="vPersistent">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Set to <c>true</c> to have the service started by the service control manager when <c>ServiceStart</c> is called. To leave
|
||
/// the service configuration unchanged, set vPersistent to <c>false</c>.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ServiceStop</c> method.</para>
|
||
/// <para>
|
||
/// The method returns <c>false</c> if the service has already been stopped. Before calling this method, you can call
|
||
/// <c>Shell.IsServiceRunning</c> to ascertain the status of the service.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-servicestop
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030005)]
|
||
object ServiceStop([In, MarshalAs(UnmanagedType.BStr)] string sServiceName, [In, MarshalAs(UnmanagedType.Struct)] object vPersistent);
|
||
|
||
/// <summary>Returns a value that indicates whether a particular service is running.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the service specified by sServiceName is running; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the service specified by sServiceName is running; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.IsServiceRunning</c> method.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-isservicerunning
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030006)]
|
||
object IsServiceRunning([In, MarshalAs(UnmanagedType.BStr)] string sServiceName);
|
||
|
||
/// <summary>Determines if the current user can start and stop the named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c>String</c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the user can start and stop the service; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the user can start and stop the service; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.CanStartStopService</c> method.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-canstartstopservice
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030007)]
|
||
object CanStartStopService([In, MarshalAs(UnmanagedType.BStr)] string sServiceName);
|
||
|
||
/// <summary>Displays a browser bar.</summary>
|
||
/// <param name="sCLSID">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the string form of the CLSID of the browser bar to be displayed. The object must be registered
|
||
/// as an Explorer Bar object with a CATID_InfoBand component category. For further information, see Creating Custom Explorer
|
||
/// Bars, Tool Bands, and Desk Bands.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vShow">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>Set to <c>true</c> to show the browser bar or <c>false</c> to hide it.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ShowBrowserBar</c> method.</para>
|
||
/// <para>
|
||
/// You can display one of the standard Explorer Bars by setting the sCLSID parameter to the CLSID of that Explorer Bar. The
|
||
/// standard Explorer Bars and their CLSID strings are as follows:
|
||
/// </para>
|
||
/// <list type="table">
|
||
/// <listheader>
|
||
/// <term>Explorer Bar</term>
|
||
/// <term>CLSID string</term>
|
||
/// </listheader>
|
||
/// <item>
|
||
/// <term>Favorites</term>
|
||
/// <term>{EFA24E61-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>Folders</term>
|
||
/// <term>{EFA24E64-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>History</term>
|
||
/// <term>{EFA24E62-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>Search</term>
|
||
/// <term>{30D02401-6A81-11d0-8274-00C04FD5AE38}</term>
|
||
/// </item>
|
||
/// </list>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-showbrowserbar
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030008)]
|
||
object ShowBrowserBar([In, MarshalAs(UnmanagedType.BStr)] string sCLSID, [In, MarshalAs(UnmanagedType.Struct)] object vShow);
|
||
}
|
||
|
||
/// <summary>
|
||
/// Extends the <c>IShellDispatch2</c> object. <c>IShellDispatch3</c> supports one new method in addition to the properties and
|
||
/// methods supported by <c>IShellDispatch2</c>.
|
||
/// </summary>
|
||
/// <remarks>For a discussion of Windows services, see the Services documentation.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch3
|
||
[PInvokeData("shldisp.h", MSDNShortId = "89d0aa4d-844d-497d-82bb-bcc2bcf9c78b")]
|
||
[ComImport, Guid("177160CA-BB5A-411C-841D-BD38FACDEAA0"), CoClass(typeof(Shell))]
|
||
public interface IShellDispatch3 : IShellDispatch2
|
||
{
|
||
/// <summary>
|
||
/// <para>Contains an object that represents an application.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <para>This property is implemented and accessed through the <c>Shell.EjectPC</c> property.</para>
|
||
/// <para>
|
||
/// The <c>Application</c> property returns the automation object supported by the application that contains the WebBrowser
|
||
/// control, if that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// </para>
|
||
/// <para>
|
||
/// Use this property with the <c>Set</c> and <c>CreateObject</c> commands or with the <c>GetObject</c> command to create and
|
||
/// manipulate an instance of the Windows Internet Explorer application.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-application
|
||
[DispId(0x60020000)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Retrieves an object that represents the parent of the current object.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>This property is implemented and accessed through the <c>Shell.Parent</c> property.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-parent
|
||
[DispId(0x60020001)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>Creates and returns a <c>Folder</c> object for the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder for which to create the <c>Folder</c> object. This can be a string that specifies the path of the folder or one of
|
||
/// the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.NameSpace</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-namespace
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)]
|
||
new Folder NameSpace([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Creates a dialog box that enables the user to select a folder and then returns the selected folder's <c>Folder</c> object.
|
||
/// </summary>
|
||
/// <param name="Hwnd">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>The handle to the parent window of the dialog box. This value can be zero.</para>
|
||
/// </param>
|
||
/// <param name="Title">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> value that represents the title displayed inside the <c>Browse</c> dialog box.</para>
|
||
/// </param>
|
||
/// <param name="Options">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>
|
||
/// An <c>Integer</c> value that contains the options for the method. This can be zero or a combination of the values listed
|
||
/// under the <c>ulFlags</c> member of the <c>BROWSEINFO</c> structure.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="RootFolder">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The root folder to use in the dialog box. The user cannot browse higher in the tree than this folder. If this value is not
|
||
/// specified, the root folder used in the dialog box is the desktop. This value can be a string that specifies the path of the
|
||
/// folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in
|
||
/// <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric
|
||
/// values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.BrowseForFolder</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-browseforfolder
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
new Folder BrowseForFolder([In] int Hwnd, [In, MarshalAs(UnmanagedType.BStr)] string Title, [In] int Options, [In, Optional, MarshalAs(UnmanagedType.Struct)] object RootFolder);
|
||
|
||
/// <summary>
|
||
/// Creates and returns a <c>ShellWindows</c> object. This object represents a collection of all of the open windows that belong
|
||
/// to the Shell.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Windows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-windows
|
||
[return: MarshalAs(UnmanagedType.IDispatch)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)]
|
||
new object Windows();
|
||
|
||
/// <summary>Opens the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A string that specifies the path of the folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the
|
||
/// constant names found in <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In
|
||
/// those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// <para>
|
||
/// If vDir is set to one of the <c>ShellSpecialFolderConstants</c> and the special folder does not exist, this function will
|
||
/// create the folder.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Open</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-open
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
new void Open([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>Opens a specified folder in a Windows Explorer window.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder to be displayed. This can be a string that specifies the path of the folder or one of the
|
||
/// <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Explore</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-explore
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
new void Explore([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Minimizes all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Minimize All Windows</c> on older systems or clicking the <c>Show Desktop</c> icon on the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.MinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-minimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)]
|
||
new void MinimizeAll();
|
||
|
||
/// <summary>
|
||
/// Restores all desktop windows to the state they were in before the last <c>MinimizeAll</c> command. This method has the same
|
||
/// effect as right-clicking the taskbar and selecting <c>Undo Minimize All Windows</c> (on older systems) or a second clicking
|
||
/// of the <c>Show Desktop</c> icon in the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.UndoMinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-undominimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)]
|
||
new void UndoMinimizeALL();
|
||
|
||
/// <summary>Displays the <c>Run</c> dialog to the user.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FileRun</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-filerun
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020009)]
|
||
new void FileRun();
|
||
|
||
/// <summary>
|
||
/// Cascades all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Cascade windows</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.CascadeWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-cascadewindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)]
|
||
new void CascadeWindows();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop vertically. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows side by side</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileVertically</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilevertically
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000b)]
|
||
new void TileVertically();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop horizontally. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows stacked</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileHorizontally</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilehorizontally
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000c)]
|
||
new void TileHorizontally();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Shut Down Windows</c> dialog box. This is the same as clicking the <c>Start</c> menu and selecting <c>Shut Down</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ShutdownWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-shutdownwindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000d)]
|
||
new void ShutdownWindows();
|
||
|
||
/// <summary>This method is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-suspend
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e)]
|
||
new void Suspend();
|
||
|
||
/// <summary>
|
||
/// Ejects the computer from its docking station. This is the same as clicking the <c>Start</c> menu and selecting <c>Eject
|
||
/// PC</c>, if your computer supports this command.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.EjectPC</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-ejectpc
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000f)]
|
||
new void EjectPC();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Date and Time</c> dialog box. This method has the same effect as right-clicking the clock in the taskbar
|
||
/// status area and selecting <c>Adjust date/time</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.SetTime</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-settime
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020010)]
|
||
new void SetTime();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Taskbar and Start Menu Properties</c> dialog box. This method has the same effect as right-clicking the
|
||
/// taskbar and selecting <c>Properties</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-trayproperties
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020011)]
|
||
new void TrayProperties();
|
||
|
||
/// <summary>
|
||
/// Displays the Windows Help and Support window. This method has the same effect as clicking the <c>Start</c> menu and selecting
|
||
/// <c>Help and Support</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Help</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-help
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020012)]
|
||
new void Help();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Find: All Files</c> dialog box. This is the same as clicking the <c>Start</c> menu and then selecting <c>Search</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindFiles</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findfiles
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020013)]
|
||
new void FindFiles();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Search Results: Computers</c> dialog box. The dialog box shows the result of the search for a specified computer.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindComputer</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findcomputer
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020014)]
|
||
new void FindComputer();
|
||
|
||
/// <summary>Refreshes the contents of the <c>Start</c> menu. Used only with systems preceding Windows XP.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</para>
|
||
/// <para>
|
||
/// The functionality that <c>RefreshMenu</c> provides is handled automatically under Windows XP or later. Do not call this
|
||
/// method on Windows XP or later.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-refreshmenu
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020015)]
|
||
new void RefreshMenu();
|
||
|
||
/// <summary>
|
||
/// Runs the specified Control Panel application. If the application is already open, it will activate the running instance.
|
||
/// </summary>
|
||
/// <param name="bstrDir">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>The Control Panel application's file name.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ControlPanelItem</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-controlpanelitem
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020016)]
|
||
new void ControlPanelItem([In, MarshalAs(UnmanagedType.BStr)] string bstrDir);
|
||
|
||
/// <summary>Retrieves a group's restriction setting from the registry.</summary>
|
||
/// <param name="sGroup">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the group name. This value is the name of a registry subkey under which to check for the restriction.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="sRestriction">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the restriction whose value is to be retrieved.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Integer*</c></para>
|
||
/// <para>The value of the restriction. If the specified restriction is not found, the return value is 0.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Integer*</c></para>
|
||
/// <para>The value of the restriction. If the specified restriction is not found, the return value is 0.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.IsRestricted</c> method.</para>
|
||
/// <para><c>IsRestricted</c> first looks for a subkey name that matches sGroup under the following key.</para>
|
||
/// <para>
|
||
/// Restrictions are declared as values of the individual policy subkeys. If the restriction named in sRestriction is found in
|
||
/// the subkey named in sGroup, <c>IsRestricted</c> returns the restriction's current value. If the restriction is not found
|
||
/// under <c>HKEY_LOCAL_MACHINE</c>, the same subkey is checked under <c>HKEY_CURRENT_USER</c>.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-isrestricted
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)]
|
||
new int IsRestricted([In, MarshalAs(UnmanagedType.BStr)] string sGroup, [In, MarshalAs(UnmanagedType.BStr)] string sRestriction);
|
||
|
||
/// <summary>Performs a specified operation on a specified file.</summary>
|
||
/// <param name="sFile">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the name of the file on which <c>ShellExecute</c> will perform the action specified by vOperation.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vArguments">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>A string that contains parameter values for the operation.</para>
|
||
/// </param>
|
||
/// <param name="vDirectory">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The fully qualified path of the directory that contains the file specified by sFile. If this parameter is not specified, the
|
||
/// current working directory is used.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vOperation">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The operation to be performed. This value is set to one of the verb strings that is supported by the file. For a discussion
|
||
/// of verbs, see the Remarks section. If this parameter is not specified, the default operation is performed.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vShow">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A recommendation as to how the application window should be displayed initially. The application can ignore this
|
||
/// recommendation. This parameter can be one of the following values. If this parameter is not specified, the application uses
|
||
/// its default value.
|
||
/// </para>
|
||
/// <list type="table">
|
||
/// <listheader>
|
||
/// <term>Value</term>
|
||
/// <term>Meaning</term>
|
||
/// </listheader>
|
||
/// <item>
|
||
/// <term>0</term>
|
||
/// <term>Open the application with a hidden window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>1</term>
|
||
/// <term>
|
||
/// Open the application with a normal window. If the window is minimized or maximized, the system restores it to its original
|
||
/// size and position.
|
||
/// </term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>2</term>
|
||
/// <term>Open the application with a minimized window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>3</term>
|
||
/// <term>Open the application with a maximized window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>4</term>
|
||
/// <term>Open the application with its window at its most recent size and position. The active window remains active.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>5</term>
|
||
/// <term>Open the application with its window at its current size and position.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>7</term>
|
||
/// <term>Open the application with a minimized window. The active window remains active.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>10</term>
|
||
/// <term>Open the application with its window in the default state specified by the application.</term>
|
||
/// </item>
|
||
/// </list>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ShellExecute</c> method.</para>
|
||
/// <para>
|
||
/// This method is equivalent to launching one of the commands associated with a file's shortcut menu. Each command is
|
||
/// represented by a verb string. The set of supported verbs varies from file to file. The most commonly supported verb is
|
||
/// "open", which is also usually the default verb. Other verbs might be supported by only certain types of files. For further
|
||
/// discussion of Shell verbs, see Launching Applications or Extending Shortcut Menus.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-shellexecute
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030001)]
|
||
new void ShellExecute([In, MarshalAs(UnmanagedType.BStr)] string sFile, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vArguments, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vDirectory, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vOperation, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vShow);
|
||
|
||
/// <summary>Displays the <c>Find Printer</c> dialog box.</summary>
|
||
/// <param name="Name">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer name.</para>
|
||
/// </param>
|
||
/// <param name="location">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer location.</para>
|
||
/// </param>
|
||
/// <param name="model">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer model.</para>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.FindPrinter</c> method.</para>
|
||
/// <para>
|
||
/// If you assign strings to one or more of the optional parameters, they are displayed as default values in the associated edit
|
||
/// control when the <c>Find Printer</c> dialog box is displayed. The user can either accept or override these values. If no
|
||
/// value is assigned to a parameter, the associated edit box is empty and the user must enter a value.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-findprinter
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030002)]
|
||
new void FindPrinter([In, Optional, MarshalAs(UnmanagedType.BStr)] string Name, [In, Optional, MarshalAs(UnmanagedType.BStr)] string location, [In, Optional, MarshalAs(UnmanagedType.BStr)] string model);
|
||
|
||
/// <summary>Retrieves system information.</summary>
|
||
/// <param name="sName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that specifies the system information that is being requested.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Returns the value of the requested system information. The return type depends on which system information is requested. See
|
||
/// the Remarks section for details.
|
||
/// </para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Returns the value of the requested system information. The return type depends on which system information is requested. See
|
||
/// the Remarks section for details.
|
||
/// </para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.GetSystemInformation</c> method.</para>
|
||
/// <para>
|
||
/// This method can be used to request many system information values. The following table gives the sName value that is used to
|
||
/// request the information and the associated type of the returned value.
|
||
/// </para>
|
||
/// <para>sName</para>
|
||
/// <para>Return type</para>
|
||
/// <para>Description</para>
|
||
/// <para>DirectoryServiceAvailable</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the directory service is available; otherwise, <c>false</c>.</para>
|
||
/// <para>DoubleClickTime</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The double-click time, in milliseconds.</para>
|
||
/// <para>ProcessorLevel</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>
|
||
/// <c>Windows Vista and later</c>. The processor level. Returns 3, 4, or 5, for x386, x486, and Pentium-level processors, respectively.
|
||
/// </para>
|
||
/// <para>ProcessorSpeed</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The processor speed, in megahertz (MHz).</para>
|
||
/// <para>ProcessorArchitecture</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>
|
||
/// The processor architecture. For details, see the discussion of the <c>wProcessorArchitecture</c> member of the
|
||
/// <c>SYSTEM_INFO</c> structure.
|
||
/// </para>
|
||
/// <para>PhysicalMemoryInstalled</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The amount of physical memory installed, in bytes.</para>
|
||
/// <para>The following are valid only on Windows XP.</para>
|
||
/// <para>IsOS_Professional</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the operating system is Windows XP Professional Edition; otherwise, <c>false</c>.</para>
|
||
/// <para>IsOS_Personal</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the operating system is Windows XP Home Edition; otherwise, <c>false</c>.</para>
|
||
/// <para>The following is valid only on Windows XP and later.</para>
|
||
/// <para>IsOS_DomainMember</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the computer is a member of a domain; otherwise, <c>false</c>.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-getsysteminformation
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030003)]
|
||
new object GetSystemInformation([In, MarshalAs(UnmanagedType.BStr)] string sName);
|
||
|
||
/// <summary>Starts a named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <param name="vPersistent">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Set to <c>true</c> to have the service started automatically by the service control manager during system startup. Set to
|
||
/// <c>false</c> to leave the service configuration unchanged.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ServiceStart</c> method.</para>
|
||
/// <para>
|
||
/// The method returns <c>false</c> if the service has already been started. Before calling this method, you can call
|
||
/// <c>Shell.IsServiceRunning</c> to ascertain the status of the service.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-servicestart
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030004)]
|
||
new object ServiceStart([In, MarshalAs(UnmanagedType.BStr)] string sServiceName, [In, MarshalAs(UnmanagedType.Struct)] object vPersistent);
|
||
|
||
/// <summary>Stops a named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <param name="vPersistent">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Set to <c>true</c> to have the service started by the service control manager when <c>ServiceStart</c> is called. To leave
|
||
/// the service configuration unchanged, set vPersistent to <c>false</c>.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ServiceStop</c> method.</para>
|
||
/// <para>
|
||
/// The method returns <c>false</c> if the service has already been stopped. Before calling this method, you can call
|
||
/// <c>Shell.IsServiceRunning</c> to ascertain the status of the service.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-servicestop
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030005)]
|
||
new object ServiceStop([In, MarshalAs(UnmanagedType.BStr)] string sServiceName, [In, MarshalAs(UnmanagedType.Struct)] object vPersistent);
|
||
|
||
/// <summary>Returns a value that indicates whether a particular service is running.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the service specified by sServiceName is running; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the service specified by sServiceName is running; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.IsServiceRunning</c> method.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-isservicerunning
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030006)]
|
||
new object IsServiceRunning([In, MarshalAs(UnmanagedType.BStr)] string sServiceName);
|
||
|
||
/// <summary>Determines if the current user can start and stop the named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c>String</c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the user can start and stop the service; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the user can start and stop the service; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.CanStartStopService</c> method.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-canstartstopservice
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030007)]
|
||
new object CanStartStopService([In, MarshalAs(UnmanagedType.BStr)] string sServiceName);
|
||
|
||
/// <summary>Displays a browser bar.</summary>
|
||
/// <param name="sCLSID">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the string form of the CLSID of the browser bar to be displayed. The object must be registered
|
||
/// as an Explorer Bar object with a CATID_InfoBand component category. For further information, see Creating Custom Explorer
|
||
/// Bars, Tool Bands, and Desk Bands.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vShow">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>Set to <c>true</c> to show the browser bar or <c>false</c> to hide it.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ShowBrowserBar</c> method.</para>
|
||
/// <para>
|
||
/// You can display one of the standard Explorer Bars by setting the sCLSID parameter to the CLSID of that Explorer Bar. The
|
||
/// standard Explorer Bars and their CLSID strings are as follows:
|
||
/// </para>
|
||
/// <list type="table">
|
||
/// <listheader>
|
||
/// <term>Explorer Bar</term>
|
||
/// <term>CLSID string</term>
|
||
/// </listheader>
|
||
/// <item>
|
||
/// <term>Favorites</term>
|
||
/// <term>{EFA24E61-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>Folders</term>
|
||
/// <term>{EFA24E64-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>History</term>
|
||
/// <term>{EFA24E62-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>Search</term>
|
||
/// <term>{30D02401-6A81-11d0-8274-00C04FD5AE38}</term>
|
||
/// </item>
|
||
/// </list>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-showbrowserbar
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030008)]
|
||
new object ShowBrowserBar([In, MarshalAs(UnmanagedType.BStr)] string sCLSID, [In, MarshalAs(UnmanagedType.Struct)] object vShow);
|
||
|
||
/// <summary>Adds a file to the most recently used (MRU) list.</summary>
|
||
/// <param name="varFile">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>A <c>String</c> that contains the path of the file to add to the list of recently used documents.</para>
|
||
/// <para><c>Windows Vista</c>: Set this parameter to <c>null</c> to clear the recent documents folder.</para>
|
||
/// </param>
|
||
/// <param name="bstrCategory">A <c>String</c> that contains the name of the category in which to place the file.</param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shell-addtorecent
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040000)]
|
||
void AddToRecent([In, MarshalAs(UnmanagedType.Struct)] object varFile, [In, Optional, MarshalAs(UnmanagedType.BStr)] string bstrCategory);
|
||
}
|
||
|
||
/// <summary>
|
||
/// Extends the <c>IShellDispatch3</c> object. In addition to the properties and methods supported by <c>IShellDispatch3</c>,
|
||
/// <c>IShellDispatch4</c> supports four additional methods.
|
||
/// </summary>
|
||
/// <remarks>For a discussion of Windows services, see the Services documentation.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4
|
||
[PInvokeData("shldisp.h", MSDNShortId = "4fe37e38-ee71-41f0-b620-35fdc18f9dbb")]
|
||
[ComImport, Guid("EFD84B2D-4BCF-4298-BE25-EB542A59FBDA"), CoClass(typeof(Shell))]
|
||
public interface IShellDispatch4 : IShellDispatch3
|
||
{
|
||
/// <summary>
|
||
/// <para>Contains an object that represents an application.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <para>This property is implemented and accessed through the <c>Shell.EjectPC</c> property.</para>
|
||
/// <para>
|
||
/// The <c>Application</c> property returns the automation object supported by the application that contains the WebBrowser
|
||
/// control, if that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// </para>
|
||
/// <para>
|
||
/// Use this property with the <c>Set</c> and <c>CreateObject</c> commands or with the <c>GetObject</c> command to create and
|
||
/// manipulate an instance of the Windows Internet Explorer application.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-application
|
||
[DispId(0x60020000)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Retrieves an object that represents the parent of the current object.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>This property is implemented and accessed through the <c>Shell.Parent</c> property.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-parent
|
||
[DispId(0x60020001)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>Creates and returns a <c>Folder</c> object for the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder for which to create the <c>Folder</c> object. This can be a string that specifies the path of the folder or one of
|
||
/// the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.NameSpace</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-namespace
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)]
|
||
new Folder NameSpace([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Creates a dialog box that enables the user to select a folder and then returns the selected folder's <c>Folder</c> object.
|
||
/// </summary>
|
||
/// <param name="Hwnd">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>The handle to the parent window of the dialog box. This value can be zero.</para>
|
||
/// </param>
|
||
/// <param name="Title">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> value that represents the title displayed inside the <c>Browse</c> dialog box.</para>
|
||
/// </param>
|
||
/// <param name="Options">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>
|
||
/// An <c>Integer</c> value that contains the options for the method. This can be zero or a combination of the values listed
|
||
/// under the <c>ulFlags</c> member of the <c>BROWSEINFO</c> structure.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="RootFolder">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The root folder to use in the dialog box. The user cannot browse higher in the tree than this folder. If this value is not
|
||
/// specified, the root folder used in the dialog box is the desktop. This value can be a string that specifies the path of the
|
||
/// folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in
|
||
/// <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric
|
||
/// values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.BrowseForFolder</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-browseforfolder
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
new Folder BrowseForFolder([In] int Hwnd, [In, MarshalAs(UnmanagedType.BStr)] string Title, [In] int Options, [In, Optional, MarshalAs(UnmanagedType.Struct)] object RootFolder);
|
||
|
||
/// <summary>
|
||
/// Creates and returns a <c>ShellWindows</c> object. This object represents a collection of all of the open windows that belong
|
||
/// to the Shell.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Windows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-windows
|
||
[return: MarshalAs(UnmanagedType.IDispatch)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)]
|
||
new object Windows();
|
||
|
||
/// <summary>Opens the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A string that specifies the path of the folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the
|
||
/// constant names found in <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In
|
||
/// those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// <para>
|
||
/// If vDir is set to one of the <c>ShellSpecialFolderConstants</c> and the special folder does not exist, this function will
|
||
/// create the folder.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Open</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-open
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
new void Open([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>Opens a specified folder in a Windows Explorer window.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder to be displayed. This can be a string that specifies the path of the folder or one of the
|
||
/// <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Explore</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-explore
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
new void Explore([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Minimizes all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Minimize All Windows</c> on older systems or clicking the <c>Show Desktop</c> icon on the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.MinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-minimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)]
|
||
new void MinimizeAll();
|
||
|
||
/// <summary>
|
||
/// Restores all desktop windows to the state they were in before the last <c>MinimizeAll</c> command. This method has the same
|
||
/// effect as right-clicking the taskbar and selecting <c>Undo Minimize All Windows</c> (on older systems) or a second clicking
|
||
/// of the <c>Show Desktop</c> icon in the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.UndoMinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-undominimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)]
|
||
new void UndoMinimizeALL();
|
||
|
||
/// <summary>Displays the <c>Run</c> dialog to the user.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FileRun</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-filerun
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020009)]
|
||
new void FileRun();
|
||
|
||
/// <summary>
|
||
/// Cascades all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Cascade windows</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.CascadeWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-cascadewindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)]
|
||
new void CascadeWindows();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop vertically. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows side by side</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileVertically</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilevertically
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000b)]
|
||
new void TileVertically();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop horizontally. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows stacked</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileHorizontally</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilehorizontally
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000c)]
|
||
new void TileHorizontally();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Shut Down Windows</c> dialog box. This is the same as clicking the <c>Start</c> menu and selecting <c>Shut Down</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ShutdownWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-shutdownwindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000d)]
|
||
new void ShutdownWindows();
|
||
|
||
/// <summary>This method is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-suspend
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e)]
|
||
new void Suspend();
|
||
|
||
/// <summary>
|
||
/// Ejects the computer from its docking station. This is the same as clicking the <c>Start</c> menu and selecting <c>Eject
|
||
/// PC</c>, if your computer supports this command.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.EjectPC</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-ejectpc
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000f)]
|
||
new void EjectPC();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Date and Time</c> dialog box. This method has the same effect as right-clicking the clock in the taskbar
|
||
/// status area and selecting <c>Adjust date/time</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.SetTime</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-settime
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020010)]
|
||
new void SetTime();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Taskbar and Start Menu Properties</c> dialog box. This method has the same effect as right-clicking the
|
||
/// taskbar and selecting <c>Properties</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-trayproperties
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020011)]
|
||
new void TrayProperties();
|
||
|
||
/// <summary>
|
||
/// Displays the Windows Help and Support window. This method has the same effect as clicking the <c>Start</c> menu and selecting
|
||
/// <c>Help and Support</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Help</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-help
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020012)]
|
||
new void Help();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Find: All Files</c> dialog box. This is the same as clicking the <c>Start</c> menu and then selecting <c>Search</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindFiles</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findfiles
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020013)]
|
||
new void FindFiles();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Search Results: Computers</c> dialog box. The dialog box shows the result of the search for a specified computer.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindComputer</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findcomputer
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020014)]
|
||
new void FindComputer();
|
||
|
||
/// <summary>Refreshes the contents of the <c>Start</c> menu. Used only with systems preceding Windows XP.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</para>
|
||
/// <para>
|
||
/// The functionality that <c>RefreshMenu</c> provides is handled automatically under Windows XP or later. Do not call this
|
||
/// method on Windows XP or later.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-refreshmenu
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020015)]
|
||
new void RefreshMenu();
|
||
|
||
/// <summary>
|
||
/// Runs the specified Control Panel application. If the application is already open, it will activate the running instance.
|
||
/// </summary>
|
||
/// <param name="bstrDir">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>The Control Panel application's file name.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ControlPanelItem</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-controlpanelitem
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020016)]
|
||
new void ControlPanelItem([In, MarshalAs(UnmanagedType.BStr)] string bstrDir);
|
||
|
||
/// <summary>Retrieves a group's restriction setting from the registry.</summary>
|
||
/// <param name="sGroup">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the group name. This value is the name of a registry subkey under which to check for the restriction.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="sRestriction">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the restriction whose value is to be retrieved.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Integer*</c></para>
|
||
/// <para>The value of the restriction. If the specified restriction is not found, the return value is 0.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Integer*</c></para>
|
||
/// <para>The value of the restriction. If the specified restriction is not found, the return value is 0.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.IsRestricted</c> method.</para>
|
||
/// <para><c>IsRestricted</c> first looks for a subkey name that matches sGroup under the following key.</para>
|
||
/// <para>
|
||
/// Restrictions are declared as values of the individual policy subkeys. If the restriction named in sRestriction is found in
|
||
/// the subkey named in sGroup, <c>IsRestricted</c> returns the restriction's current value. If the restriction is not found
|
||
/// under <c>HKEY_LOCAL_MACHINE</c>, the same subkey is checked under <c>HKEY_CURRENT_USER</c>.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-isrestricted
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)]
|
||
new int IsRestricted([In, MarshalAs(UnmanagedType.BStr)] string sGroup, [In, MarshalAs(UnmanagedType.BStr)] string sRestriction);
|
||
|
||
/// <summary>Performs a specified operation on a specified file.</summary>
|
||
/// <param name="sFile">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the name of the file on which <c>ShellExecute</c> will perform the action specified by vOperation.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vArguments">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>A string that contains parameter values for the operation.</para>
|
||
/// </param>
|
||
/// <param name="vDirectory">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The fully qualified path of the directory that contains the file specified by sFile. If this parameter is not specified, the
|
||
/// current working directory is used.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vOperation">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The operation to be performed. This value is set to one of the verb strings that is supported by the file. For a discussion
|
||
/// of verbs, see the Remarks section. If this parameter is not specified, the default operation is performed.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vShow">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A recommendation as to how the application window should be displayed initially. The application can ignore this
|
||
/// recommendation. This parameter can be one of the following values. If this parameter is not specified, the application uses
|
||
/// its default value.
|
||
/// </para>
|
||
/// <list type="table">
|
||
/// <listheader>
|
||
/// <term>Value</term>
|
||
/// <term>Meaning</term>
|
||
/// </listheader>
|
||
/// <item>
|
||
/// <term>0</term>
|
||
/// <term>Open the application with a hidden window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>1</term>
|
||
/// <term>
|
||
/// Open the application with a normal window. If the window is minimized or maximized, the system restores it to its original
|
||
/// size and position.
|
||
/// </term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>2</term>
|
||
/// <term>Open the application with a minimized window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>3</term>
|
||
/// <term>Open the application with a maximized window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>4</term>
|
||
/// <term>Open the application with its window at its most recent size and position. The active window remains active.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>5</term>
|
||
/// <term>Open the application with its window at its current size and position.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>7</term>
|
||
/// <term>Open the application with a minimized window. The active window remains active.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>10</term>
|
||
/// <term>Open the application with its window in the default state specified by the application.</term>
|
||
/// </item>
|
||
/// </list>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ShellExecute</c> method.</para>
|
||
/// <para>
|
||
/// This method is equivalent to launching one of the commands associated with a file's shortcut menu. Each command is
|
||
/// represented by a verb string. The set of supported verbs varies from file to file. The most commonly supported verb is
|
||
/// "open", which is also usually the default verb. Other verbs might be supported by only certain types of files. For further
|
||
/// discussion of Shell verbs, see Launching Applications or Extending Shortcut Menus.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-shellexecute
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030001)]
|
||
new void ShellExecute([In, MarshalAs(UnmanagedType.BStr)] string sFile, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vArguments, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vDirectory, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vOperation, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vShow);
|
||
|
||
/// <summary>Displays the <c>Find Printer</c> dialog box.</summary>
|
||
/// <param name="Name">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer name.</para>
|
||
/// </param>
|
||
/// <param name="location">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer location.</para>
|
||
/// </param>
|
||
/// <param name="model">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer model.</para>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.FindPrinter</c> method.</para>
|
||
/// <para>
|
||
/// If you assign strings to one or more of the optional parameters, they are displayed as default values in the associated edit
|
||
/// control when the <c>Find Printer</c> dialog box is displayed. The user can either accept or override these values. If no
|
||
/// value is assigned to a parameter, the associated edit box is empty and the user must enter a value.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-findprinter
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030002)]
|
||
new void FindPrinter([In, Optional, MarshalAs(UnmanagedType.BStr)] string Name, [In, Optional, MarshalAs(UnmanagedType.BStr)] string location, [In, Optional, MarshalAs(UnmanagedType.BStr)] string model);
|
||
|
||
/// <summary>Retrieves system information.</summary>
|
||
/// <param name="sName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that specifies the system information that is being requested.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Returns the value of the requested system information. The return type depends on which system information is requested. See
|
||
/// the Remarks section for details.
|
||
/// </para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Returns the value of the requested system information. The return type depends on which system information is requested. See
|
||
/// the Remarks section for details.
|
||
/// </para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.GetSystemInformation</c> method.</para>
|
||
/// <para>
|
||
/// This method can be used to request many system information values. The following table gives the sName value that is used to
|
||
/// request the information and the associated type of the returned value.
|
||
/// </para>
|
||
/// <para>sName</para>
|
||
/// <para>Return type</para>
|
||
/// <para>Description</para>
|
||
/// <para>DirectoryServiceAvailable</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the directory service is available; otherwise, <c>false</c>.</para>
|
||
/// <para>DoubleClickTime</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The double-click time, in milliseconds.</para>
|
||
/// <para>ProcessorLevel</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>
|
||
/// <c>Windows Vista and later</c>. The processor level. Returns 3, 4, or 5, for x386, x486, and Pentium-level processors, respectively.
|
||
/// </para>
|
||
/// <para>ProcessorSpeed</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The processor speed, in megahertz (MHz).</para>
|
||
/// <para>ProcessorArchitecture</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>
|
||
/// The processor architecture. For details, see the discussion of the <c>wProcessorArchitecture</c> member of the
|
||
/// <c>SYSTEM_INFO</c> structure.
|
||
/// </para>
|
||
/// <para>PhysicalMemoryInstalled</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The amount of physical memory installed, in bytes.</para>
|
||
/// <para>The following are valid only on Windows XP.</para>
|
||
/// <para>IsOS_Professional</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the operating system is Windows XP Professional Edition; otherwise, <c>false</c>.</para>
|
||
/// <para>IsOS_Personal</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the operating system is Windows XP Home Edition; otherwise, <c>false</c>.</para>
|
||
/// <para>The following is valid only on Windows XP and later.</para>
|
||
/// <para>IsOS_DomainMember</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the computer is a member of a domain; otherwise, <c>false</c>.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-getsysteminformation
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030003)]
|
||
new object GetSystemInformation([In, MarshalAs(UnmanagedType.BStr)] string sName);
|
||
|
||
/// <summary>Starts a named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <param name="vPersistent">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Set to <c>true</c> to have the service started automatically by the service control manager during system startup. Set to
|
||
/// <c>false</c> to leave the service configuration unchanged.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ServiceStart</c> method.</para>
|
||
/// <para>
|
||
/// The method returns <c>false</c> if the service has already been started. Before calling this method, you can call
|
||
/// <c>Shell.IsServiceRunning</c> to ascertain the status of the service.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-servicestart
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030004)]
|
||
new object ServiceStart([In, MarshalAs(UnmanagedType.BStr)] string sServiceName, [In, MarshalAs(UnmanagedType.Struct)] object vPersistent);
|
||
|
||
/// <summary>Stops a named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <param name="vPersistent">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Set to <c>true</c> to have the service started by the service control manager when <c>ServiceStart</c> is called. To leave
|
||
/// the service configuration unchanged, set vPersistent to <c>false</c>.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ServiceStop</c> method.</para>
|
||
/// <para>
|
||
/// The method returns <c>false</c> if the service has already been stopped. Before calling this method, you can call
|
||
/// <c>Shell.IsServiceRunning</c> to ascertain the status of the service.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-servicestop
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030005)]
|
||
new object ServiceStop([In, MarshalAs(UnmanagedType.BStr)] string sServiceName, [In, MarshalAs(UnmanagedType.Struct)] object vPersistent);
|
||
|
||
/// <summary>Returns a value that indicates whether a particular service is running.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the service specified by sServiceName is running; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the service specified by sServiceName is running; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.IsServiceRunning</c> method.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-isservicerunning
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030006)]
|
||
new object IsServiceRunning([In, MarshalAs(UnmanagedType.BStr)] string sServiceName);
|
||
|
||
/// <summary>Determines if the current user can start and stop the named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c>String</c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the user can start and stop the service; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the user can start and stop the service; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.CanStartStopService</c> method.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-canstartstopservice
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030007)]
|
||
new object CanStartStopService([In, MarshalAs(UnmanagedType.BStr)] string sServiceName);
|
||
|
||
/// <summary>Displays a browser bar.</summary>
|
||
/// <param name="sCLSID">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the string form of the CLSID of the browser bar to be displayed. The object must be registered
|
||
/// as an Explorer Bar object with a CATID_InfoBand component category. For further information, see Creating Custom Explorer
|
||
/// Bars, Tool Bands, and Desk Bands.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vShow">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>Set to <c>true</c> to show the browser bar or <c>false</c> to hide it.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ShowBrowserBar</c> method.</para>
|
||
/// <para>
|
||
/// You can display one of the standard Explorer Bars by setting the sCLSID parameter to the CLSID of that Explorer Bar. The
|
||
/// standard Explorer Bars and their CLSID strings are as follows:
|
||
/// </para>
|
||
/// <list type="table">
|
||
/// <listheader>
|
||
/// <term>Explorer Bar</term>
|
||
/// <term>CLSID string</term>
|
||
/// </listheader>
|
||
/// <item>
|
||
/// <term>Favorites</term>
|
||
/// <term>{EFA24E61-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>Folders</term>
|
||
/// <term>{EFA24E64-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>History</term>
|
||
/// <term>{EFA24E62-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>Search</term>
|
||
/// <term>{30D02401-6A81-11d0-8274-00C04FD5AE38}</term>
|
||
/// </item>
|
||
/// </list>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-showbrowserbar
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030008)]
|
||
new object ShowBrowserBar([In, MarshalAs(UnmanagedType.BStr)] string sCLSID, [In, MarshalAs(UnmanagedType.Struct)] object vShow);
|
||
|
||
/// <summary>Adds a file to the most recently used (MRU) list.</summary>
|
||
/// <param name="varFile">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>A <c>String</c> that contains the path of the file to add to the list of recently used documents.</para>
|
||
/// <para><c>Windows Vista</c>: Set this parameter to <c>null</c> to clear the recent documents folder.</para>
|
||
/// </param>
|
||
/// <param name="bstrCategory">A <c>String</c> that contains the name of the category in which to place the file.</param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shell-addtorecent
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040000)]
|
||
new void AddToRecent([In, MarshalAs(UnmanagedType.Struct)] object varFile, [In, Optional, MarshalAs(UnmanagedType.BStr)] string bstrCategory);
|
||
|
||
/// <summary>Displays the <c>Windows Security</c> dialog box.</summary>
|
||
/// <remarks>
|
||
/// This method displays the dialog box shown after pressing CTRL+ALT+DELETE or using the security option on the <c>Start</c> menu.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-windowssecurity
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050000)]
|
||
void WindowsSecurity();
|
||
|
||
/// <summary>Displays or hides the desktop.</summary>
|
||
/// <remarks>
|
||
/// This method has the same effect as the <c>Show Desktop</c> button on the taskbar. It either hides all open windows to show
|
||
/// the desktop or it hides the desktop by showing all open windows. The <c>ToggleDesktop</c> method does not display a user
|
||
/// interface, it just invokes the toggle action.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-toggledesktop
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050001)]
|
||
void ToggleDesktop();
|
||
|
||
/// <summary>Gets the value for a specified Windows Internet Explorer policy.</summary>
|
||
/// <param name="bstrPolicyName">A <c>String</c> that specifies the name of the policy.</param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>The value associated with the specified policy name.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>The value associated with the specified policy name.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>Network Administrators can control and manage the computing environment of their users by setting policies.</para>
|
||
/// <para>
|
||
/// The specified value name must be within the <c>HKEY_CURRENT_USER</c>\ <c>Software</c>\ <c>Microsoft</c>\ <c>Windows</c>\
|
||
/// <c>CurrentVersion</c>\ <c>Policies</c>\ <c>Explorer</c> subkey. If the value name does not exist then the method returns <c>null</c>.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-explorerpolicy
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050002)]
|
||
object ExplorerPolicy([In, MarshalAs(UnmanagedType.BStr)] string bstrPolicyName);
|
||
|
||
/// <summary>Retrieves a global Shell setting.</summary>
|
||
/// <param name="lSetting">
|
||
/// A value that specifies the current Shell setting to retrieve. Only one setting can be retrieved in each call. The following
|
||
/// values are recognized by this method.
|
||
/// </param>
|
||
/// <returns>Set to <c>true</c> if the setting exists; otherwise, <c>false</c>.</returns>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-getsetting
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050003)]
|
||
bool GetSetting([In] SSF lSetting);
|
||
}
|
||
|
||
/// <summary>
|
||
/// Extends the <c>IShellDispatch4</c> object. In addition to the properties and methods supported by <c>IShellDispatch4</c>,
|
||
/// <c>IShellDispatch5</c> adds a method that displays open windows in a 3D stack.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch5
|
||
[PInvokeData("shldisp.h", MSDNShortId = "9170340a-0f11-4ec9-877d-fb7fef9888b2")]
|
||
[ComImport, Guid("866738B9-6CF2-4DE8-8767-F794EBE74F4E"), CoClass(typeof(Shell))]
|
||
public interface IShellDispatch5 : IShellDispatch4
|
||
{
|
||
/// <summary>
|
||
/// <para>Contains an object that represents an application.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <para>This property is implemented and accessed through the <c>Shell.EjectPC</c> property.</para>
|
||
/// <para>
|
||
/// The <c>Application</c> property returns the automation object supported by the application that contains the WebBrowser
|
||
/// control, if that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// </para>
|
||
/// <para>
|
||
/// Use this property with the <c>Set</c> and <c>CreateObject</c> commands or with the <c>GetObject</c> command to create and
|
||
/// manipulate an instance of the Windows Internet Explorer application.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-application
|
||
[DispId(0x60020000)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Retrieves an object that represents the parent of the current object.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>This property is implemented and accessed through the <c>Shell.Parent</c> property.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-parent
|
||
[DispId(0x60020001)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>Creates and returns a <c>Folder</c> object for the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder for which to create the <c>Folder</c> object. This can be a string that specifies the path of the folder or one of
|
||
/// the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.NameSpace</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-namespace
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)]
|
||
new Folder NameSpace([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Creates a dialog box that enables the user to select a folder and then returns the selected folder's <c>Folder</c> object.
|
||
/// </summary>
|
||
/// <param name="Hwnd">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>The handle to the parent window of the dialog box. This value can be zero.</para>
|
||
/// </param>
|
||
/// <param name="Title">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> value that represents the title displayed inside the <c>Browse</c> dialog box.</para>
|
||
/// </param>
|
||
/// <param name="Options">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>
|
||
/// An <c>Integer</c> value that contains the options for the method. This can be zero or a combination of the values listed
|
||
/// under the <c>ulFlags</c> member of the <c>BROWSEINFO</c> structure.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="RootFolder">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The root folder to use in the dialog box. The user cannot browse higher in the tree than this folder. If this value is not
|
||
/// specified, the root folder used in the dialog box is the desktop. This value can be a string that specifies the path of the
|
||
/// folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in
|
||
/// <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric
|
||
/// values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.BrowseForFolder</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-browseforfolder
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
new Folder BrowseForFolder([In] int Hwnd, [In, MarshalAs(UnmanagedType.BStr)] string Title, [In] int Options, [In, Optional, MarshalAs(UnmanagedType.Struct)] object RootFolder);
|
||
|
||
/// <summary>
|
||
/// Creates and returns a <c>ShellWindows</c> object. This object represents a collection of all of the open windows that belong
|
||
/// to the Shell.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Windows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-windows
|
||
[return: MarshalAs(UnmanagedType.IDispatch)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)]
|
||
new object Windows();
|
||
|
||
/// <summary>Opens the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A string that specifies the path of the folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the
|
||
/// constant names found in <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In
|
||
/// those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// <para>
|
||
/// If vDir is set to one of the <c>ShellSpecialFolderConstants</c> and the special folder does not exist, this function will
|
||
/// create the folder.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Open</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-open
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
new void Open([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>Opens a specified folder in a Windows Explorer window.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder to be displayed. This can be a string that specifies the path of the folder or one of the
|
||
/// <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Explore</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-explore
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
new void Explore([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Minimizes all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Minimize All Windows</c> on older systems or clicking the <c>Show Desktop</c> icon on the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.MinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-minimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)]
|
||
new void MinimizeAll();
|
||
|
||
/// <summary>
|
||
/// Restores all desktop windows to the state they were in before the last <c>MinimizeAll</c> command. This method has the same
|
||
/// effect as right-clicking the taskbar and selecting <c>Undo Minimize All Windows</c> (on older systems) or a second clicking
|
||
/// of the <c>Show Desktop</c> icon in the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.UndoMinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-undominimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)]
|
||
new void UndoMinimizeALL();
|
||
|
||
/// <summary>Displays the <c>Run</c> dialog to the user.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FileRun</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-filerun
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020009)]
|
||
new void FileRun();
|
||
|
||
/// <summary>
|
||
/// Cascades all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Cascade windows</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.CascadeWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-cascadewindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)]
|
||
new void CascadeWindows();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop vertically. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows side by side</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileVertically</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilevertically
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000b)]
|
||
new void TileVertically();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop horizontally. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows stacked</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileHorizontally</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilehorizontally
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000c)]
|
||
new void TileHorizontally();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Shut Down Windows</c> dialog box. This is the same as clicking the <c>Start</c> menu and selecting <c>Shut Down</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ShutdownWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-shutdownwindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000d)]
|
||
new void ShutdownWindows();
|
||
|
||
/// <summary>This method is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-suspend
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e)]
|
||
new void Suspend();
|
||
|
||
/// <summary>
|
||
/// Ejects the computer from its docking station. This is the same as clicking the <c>Start</c> menu and selecting <c>Eject
|
||
/// PC</c>, if your computer supports this command.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.EjectPC</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-ejectpc
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000f)]
|
||
new void EjectPC();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Date and Time</c> dialog box. This method has the same effect as right-clicking the clock in the taskbar
|
||
/// status area and selecting <c>Adjust date/time</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.SetTime</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-settime
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020010)]
|
||
new void SetTime();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Taskbar and Start Menu Properties</c> dialog box. This method has the same effect as right-clicking the
|
||
/// taskbar and selecting <c>Properties</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-trayproperties
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020011)]
|
||
new void TrayProperties();
|
||
|
||
/// <summary>
|
||
/// Displays the Windows Help and Support window. This method has the same effect as clicking the <c>Start</c> menu and selecting
|
||
/// <c>Help and Support</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Help</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-help
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020012)]
|
||
new void Help();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Find: All Files</c> dialog box. This is the same as clicking the <c>Start</c> menu and then selecting <c>Search</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindFiles</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findfiles
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020013)]
|
||
new void FindFiles();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Search Results: Computers</c> dialog box. The dialog box shows the result of the search for a specified computer.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindComputer</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findcomputer
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020014)]
|
||
new void FindComputer();
|
||
|
||
/// <summary>Refreshes the contents of the <c>Start</c> menu. Used only with systems preceding Windows XP.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</para>
|
||
/// <para>
|
||
/// The functionality that <c>RefreshMenu</c> provides is handled automatically under Windows XP or later. Do not call this
|
||
/// method on Windows XP or later.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-refreshmenu
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020015)]
|
||
new void RefreshMenu();
|
||
|
||
/// <summary>
|
||
/// Runs the specified Control Panel application. If the application is already open, it will activate the running instance.
|
||
/// </summary>
|
||
/// <param name="bstrDir">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>The Control Panel application's file name.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ControlPanelItem</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-controlpanelitem
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020016)]
|
||
new void ControlPanelItem([In, MarshalAs(UnmanagedType.BStr)] string bstrDir);
|
||
|
||
/// <summary>Retrieves a group's restriction setting from the registry.</summary>
|
||
/// <param name="sGroup">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the group name. This value is the name of a registry subkey under which to check for the restriction.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="sRestriction">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the restriction whose value is to be retrieved.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Integer*</c></para>
|
||
/// <para>The value of the restriction. If the specified restriction is not found, the return value is 0.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Integer*</c></para>
|
||
/// <para>The value of the restriction. If the specified restriction is not found, the return value is 0.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.IsRestricted</c> method.</para>
|
||
/// <para><c>IsRestricted</c> first looks for a subkey name that matches sGroup under the following key.</para>
|
||
/// <para>
|
||
/// Restrictions are declared as values of the individual policy subkeys. If the restriction named in sRestriction is found in
|
||
/// the subkey named in sGroup, <c>IsRestricted</c> returns the restriction's current value. If the restriction is not found
|
||
/// under <c>HKEY_LOCAL_MACHINE</c>, the same subkey is checked under <c>HKEY_CURRENT_USER</c>.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-isrestricted
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)]
|
||
new int IsRestricted([In, MarshalAs(UnmanagedType.BStr)] string sGroup, [In, MarshalAs(UnmanagedType.BStr)] string sRestriction);
|
||
|
||
/// <summary>Performs a specified operation on a specified file.</summary>
|
||
/// <param name="sFile">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the name of the file on which <c>ShellExecute</c> will perform the action specified by vOperation.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vArguments">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>A string that contains parameter values for the operation.</para>
|
||
/// </param>
|
||
/// <param name="vDirectory">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The fully qualified path of the directory that contains the file specified by sFile. If this parameter is not specified, the
|
||
/// current working directory is used.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vOperation">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The operation to be performed. This value is set to one of the verb strings that is supported by the file. For a discussion
|
||
/// of verbs, see the Remarks section. If this parameter is not specified, the default operation is performed.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vShow">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A recommendation as to how the application window should be displayed initially. The application can ignore this
|
||
/// recommendation. This parameter can be one of the following values. If this parameter is not specified, the application uses
|
||
/// its default value.
|
||
/// </para>
|
||
/// <list type="table">
|
||
/// <listheader>
|
||
/// <term>Value</term>
|
||
/// <term>Meaning</term>
|
||
/// </listheader>
|
||
/// <item>
|
||
/// <term>0</term>
|
||
/// <term>Open the application with a hidden window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>1</term>
|
||
/// <term>
|
||
/// Open the application with a normal window. If the window is minimized or maximized, the system restores it to its original
|
||
/// size and position.
|
||
/// </term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>2</term>
|
||
/// <term>Open the application with a minimized window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>3</term>
|
||
/// <term>Open the application with a maximized window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>4</term>
|
||
/// <term>Open the application with its window at its most recent size and position. The active window remains active.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>5</term>
|
||
/// <term>Open the application with its window at its current size and position.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>7</term>
|
||
/// <term>Open the application with a minimized window. The active window remains active.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>10</term>
|
||
/// <term>Open the application with its window in the default state specified by the application.</term>
|
||
/// </item>
|
||
/// </list>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ShellExecute</c> method.</para>
|
||
/// <para>
|
||
/// This method is equivalent to launching one of the commands associated with a file's shortcut menu. Each command is
|
||
/// represented by a verb string. The set of supported verbs varies from file to file. The most commonly supported verb is
|
||
/// "open", which is also usually the default verb. Other verbs might be supported by only certain types of files. For further
|
||
/// discussion of Shell verbs, see Launching Applications or Extending Shortcut Menus.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-shellexecute
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030001)]
|
||
new void ShellExecute([In, MarshalAs(UnmanagedType.BStr)] string sFile, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vArguments, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vDirectory, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vOperation, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vShow);
|
||
|
||
/// <summary>Displays the <c>Find Printer</c> dialog box.</summary>
|
||
/// <param name="Name">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer name.</para>
|
||
/// </param>
|
||
/// <param name="location">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer location.</para>
|
||
/// </param>
|
||
/// <param name="model">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer model.</para>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.FindPrinter</c> method.</para>
|
||
/// <para>
|
||
/// If you assign strings to one or more of the optional parameters, they are displayed as default values in the associated edit
|
||
/// control when the <c>Find Printer</c> dialog box is displayed. The user can either accept or override these values. If no
|
||
/// value is assigned to a parameter, the associated edit box is empty and the user must enter a value.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-findprinter
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030002)]
|
||
new void FindPrinter([In, Optional, MarshalAs(UnmanagedType.BStr)] string Name, [In, Optional, MarshalAs(UnmanagedType.BStr)] string location, [In, Optional, MarshalAs(UnmanagedType.BStr)] string model);
|
||
|
||
/// <summary>Retrieves system information.</summary>
|
||
/// <param name="sName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that specifies the system information that is being requested.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Returns the value of the requested system information. The return type depends on which system information is requested. See
|
||
/// the Remarks section for details.
|
||
/// </para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Returns the value of the requested system information. The return type depends on which system information is requested. See
|
||
/// the Remarks section for details.
|
||
/// </para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.GetSystemInformation</c> method.</para>
|
||
/// <para>
|
||
/// This method can be used to request many system information values. The following table gives the sName value that is used to
|
||
/// request the information and the associated type of the returned value.
|
||
/// </para>
|
||
/// <para>sName</para>
|
||
/// <para>Return type</para>
|
||
/// <para>Description</para>
|
||
/// <para>DirectoryServiceAvailable</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the directory service is available; otherwise, <c>false</c>.</para>
|
||
/// <para>DoubleClickTime</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The double-click time, in milliseconds.</para>
|
||
/// <para>ProcessorLevel</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>
|
||
/// <c>Windows Vista and later</c>. The processor level. Returns 3, 4, or 5, for x386, x486, and Pentium-level processors, respectively.
|
||
/// </para>
|
||
/// <para>ProcessorSpeed</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The processor speed, in megahertz (MHz).</para>
|
||
/// <para>ProcessorArchitecture</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>
|
||
/// The processor architecture. For details, see the discussion of the <c>wProcessorArchitecture</c> member of the
|
||
/// <c>SYSTEM_INFO</c> structure.
|
||
/// </para>
|
||
/// <para>PhysicalMemoryInstalled</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The amount of physical memory installed, in bytes.</para>
|
||
/// <para>The following are valid only on Windows XP.</para>
|
||
/// <para>IsOS_Professional</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the operating system is Windows XP Professional Edition; otherwise, <c>false</c>.</para>
|
||
/// <para>IsOS_Personal</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the operating system is Windows XP Home Edition; otherwise, <c>false</c>.</para>
|
||
/// <para>The following is valid only on Windows XP and later.</para>
|
||
/// <para>IsOS_DomainMember</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the computer is a member of a domain; otherwise, <c>false</c>.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-getsysteminformation
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030003)]
|
||
new object GetSystemInformation([In, MarshalAs(UnmanagedType.BStr)] string sName);
|
||
|
||
/// <summary>Starts a named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <param name="vPersistent">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Set to <c>true</c> to have the service started automatically by the service control manager during system startup. Set to
|
||
/// <c>false</c> to leave the service configuration unchanged.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ServiceStart</c> method.</para>
|
||
/// <para>
|
||
/// The method returns <c>false</c> if the service has already been started. Before calling this method, you can call
|
||
/// <c>Shell.IsServiceRunning</c> to ascertain the status of the service.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-servicestart
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030004)]
|
||
new object ServiceStart([In, MarshalAs(UnmanagedType.BStr)] string sServiceName, [In, MarshalAs(UnmanagedType.Struct)] object vPersistent);
|
||
|
||
/// <summary>Stops a named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <param name="vPersistent">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Set to <c>true</c> to have the service started by the service control manager when <c>ServiceStart</c> is called. To leave
|
||
/// the service configuration unchanged, set vPersistent to <c>false</c>.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ServiceStop</c> method.</para>
|
||
/// <para>
|
||
/// The method returns <c>false</c> if the service has already been stopped. Before calling this method, you can call
|
||
/// <c>Shell.IsServiceRunning</c> to ascertain the status of the service.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-servicestop
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030005)]
|
||
new object ServiceStop([In, MarshalAs(UnmanagedType.BStr)] string sServiceName, [In, MarshalAs(UnmanagedType.Struct)] object vPersistent);
|
||
|
||
/// <summary>Returns a value that indicates whether a particular service is running.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the service specified by sServiceName is running; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the service specified by sServiceName is running; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.IsServiceRunning</c> method.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-isservicerunning
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030006)]
|
||
new object IsServiceRunning([In, MarshalAs(UnmanagedType.BStr)] string sServiceName);
|
||
|
||
/// <summary>Determines if the current user can start and stop the named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c>String</c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the user can start and stop the service; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the user can start and stop the service; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.CanStartStopService</c> method.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-canstartstopservice
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030007)]
|
||
new object CanStartStopService([In, MarshalAs(UnmanagedType.BStr)] string sServiceName);
|
||
|
||
/// <summary>Displays a browser bar.</summary>
|
||
/// <param name="sCLSID">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the string form of the CLSID of the browser bar to be displayed. The object must be registered
|
||
/// as an Explorer Bar object with a CATID_InfoBand component category. For further information, see Creating Custom Explorer
|
||
/// Bars, Tool Bands, and Desk Bands.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vShow">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>Set to <c>true</c> to show the browser bar or <c>false</c> to hide it.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ShowBrowserBar</c> method.</para>
|
||
/// <para>
|
||
/// You can display one of the standard Explorer Bars by setting the sCLSID parameter to the CLSID of that Explorer Bar. The
|
||
/// standard Explorer Bars and their CLSID strings are as follows:
|
||
/// </para>
|
||
/// <list type="table">
|
||
/// <listheader>
|
||
/// <term>Explorer Bar</term>
|
||
/// <term>CLSID string</term>
|
||
/// </listheader>
|
||
/// <item>
|
||
/// <term>Favorites</term>
|
||
/// <term>{EFA24E61-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>Folders</term>
|
||
/// <term>{EFA24E64-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>History</term>
|
||
/// <term>{EFA24E62-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>Search</term>
|
||
/// <term>{30D02401-6A81-11d0-8274-00C04FD5AE38}</term>
|
||
/// </item>
|
||
/// </list>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-showbrowserbar
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030008)]
|
||
new object ShowBrowserBar([In, MarshalAs(UnmanagedType.BStr)] string sCLSID, [In, MarshalAs(UnmanagedType.Struct)] object vShow);
|
||
|
||
/// <summary>Adds a file to the most recently used (MRU) list.</summary>
|
||
/// <param name="varFile">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>A <c>String</c> that contains the path of the file to add to the list of recently used documents.</para>
|
||
/// <para><c>Windows Vista</c>: Set this parameter to <c>null</c> to clear the recent documents folder.</para>
|
||
/// </param>
|
||
/// <param name="bstrCategory">A <c>String</c> that contains the name of the category in which to place the file.</param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shell-addtorecent
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040000)]
|
||
new void AddToRecent([In, MarshalAs(UnmanagedType.Struct)] object varFile, [In, Optional, MarshalAs(UnmanagedType.BStr)] string bstrCategory);
|
||
|
||
/// <summary>Displays the <c>Windows Security</c> dialog box.</summary>
|
||
/// <remarks>
|
||
/// This method displays the dialog box shown after pressing CTRL+ALT+DELETE or using the security option on the <c>Start</c> menu.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-windowssecurity
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050000)]
|
||
new void WindowsSecurity();
|
||
|
||
/// <summary>Displays or hides the desktop.</summary>
|
||
/// <remarks>
|
||
/// This method has the same effect as the <c>Show Desktop</c> button on the taskbar. It either hides all open windows to show
|
||
/// the desktop or it hides the desktop by showing all open windows. The <c>ToggleDesktop</c> method does not display a user
|
||
/// interface, it just invokes the toggle action.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-toggledesktop
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050001)]
|
||
new void ToggleDesktop();
|
||
|
||
/// <summary>Gets the value for a specified Windows Internet Explorer policy.</summary>
|
||
/// <param name="bstrPolicyName">A <c>String</c> that specifies the name of the policy.</param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>The value associated with the specified policy name.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>The value associated with the specified policy name.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>Network Administrators can control and manage the computing environment of their users by setting policies.</para>
|
||
/// <para>
|
||
/// The specified value name must be within the <c>HKEY_CURRENT_USER</c>\ <c>Software</c>\ <c>Microsoft</c>\ <c>Windows</c>\
|
||
/// <c>CurrentVersion</c>\ <c>Policies</c>\ <c>Explorer</c> subkey. If the value name does not exist then the method returns <c>null</c>.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-explorerpolicy
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050002)]
|
||
new object ExplorerPolicy([In, MarshalAs(UnmanagedType.BStr)] string bstrPolicyName);
|
||
|
||
/// <summary>Retrieves a global Shell setting.</summary>
|
||
/// <param name="lSetting">
|
||
/// A value that specifies the current Shell setting to retrieve. Only one setting can be retrieved in each call. The following
|
||
/// values are recognized by this method.
|
||
/// </param>
|
||
/// <returns>Set to <c>true</c> if the setting exists; otherwise, <c>false</c>.</returns>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-getsetting
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050003)]
|
||
new bool GetSetting([In] SSF lSetting);
|
||
|
||
/// <summary>Displays your open windows in a 3D stack that you can flip through.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shell-windowswitcher
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60060000)]
|
||
void WindowSwitcher();
|
||
}
|
||
|
||
/// <summary>
|
||
/// Extends the <c>IShellDispatch5</c> object. In addition to the properties and methods supported by <c>IShellDispatch5</c>,
|
||
/// <c>IShellDispatch6</c> adds a method that displays the Apps Search pane.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch6
|
||
[PInvokeData("shldisp.h", MSDNShortId = "540A5CFD-1520-4B61-B461-E893EFA27115")]
|
||
[ComImport, Guid("286E6F1B-7113-4355-9562-96B7E9D64C54"), CoClass(typeof(Shell))]
|
||
public interface IShellDispatch6 : IShellDispatch5
|
||
{
|
||
/// <summary>
|
||
/// <para>Contains an object that represents an application.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <para>This property is implemented and accessed through the <c>Shell.EjectPC</c> property.</para>
|
||
/// <para>
|
||
/// The <c>Application</c> property returns the automation object supported by the application that contains the WebBrowser
|
||
/// control, if that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// </para>
|
||
/// <para>
|
||
/// Use this property with the <c>Set</c> and <c>CreateObject</c> commands or with the <c>GetObject</c> command to create and
|
||
/// manipulate an instance of the Windows Internet Explorer application.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-application
|
||
[DispId(0x60020000)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Retrieves an object that represents the parent of the current object.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>This property is implemented and accessed through the <c>Shell.Parent</c> property.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-parent
|
||
[DispId(0x60020001)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>Creates and returns a <c>Folder</c> object for the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder for which to create the <c>Folder</c> object. This can be a string that specifies the path of the folder or one of
|
||
/// the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>Folder</c>**</c></para>
|
||
/// <para>
|
||
/// Object reference to the <c>Folder</c> object for the specified folder. If the folder is not successfully created, this value
|
||
/// returns <c>null</c>.
|
||
/// </para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.NameSpace</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-namespace
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)]
|
||
new Folder NameSpace([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Creates a dialog box that enables the user to select a folder and then returns the selected folder's <c>Folder</c> object.
|
||
/// </summary>
|
||
/// <param name="Hwnd">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>The handle to the parent window of the dialog box. This value can be zero.</para>
|
||
/// </param>
|
||
/// <param name="Title">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> value that represents the title displayed inside the <c>Browse</c> dialog box.</para>
|
||
/// </param>
|
||
/// <param name="Options">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>
|
||
/// An <c>Integer</c> value that contains the options for the method. This can be zero or a combination of the values listed
|
||
/// under the <c>ulFlags</c> member of the <c>BROWSEINFO</c> structure.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="RootFolder">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The root folder to use in the dialog box. The user cannot browse higher in the tree than this folder. If this value is not
|
||
/// specified, the root folder used in the dialog box is the desktop. This value can be a string that specifies the path of the
|
||
/// folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in
|
||
/// <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric
|
||
/// values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>FOLDER**</c></para>
|
||
/// <para>An object reference to the selected folder's <c>Folder</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.BrowseForFolder</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-browseforfolder
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
new Folder BrowseForFolder([In] int Hwnd, [In, MarshalAs(UnmanagedType.BStr)] string Title, [In] int Options, [In, Optional, MarshalAs(UnmanagedType.Struct)] object RootFolder);
|
||
|
||
/// <summary>
|
||
/// Creates and returns a <c>ShellWindows</c> object. This object represents a collection of all of the open windows that belong
|
||
/// to the Shell.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c><c>IDispatch</c>**</c></para>
|
||
/// <para>An object reference to the <c>ShellWindows</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Windows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-windows
|
||
[return: MarshalAs(UnmanagedType.IDispatch)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)]
|
||
new object Windows();
|
||
|
||
/// <summary>Opens the specified folder.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A string that specifies the path of the folder or one of the <c>ShellSpecialFolderConstants</c> values. Note that the
|
||
/// constant names found in <c>ShellSpecialFolderConstants</c> are available in Visual Basic, but not in VBScript or JScript. In
|
||
/// those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// <para>
|
||
/// If vDir is set to one of the <c>ShellSpecialFolderConstants</c> and the special folder does not exist, this function will
|
||
/// create the folder.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Open</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-open
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
new void Open([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>Opens a specified folder in a Windows Explorer window.</summary>
|
||
/// <param name="vDir">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The folder to be displayed. This can be a string that specifies the path of the folder or one of the
|
||
/// <c>ShellSpecialFolderConstants</c> values. Note that the constant names found in <c>ShellSpecialFolderConstants</c> are
|
||
/// available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Explore</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-explore
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
new void Explore([In, MarshalAs(UnmanagedType.Struct)] object vDir);
|
||
|
||
/// <summary>
|
||
/// Minimizes all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Minimize All Windows</c> on older systems or clicking the <c>Show Desktop</c> icon on the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.MinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-minimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)]
|
||
new void MinimizeAll();
|
||
|
||
/// <summary>
|
||
/// Restores all desktop windows to the state they were in before the last <c>MinimizeAll</c> command. This method has the same
|
||
/// effect as right-clicking the taskbar and selecting <c>Undo Minimize All Windows</c> (on older systems) or a second clicking
|
||
/// of the <c>Show Desktop</c> icon in the taskbar.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.UndoMinimizeAll</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-undominimizeall
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)]
|
||
new void UndoMinimizeALL();
|
||
|
||
/// <summary>Displays the <c>Run</c> dialog to the user.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FileRun</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-filerun
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020009)]
|
||
new void FileRun();
|
||
|
||
/// <summary>
|
||
/// Cascades all of the windows on the desktop. This method has the same effect as right-clicking the taskbar and selecting
|
||
/// <c>Cascade windows</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.CascadeWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-cascadewindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)]
|
||
new void CascadeWindows();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop vertically. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows side by side</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileVertically</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilevertically
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000b)]
|
||
new void TileVertically();
|
||
|
||
/// <summary>
|
||
/// Tiles all of the windows on the desktop horizontally. This method has the same effect as right-clicking the taskbar and
|
||
/// selecting <c>Show windows stacked</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TileHorizontally</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-tilehorizontally
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000c)]
|
||
new void TileHorizontally();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Shut Down Windows</c> dialog box. This is the same as clicking the <c>Start</c> menu and selecting <c>Shut Down</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ShutdownWindows</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-shutdownwindows
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000d)]
|
||
new void ShutdownWindows();
|
||
|
||
/// <summary>This method is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-suspend
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e)]
|
||
new void Suspend();
|
||
|
||
/// <summary>
|
||
/// Ejects the computer from its docking station. This is the same as clicking the <c>Start</c> menu and selecting <c>Eject
|
||
/// PC</c>, if your computer supports this command.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.EjectPC</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-ejectpc
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000f)]
|
||
new void EjectPC();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Date and Time</c> dialog box. This method has the same effect as right-clicking the clock in the taskbar
|
||
/// status area and selecting <c>Adjust date/time</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.SetTime</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-settime
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020010)]
|
||
new void SetTime();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Taskbar and Start Menu Properties</c> dialog box. This method has the same effect as right-clicking the
|
||
/// taskbar and selecting <c>Properties</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-trayproperties
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020011)]
|
||
new void TrayProperties();
|
||
|
||
/// <summary>
|
||
/// Displays the Windows Help and Support window. This method has the same effect as clicking the <c>Start</c> menu and selecting
|
||
/// <c>Help and Support</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.Help</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-help
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020012)]
|
||
new void Help();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Find: All Files</c> dialog box. This is the same as clicking the <c>Start</c> menu and then selecting <c>Search</c>.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindFiles</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findfiles
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020013)]
|
||
new void FindFiles();
|
||
|
||
/// <summary>
|
||
/// Displays the <c>Search Results: Computers</c> dialog box. The dialog box shows the result of the search for a specified computer.
|
||
/// </summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.FindComputer</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-findcomputer
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020014)]
|
||
new void FindComputer();
|
||
|
||
/// <summary>Refreshes the contents of the <c>Start</c> menu. Used only with systems preceding Windows XP.</summary>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.TrayProperties</c> method.</para>
|
||
/// <para>
|
||
/// The functionality that <c>RefreshMenu</c> provides is handled automatically under Windows XP or later. Do not call this
|
||
/// method on Windows XP or later.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-refreshmenu
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020015)]
|
||
new void RefreshMenu();
|
||
|
||
/// <summary>
|
||
/// Runs the specified Control Panel application. If the application is already open, it will activate the running instance.
|
||
/// </summary>
|
||
/// <param name="bstrDir">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>The Control Panel application's file name.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// <para>VB</para>
|
||
/// <para>This method does not return a value.</para>
|
||
/// </returns>
|
||
/// <remarks>This method is implemented and accessed through the <c>Shell.ControlPanelItem</c> method.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch-controlpanelitem
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020016)]
|
||
new void ControlPanelItem([In, MarshalAs(UnmanagedType.BStr)] string bstrDir);
|
||
|
||
/// <summary>Retrieves a group's restriction setting from the registry.</summary>
|
||
/// <param name="sGroup">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the group name. This value is the name of a registry subkey under which to check for the restriction.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="sRestriction">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the restriction whose value is to be retrieved.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Integer*</c></para>
|
||
/// <para>The value of the restriction. If the specified restriction is not found, the return value is 0.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Integer*</c></para>
|
||
/// <para>The value of the restriction. If the specified restriction is not found, the return value is 0.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.IsRestricted</c> method.</para>
|
||
/// <para><c>IsRestricted</c> first looks for a subkey name that matches sGroup under the following key.</para>
|
||
/// <para>
|
||
/// Restrictions are declared as values of the individual policy subkeys. If the restriction named in sRestriction is found in
|
||
/// the subkey named in sGroup, <c>IsRestricted</c> returns the restriction's current value. If the restriction is not found
|
||
/// under <c>HKEY_LOCAL_MACHINE</c>, the same subkey is checked under <c>HKEY_CURRENT_USER</c>.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-isrestricted
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)]
|
||
new int IsRestricted([In, MarshalAs(UnmanagedType.BStr)] string sGroup, [In, MarshalAs(UnmanagedType.BStr)] string sRestriction);
|
||
|
||
/// <summary>Performs a specified operation on a specified file.</summary>
|
||
/// <param name="sFile">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the name of the file on which <c>ShellExecute</c> will perform the action specified by vOperation.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vArguments">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>A string that contains parameter values for the operation.</para>
|
||
/// </param>
|
||
/// <param name="vDirectory">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The fully qualified path of the directory that contains the file specified by sFile. If this parameter is not specified, the
|
||
/// current working directory is used.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vOperation">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// The operation to be performed. This value is set to one of the verb strings that is supported by the file. For a discussion
|
||
/// of verbs, see the Remarks section. If this parameter is not specified, the default operation is performed.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vShow">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A recommendation as to how the application window should be displayed initially. The application can ignore this
|
||
/// recommendation. This parameter can be one of the following values. If this parameter is not specified, the application uses
|
||
/// its default value.
|
||
/// </para>
|
||
/// <list type="table">
|
||
/// <listheader>
|
||
/// <term>Value</term>
|
||
/// <term>Meaning</term>
|
||
/// </listheader>
|
||
/// <item>
|
||
/// <term>0</term>
|
||
/// <term>Open the application with a hidden window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>1</term>
|
||
/// <term>
|
||
/// Open the application with a normal window. If the window is minimized or maximized, the system restores it to its original
|
||
/// size and position.
|
||
/// </term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>2</term>
|
||
/// <term>Open the application with a minimized window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>3</term>
|
||
/// <term>Open the application with a maximized window.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>4</term>
|
||
/// <term>Open the application with its window at its most recent size and position. The active window remains active.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>5</term>
|
||
/// <term>Open the application with its window at its current size and position.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>7</term>
|
||
/// <term>Open the application with a minimized window. The active window remains active.</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>10</term>
|
||
/// <term>Open the application with its window in the default state specified by the application.</term>
|
||
/// </item>
|
||
/// </list>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ShellExecute</c> method.</para>
|
||
/// <para>
|
||
/// This method is equivalent to launching one of the commands associated with a file's shortcut menu. Each command is
|
||
/// represented by a verb string. The set of supported verbs varies from file to file. The most commonly supported verb is
|
||
/// "open", which is also usually the default verb. Other verbs might be supported by only certain types of files. For further
|
||
/// discussion of Shell verbs, see Launching Applications or Extending Shortcut Menus.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-shellexecute
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030001)]
|
||
new void ShellExecute([In, MarshalAs(UnmanagedType.BStr)] string sFile, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vArguments, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vDirectory, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vOperation, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vShow);
|
||
|
||
/// <summary>Displays the <c>Find Printer</c> dialog box.</summary>
|
||
/// <param name="Name">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer name.</para>
|
||
/// </param>
|
||
/// <param name="location">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer location.</para>
|
||
/// </param>
|
||
/// <param name="model">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the printer model.</para>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.FindPrinter</c> method.</para>
|
||
/// <para>
|
||
/// If you assign strings to one or more of the optional parameters, they are displayed as default values in the associated edit
|
||
/// control when the <c>Find Printer</c> dialog box is displayed. The user can either accept or override these values. If no
|
||
/// value is assigned to a parameter, the associated edit box is empty and the user must enter a value.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-findprinter
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030002)]
|
||
new void FindPrinter([In, Optional, MarshalAs(UnmanagedType.BStr)] string Name, [In, Optional, MarshalAs(UnmanagedType.BStr)] string location, [In, Optional, MarshalAs(UnmanagedType.BStr)] string model);
|
||
|
||
/// <summary>Retrieves system information.</summary>
|
||
/// <param name="sName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that specifies the system information that is being requested.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Returns the value of the requested system information. The return type depends on which system information is requested. See
|
||
/// the Remarks section for details.
|
||
/// </para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Returns the value of the requested system information. The return type depends on which system information is requested. See
|
||
/// the Remarks section for details.
|
||
/// </para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.GetSystemInformation</c> method.</para>
|
||
/// <para>
|
||
/// This method can be used to request many system information values. The following table gives the sName value that is used to
|
||
/// request the information and the associated type of the returned value.
|
||
/// </para>
|
||
/// <para>sName</para>
|
||
/// <para>Return type</para>
|
||
/// <para>Description</para>
|
||
/// <para>DirectoryServiceAvailable</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the directory service is available; otherwise, <c>false</c>.</para>
|
||
/// <para>DoubleClickTime</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The double-click time, in milliseconds.</para>
|
||
/// <para>ProcessorLevel</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>
|
||
/// <c>Windows Vista and later</c>. The processor level. Returns 3, 4, or 5, for x386, x486, and Pentium-level processors, respectively.
|
||
/// </para>
|
||
/// <para>ProcessorSpeed</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The processor speed, in megahertz (MHz).</para>
|
||
/// <para>ProcessorArchitecture</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>
|
||
/// The processor architecture. For details, see the discussion of the <c>wProcessorArchitecture</c> member of the
|
||
/// <c>SYSTEM_INFO</c> structure.
|
||
/// </para>
|
||
/// <para>PhysicalMemoryInstalled</para>
|
||
/// <para><c>Integer</c></para>
|
||
/// <para>The amount of physical memory installed, in bytes.</para>
|
||
/// <para>The following are valid only on Windows XP.</para>
|
||
/// <para>IsOS_Professional</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the operating system is Windows XP Professional Edition; otherwise, <c>false</c>.</para>
|
||
/// <para>IsOS_Personal</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the operating system is Windows XP Home Edition; otherwise, <c>false</c>.</para>
|
||
/// <para>The following is valid only on Windows XP and later.</para>
|
||
/// <para>IsOS_DomainMember</para>
|
||
/// <para><c>Boolean</c></para>
|
||
/// <para>Set to <c>true</c> if the computer is a member of a domain; otherwise, <c>false</c>.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-getsysteminformation
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030003)]
|
||
new object GetSystemInformation([In, MarshalAs(UnmanagedType.BStr)] string sName);
|
||
|
||
/// <summary>Starts a named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <param name="vPersistent">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Set to <c>true</c> to have the service started automatically by the service control manager during system startup. Set to
|
||
/// <c>false</c> to leave the service configuration unchanged.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ServiceStart</c> method.</para>
|
||
/// <para>
|
||
/// The method returns <c>false</c> if the service has already been started. Before calling this method, you can call
|
||
/// <c>Shell.IsServiceRunning</c> to ascertain the status of the service.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-servicestart
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030004)]
|
||
new object ServiceStart([In, MarshalAs(UnmanagedType.BStr)] string sServiceName, [In, MarshalAs(UnmanagedType.Struct)] object vPersistent);
|
||
|
||
/// <summary>Stops a named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <param name="vPersistent">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// Set to <c>true</c> to have the service started by the service control manager when <c>ServiceStart</c> is called. To leave
|
||
/// the service configuration unchanged, set vPersistent to <c>false</c>.
|
||
/// </para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ServiceStop</c> method.</para>
|
||
/// <para>
|
||
/// The method returns <c>false</c> if the service has already been stopped. Before calling this method, you can call
|
||
/// <c>Shell.IsServiceRunning</c> to ascertain the status of the service.
|
||
/// </para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-servicestop
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030005)]
|
||
new object ServiceStop([In, MarshalAs(UnmanagedType.BStr)] string sServiceName, [In, MarshalAs(UnmanagedType.Struct)] object vPersistent);
|
||
|
||
/// <summary>Returns a value that indicates whether a particular service is running.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the service specified by sServiceName is running; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the service specified by sServiceName is running; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.IsServiceRunning</c> method.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-isservicerunning
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030006)]
|
||
new object IsServiceRunning([In, MarshalAs(UnmanagedType.BStr)] string sServiceName);
|
||
|
||
/// <summary>Determines if the current user can start and stop the named service.</summary>
|
||
/// <param name="sServiceName">
|
||
/// <para>Type: <c>String</c></para>
|
||
/// <para>A <c>String</c> that contains the name of the service.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the user can start and stop the service; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if the user can start and stop the service; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.CanStartStopService</c> method.</para>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-canstartstopservice
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030007)]
|
||
new object CanStartStopService([In, MarshalAs(UnmanagedType.BStr)] string sServiceName);
|
||
|
||
/// <summary>Displays a browser bar.</summary>
|
||
/// <param name="sCLSID">
|
||
/// <para>Type: <c><c>BSTR</c></c></para>
|
||
/// <para>
|
||
/// A <c>String</c> that contains the string form of the CLSID of the browser bar to be displayed. The object must be registered
|
||
/// as an Explorer Bar object with a CATID_InfoBand component category. For further information, see Creating Custom Explorer
|
||
/// Bars, Tool Bands, and Desk Bands.
|
||
/// </para>
|
||
/// </param>
|
||
/// <param name="vShow">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>Set to <c>true</c> to show the browser bar or <c>false</c> to hide it.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>Returns <c>true</c> if successful; otherwise, <c>false</c>.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>This method is implemented and accessed through the <c>Shell.ShowBrowserBar</c> method.</para>
|
||
/// <para>
|
||
/// You can display one of the standard Explorer Bars by setting the sCLSID parameter to the CLSID of that Explorer Bar. The
|
||
/// standard Explorer Bars and their CLSID strings are as follows:
|
||
/// </para>
|
||
/// <list type="table">
|
||
/// <listheader>
|
||
/// <term>Explorer Bar</term>
|
||
/// <term>CLSID string</term>
|
||
/// </listheader>
|
||
/// <item>
|
||
/// <term>Favorites</term>
|
||
/// <term>{EFA24E61-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>Folders</term>
|
||
/// <term>{EFA24E64-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>History</term>
|
||
/// <term>{EFA24E62-B078-11d0-89E4-00C04FC9E26E}</term>
|
||
/// </item>
|
||
/// <item>
|
||
/// <term>Search</term>
|
||
/// <term>{30D02401-6A81-11d0-8274-00C04FD5AE38}</term>
|
||
/// </item>
|
||
/// </list>
|
||
/// <para>This method is not currently available in Microsoft Visual Basic.</para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch2-showbrowserbar
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030008)]
|
||
new object ShowBrowserBar([In, MarshalAs(UnmanagedType.BStr)] string sCLSID, [In, MarshalAs(UnmanagedType.Struct)] object vShow);
|
||
|
||
/// <summary>Adds a file to the most recently used (MRU) list.</summary>
|
||
/// <param name="varFile">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>A <c>String</c> that contains the path of the file to add to the list of recently used documents.</para>
|
||
/// <para><c>Windows Vista</c>: Set this parameter to <c>null</c> to clear the recent documents folder.</para>
|
||
/// </param>
|
||
/// <param name="bstrCategory">A <c>String</c> that contains the name of the category in which to place the file.</param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shell-addtorecent
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040000)]
|
||
new void AddToRecent([In, MarshalAs(UnmanagedType.Struct)] object varFile, [In, Optional, MarshalAs(UnmanagedType.BStr)] string bstrCategory);
|
||
|
||
/// <summary>Displays the <c>Windows Security</c> dialog box.</summary>
|
||
/// <remarks>
|
||
/// This method displays the dialog box shown after pressing CTRL+ALT+DELETE or using the security option on the <c>Start</c> menu.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-windowssecurity
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050000)]
|
||
new void WindowsSecurity();
|
||
|
||
/// <summary>Displays or hides the desktop.</summary>
|
||
/// <remarks>
|
||
/// This method has the same effect as the <c>Show Desktop</c> button on the taskbar. It either hides all open windows to show
|
||
/// the desktop or it hides the desktop by showing all open windows. The <c>ToggleDesktop</c> method does not display a user
|
||
/// interface, it just invokes the toggle action.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-toggledesktop
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050001)]
|
||
new void ToggleDesktop();
|
||
|
||
/// <summary>Gets the value for a specified Windows Internet Explorer policy.</summary>
|
||
/// <param name="bstrPolicyName">A <c>String</c> that specifies the name of the policy.</param>
|
||
/// <returns>
|
||
/// <para>JScript</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>The value associated with the specified policy name.</para>
|
||
/// <para>VB</para>
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>The value associated with the specified policy name.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <para>Network Administrators can control and manage the computing environment of their users by setting policies.</para>
|
||
/// <para>
|
||
/// The specified value name must be within the <c>HKEY_CURRENT_USER</c>\ <c>Software</c>\ <c>Microsoft</c>\ <c>Windows</c>\
|
||
/// <c>CurrentVersion</c>\ <c>Policies</c>\ <c>Explorer</c> subkey. If the value name does not exist then the method returns <c>null</c>.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-explorerpolicy
|
||
[return: MarshalAs(UnmanagedType.Struct)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050002)]
|
||
new object ExplorerPolicy([In, MarshalAs(UnmanagedType.BStr)] string bstrPolicyName);
|
||
|
||
/// <summary>Retrieves a global Shell setting.</summary>
|
||
/// <param name="lSetting">
|
||
/// A value that specifies the current Shell setting to retrieve. Only one setting can be retrieved in each call. The following
|
||
/// values are recognized by this method.
|
||
/// </param>
|
||
/// <returns>Set to <c>true</c> if the setting exists; otherwise, <c>false</c>.</returns>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch4-getsetting
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60050003)]
|
||
new bool GetSetting([In] SSF lSetting);
|
||
|
||
/// <summary>Displays your open windows in a 3D stack that you can flip through.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shell-windowswitcher
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60060000)]
|
||
new void WindowSwitcher();
|
||
|
||
/// <summary>Displays the Apps Search pane, which normally appears when you begin to type a search term from the Start screen.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch6-searchcommand
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60070000)]
|
||
void SearchCommand();
|
||
}
|
||
|
||
/// <summary>Exposes methods that modify the view and select items in the current folder.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/desktop/api/shldisp/nn-shldisp-ishellfolderviewdual
|
||
[PInvokeData("shldisp.h", MSDNShortId = "48135f9d-ee80-4dec-87dc-83f407c25777")]
|
||
[ComImport, Guid("E7A1AF80-4D96-11CF-960C-0080C7F4EE85"), CoClass(typeof(ShellFolderView))]
|
||
public interface IShellFolderViewDual
|
||
{
|
||
/// <summary>
|
||
/// <para>Contains the object's Application object.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <para>
|
||
/// The <c>Application</c> property returns the automation object supported by the application that contains the WebBrowser
|
||
/// control, if that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// </para>
|
||
/// <para>
|
||
/// Use this property with the <c>Set</c> and <c>CreateObject</c> commands or with the <c>GetObject</c> command to create and
|
||
/// manipulate an instance of the Windows Internet Explorer application.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-application
|
||
[DispId(0x60020000)]
|
||
object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-parent
|
||
[DispId(0x60020001)]
|
||
object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets a <c>Folder</c> object that represents the view.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks><c>Folder</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-folder
|
||
[DispId(0x60020002)]
|
||
Folder Folder { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; }
|
||
|
||
/// <summary>Gets a <c>FolderItems</c> object that represents all of the selected items in the view.</summary>
|
||
/// <returns>
|
||
/// <para>Type: <c><c>FolderItems</c>**</c></para>
|
||
/// <para>An object reference to the <c>FolderItems</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <c>SelectedItems</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-selecteditems
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
FolderItems SelectedItems();
|
||
|
||
/// <summary>
|
||
/// <para>Gets a <c>FolderItem</c> object that represents the item that has the input focus.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <c>FocusedItem</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-focuseditem
|
||
[DispId(0x60020004)]
|
||
FolderItem FocusedItem { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)] get; }
|
||
|
||
/// <summary>Sets the selection state of an item in the view.</summary>
|
||
/// <param name="vItem">
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>The <c>FolderItem</c> object for which the selection state will be set.</para>
|
||
/// </param>
|
||
/// <param name="dwFlags">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>A set of flags that indicate the new selection state. This can be one or more of the following values.</para>
|
||
/// <list type="bullet">
|
||
/// <item>(0) Deselect the item.</item>
|
||
/// <item>(1) Select the item.</item>
|
||
/// <item>(3) Put the item in edit mode.</item>
|
||
/// <item>(4) Deselect all but the specified item.</item>
|
||
/// <item>(8) Ensure the item is displayed in the view.</item>
|
||
/// <item>(16) Give the item the focus.</item>
|
||
/// </list>
|
||
/// </param>
|
||
/// <returns>This method does not return a value.</returns>
|
||
/// <remarks>
|
||
/// <c>FocusedItem</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-selectitem
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
void SelectItem([In, MarshalAs(UnmanagedType.Struct)] ref object vItem, [In] int dwFlags);
|
||
|
||
/// <summary>Creates a shortcut menu for the specified item and returns the selected command string.</summary>
|
||
/// <param name="vItem">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>The <c>FolderItem</c> object for which the shortcut menu will be created.</para>
|
||
/// </param>
|
||
/// <param name="vx">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>The horizontal position of the menu, in screen coordinates.</para>
|
||
/// </param>
|
||
/// <param name="vy">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>The vertical position of the menu, in screen coordinates.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>Type: <c><c>BSTR</c>*</c></para>
|
||
/// <para>The <c>String</c> that receives the command string.</para>
|
||
/// </returns>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-popupitemmenu
|
||
[return: MarshalAs(UnmanagedType.BStr)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
string PopupItemMenu([In, MarshalAs(UnmanagedType.Interface)] FolderItem vItem, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vx, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vy);
|
||
|
||
/// <summary>
|
||
/// <para>[This property is not supported in Windows XP or later.]</para>
|
||
/// <para>Contains the scripting object for the view.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-script
|
||
[DispId(0x60020007)]
|
||
object Script { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets a set of flags that indicate the current options of the view.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <c>FocusedItem</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-viewoptions
|
||
[DispId(0x60020008)]
|
||
ShellFolderViewOptions ViewOptions { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)] get; }
|
||
}
|
||
|
||
/// <summary>Exposes methods that modify the view and select items in the current folder.</summary>
|
||
/// <remarks>This interface also provides the methods of the IShellFolderViewDual interface, from which it inherits.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/api/shldisp/nn-shldisp-ishellfolderviewdual2
|
||
[PInvokeData("shldisp.h", MSDNShortId = "f53b779e-a015-4b17-b04d-e0739cba8168")]
|
||
[ComImport, Guid("31C147B6-0ADE-4A3C-B514-DDF932EF6D17"), CoClass(typeof(ShellFolderView))]
|
||
public interface IShellFolderViewDual2 : IShellFolderViewDual
|
||
{
|
||
/// <summary>
|
||
/// <para>Contains the object's Application object.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <para>
|
||
/// The <c>Application</c> property returns the automation object supported by the application that contains the WebBrowser
|
||
/// control, if that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// </para>
|
||
/// <para>
|
||
/// Use this property with the <c>Set</c> and <c>CreateObject</c> commands or with the <c>GetObject</c> command to create and
|
||
/// manipulate an instance of the Windows Internet Explorer application.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-application
|
||
[DispId(0x60020000)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-parent
|
||
[DispId(0x60020001)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets a <c>Folder</c> object that represents the view.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks><c>Folder</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-folder
|
||
[DispId(0x60020002)]
|
||
new Folder Folder { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; }
|
||
|
||
/// <summary>Gets a <c>FolderItems</c> object that represents all of the selected items in the view.</summary>
|
||
/// <returns>
|
||
/// <para>Type: <c><c>FolderItems</c>**</c></para>
|
||
/// <para>An object reference to the <c>FolderItems</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <c>SelectedItems</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-selecteditems
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
new FolderItems SelectedItems();
|
||
|
||
/// <summary>
|
||
/// <para>Gets a <c>FolderItem</c> object that represents the item that has the input focus.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <c>FocusedItem</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-focuseditem
|
||
[DispId(0x60020004)]
|
||
new FolderItem FocusedItem { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)] get; }
|
||
|
||
/// <summary>Sets the selection state of an item in the view.</summary>
|
||
/// <param name="vItem">
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>The <c>FolderItem</c> object for which the selection state will be set.</para>
|
||
/// </param>
|
||
/// <param name="dwFlags">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>A set of flags that indicate the new selection state. This can be one or more of the following values.</para>
|
||
/// <list type="bullet">
|
||
/// <item>(0) Deselect the item.</item>
|
||
/// <item>(1) Select the item.</item>
|
||
/// <item>(3) Put the item in edit mode.</item>
|
||
/// <item>(4) Deselect all but the specified item.</item>
|
||
/// <item>(8) Ensure the item is displayed in the view.</item>
|
||
/// <item>(16) Give the item the focus.</item>
|
||
/// </list>
|
||
/// </param>
|
||
/// <returns>This method does not return a value.</returns>
|
||
/// <remarks>
|
||
/// <c>FocusedItem</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-selectitem
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
new void SelectItem([In, MarshalAs(UnmanagedType.Struct)] ref object vItem, [In] int dwFlags);
|
||
|
||
/// <summary>Creates a shortcut menu for the specified item and returns the selected command string.</summary>
|
||
/// <param name="vItem">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>The <c>FolderItem</c> object for which the shortcut menu will be created.</para>
|
||
/// </param>
|
||
/// <param name="vx">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>The horizontal position of the menu, in screen coordinates.</para>
|
||
/// </param>
|
||
/// <param name="vy">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>The vertical position of the menu, in screen coordinates.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>Type: <c><c>BSTR</c>*</c></para>
|
||
/// <para>The <c>String</c> that receives the command string.</para>
|
||
/// </returns>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-popupitemmenu
|
||
[return: MarshalAs(UnmanagedType.BStr)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
new string PopupItemMenu([In, MarshalAs(UnmanagedType.Interface)] FolderItem vItem, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vx, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vy);
|
||
|
||
/// <summary>
|
||
/// <para>[This property is not supported in Windows XP or later.]</para>
|
||
/// <para>Contains the scripting object for the view.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-script
|
||
[DispId(0x60020007)]
|
||
new object Script { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets a set of flags that indicate the current options of the view.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <c>FocusedItem</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-viewoptions
|
||
[DispId(0x60020008)]
|
||
new ShellFolderViewOptions ViewOptions { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)] get; }
|
||
|
||
/// <summary>Gets the current view mode of the current folder.</summary>
|
||
/// <returns>
|
||
/// <para>Type: <c>uint*</c></para>
|
||
/// <para>An unsigned integer that represents the current view mode. For a list of possible values see FOLDERVIEWMODE.</para>
|
||
/// </returns>
|
||
// https://docs.microsoft.com/en-us/windows/win32/api/shldisp/nf-shldisp-ishellfolderviewdual2-get_currentviewmode
|
||
[DispId(0x60030000)]
|
||
FOLDERVIEWMODE CurrentViewMode { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)] set; }
|
||
|
||
/// <summary>Selects an item relative to the current item.</summary>
|
||
/// <param name="iRelative">
|
||
/// <para>Type: <c>int</c></para>
|
||
/// <para>The offset of the item to be selected in relation to the current item.</para>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// The current item is defined as the item in the view with the SVSI_SELECTIONMARK state. If there is no item with
|
||
/// SVSI_SELECTIONMARK, the method returns S_FALSE and does nothing.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/api/shldisp/nf-shldisp-ishellfolderviewdual2-selectitemrelative
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030002)]
|
||
void SelectItemRelative([In] int iRelative);
|
||
}
|
||
|
||
/// <summary>Exposes methods that modify the current folder view.</summary>
|
||
/// <remarks>
|
||
/// This interface also provides the methods of the IShellFolderViewDual and IShellFolderViewDual2 interfaces, from which it inherits.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/api/shldisp/nn-shldisp-ishellfolderviewdual3
|
||
[PInvokeData("shldisp.h", MSDNShortId = "1aa70db8-4225-49de-8b8f-ec86b1aafa22")]
|
||
[ComImport, Guid("29EC8E6C-46D3-411F-BAAA-611A6C9CAC66"), CoClass(typeof(ShellFolderView))]
|
||
public interface IShellFolderViewDual3 : IShellFolderViewDual2
|
||
{
|
||
/// <summary>
|
||
/// <para>Contains the object's Application object.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <para>
|
||
/// The <c>Application</c> property returns the automation object supported by the application that contains the WebBrowser
|
||
/// control, if that object is accessible. Otherwise, this property returns the WebBrowser control's automation object.
|
||
/// </para>
|
||
/// <para>
|
||
/// Use this property with the <c>Set</c> and <c>CreateObject</c> commands or with the <c>GetObject</c> command to create and
|
||
/// manipulate an instance of the Windows Internet Explorer application.
|
||
/// </para>
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-application
|
||
[DispId(0x60020000)]
|
||
new object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; }
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-parent
|
||
[DispId(0x60020001)]
|
||
new object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020001)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets a <c>Folder</c> object that represents the view.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks><c>Folder</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-folder
|
||
[DispId(0x60020002)]
|
||
new Folder Folder { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; }
|
||
|
||
/// <summary>Gets a <c>FolderItems</c> object that represents all of the selected items in the view.</summary>
|
||
/// <returns>
|
||
/// <para>Type: <c><c>FolderItems</c>**</c></para>
|
||
/// <para>An object reference to the <c>FolderItems</c> object.</para>
|
||
/// </returns>
|
||
/// <remarks>
|
||
/// <c>SelectedItems</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-selecteditems
|
||
[return: MarshalAs(UnmanagedType.Interface)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
|
||
new FolderItems SelectedItems();
|
||
|
||
/// <summary>
|
||
/// <para>Gets a <c>FolderItem</c> object that represents the item that has the input focus.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <c>FocusedItem</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-focuseditem
|
||
[DispId(0x60020004)]
|
||
new FolderItem FocusedItem { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)] get; }
|
||
|
||
/// <summary>Sets the selection state of an item in the view.</summary>
|
||
/// <param name="vItem">
|
||
/// <para>Type: <c>Variant*</c></para>
|
||
/// <para>The <c>FolderItem</c> object for which the selection state will be set.</para>
|
||
/// </param>
|
||
/// <param name="dwFlags">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>A set of flags that indicate the new selection state. This can be one or more of the following values.</para>
|
||
/// <list type="bullet">
|
||
/// <item>(0) Deselect the item.</item>
|
||
/// <item>(1) Select the item.</item>
|
||
/// <item>(3) Put the item in edit mode.</item>
|
||
/// <item>(4) Deselect all but the specified item.</item>
|
||
/// <item>(8) Ensure the item is displayed in the view.</item>
|
||
/// <item>(16) Give the item the focus.</item>
|
||
/// </list>
|
||
/// </param>
|
||
/// <returns>This method does not return a value.</returns>
|
||
/// <remarks>
|
||
/// <c>FocusedItem</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-selectitem
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020005)]
|
||
new void SelectItem([In, MarshalAs(UnmanagedType.Struct)] ref object vItem, [In] int dwFlags);
|
||
|
||
/// <summary>Creates a shortcut menu for the specified item and returns the selected command string.</summary>
|
||
/// <param name="vItem">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>The <c>FolderItem</c> object for which the shortcut menu will be created.</para>
|
||
/// </param>
|
||
/// <param name="vx">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>The horizontal position of the menu, in screen coordinates.</para>
|
||
/// </param>
|
||
/// <param name="vy">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>The vertical position of the menu, in screen coordinates.</para>
|
||
/// </param>
|
||
/// <returns>
|
||
/// <para>Type: <c><c>BSTR</c>*</c></para>
|
||
/// <para>The <c>String</c> that receives the command string.</para>
|
||
/// </returns>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-popupitemmenu
|
||
[return: MarshalAs(UnmanagedType.BStr)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)]
|
||
new string PopupItemMenu([In, MarshalAs(UnmanagedType.Interface)] FolderItem vItem, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vx, [In, Optional, MarshalAs(UnmanagedType.Struct)] object vy);
|
||
|
||
/// <summary>
|
||
/// <para>[This property is not supported in Windows XP or later.]</para>
|
||
/// <para>Contains the scripting object for the view.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-script
|
||
[DispId(0x60020007)]
|
||
new object Script { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020007)] get; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets a set of flags that indicate the current options of the view.</para>
|
||
/// <para>This property is read-only.</para>
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// <c>FocusedItem</c> can only be called on the local system. It will not work when run on a webpage over HTTP or UNC.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview-viewoptions
|
||
[DispId(0x60020008)]
|
||
new ShellFolderViewOptions ViewOptions { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)] get; }
|
||
|
||
/// <summary>Gets the current view mode of the current folder.</summary>
|
||
/// <returns>
|
||
/// <para>Type: <c>uint*</c></para>
|
||
/// <para>An unsigned integer that represents the current view mode. For a list of possible values see FOLDERVIEWMODE.</para>
|
||
/// </returns>
|
||
// https://docs.microsoft.com/en-us/windows/win32/api/shldisp/nf-shldisp-ishellfolderviewdual2-get_currentviewmode
|
||
[DispId(0x60030000)]
|
||
new FOLDERVIEWMODE CurrentViewMode { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)] set; }
|
||
|
||
/// <summary>Selects an item relative to the current item.</summary>
|
||
/// <param name="iRelative">
|
||
/// <para>Type: <c>int</c></para>
|
||
/// <para>The offset of the item to be selected in relation to the current item.</para>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// The current item is defined as the item in the view with the SVSI_SELECTIONMARK state. If there is no item with
|
||
/// SVSI_SELECTIONMARK, the method returns S_FALSE and does nothing.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/api/shldisp/nf-shldisp-ishellfolderviewdual2-selectitemrelative
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030002)]
|
||
new void SelectItemRelative([In] int iRelative);
|
||
|
||
/// <summary>Gets or sets the column name used for grouping the folder view.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/api/shldisp/nf-shldisp-ishellfolderviewdual3-get_groupby
|
||
[DispId(0x60040000)]
|
||
string GroupBy { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040000)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040000)] set; }
|
||
|
||
/// <summary>Gets or sets the settings for the current folder.</summary>
|
||
[DispId(0x60040002)]
|
||
FOLDERFLAGS FolderFlags { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040002)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040002)] set; }
|
||
|
||
/// <summary>Gets or sets the names of the columns used to sort the current folder.</summary>
|
||
[DispId(0x60040004)]
|
||
string SortColumns { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040004)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040004)] set; }
|
||
|
||
/// <summary>Gets or sets the icon size setting for the current folder.</summary>
|
||
[DispId(0x60040006)]
|
||
int IconSize { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040006)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040006)] set; }
|
||
|
||
/// <summary>Sets the filter on the contents of the current view.</summary>
|
||
/// <param name="bstrFilterText">The string that names the filter view for the current folder.</param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/api/shldisp/nf-shldisp-ishellfolderviewdual3-filterview
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60040008)]
|
||
void FilterView([In, MarshalAs(UnmanagedType.BStr)] string bstrFilterText);
|
||
}
|
||
|
||
/// <summary>
|
||
/// Manages Shell links. This object makes much of the functionality of the <c>IShellLink</c> interface available to scripting applications.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-object
|
||
[PInvokeData("shldisp.h", MSDNShortId = "d3c0ccf8-0f83-42f7-9d6f-1fb293da6364")]
|
||
[ComImport, Guid("88A05C00-F000-11CE-8350-444553540000"), CoClass(typeof(ShellLinkObject))]
|
||
public interface IShellLinkDual
|
||
{
|
||
/// <summary>
|
||
/// <para>Gets or sets the path to the link object.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-path
|
||
[DispId(0x60020000)]
|
||
string Path { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] set; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets or sets the description of the link.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-description
|
||
[DispId(0x60020002)]
|
||
string Description { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] set; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets or sets the working directory specified in the link.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-workingdirectory
|
||
[DispId(0x60020004)]
|
||
string WorkingDirectory { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)] set; }
|
||
|
||
/// <summary>
|
||
/// <para>Contains a link's arguments.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-arguments
|
||
[DispId(0x60020006)]
|
||
string Arguments { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)] set; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets or sets the keyboard shortcut for the link.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-hotkey
|
||
[DispId(0x60020008)]
|
||
int Hotkey { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)] set; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets or sets the initial display state (sized, minimized, or maximized) of the link's command.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-showcommand
|
||
[DispId(0x6002000a)]
|
||
int ShowCommand { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)] set; }
|
||
|
||
/// <summary>Looks for the target of a Shell link, even if the target has been moved or renamed.</summary>
|
||
/// <param name="fFlags">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>Flags that specify the action to be taken. This can be a combination of the following values:</para>
|
||
/// <list type="bullet">
|
||
/// <item>
|
||
/// (1)Do not display a dialog box if the link cannot be resolved. When this flag is set, the high-order word of fFlags specifies
|
||
/// a time-out duration, in milliseconds. The method returns if the link cannot be resolved within the time-out duration. If the
|
||
/// high-order word is set to zero, the time-out duration defaults to 3000 milliseconds (3 seconds).
|
||
/// </item>
|
||
/// <item>(4)If the link has changed, update its path and list of identifiers.</item>
|
||
/// <item>(8)Do not update the link information.</item>
|
||
/// <item>(16)Do not execute the search heuristics.</item>
|
||
/// <item>(32)Do not use distributed link tracking.</item>
|
||
/// <item>
|
||
/// (64)Disable distributed link tracking. By default, distributed link tracking tracks removable media across multiple devices
|
||
/// based on the volume name. It also uses the UNC path to track remote file systems whose drive letter has changed. Setting this
|
||
/// flag disables both types of tracking.
|
||
/// </item>
|
||
/// <item>(128)Call the Windows Installer.</item>
|
||
/// </list>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// This method is essentially identical in functionality to <c>Resolve</c>. For further discussion of link resolution, see the
|
||
/// Remarks section of that page.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-resolve
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000c)]
|
||
void Resolve([In] int fFlags);
|
||
|
||
/// <summary>Gets the location of the icon assigned to the link.</summary>
|
||
/// <param name="sPath">When this method returns, it holds the fully qualified path of the file that contains the icon.</param>
|
||
/// <returns>Returns the icon's index in the file specified by sPath.</returns>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-geticonlocation
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000d)]
|
||
int GetIconLocation([MarshalAs(UnmanagedType.BStr)] out string sPath);
|
||
|
||
/// <summary>Sets the location of the icon assigned to the link.</summary>
|
||
/// <param name="sPath">The fully qualified path of the file that contains the icon.</param>
|
||
/// <param name="iIndex">The index of the icon in the file specified by sPath.</param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-seticonlocation
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e)]
|
||
void SetIconLocation([In, MarshalAs(UnmanagedType.BStr)] string sPath, [In] int iIndex);
|
||
|
||
/// <summary>Saves all changes to the link.</summary>
|
||
/// <param name="sFile">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A string value that contains the fully qualified path of the file where the new link information is to be saved. If no file
|
||
/// is specified, the current file is used.
|
||
/// </para>
|
||
/// </param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-save
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000f)]
|
||
void Save([In, Optional, MarshalAs(UnmanagedType.Struct)] object sFile);
|
||
}
|
||
|
||
/// <summary>Extends the <c>ShellLinkObject</c> object and supports one additional property.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelllinkdual2-object
|
||
[PInvokeData("shldisp.h", MSDNShortId = "8a63552c-6bce-4583-8df8-a7f7731b35eb")]
|
||
[ComImport, Guid("317EE249-F12E-11D2-B1E4-00C04F8EEB3E"), CoClass(typeof(ShellLinkObject))]
|
||
public interface IShellLinkDual2 : IShellLinkDual
|
||
{
|
||
/// <summary>
|
||
/// <para>Gets or sets the path to the link object.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-path
|
||
[DispId(0x60020000)]
|
||
new string Path { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] set; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets or sets the description of the link.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-description
|
||
[DispId(0x60020002)]
|
||
new string Description { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)] set; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets or sets the working directory specified in the link.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-workingdirectory
|
||
[DispId(0x60020004)]
|
||
new string WorkingDirectory { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004)] set; }
|
||
|
||
/// <summary>
|
||
/// <para>Contains a link's arguments.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-arguments
|
||
[DispId(0x60020006)]
|
||
new string Arguments { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006)] set; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets or sets the keyboard shortcut for the link.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-hotkey
|
||
[DispId(0x60020008)]
|
||
new int Hotkey { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020008)] set; }
|
||
|
||
/// <summary>
|
||
/// <para>Gets or sets the initial display state (sized, minimized, or maximized) of the link's command.</para>
|
||
/// <para>This property is read/write.</para>
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-showcommand
|
||
[DispId(0x6002000a)]
|
||
new int ShowCommand { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a)] set; }
|
||
|
||
/// <summary>Looks for the target of a Shell link, even if the target has been moved or renamed.</summary>
|
||
/// <param name="fFlags">
|
||
/// <para>Type: <c>Integer</c></para>
|
||
/// <para>Flags that specify the action to be taken. This can be a combination of the following values:</para>
|
||
/// <list type="bullet">
|
||
/// <item>
|
||
/// (1)Do not display a dialog box if the link cannot be resolved. When this flag is set, the high-order word of fFlags specifies
|
||
/// a time-out duration, in milliseconds. The method returns if the link cannot be resolved within the time-out duration. If the
|
||
/// high-order word is set to zero, the time-out duration defaults to 3000 milliseconds (3 seconds).
|
||
/// </item>
|
||
/// <item>(4)If the link has changed, update its path and list of identifiers.</item>
|
||
/// <item>(8)Do not update the link information.</item>
|
||
/// <item>(16)Do not execute the search heuristics.</item>
|
||
/// <item>(32)Do not use distributed link tracking.</item>
|
||
/// <item>
|
||
/// (64)Disable distributed link tracking. By default, distributed link tracking tracks removable media across multiple devices
|
||
/// based on the volume name. It also uses the UNC path to track remote file systems whose drive letter has changed. Setting this
|
||
/// flag disables both types of tracking.
|
||
/// </item>
|
||
/// <item>(128)Call the Windows Installer.</item>
|
||
/// </list>
|
||
/// </param>
|
||
/// <remarks>
|
||
/// This method is essentially identical in functionality to <c>Resolve</c>. For further discussion of link resolution, see the
|
||
/// Remarks section of that page.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-resolve
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000c)]
|
||
new void Resolve([In] int fFlags);
|
||
|
||
/// <summary>Gets the location of the icon assigned to the link.</summary>
|
||
/// <param name="sPath">When this method returns, it holds the fully qualified path of the file that contains the icon.</param>
|
||
/// <returns>Returns the icon's index in the file specified by sPath.</returns>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-geticonlocation
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000d)]
|
||
new int GetIconLocation([MarshalAs(UnmanagedType.BStr)] out string sPath);
|
||
|
||
/// <summary>Sets the location of the icon assigned to the link.</summary>
|
||
/// <param name="sPath">The fully qualified path of the file that contains the icon.</param>
|
||
/// <param name="iIndex">The index of the icon in the file specified by sPath.</param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-seticonlocation
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e)]
|
||
new void SetIconLocation([In, MarshalAs(UnmanagedType.BStr)] string sPath, [In] int iIndex);
|
||
|
||
/// <summary>Saves all changes to the link.</summary>
|
||
/// <param name="sFile">
|
||
/// <para>Type: <c>Variant</c></para>
|
||
/// <para>
|
||
/// A string value that contains the fully qualified path of the file where the new link information is to be saved. If no file
|
||
/// is specified, the current file is used.
|
||
/// </para>
|
||
/// </param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-save
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000f)]
|
||
new void Save([In, Optional, MarshalAs(UnmanagedType.Struct)] object sFile);
|
||
|
||
/// <summary>Contains the link object's target.</summary>
|
||
/// <value>An object expression that evaluates to the target's FolderItem object.</value>
|
||
[DispId(0x60030000)]
|
||
FolderItem Target { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60030000)] get; }
|
||
}
|
||
|
||
/// <summary>Exposes methods that enable HTML pages which are hosted in a wizard extension to communicate with the wizard.</summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/webwizardhost
|
||
[PInvokeData("shldisp.h", MSDNShortId = "7b3690dc-2007-43a0-80a3-4a68e3c8464d")]
|
||
[ComImport, Guid("18BCC359-4990-4BFB-B951-3C83702BE5F9")]
|
||
public interface IWebWizardHost
|
||
{
|
||
/// <summary>Navigates to the client-side page immediately preceding the page hosting the server-side HTML pages.</summary>
|
||
/// <remarks>
|
||
/// When the wizard displays the first server-side page and the user clicks the <c>Back</c> button, the server invokes
|
||
/// <c>FinalBack</c> when notified of that event by the client's event handler.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-finalback
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)]
|
||
void FinalBack();
|
||
|
||
/// <summary>
|
||
/// Navigates to the client-side wizard page that follows the page that hosts the server-side HTML pages, or finishes the wizard
|
||
/// if there are no further client-side pages.
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// When the wizard is displaying the last server-side HTML page and the user clicks the <c>Next</c> or <c>Finish</c> button, the
|
||
/// server invokes <c>FinalNext</c> in that button's event handler.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-finalnext
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(1)]
|
||
void FinalNext();
|
||
|
||
/// <summary>Simulates a <c>Cancel</c> button click.</summary>
|
||
/// <remarks>The client is responsible for responding to this method with the expected behavior by closing the wizard.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-cancel
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(2)]
|
||
void Cancel();
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bb774352(v=vs.85)
|
||
[DispId(3)]
|
||
string Caption { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(3)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(3)] set; }
|
||
|
||
/// <summary>Sets or retrieves a property's current value.</summary>
|
||
/// <value>The property value.</value>
|
||
/// <param name="bstrPropertyName">Name of the property.</param>
|
||
[DispId(4)]
|
||
object this[string bstrPropertyName] { [return: MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(4)] get; [param: In, MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(4)] set; }
|
||
|
||
/// <summary>Updates the <c>Back</c>, <c>Next</c>, and <c>Finish</c> buttons in the client's wizard frame.</summary>
|
||
/// <param name="vfEnableBack">Enables the <c>Back</c> button.</param>
|
||
/// <param name="vfEnableNext">Enables the <c>Next</c> button.</param>
|
||
/// <param name="vfLastPage">Enables the <c>Finish</c> button. States that this is the last server-side page.</param>
|
||
/// <remarks>
|
||
/// Be sure to implement handler functions in each server-side page for OnBack() and OnNext(), corresponding to the wizard
|
||
/// buttons <c>Back</c> and <c>Next</c>. The OnBack() and OnNext() functions respond to <c>SetWizardButtons</c>. At the
|
||
/// appropriate time, the OnNext() function calls <c>SetWizardButtons</c> with vbLastPage= <c>true</c>, which can enable a
|
||
/// <c>Finish</c> button. OnNext() also calls <c>FinalNext</c> when a user clicks the <c>Finish</c> button.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-setwizardbuttons
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(5)]
|
||
void SetWizardButtons([In] bool vfEnableBack, [In] bool vfEnableNext, [In] bool vfLastPage);
|
||
|
||
/// <summary>
|
||
/// Sets the title and subtitle that appear in the wizard header. In general, the client will display the header above the HTML
|
||
/// and below the title bar.
|
||
/// </summary>
|
||
/// <param name="bstrHeaderTitle">String containing the title.</param>
|
||
/// <param name="bstrHeaderSubtitle">String containing the subtitle.</param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-setheadertext
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(6)]
|
||
void SetHeaderText([In, MarshalAs(UnmanagedType.BStr)] string bstrHeaderTitle, [In, MarshalAs(UnmanagedType.BStr)] string bstrHeaderSubtitle);
|
||
}
|
||
|
||
/// <summary>Undocumented.</summary>
|
||
/// <seealso cref="Vanara.PInvoke.Shell32.IWebWizardHost"/>
|
||
[PInvokeData("shldisp.h")]
|
||
[ComImport, Guid("F9C013DC-3C23-4041-8E39-CFB402F7EA59")]
|
||
public interface IWebWizardHost2 : IWebWizardHost
|
||
{
|
||
/// <summary>Navigates to the client-side page immediately preceding the page hosting the server-side HTML pages.</summary>
|
||
/// <remarks>
|
||
/// When the wizard displays the first server-side page and the user clicks the <c>Back</c> button, the server invokes
|
||
/// <c>FinalBack</c> when notified of that event by the client's event handler.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-finalback
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)]
|
||
new void FinalBack();
|
||
|
||
/// <summary>
|
||
/// Navigates to the client-side wizard page that follows the page that hosts the server-side HTML pages, or finishes the wizard
|
||
/// if there are no further client-side pages.
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// When the wizard is displaying the last server-side HTML page and the user clicks the <c>Next</c> or <c>Finish</c> button, the
|
||
/// server invokes <c>FinalNext</c> in that button's event handler.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-finalnext
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(1)]
|
||
new void FinalNext();
|
||
|
||
/// <summary>Simulates a <c>Cancel</c> button click.</summary>
|
||
/// <remarks>The client is responsible for responding to this method with the expected behavior by closing the wizard.</remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-cancel
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(2)]
|
||
new void Cancel();
|
||
|
||
/// <summary>This property is not implemented.</summary>
|
||
// https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bb774352(v=vs.85)
|
||
[DispId(3)]
|
||
new string Caption { [return: MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(3)] get; [param: In, MarshalAs(UnmanagedType.BStr)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(3)] set; }
|
||
|
||
/// <summary>Sets or retrieves a property's current value.</summary>
|
||
/// <value>The property value.</value>
|
||
/// <param name="bstrPropertyName">Name of the property.</param>
|
||
[DispId(4)]
|
||
new object this[string bstrPropertyName] { [return: MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(4)] get; [param: In, MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(4)] set; }
|
||
|
||
/// <summary>Updates the <c>Back</c>, <c>Next</c>, and <c>Finish</c> buttons in the client's wizard frame.</summary>
|
||
/// <param name="vfEnableBack">Enables the <c>Back</c> button.</param>
|
||
/// <param name="vfEnableNext">Enables the <c>Next</c> button.</param>
|
||
/// <param name="vfLastPage">Enables the <c>Finish</c> button. States that this is the last server-side page.</param>
|
||
/// <remarks>
|
||
/// Be sure to implement handler functions in each server-side page for OnBack() and OnNext(), corresponding to the wizard
|
||
/// buttons <c>Back</c> and <c>Next</c>. The OnBack() and OnNext() functions respond to <c>SetWizardButtons</c>. At the
|
||
/// appropriate time, the OnNext() function calls <c>SetWizardButtons</c> with vbLastPage= <c>true</c>, which can enable a
|
||
/// <c>Finish</c> button. OnNext() also calls <c>FinalNext</c> when a user clicks the <c>Finish</c> button.
|
||
/// </remarks>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-setwizardbuttons
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(5)]
|
||
new void SetWizardButtons([In] bool vfEnableBack, [In] bool vfEnableNext, [In] bool vfLastPage);
|
||
|
||
/// <summary>
|
||
/// Sets the title and subtitle that appear in the wizard header. In general, the client will display the header above the HTML
|
||
/// and below the title bar.
|
||
/// </summary>
|
||
/// <param name="bstrHeaderTitle">String containing the title.</param>
|
||
/// <param name="bstrHeaderSubtitle">String containing the subtitle.</param>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/iwebwizardhost-setheadertext
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(6)]
|
||
new void SetHeaderText([In, MarshalAs(UnmanagedType.BStr)] string bstrHeaderTitle, [In, MarshalAs(UnmanagedType.BStr)] string bstrHeaderSubtitle);
|
||
|
||
/// <summary>Undocumented.</summary>
|
||
[return: MarshalAs(UnmanagedType.BStr)]
|
||
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(7)]
|
||
string SignString([In, MarshalAs(UnmanagedType.BStr)] string Value);
|
||
}
|
||
|
||
/// <summary>An autocomplete object (CLSID_AutoComplete).</summary>
|
||
[ComImport, SuppressUnmanagedCodeSecurity, Guid("00BB2763-6A77-11D0-A535-00C04FD7D062"), ClassInterface(ClassInterfaceType.None)]
|
||
public class CAutoComplete { }
|
||
|
||
/// <summary>Define the events for shell IDispatch interfaces.</summary>
|
||
[PInvokeData("shldisp.h")]
|
||
public static class DISPID
|
||
{
|
||
/// <summary>The Selected Items Changed</summary>
|
||
public const int DISPID_SELECTIONCHANGED = 200;
|
||
/// <summary>Done enumerating the shell folder</summary>
|
||
public const int DISPID_FILELISTENUMDONE = 201;
|
||
/// <summary>A verb (either from the main or context menu) was invoked in the folder view</summary>
|
||
public const int DISPID_VERBINVOKED = 202;
|
||
/// <summary>default verb (either from the main or context menu) was invoked in the folder view</summary>
|
||
public const int DISPID_DEFAULTVERBINVOKED = 203;
|
||
/// <summary>user clicked on an item</summary>
|
||
public const int DISPID_BEGINDRAG = 204;
|
||
/// <summary>The ListViewMode Changed</summary>
|
||
public const int DISPID_VIEWMODECHANGED = 205;
|
||
/// <summary>We went from 0->some or some->0 items in the view</summary>
|
||
public const int DISPID_NOITEMSTATE_CHANGED = 206;
|
||
/// <summary>contents of the view have changed somehow</summary>
|
||
public const int DISPID_CONTENTSCHANGED = 207;
|
||
/// <summary>The Focused Item Changed</summary>
|
||
public const int DISPID_FOCUSCHANGED = 208;
|
||
/// <summary>Checkbox state changed.</summary>
|
||
public const int DISPID_CHECKSTATECHANGED = 209;
|
||
/// <summary>The order of items changed</summary>
|
||
public const int DISPID_ORDERCHANGED = 210;
|
||
/// <summary>The enumerated items have been inserted into the view and painted</summary>
|
||
public const int DISPID_VIEWPAINTDONE = 211;
|
||
/// <summary>The set of visible details columns changed</summary>
|
||
public const int DISPID_COLUMNSCHANGED = 212;
|
||
/// <summary>The mousewheel has been moved while the CTRL key was down</summary>
|
||
public const int DISPID_CTRLMOUSEWHEEL = 213;
|
||
/// <summary>Done sorting the shell folder</summary>
|
||
public const int DISPID_SORTDONE = 214;
|
||
/// <summary>The icon size changed in the view</summary>
|
||
public const int DISPID_ICONSIZECHANGED = 215;
|
||
/// <summary>The state of the folder has changed</summary>
|
||
public const int DISPID_FOLDERCHANGED = 217;
|
||
/// <summary>Some filter changed</summary>
|
||
public const int DISPID_FILTERINVOKED = 218;
|
||
/// <summary>Text in WordWheel changed</summary>
|
||
public const int DISPID_WORDWHEELEDITED = 219;
|
||
/// <summary>One of the selected items has changed (not the same as a selection change)</summary>
|
||
public const int DISPID_SELECTEDITEMCHANGED = 220;
|
||
/// <summary>Explorer window is open, been painted and is ready</summary>
|
||
public const int DISPID_EXPLORERWINDOWREADY = 221;
|
||
/// <summary>A SHCNE_UPDATEIMAGE notification was received</summary>
|
||
public const int DISPID_UPDATEIMAGE = 222;
|
||
/// <summary>Used internally by specialized views like the start menu. Not fired when the data source finishes enumeration. To detect when the data source is done enumerating, use DISPID_FILELISTENUMDONE.</summary>
|
||
public const int DISPID_INITIALENUMERATIONDONE = 223;
|
||
/// <summary>Fired when enterprise id is changed in Common File Dialog during save as</summary>
|
||
public const int DISPID_ENTERPRISEIDCHANGED = 224;
|
||
/// <summary>The user hit Enter or Return</summary>
|
||
public const int DISPID_ENTERPRESSED = 200;
|
||
/// <summary/>
|
||
public const int DISPID_SEARCHCOMMAND_START = 1;
|
||
/// <summary/>
|
||
public const int DISPID_SEARCHCOMMAND_COMPLETE = 2;
|
||
/// <summary/>
|
||
public const int DISPID_SEARCHCOMMAND_ABORT = 3;
|
||
/// <summary/>
|
||
public const int DISPID_SEARCHCOMMAND_UPDATE = 4;
|
||
/// <summary/>
|
||
public const int DISPID_SEARCHCOMMAND_PROGRESSTEXT = 5;
|
||
/// <summary/>
|
||
public const int DISPID_SEARCHCOMMAND_ERROR = 6;
|
||
/// <summary/>
|
||
public const int DISPID_SEARCHCOMMAND_RESTORE = 7;
|
||
/// <summary/>
|
||
public const int DISPID_IADCCTL_DIRTY = 0x100;
|
||
/// <summary/>
|
||
public const int DISPID_IADCCTL_PUBCAT = 0x101;
|
||
/// <summary/>
|
||
public const int DISPID_IADCCTL_SORT = 0x102;
|
||
/// <summary/>
|
||
public const int DISPID_IADCCTL_FORCEX86 = 0x103;
|
||
/// <summary/>
|
||
public const int DISPID_IADCCTL_SHOWPOSTSETUP = 0x104;
|
||
/// <summary/>
|
||
public const int DISPID_IADCCTL_ONDOMAIN = 0x105;
|
||
/// <summary/>
|
||
public const int DISPID_IADCCTL_DEFAULTCAT = 0x106;
|
||
}
|
||
|
||
/// <summary>Undocumented.</summary>
|
||
[ComImport, Guid("C4EE31F3-4768-11D2-BE5C-00A0C9A83DA1"), ClassInterface(ClassInterfaceType.None)]
|
||
public class FileSearchBand { }
|
||
|
||
/// <summary>
|
||
/// Represents the objects in the Shell. Methods are provided to control the Shell and to execute commands within the Shell. There
|
||
/// are also methods to obtain other Shell-related objects.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shell
|
||
[PInvokeData("shldisp.h", MSDNShortId = "75fc151e-5b9e-476b-b4e5-b848917357a8")]
|
||
[ComImport, ClassInterface(ClassInterfaceType.None), Guid("13709620-C279-11CE-A49E-444553540000")]
|
||
public class Shell { }
|
||
|
||
/// <summary>
|
||
/// Represents an object in the Shell. Methods are provided to control the Shell and to execute commands within the Shell. There are
|
||
/// also methods to obtain other Shell-related objects.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/ishelldispatch
|
||
[PInvokeData("shldisp.h", MSDNShortId = "9B429C03-7F80-45db-B8CD-58D19FAD2E61")]
|
||
[ComImport, ClassInterface(ClassInterfaceType.None), Guid("0A89A860-D7B1-11CE-8350-444553540000")]
|
||
public class ShellDispatchInproc { }
|
||
|
||
/// <summary>
|
||
/// Extends the <c>FolderItem</c> object. In addition to the properties and methods supported by <c>FolderItem</c>,
|
||
/// <c>ShellFolderItem</c> has two additional methods.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderitem-object
|
||
[PInvokeData("shldisp.h", MSDNShortId = "0e2f4c91-f9f9-4daa-a801-9c7fea8af738")]
|
||
[ComImport, Guid("2FE352EA-FD1F-11D2-B1F4-00C04F8EEB3E"), ClassInterface(ClassInterfaceType.None)]
|
||
public class ShellFolderItem { }
|
||
|
||
/// <summary>
|
||
/// Represents the objects in a view and provides properties and methods used to obtain information about the contents of the view.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview
|
||
[PInvokeData("shldisp.h", MSDNShortId = "3b866266-fee0-42f7-a1e0-9adb6cc2e23f")]
|
||
[ComImport, Guid("62112AA1-EBE4-11CF-A5FB-0020AFE7292D"), ClassInterface(ClassInterfaceType.None)]
|
||
public class ShellFolderView { }
|
||
|
||
/// <summary>
|
||
/// Represents the objects in a view and provides properties and methods used to obtain information about the contents of the view.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shellfolderview
|
||
[PInvokeData("shldisp.h", MSDNShortId = "3b866266-fee0-42f7-a1e0-9adb6cc2e23f")]
|
||
[ComImport, Guid("9BA05971-F6A8-11CF-A442-00A0C90A8F39"), ClassInterface(ClassInterfaceType.None)]
|
||
public class ShellFolderViewOC { }
|
||
|
||
/// <summary>
|
||
/// Manages Shell links. This object makes much of the functionality of the <c>IShellLink</c> interface available to scripting applications.
|
||
/// </summary>
|
||
// https://docs.microsoft.com/en-us/windows/win32/shell/shelllinkobject-object
|
||
[PInvokeData("", MSDNShortId = "d3c0ccf8-0f83-42f7-9d6f-1fb293da6364")]
|
||
[ComImport, Guid("11219420-1768-11D1-95BE-00609797EA4F"), ClassInterface(ClassInterfaceType.None)]
|
||
public class ShellLinkObject { }
|
||
}
|
||
} |