Shell Interfaces

This section describes the Windows Shell interfaces.

In this section

Topic Description
IAccessibleObject
Exposes a method that can be used by an accessibility application.
IAccessibilityDockingService
Docks a single accessibility app window to the bottom of a screen.
IAccessibilityDockingServiceCallback
Informs an accessibility app that its window has been undocked.
IACLCustomMRU
Exposes methods that are used to initialize a most recently used (MRU) list for an autocompletion object.
IACList
Exposes a method that improves the efficiency of autocompletion when the candidate strings are organized in a hierarchy.
IACList2
Extends the IACList interface to enable clients of an autocomplete object to retrieve and set option flags.
IActionProgress
Represents the abstract base class from which progress-driven operations can inherit.
IActionProgressDialog
Exposes methods that initialize and stop a progress dialog.
IApplicationActivationManager
Provides methods which activate Windows Store apps for the Launch, File, and Protocol extensions. You will normally use this interface in debuggers and design tools.
IApplicationAssociationRegistration
Exposes methods that query and set default applications for specific file Association Type, and protocols at a specific Association Level.
Note: As of Windows 8, the only functionality of this interface that is supported is QueryCurrentDefault.
IApplicationAssociationRegistrationUI
Exposes a method that launches an advanced association dialog box through which the user can customize their associations.
IApplicationDesignModeSettings
Enables development tool applications to dynamically spoof system and user states, such as native display resolution, device scale factor, and application view state, for the purpose of testing Windows Store apps running in design mode for a wide range of form factors without the need for the actual hardware. Also enables testing of changes in normally user-controlled state to test Windows Store apps under a variety of scenarios.
IApplicationDesignModeSettings2
Enables development tool applications to dynamically control system and user states, such as native display resolution, device scale factor, and application view layout, reported to Windows Store apps for the purpose of testing Windows Store apps running in design mode for a wide range of form factors without the need for the actual hardware. Also enables testing of changes in normally user-controlled state to test Windows Store apps under a variety of scenarios.
IApplicationDestinations
Exposes methods that allow an application to remove one or all destinations from the Recent or Frequent categories in a Jump List.
IApplicationDocumentLists
Exposes methods that allow an application to retrieve the contents of the Recent or Frequent categories in a Jump List.
IAppPublisher
Exposes methods for publishing applications through Add/Remove Programs in Control Panel. This is the principal interface implemented for this purpose.
IAppVisibility
Provides functionality to determine whether the display is showing Windows Store apps.
IAppVisibilityEvents
Enables applications to receive notifications of state changes in a display and of changes in Start screen visibility.
IAssocHandler
Exposes methods for operations with a file association dialog box or menu.
IAssocHandlerInvoker
Exposes methods that invoke an associated application handler.
IAttachmentExecute
Exposes methods that work with client applications to present a user environment that provides safe download and exchange of files through email and messaging attachments.
IAutoComplete
Exposed by the autocomplete object (CLSID_AutoComplete). This interface allows applications to initialize, enable, and disable the object.
IAutoComplete2
Extends IAutoComplete. This interface enables clients of the autocomplete object to retrieve and set a number of options that control how autocompletion operates.
IAutoCompleteDropDown
Exposes methods that allow clients to reset or query the display state of the autocomplete drop-down list, which contains possible completions to a string entered by the user in an edit control.
IBandHost
Exposes methods that create and destroy bands and specify their availability.
IBandSite
Exposes methods that control band objects.
IBrowserFrameOptions
Allows a browser or host to ask IShellView what kind of view behavior is supported.
ICategorizer
Exposes methods that are used to obtain information about item identifier lists.
ICategoryProvider
Exposes a list of categorizers registered on an IShellFolder.
ICDBurn
Exposes methods that determine whether a system has hardware for writing to CD, the drive letter of a CD writer device, and programmatically initiate a CD writing session.
IColumnManager
Exposes methods that enable inspection and manipulation of columns in the Windows Explorer Details view. Each column is referenced by a PROPERTYKEY structure, which names a property.
ICommDlgBrowser
Exposed by the common file dialog boxes to be used when they host a Shell browser. If supported, ICommDlgBrowser exposes methods that allow a Shell view to handle several cases that require different behavior in a dialog box than in a normal Shell view. You obtain an ICommDlgBrowser interface pointer by calling QueryInterface on the IShellBrowser object.
ICommDlgBrowser2
Extends the capabilities of ICommDlgBrowser. This interface is exposed by the common file dialog boxes when they host a Shell browser. A pointer to ICommDlgBrowser2 can be obtained by calling QueryInterface on the IShellBrowser object.
ICommDlgBrowser3
Extends the capabilities of ICommDlgBrowser2, and used by the common file dialog boxes when they host a Shell browser.
IComputerInfoChangeNotify
This interface may be absent in later versions of Windows.
IConnectableCredentialProviderCredential
Exposes methods for connecting and disconnecting IConnectableCredentialProviderCredential objects.
IContactManagerInterop
Enables access to ContactManager methods in an app that manages multiple windows.
IContextMenu
Exposes methods that either create or merge a shortcut menu associated with a Shell object.
IContextMenu2
Exposes methods that either create or merge a shortcut (context) menu associated with a Shell object. Extends IContextMenu by adding a method that allows client objects to handle messages associated with owner-drawn menu items.
IContextMenu3
Exposes methods that either create or merge a shortcut menu associated with a Shell object. Allows client objects to handle messages associated with owner-drawn menu items and extends IContextMenu2 by accepting a return value from that message handling.
IContextMenuCB
Exposes a method that enables the callback of a context menu. For example, to add a shield icon to a menuItem that requires elevation.
IControlMarkup
ICopyHook
Exposes a method that creates a copy hook handler. A copy hook handler is a Shell extension that determines if a Shell folder or printer object can be moved, copied, renamed, or deleted. The Shell calls the ICopyHook::CopyCallback method prior to performing one of these operations.
ICreateObject
Exposes a method that creates an object of a specified class.
ICreatingProcess
Used by ShellExecuteEx and IContextMenu to allow the caller to alter some parameters of the process being created.
ICreateProcessInputs
Used by the ICreatingProcess interface to alter some parameters of the process that is being created.
ICredentialProvider
Exposes methods used in the setup and manipulation of a credential provider. All credential providers must implement this interface.
ICredentialProviderCredential
Exposes methods that enable the handling of a credential.
ICredentialProviderCredential2
Extends the ICredentialProviderCredential interface by adding a method that retrieves the security identifier (SID) of a user. The credential is associated with that user and can be grouped under the user's tile.
ICredentialProviderCredentialEvents
Provides an asynchronous callback mechanism used by a credential to notify it of state or text change events in the Logon UI or Credential UI.
ICredentialProviderCredentialEvents2
Extends the ICredentialProviderCredentialEvents interface by adding methods that enable batch updating of fields in theLogon UI or Credential UI.
ICredentialProviderCredentialWithFieldOptions
Provides a method that enables the credential provider framework to determine whether you've made a customization to a field's option in a logon or credential UI.
ICredentialProviderEvents
Provides an asynchronous callback mechanism used by a credential provider to notify it of changes in the list of credentials or their fields.
ICredentialProviderFilter
Used to dynamically filter credential providers based on information available at runtime.
ICredentialProviderSetUserArray
Provides a method that enables a credential provider to receive the set of users that will be shown in the logon or credential UI.
ICredentialProviderUser
Provides methods used to retrieve certain properties of an individual user included in a logon or credential UI.
ICredentialProviderUserArray
Represents the set of users that will appear in the logon or credential UI. This information enables the credential provider to enumerate the set to retrieve property information about each user to populate fields or filter the set.
ICurrentItem
Obtained by calling IShellFolder::BindToObject for an item. If the item represents a snapshot of an item at a previous time, this interface will obtain the current version of the item.
ICurrentWorkingDirectory
Exposes methods that enable a client to retrieve or set an object's current working directory.
ICustomDestinationList
Exposes methods that allow an application to provide a custom Jump List, including destinations and tasks, for display in the taskbar.
IDataObjectAsyncCapability
Enables interfaces that are usually synchronous to function asynchronously.
Note: This interface is the current, renamed version of IAsyncOperation.
IDataObjectProvider
Provides methods that enable you to set or retrieve a DataPackage object's IDataObject interface, which the DataPackage uses to support interoperability. The DataPackage object is used by an app to provide data to another app.
IDataTransferManagerInterop
Enables access to DataTransferManager methods in a Windows Store app that manages multiple windows.
IDefaultExtractIconInit
Exposes methods to set default icons associated with an object.
IDefaultFolderMenuInitialize
Provides methods used to get and set shortcut menu information. This information is the same as that provided to SHCreateDefaultContextMenu through the DEFCONTEXTMENU structure.
IDelayedPropertyStoreFactory
Exposes a method to create a specified IPropertyStore object in circumstances where property access is potentially slow.
IDelegateFolder
Exposes a method through which a delegate folder is given the IMalloc interface required to allocate and free item IDs.
IDelegateItem
Used to obtain the immediately underlying representation of an item's path.
IDesktopGadget
Exposes a method that allows the programmatic addition of an installed gadget to the user's desktop.
IDesktopWallpaper
IDestinationStreamFactory
Exposes a method for manually copying a stream or file before applying changes to properties.
IDisplayItem
Exposes methods that find a version of the current item to be used to get display properties, such as the item name, that will be displayed in the UI. Used by the copy engine dialogs to provide the UI with an appropriate item to display. If no other version can be found, the current item is used.
IDockingWindow
Exposes methods that notify the docking window object of changes, including showing, hiding, and impending removal. This interface is implemented by window objects that can be docked within the border space of a Windows Explorer window.
IDockingWindowFrame
Exposes methods that support the addition of IDockingWindow objects to a frame. Implemented by the browser.
IDockingWindowSite
Exposes methods that manage the border space for one or more IDockingWindow objects. This interface is implemented by the browser and is similar to the IOleInPlaceUIWindow interface.
IDragSourceHelper
Exposed by the Shell to allow an application to specify the image that will be displayed during a Shell drag-and-drop operation.
IDragSourceHelper2
Exposes a method that adds functionality to IDragSourceHelper. This method sets the characteristics of a drag-and-drop operation over an IDragSourceHelper object.
IDropTargetHelper
Exposes methods that allow drop targets to display a drag image while the image is over the target window.
IDynamicHWHandler
Called by AutoPlay. Exposes methods that get dynamic information regarding a registered handler prior to displaying it to the user.
IEnumAssocHandlers
Exposes a method that allows enumeration of a collection of handlers associated with particular file name extensions.
IEnumerableView
Exposes methods that enumerate the contents of a view and receive notification from callback upon enumeration completion. This interface enables clients of a view to attempt to share the view's list of folder contents.
IEnumExplorerCommand
Provided by an IExplorerCommandProvider. This interface contains the enumeration of commands to be put into the command bar.
IEnumExtraSearch
A standard OLE enumerator used by a client to determine the available search objects for a folder.
IEnumFullIDList
Exposes a standard set of methods that enumerate the pointers to item identifier lists (PIDLs) of the items in a Shell folder.
IEnumIDList
Exposes a standard set of methods used to enumerate the PIDLs of the items in a Shell folder. When a folder's IShellFolder::EnumObjects method is called, it creates an enumeration object and passes a pointer to the object's IEnumIDList interface back to the calling application.
IEnumObjects
Exposes methods to enumerate unknown objects.
IEnumPublishedApps
Exposes methods that enumerate published applications to Add/Remove Programs in the Control Panel. The object exposing this interface is requested through IAppPublisher::EnumApps.
IEnumReadyCallback
Exposes methods that enable the view to notify the implementer when the enumeration has completed. The view calls this method to tell the implementer that the enumeration can be retrieved via IEnumerableView::CreateEnumIDListFromContents. The callback allows the implementer to share the views enumeration.
IEnumResources
Exposes resource enumeration methods.
IEnumShellItems
Exposes enumeration of IShellItem interfaces. This interface is typically obtained by calling the IEnumShellItems method.
IEnumSyncMgrConflict
Exposes conflict enumeration methods.
IEnumSyncMgrEvents
Exposes sync event enumeration methods.
IEnumSyncMgrSyncItems
Exposes methods that enumerate the sync item objects managed by the handler.
IExecuteCommand
Exposes methods that set a given state or parameter related to the command verb, as well as a method to invoke that verb.
IExecuteCommandApplicationHostEnvironment
Provides a single method that enables an application to determine whether its host is in desktop or immersive mode.
IExecuteCommandHost
Provides a method that enables an IExplorerCommand-based Shell verb handler to query the UI mode of the host component from which the application was invoked.
IExplorerBrowser
IExplorerBrowser is a browser object that can be either navigated or that can host a view of a data object. As a full-featured browser object, it also supports an automatic travel log.
IExplorerBrowserEvents
Exposes methods for notification of Explorer browser navigation and view creation events.
IExplorerCommand
Exposes methods that get the command appearance, enumerate subcommands, or invoke the command.
IExplorerCommandProvider
Exposes methods to create Explorer commands and command enumerators.
IExplorerCommandState
Exposes a single method that allows retrieval of the command state.
IExplorerPaneVisibility
Used in Windows Explorer by an IShellFolder implementation to give suggestions to the view about what panes are visible. Additionally, an IExplorerBrowser host can use this interface to provide information about pane visibility. The host should implement QueryService with SID_ExplorerPaneVisibility as the service ID. The host must be in the site chain.
The IExplorerPaneVisibility implementation is retrieved from the Shell folder. The Shell folder, in turn, is retrieved from the view. A namespace extension can elect to provide a custom view (IShellView) rather than using the system folder view object (DefView). In that case, the IShellView implementation must include an implementation of IFolderView::GetFolder to return the IExplorerPaneVisibility object.
A namespace extension can provide a custom view by implementing IShellView itself rather than using the system folder view object (DefView). In that case, the IShellView implementation must include an implementation of IFolderView::GetFolder to make use of IExplorerPaneVisibility .
IExtractIcon
Exposes methods that allow a client to retrieve the icon that is associated with one of the objects in a folder.
IExtractImage
Exposes methods that request a thumbnail image from a Shell folder.
IExtractImage2
Extends the capabilities of IExtractImage.
IFileDialog
Exposes methods that initialize, show, and get results from the common file dialog.
IFileDialog2
Extends the IFileDialog interface by providing methods that allow the caller to name a specific, restricted location that can be browsed in the common file dialog as well as to specify alternate text to display as a label on the Cancel button.
IFileDialogControlEvents
Exposes methods that allow an application to be notified of events that are related to controls that the application has added to a common file dialog.
IFileDialogCustomize
Exposes methods that allow an application to add controls to a common file dialog.
IFileDialogEvents
Exposes methods that allow notification of events within a common file dialog.
IFileIsInUse
Exposes methods that can be called to get information on or close a file that is in use by another application. When an application attempts to access a file and finds that file already in use, it can use the methods of this interface to gather information to present to the user in a dialog box.
IFileOpenDialog
Extends the IFileDialog interface by adding methods specific to the open dialog.
IFileOperation
Exposes methods to copy, move, rename, create, and delete Shell items as well as methods to provide progress and error dialogs. This interface replaces the SHFileOperation function.
IFileOperationProgressSink
Exposes methods that provide a rich notification system used by callers of IFileOperation to monitor the details of the operations they are performing through that interface.
IFileSaveDialog
Extends the IFileDialog interface by adding methods specific to the save dialog, which include those that provide support for the collection of metadata to be persisted with the file.
IFileSyncMergeHandler
IFileSystemBindData
Exposes methods that store file system information for optimizing calls to IShellFolder::ParseDisplayName.
IFileSystemBindData2
Extends IFileSystemBindData, which stores file system information for optimizing calls to IShellFolder::ParseDisplayName. This interface adds the ability set or get file ID or junction class identifier (CLSID).
IFileViewer
Exposes methods that designate an interface that allows a registered file viewer to be notified when it must show or print a file.
IFileViewerSite
Exposes methods that designate an interface that allows a file viewer to retrieve the handle to the current pinned window, or to set a new pinned window. The pinned window is the window in which the current file viewer displays a file. When the user selects a new file to view, the Shell directs the file viewer to display the new file in the pinned window rather than create a new window.
IFolderFilter
Exposed by a client to specify how to filter the enumeration of a Shell folder by a server application.
IFolderFilterSite
Exported by a host to allow clients to specify how to filter a Shell folder enumeration.
IFolderView
Exposes methods that retrieve information about a folder's display options, select specified items in that folder, and set the folder's view mode.
IFolderView2
Exposes methods that retrieve information about a folder's display options, select specified items in that folder, and set the folder's view mode.
IFolderViewHost
Exposes a method that hosts an IFolderView object in a window.
IFolderViewOptions
Exposes methods that allow control of folder view options specific to the Windows 7 and later views.
IFolderViewSettings
Exposes methods to obtain folder view settings.
IFrameworkInputPane
Provides methods that enable apps to be informed of state changes and location for the input pane.
IFrameworkInputPaneHandler
Enables an app to be notified when the input pane (the on-screen keyboard or handwriting panel) is being shown or hidden. This allows the app window to adjust its display so that no input areas (such as a text box) are obscured by the input pane.
IHandlerActivationHost
IHandlerInfo
Supplies methods that provide information about the handler to methods of the IHandlerActivationHost interface.
IHomeGroup
Exposes methods that determine a computer's HomeGroup membership status and display the sharing wizard.
IHWEventHandler
Called by AutoPlay to implement the handling of registered media types.
IHWEventHandler2
Extends the IHWEventHandler interface to address User Account Control (UAC) elevation for device handlers.
IIdentityName
Exposes methods to compare two items to see if they are the same.
IImageRecompress
Exposes a method that recompress images.
IInitializeCommand
Exposes a single method used to initialize objects that implement IExplorerCommandState, IExecuteCommand or IDropTarget with the application-specified command name and its registered properties.
IInitializeWithBindCtx
Exposes a method that initializes a handler, such as a property handler, thumbnail handler, or preview handler, with a bind context.
IInitializeWithFile
Exposes a method to initialize a handler, such as a property handler, thumbnail handler, or preview handler, with a file path.
IInitializeWithItem
Exposes a method used to initialize a handler, such as a property handler, thumbnail handler, or preview handler, with an IShellItem.
IInitializeWithPropertyStore
Exposes a method that initializes a handler, such as a property handler, thumbnail handler, or preview handler, with a property store.
IInitializeWithStream
Exposes a method that initializes a handler, such as a property handler, thumbnail handler, or preview handler, with a stream.
IInitializeWithWindow
Exposes a method through which a client can provide an owner window to a Windows Runtime object used in a desktop application.
IInputObject
Exposes methods that change UI activation and process accelerators for a user input object contained in the Shell.
IInputObject2
Exposes a method that extends IInputObject by handling global accelerators.
IInputObjectSite
Exposes a method that is used to communicate focus changes for a user input object contained in the Shell.
IInputPanelConfiguration
Provides functionality for desktop apps to opt in to the focus tracking mechanism used in Windows Store apps.
IInputPanelInvocationConfiguration
Enables Windows Store apps to opt out of the automatic invocation behavior.
IIOCancelInformation
Exposes methods for posting a cancel window message to the process thread from the Progress Dialog.
This interface enables the progress dialog to post a thread message through PostThreadMessage to the worker thread to cancel its operations. The worker thread must periodically check the message queue through GetMessage, PeekMessage or MsgWaitForMultipleObjectsEx.
The IIOCancelInformation::SetCancelInformation method tells the progress dialog which thread ID and what message to PostThreadMessage when the user clicks Cancel. A thread ID of "zero" disables the sending operation for the cancel message.
IItemNameLimits
Retrieves a list of valid and invalid characters or the maximum length of a name in the namespace. Use this interface for validation parsing and translation.
IKnownFolder
Exposes methods that allow an application to retrieve information about a known folder's category, type, GUID, PIDL value, redirection capabilities, and definition. It provides a method for the retrieval of a known folder's IShellItem object. It also provides methods to get or set the path of the known folder.
IKnownFolderManager
Exposes methods that create, enumerate or manage existing known folders.
ILaunchSourceAppUserModelId
Provides a method for retrieving an AppUserModelId.
ILaunchSourceViewSizePreference
Provides methods for retrieving information about the source application.
ILaunchTargetMonitor
ILaunchTargetViewSizePreference
Provides a method for retrieving the preferred view size for a new application window.
IMarkupCallback
IMenuPopup
IMenuPopup may be altered or unavailable.
IModalWindow
Exposes a method that represents a modal window. This interface is used in the Windows XP Passport Wizard.
IMultiMonitorDockingSite
Implemented by the browser. Exposes methods that manage which monitor contains the Windows taskbar on a multiple monitor system.
INamedPropertyBag
Exposes methods that provide an object with a specified property bag in which the object can save its properties.
INamedPropertyStore
Exposes methods that get and set named properties.
INameSpaceTreeAccessible
Exposes methods that perform accessibility actions on a Shell item from a namespace tree control.
INameSpaceTreeControl
Exposes methods used to view and manipulate nodes in a tree of Shell items.
INameSpaceTreeControl2
Extends the INameSpaceTreeControl interface by providing methods that get and set the display styles of treeview controls for use with Shell namespace items.
INameSpaceTreeControlCustomDraw
Exposes methods that enable the user to draw a custom namespace tree control and its items.
INameSpaceTreeControlDropHandler
Exposes handler methods for drag-and-drop. Used by the namespace tree control to notify the client of any drag-and-drop operation happening within the control. Provides a way for a client to intercept a drop operation and perform its own action, or to return the desired drop effect.
INameSpaceTreeControlEvents
Exposes methods for handling INameSpaceTreeControl events.
INameSpaceTreeControlFolderCapabilities
Exposes a single method that retrieves the status of a folder's System.IsPinnedToNameSpaceTree filtering support.
INamespaceWalk
Exposes methods that walk a namespace from a given root node. The depth of the walk is specified and an optional array is returned containing the IDs of all nodes walked.
INamespaceWalkCB
A callback interface exposing methods used with INamespaceWalk. After performing a walk with INamespaceWalk, an IShellFolder object representing the walked nodes is passed to the INamespaceWalkCB methods. What those methods do with the information depends on the object that is implementing them.
INamespaceWalkCB2
Extends INamespaceWalkCB with a method that is required in order to complete a namespace walk. This method removes data collected during the walk.
INewMenuClient
Exposes methods that allow manipulation of items in a Windows 7 menu.
INewShortcutHook
Exposes methods to create a new Internet shortcut.
INewWindowManager
Exposes a method that determines whether a window that is launched by another window should be displayed or blocked, allowing control of pop-up windows.
INotifyReplica
Exposes a method that provides an object's creator with the means to notify the object that it may be subject to subsequent reconciliation. The briefcase reconciler is responsible for implementing this interface.
IObjectArray
Exposes methods that enable clients to access items in a collection of objects that support IUnknown.
IObjectCollection
Extends the IObjectArray interface by providing methods that enable clients to add and remove objects that support IUnknown in a collection.
IObjectProvider
Exposes a method to discover objects that are named with a GUID from another object. Unlike QueryService this interface will not delegate its functionality on to other objects.
IObjectWithAppUserModelID
Exposes methods that allow implementers of a custom IAssocHandler object to provide access to its explicit Application User Model ID (AppUserModelID). This information is used to determine whether a particular file type can be added to an application's Jump List.
IObjectWithBackReferences
Provides a method for interacting with back references held by an object.
IObjectWithCancelEvent
Supplies a caller with an event that will be signaled by the called object to denote cancellation of a task.
IObjectWithFolderEnumMode
Exposes methods that get and set enumeration modes of a parsed item.
IObjectWithProgID
Exposes methods that provide access to the ProgID associated with an object.
IObjectWithPropertyKey
Exposes methods for getting and setting the property key.
IObjectWithSelection
Exposes methods that get or set selected items represented by a Shell item array.
IObjMgr
Exposes methods that allow a client to append or remove an object from a collection of objects managed by a server object.
IOpenControlPanel
Exposes methods that retrieve the view state of the Control Panel, the path of individual Control Panel items, and that open either the Control Panel itself or an individual Control Panel item.
IOpenSearchSource
Exposes a method to get search results from a custom client-side OpenSearch data source.
IOperationsProgressDialog
Exposes methods to get, set, and query a progress dialog.
IPackageDebugSettings
Enables debugger developers to control the life cycle of a Windows Store app, such as suspending or resuming.
IPackageExecutionStateChangeNotification
Enables receiving package state-change notifications during Windows Store app debugging.
IParentAndItem
Exposes methods that get and set the parent and the parent's child ID. While IParentAndItem is typically implemented on IShellItems, it is not specific to IShellItem.
IParseAndCreateItem
IPersistFolder
Exposes a method that initializes Shell folder objects.
IPersistFolder2
Exposes methods that obtain information from Shell folder objects.
IPersistFolder3
Extends the IPersistFolder and IPersistFolder2 interfaces by allowing a folder object to implement nondefault handling of folder shortcuts.
IPersistIDList
Exposes methods that are used to persist item identifier lists.
IPersistSerializedPropStorage
Exposes methods to persist serialized property storage data for later use and to restore persisted data to a new property store instance.
IPersistSerializedPropStorage2
Exposes methods to persist serialized property storage data for later use and to restore persisted data to a new property store instance.
IPlaybackManager
Provides methods that allow media applications to communicate with the Windows playback manager.
IPlaybackManagerEvents
IPreviewHandler
Exposes methods for the display of rich previews.
IPreviewHandlerFrame
Enables preview handlers to pass keyboard shortcuts to the host. This interface retrieves a list of keyboard shortcuts and directs the host to handle a keyboard shortcut.
IPreviewHandlerVisuals
Exposes methods for applying color and font information to preview handlers.
IPreviewItem
Identifies an item that will be shown in the preview pane.
IPreviousVersionsInfo
Exposes a method that checks for previous versions of server files or folders, stored for the purpose of reversion by the shadow copies technology provided with Windows Server 2003.
IPrivateIdentityManager
IPrivateIdentityManager2
IProfferService
Exposes a general mechanism for objects to offer services to other objects on the same host.
IProgressDialog
Exposes methods that provide options for an application to display a progress dialog box. This interface is exported by the progress dialog box object (CLSID_ProgressDialog). This object is a generic way to show a user how an operation is progressing. It is typically used when deleting, uploading, copying, moving, or downloading large numbers of files.
IPublishedApp
Exposes methods that represent applications to Add/Remove Programs in Control Panel.
IPublishedApp2
Extends the IPublishedApp interface by providing an additional installation method.
IPublishingWizard
Exposes methods for working with the Online Print Wizard, the Web Publishing Wizard, and the Add Network Place Wizard. In Windows Vista, IPublishingWizard no longer supports the Web Publishing Wizard or Online Print Wizard.
IQueryAssociations
Exposes methods that simplify the process of retrieving information stored in the registry in association with defining a file type or protocol and associating it with an application.
IQueryCancelAutoPlay
Exposes a method that programmatically overrides AutoPlay or AutoRun. This allows you to customize the location and type of content that is launched when media is inserted.
IQueryCodePage
Gets and sets the numeric value (Code Page identifier) of the ANSI code page.
IQueryContinue
Exposes a method that provides a simple, standard mechanism for objects to query a client for permission to continue an operation. Clients of IUserNotification, for example, must pass an implementation of IQueryContinue to the IUserNotification::Show method.
IQueryContinueWithStatus
Exposes methods that provide a standard mechanism for credential providers to call QueryContinue while attempting to connect to the network to determine if they should continue these attempts. Credential providers can also use this interface to display messages to the user while attempting to establish a network connection.
IQueryInfo
Exposes methods that the Shell uses to retrieve flags and info tip information for an item that resides in an IShellFolder implementation. Info tips are usually displayed inside a tooltip control.
IRelatedItem
Exposes methods that derive related items with specific relationships.
IRemoteComputer
Exposes a method that enumerates or initializes a namespace extension when it is invoked on a remote object. This interface is used, for example, to initialize the remote printers virtual folder.
IResolveShellLink
Exposes a method that enables an application to request that a Shell folder object resolve a link for one of its items.
IResultsFolder
Exposes methods that hold items from a data object.
An IResultsFolder is a folder that can hold items from all over the namespace and represent them to the user in a single folder.
IRunnableTask
A free-threaded interface that can be exposed by an object to allow operations to be performed on a background thread. For example, if the IExtractImage::GetLocation method returns E_PENDING, the calling application is permitted to extract the image on a background thread.
ISearchBoxInfo
Exposes methods that allow the caller to retrieve information entered into a search box.
ISearchContext
Exposes methods that channel customization information to the search hooks.
ISearchFolderItemFactory
Exposes methods that create and modify search folders. The Set methods are called first to set up the parameters of the search. When not called, default values will be used instead. ISearchFolderItemFactory::GetIDList and ISearchFolderItemFactory::GetShellItem return the two forms of the search specified by these parameters.
ISharedBitmap
Exposes memory-efficient methods for accessing bitmaps. This interface is used as a thin wrapper around HBITMAP objects, allowing those objects to be reference counted and protected from having their underlying data changed.
ISharingConfigurationManager
Exposes methods that set and retrieve information about a computer's default sharing settings for the Users (C:\Users) or Public (C:\Users\Public) folder. Also exposes a set of methods that allow control of printer sharing.
IShellApp
Exposes methods that provide general information about an application to the Add/Remove Programs Application. You cannot use it outside the Add/Remove Programs application. The information given by this interface includes a list of supported management actions and whether the application is currently installed.
IShellBrowser
Implemented by hosts of Shell views (objects that implement IShellView). Exposes methods that provide services for the view it is hosting and other objects that run in the context of the Explorer window.
IShellChangeNotify
Exposes a method that notifies a Shell namespace extension when the ID of an item has changed.
IShellDetails
Exposed by Shell folders to provide detailed information about the items in a folder. This is the same information that is displayed by the Windows Explorer when the view of the folder is set to Details. For Windows 2000 and later systems, IShellDetails is superseded by IShellFolder2.
IShellExtInit
Exposes a method that initializes Shell extensions for property sheets, shortcut menus, and drag-and-drop handlers (extensions that add items to shortcut menus during nondefault drag-and-drop operations).
IShellFolder
Exposed by all Shell namespace folder objects, its methods are used to manage folders.
IShellFolder2
Extends the capabilities of IShellFolder. Its methods provide a variety of information about the contents of a Shell folder.
IShellFolderSearchable
Exposes methods that allow a Shell extension to provide a searchable namespace.
IShellFolderSearchableCallback
Exposes callback routines to monitor the search process.
IShellFolderViewCB
Exposes a method that allows communication between Windows Explorer and a folder view implemented using the system folder view object (the IShellView object returned through SHCreateShellFolderView) so that the folder view can be notified of events and modify its view accordingly.
IShellFolderViewDual
Exposes methods that modify the view and select items in the current folder.
IShellFolderViewDual2
Exposes methods that modify the view and select items in the current folder.
IShellFolderViewDual3
Exposes methods that modify the current folder view.
IShellFolderViewType
Exposes methods that enable a Shell folder to support different views on its content (different hierarchical layouts of its data).
IShellIcon
Exposes a method that obtains an icon index for an IShellFolder object.
IShellIconOverlay
Exposes methods that are used by a namespace extension to specify icon overlays for the objects it contains.
IShellIconOverlayIdentifier
Exposes methods that handle all communication between icon overlay handlers and the Shell.
IShellImageDataAbort
Exposes a single method used to abort IShellImageData processes.
IShellImageDataFactory
Exposes methods that create IShellImageData instances based on various image sources.
IShellItem
Exposes methods that retrieve information about a Shell item. IShellItem and IShellItem2 are the preferred representations of items in any new code.
IShellItem2
Extends IShellItem with methods that retrieve various property values of the item. IShellItem and IShellItem2 are the preferred representations of items in any new code.
IShellItemArray
Exposes methods that create and manipulate Shell item arrays.
IShellItemFilter
Exposed by a client to specify how to filter the enumeration of a Shell item by a server application.
IShellItemImageFactory
Exposes a method to return either icons or thumbnails for Shell items. If no thumbnail or icon is available for the requested item, a per-class icon may be provided from the Shell.
IShellItemResources
Exposes methods to manipulate and query Shell item resources.
IShellLibrary
Exposes methods for creating and managing libraries.
IShellLink
Exposes methods that create, modify, and resolve Shell links.
IShellLinkDataList
Exposes methods that allow an application to attach extra data blocks to a Shell link. These methods add, copy, or remove data blocks.
IShellMenu
Exposes methods that interact with Shell menus such as the Start menu, and the Favorites menu.
IShellMenuCallback
A callback interface that exposes a method that receives messages from a menu band.
IShellPropSheetExt
Exposes methods that allow a property sheet handler to add or replace pages in the property sheet displayed for a file object.
IShellRunDll
IShellView
Exposes methods that present a view in the Windows Explorer or folder windows.
IShellView2
Extends the capabilities of IShellView.
IShellView3
Extends the capabilities of IShellView2 by providing a method to replace IShellView2::CreateViewWindow2.
IShellWindows
Provides access to the collection of open Shell windows.
IStartMenuPinnedList
Exposes a method that unpins an application shortcut from the Start menu or the taskbar.
IStorageProviderCopyHook
Exposes a method that determines whether the Shell will be allowed to move, copy, delete, or rename a folder in a cloud provider's sync root.
IStorageProviderHandler
Retrieves the IStorageProviderPropertyHandler associated with a specific file or folder.
IStorageProviderPropertyHandler
Provides a collection of properties associated with a file or folder.
IStreamAsync
Exposes methods to manage input/outpout (I/O) to an asynchronous stream.
IStreamUnbufferedInfo
Exposes a method that determines the sector size as an aid to byte alignment.
ISuspensionDependencyManager
ISyncMgrConflict
Exposes methods that provide information about a conflict retrieved from a conflict store, and allows the conflict to be resolved.
ISyncMgrConflictFolder
Exposes a method that gets the conflict ID list for a conflict object.
ISyncMgrConflictItems
Exposes methods that get conflict item data and item count.
ISyncMgrConflictPresenter
Exposes a method that presents a conflict to the user.
ISyncMgrConflictResolutionItems
Exposes methods that get item info and item count.
ISyncMgrConflictResolveInfo
Exposes methods that get and set information about sync manager conflict resolution.
ISyncMgrConflictStore
Exposes methods that allow a handler to provide conflicts that appear in the Conflicts folder.
ISyncMgrControl
Exposes methods that allow an application or handler to start or stop a synchronization, notify Sync Center of changes to the set of handlers or items, or notify of changes to property values.
ISyncMgrEnumItems
Exposes methods that enumerate through an array of SYNCMGRITEM structures. Each of these structures provides information about an item that can be synchronized. ISyncMgrEnumItems has the same methods as all standard enumerator interfaces: Next, Skip, Reset, and Clone.
ISyncMgrEvent
Exposes methods that retrieve data from an event store. An event store allows Sync Center to get an enumerator of all events in the store, as well as to retrieve individual events.
ISyncMgrEventLinkUIOperation
Provides a method that is called when event links are clicked in the sync results folder.
ISyncMgrEventStore
Exposes methods that allow a handler to provide its own event store and manage its own sync events, instead of using the default Sync Center event store. These events are displayed in the Sync Results folder.
ISyncMgrHandler
Exposes methods that make up the primary interface implemented by a sync handler. Sync Center creates one instance of the handler through this interface to get properties, enumerate sync items, and modify state. Sync Center creates a separate instance of the handler on a separate thread to perform a synchronization or a UI operation.
ISyncMgrHandlerCollection
Exposes methods that provide an enumerator of sync handler IDs and instantiate those sync handlers.
ISyncMgrHandlerInfo
Exposes methods that allow a handler to provide property and state information to Sync Center.
ISyncMgrRegister
Exposes methods so that an application can register with the synchronization manager. This can be achieved either through the ISyncMgrRegister interface or by registering directly in the registry.
ISyncMgrResolutionHandler
Exposes methods that manage synchronizing conflicts. Implement this interface to construct a sync conflict handler. The conflict resolution user interface (UI) will call this interface to resolve the conflict presented to the user.
ISyncMgrScheduleWizardUIOperation
Exposes a method that allows a handler to display the sync schedule wizard for the handler.
ISyncMgrSessionCreator
Exposes a single method through which a handler or external application can notify Sync Center that synchronization has begun, as well as report progress and events.
ISyncMgrSyncCallback
Exposes methods that allow a synchronization process to report progress and events to Sync Center, or to query whether the process has been canceled.
ISyncMgrSynchronize
Exposes methods that enable the registered application or service to receive notifications from the synchronization manager.
ISyncMgrSynchronizeCallback
Exposes methods that manage the synchronization process.
ISyncMgrSynchronizeInvoke
Exposes methods that enable a registered application to invoke the synchronization manager to update items.
ISyncMgrSyncItem
Exposes methods that act on and retrieve information from a single sync item, allowing handlers to manage sync items as independent objects.
ISyncMgrSyncItemContainer
Exposes methods that provide information to handlers about the items they contain.
ISyncMgrSyncItemInfo
Exposes methods that provide property and state information for a single sync item.
ISyncMgrSyncResult
Exposes a method that applications calling ISyncMgrControl can use to get the result of a ISyncMgrControl::StartHandlerSync or ISyncMgrControl::StartItemSync call.
ISyncMgrUIOperation
Exposes a method through which a sync handler or sync item can display a UI object when requested to do so by Sync Center.
ITaskbarList
Exposes methods that control the taskbar. It allows you to dynamically add, remove, and activate items on the taskbar.
ITaskbarList2
Extends the ITaskbarList interface by exposing a method to mark a window as a full-screen display.
ITaskbarList3
Extends ITaskbarList2 by exposing methods that support the unified launching and switching taskbar button functionality added in Windows 7. This functionality includes thumbnail representations and switch targets based on individual tabs in a tabbed application, thumbnail toolbars, notification and status overlays, and progress indicators.
ITaskbarList4
Extends ITaskbarList3 by providing a method that allows the caller to control two property values for the tab thumbnail and peek feature.
IThumbnailCache
Exposes methods for a system thumbnail cache that is shared across applications.
IThumbnailCachePrimer
IThumbnailHandlerFactory
Exposes a method for retrieving the thumbnail handler of an item. Implement this interface if you want to specify what extractor is used for a child IDList.
IThumbnailProvider
Exposes a method for getting a thumbnail image and is intended to be implemented for thumbnail handlers. The object that implements this interface must also implement IInitializeWithStream.
IThumbnailSettings
Provides a method that enables a thumbnail provider to determine the user context of a thumbnail request.
IThumbnailStreamCache
Gets or sets the thumbnail stream. This interface is for internal use only and can only be called by the photos application.
ITrackShellMenu
Exposes methods that extend the IShellMenu interface by providing the ability to coordinate toolbar buttons with a menu as well as display a pop-up menu.
ITranscodeImage
Exposes a method that allows conversion to JPEG or bitmap (BMP) image formats from any image type supported by Windows.
ITransferAdviseSink
Exposes methods supporting status collection and failure information.
ITransferDestination
Exposes methods that create a destination Shell item for a copy or move operation. This interface is provided to allow more control over file operations by providing an ITransferDestination::Advise method.
ITransferMediumItem
Used by a copy engine to get the item on which to call QueryInterface to return a pointer to interface ITransferDestination or interface ITransferSource. These interfaces can be queried and enumerated for copy, move, or delete operations.
ITransferSource
Exposes methods to manipulate IShellItem, including copy, move, recycle, and others. This interface is offered to provide more control over file operations by providing an ITransferSource::Advise method.
ITrayDeskBand
Exposes methods that show, hide, and query deskbands.
IUpdateIDList
Provides a method to update the ITEMIDLIST of the child of a folder object.
IURLSearchHook
Exposes a method that is used by the browser to translate the address of an unknown URL protocol.
IURLSearchHook2
Exposes a method that is used by the browser to translate the address of an unknown URL protocol by using a search context object.
IUserAccountChangeCallback
Exposes a method which is called when the picture that represents a user account is changed.
IUserNotification
Exposes methods that set notification information and then display that notification to the user in a balloon that appears in conjunction with the notification area of the taskbar.
Note: IUserNotification2 differs from IUserNotification only in its Show method, which adds an additional parameter for a callback interface to communicate with the notification. Otherwise the two interfaces are identical in form and function. CLSID_UserNotification implements both versions of Show as an overload.
IUserNotification2
Exposes methods that set notification information and then display that notification to the user in a balloon that appears in conjunction with the notification area of the taskbar.
Note: IUserNotification2 does not inherit from IUserNotification. IUserNotification2 differs from IUserNotification only in its Show method, which adds an additional parameter for a callback interface to communicate with the notification. Otherwise the two interfaces are identical in form and function. CLSID_UserNotification implements both versions of Show as an overload.
IUserNotificationCallback
Exposes a method for the handling of a mouse click or shortcut menu access in a notification balloon. Used with IUserNotification2::Show.
IUseToBrowseItem
Finds the item that should be used when browsing to this item.
IViewStateIdentityItem
Provides a canonical persistence item, an item for which view customizations will be remembered.
IVirtualDesktopManager
Exposes methods that enable an application to interact with groups of windows that form virtual workspaces.
IVisualProperties
Exposes methods that set and get visual properties.
IWebWizardExtension
Extends the IWizardExtension interface by exposing methods to set the wizard extension's initial URL, and a specific URL in case of an error.
IWizardExtension
Used by wizards such as the Web Publishing Wizard and Online Print Ordering Wizard which host server-side content pages. This interface exposes methods to specify supported extension pages and to navigate into and out of those pages.
IWizardSite
Exposes methods used by a wizard extension to navigate the borders between itself and the rest of the wizard.
TaskCompletionClient
Enables task completion.