Click or drag to resize

Jam.Shell Namespace

This is the namespace for the JAM Software Shell Components mainly consisting of ShellBrowser, ShellTreeView, ShellListView, ShellSystemListView, ShellHistoryToolstrip and ShellComboBox. It is possible to easily connect these components by ShellControlConnector to make them work together fluently.
Public classAddBaseItemEventArgs
Contains data for adding an item to the shell view.
Public classAddFileItemEventArgs
The AddItemEventArgs contains data for the AddItem event.
Public classAddItemEventArgs
The AddItemEventArgs contains data for the AddItem event.
Public classAddItemEventArgsBaseT
Event arguments for adding an item to a control.
Public classAddSystemListItemEventArgs
The AddSystemListItemEventArgs contains data for the AddItem event.
Public classAddTreeNodeEventArgs
Provides data for the OnAddTreeNode(ShellTreeNode, ShellTreeNode) event.
Public classAfterLoadedPreviewEventArgs
EventArgs for the ShellFilePreview.AfterPreviewLoaded event.
Public classBackgroundContextMenu
This class provides most of the default background context menu functionality from the windows explorer.
Public classBaseSelectionList
Base class for the PathSelectionList.
Public classBaseShellItem
Base wrapper class for items in system list classes, like ExplorerBrowser.
Public classBasicWorkItem
This class provides base functionality for a work item, only the abstract method HandleWorkItem has to be implemented to start things
Public classBeforeShellColumnChangedCancelArgs
Cancellable EventArgs for BeforeShellColumnChanged event. The event is cancellable by usage of inherited eventArgs.Cancel property.
Public classBeforeShellCommandEventArgs
The BeforeShellCommandEventArgs contains data for the BeforeCommandExecute event. You can permit the execution of the shell command by registering to the event, then setting ExecuteShellCommand to false if necessary.
Public classBeforeShellDropEventArgs
The BeforeShellDropEventArgs contains data for the BeforeShellDrop event. You can deny the execution of the shell command by registering to the event, then setting ExecuteShellDrop to false if necessary.
Public classBrowseForFolder
A BrowseForFolder dialog that uses the Vista-style dialog by default instead of a simple directory tree.
Public classChangeNotificationEventArgs
The ChangeNotificationEventArgs contains data for the ShellChangeNotifier.Change event.
Public classChangeNotificationPidlEventArgs
The ChangeNotificationEventArgs contains data for the ShellChangeNotifier.ChangePIDL event.
Public classCheckStateChangedEventArgs
The CheckStateChangedEventArgs contains data for the CheckStateChanged event.
Public classContextMenuItemSelectedEventArgs
The ContextMenuItemSelectedEventArgs contains data for the ContextMenuItemSelected event.
Public classCustomDrawEventArgs
Event arguments for OnCustomDraw(CustomDrawEventArgs).
Public classCustomEditComboBox
This class provides an editable TextBox which may be extended, e.g. by the ShellApi, that is laid over the display field of the ComboBox control.
Public classCustomFileListT
The base class for file lists. Implement the two abstract methods CompleteDetails(T) and InitColumns to use this class. You can also extend your own class from FileListItem and pass that as the generic parameter or simply use the FileListItem class provided in the ShellBrowser package if you do not intend to add special properties.
Public classCustomFileListItem
Public classCustomFolderComboBox
The CustomFolderComboBox is a simple component that allows to display folders and drives in a combo box with its associated icons. It is kept with basic functionality to allow for further extension by the programmer. See ShellComboBox for an advanced component which derives from the CustomFolderComboBox.
Public classCustomToolBar
Customized Win32ToolBar.
Public classDateTimeInterval
A class representing datetime intervals. The implementation supports closed intervals with an upper and lower a bound, as well as open intervals describing a point in time to search after or before it.
Public classDrawToolBarButtonEventArgs
Event arguments for DrawButton event.
Public classDriveList
Use the DriveList to display available drives in the host. Items that are contained in the list are of type DriveListItem. This applies to the Items and the SelectedItems properties.
Public classDriveListItem
Class contains infos about any items within the Lists
Public classExplorerBrowser
This component embeds the native windows ExplorerBrowser control into a .NET component.
Public classExplorerSettings
Helper class that reads out global properties on Windows File Explorer configuration.
Public classExtensionMethods
Class that collects extension methods.
Public classFileList
Use the Filelist if you want to search for files or folders within a specific path. You can also display several files residing in different folders, and allow the user to use drag&drop operations to manage the files.


Items that are contained in the list are of type FileListItem. This applies to the Items and the SelectedItems properties.
Public classFileListItem
Class contains infos about any items within the Lists.
Public classFileMatchEventArgs
Event arguments for the FileMatchEvent
Public classFolderChangingEventArgs
Event arguments for the ExplorerBrowser.NavigationPending event. To cancel the navigation operation Cancel can be set to true.
Public classGUIWorkItemCompletedEventArgs
EventArgs used in the GUIWaitCallbackWorkItem.Completed event.
Public classInvokeCommandEventArgs
Public classItemCheckedEventArgsGenT
Generic EventArgs for checkable items of a TreeView or ListView.
Public classItemCheckStateChangedEventArgsT
Public classItemEventArgsT
Public classItemIdList
Wrapper class for ItemIdList structures of the Win32 Shell.
Public classItemIdListBase2
Used as base class for the ItemIdList class.
Public classItemIdListConverter
A TypeConverter for IJamItemIdLists and ItemIdLists . Used to allow to bindings between string and Shellfolder fields to dependency properties of type IJamItemIdList or ItemIdList.
Public classJamBaseShellListView
The base listview class.
Public classJamBaseShellListViewShellListViewItemCollectionT
Generic ListViewItemCollection class that subclasses of JamBaseShellListView use for their Items collections. Concrete subclasses must specify their item type in the ITEM_CLASS parameter.
Public classJamBaseShellListViewShellListViewSelectedItemCollectionT
Generic ListViewSelectedListViewItemCollection class that subclasses of JamBaseShellListView use for their SelectedItems collections. Concrete subclasses must specify their item type in the ITEM_CLASS parameter.
Public classJamItemIdListCollection
Collection class for items implementing IJamItemIdList.
Public classJamShellColumnCollection
The ColumnCollection class used internally in JamBaseShellListViews and subtypes. The instance can be accessed via its interface IJamShellColumnCollection
Public classJamShellColumnHeader
Represents a single column header in a JamBaseShellListView control.
Public classJamThread
Improved version of .Net's Thread class
Public classListItemCheckedEventArgs
Provides data for the ItemChecked event of the ShellListView control.
Public classListSelectionCancelEventArgs
Cancellable EventArgs passing the selected items.
Public classLoadItemEventArgsT
Event argument class for the OnLoadItem event.
Public classLoadPreviewEventArgs
The event arguments for ShellFilePreview.LoadPreview. Set the PreviewHandlerGuid if you want to use a custom Preview Handler or provide your own Preview Handler implementation in CustomPreviewHandler
Public classLoadShellItemEventArgs
This is a helper class, because we cannot use generic classes in Windows Forms Designer.
Public classNewWorkItemEventArgs
Event arguments of e.g. NewWorkItemEvent
Public classNodeCheckStateChangedEventArgs
The NodeCheckStateChangedEventArgs contains data for the CheckStateChanged event.
Public classOperationEventArgs
Provides data for the Operation event.
Public classOSVersion
Information on the windows version.
Public classPathChangeCancelEventArgs
Like FolderChangingEventArgs. Still available for compatibility.
Public classPathCollection
A class that allows to store paths and prevents duplicates
Public classPathEdit
The PathEdit is a simple component that allows the user to enter a path or to browse for it. The user can open a browse dialog by pressing the button on the right. Use the Path property to set a default path or the get the path that the user has finally chosen. Use The FolderMode property to define if the user should enter / browse for a path to a file or a folder.
Public classPathEventArgs
EventArgs containing a Path.
Public classPathSelectionList
This class is used as a property of the JamShellLink component for managing the list of selected paths that the user selects with shell controls that have the CheckBoxes property set to True. You can modify the list using the AddPathToSelection and RemovePathFromSelection method. You can save or load the list using the SaveToIniFile and LoadFromIniFile methods.
Public classPropertySystemHelper
Some static methods for the property system.
Public classRemoveFileItemEventArgs
The RemoveFileItemEventArgs contains data for the RemoveItem event.
Public classSearchCompletedEventArgs
The SearchCompletedEventArgs contains data for the SearchCompleted event.
Public classSearchExceptionEventArgs
This class provides the event arguments that may be of concern SearchExceptionOccurred
Public classSearchFolder
Contains results of a search.
Public classSearchOptions
The SearchOptions class defines different options
Public classSearchProgressChangedEventArgs
The SearchProgressChangedEventArgs contains data for the SearchCompleted event.
Public classSelectionCancelEventArgsGenT
Base class for events passing the selection of a ShellList or ShellTree in the EventArgs.
Public classCode exampleSetCursor
Show the wait cursor for the whole application as long as the object is not disposed.
Public classShellAddressBar
The addressbar found on top of Windows Explorer.
Public classShellBreadCrumbBar
Embeds the native Windows BreadCrumbBar control into a .NET component.
Public classShellBrowser
The ShellBrowser component is a non-visual component and allows you to browse to the shell name space of Windows, to query information about shell objects and to perform context menu operations.
Public classShellBrowserBase
The ShellBrowser component is a non-visual component and allows you to browse to the shell name space of Windows, to query information about shell objects and to perform context menu operations.
Public classShellBrowserException
(Serializable) exception for signaling ShellBrowser errors.
Public classShellChangeNotifier
Use this component to get information about changes in the file system (copy, move or delete operations) and other changes relevant for shell operations.
Public classShellChangeNotifierList
Manages the list of directories that are registered for notifications.
Public classShellComboBox
The ShellComboBox is a simple component that allows to display folders and drives in a combo box with its associated icons. It is perfectly analogous to the windows explorer file selection dropdown list and provides an editable field as well.
Public classShellComboItem
This class keeps information about the items displayed in the ShellComboBox.
Public classShellCommand
This class provides identifies shell context menu commands that are to be executed or that the user has chosen. A command is represented by a string or a ShellContextMenuCommand value - they are assignment compatible. A ShellCommand also has a property "Caption" that stores the localized caption of a menu item the user has chosen. It is however not possible to create a command from a caption.
Public classShellCommandEventArgs
The ShellCommandEventArgs contains which Verb is applied to what Items or Paths.
Public classCode exampleShellContextMenuProvider
Class providing the explorer context menu. It is used by ShellBrowser internally, but can is publicly available to either show the system context menu for a file or a list of files (ShowContextMenu(Int32, Int32, ShellContextMenuOptions)) or to execute command from the menu (ExecuteCommand(ShellCommand)).
Public classShellControlConnector
This component is able to synchronize several of the visual shell components (e.g. ShellTreeView, ShellListView). Just drop a ShellControlConnector component to this form and assign the ShellControlConnector property of all shell components to the ShellControlConnector component. You can refresh all connected shell controls by using the FullRefresh() method. If you want to use CheckBoxes in a ShellTreeView or ShellListView, that must be connected to a ShellControlConnector. The ShellControlConnector will synchronize the selected files and folder in the different shell controls.
Public classShellControlHelper
A class with several helpful methods.
Public classShellFilePreview
Use this component to display a preview of a file. Depending on the installed PreviewHandlers not all files types support a preview. If no preview is registered, a thumbnail of the file is shown. You may either use the Path property to set a path to a file to load the preview or you may synchronize it to a ShellListView or ShellTreeView component using the ShellControlConnector property.
Public classShellHistoryToolBar
A ToolBar known from the Windows Explorer to control history of visited folders.
Public classShellHistoryToolStrip
The ShellHistoryToolstrip menu provides a convenient way to navigate just like you would do using the explorer. Simply drop the ShellHistoryToolStrip on a ToolStrip container and connect it to a ShellControlConnector, off you go! Customize your forward and back button in the properties editor like you would do with any other button in your project. You can easily add more ToolStripItems to the menu if you desire.
Public classShellItem
This class keeps information about item id lists, their names, and if desired their associated icons.
Public classShellItemFilter
Provides filtering to the containing control.
Public classShellListBaseItem
Base class for list items used in derived classes. An instance usually represents an item of the windows shell namespace.
Public classShellListItem
Represents an item of the Windows shell namespace in a ShellListView
Public classShellListView
This control displays the contents of a folder in a listview. When the user right clicks on a folder, it will automatically show the context menu. Use to Path property to get or set the current folder, use the SpecialFolder property to set a special folder like the Control Panel. The Filter property can be used to filter certain files by extension. For more advanced filtering options use the FilterRegularExpression property in code. The FullRefresh method refreshes the displayed information. You can synchronize a ShellListView with a ShellTreeView by using the ShellControlConnector property. By default, a double click is handled by the control and it tries to perform the default action for the selected object.


Items that are contained in the list are of type ShellListItem. This applies to the Items and the SelectedItems properties.


Sorting is handled automatically by this list when column headers are clicked. If custom sorting is needed, an IComparer can be assigned to property ListViewItemSorter. See Sort for an example.
Public classShellSearchEdit
A SearchEdit is a search box similar to the Windows Search in the upper right corner of the Windows Explorer and provides a search for files and folders.
Public classShellSystemList Obsolete.
This component embeds the native windows explorer control into a .net component.
Public classShellSystemListItem
Represents an item of the Windows shell namespace in a ShellSystemList
Public classShellSystemListItemCollection
Represents the collection of items in a ShellSystemList control.
Public classShellTreeNode
Represents an item of the Windows shell namespace in a ShellTreeView.
Public classShellTreeSelectionCancelEventArgs
Cancellable EventArgs passing the node that is selected or that was clicked.
Public classShellTreeView
A ShellTreeView displays the shell namespace in a tree. When the user right clicks on a folder, it will automatically show the context menu. Use the SelectedPath property to get the currently selected path, use the SpecialFolder property to check if a special folder like the Control Panel is currently selected. You can configure the root nodes using the MultipleRoots property. A single root can be configured using the RootedAt or RootedAtFileSystemFolder properties. Set the ShellControlConnector to synchronize the ShellTree with other components, like a ShellListView. The AddTreeNode event can be used to customize single nodes in the Tree, including the icons that are displayed.
Public classShellViewColumn
Item inside a ShellViewColumns collection.
Public classCode exampleShellViewColumns
Class representing a collection of ShellViewColumns. It serves to control the visible columns in supported controls. Not supported on Windows XP.
Public classShowOptionEventArgs
OptionEventArgs is a simple possibility to indicate whether a FullRefresh is needed after Options have changed.
Public classSystemImageList
Class that wraps a system image list and is able to provide icon indices and icon handles.
Public classSystemImageListHelper
Class that helps dealing with the system image list and returns icon indexes for files and folders.
Public classSystemImageListSizeExtensions
Extensions for the SystemImageListSize type.
Public classSystemListView
This class provides the SystemStyles of Vista and other things common to the ShellListView and ShellFileList
Public classSystemListViewShowToolTipEventArgs
Provides data about the ItemShowToolTip event.
Public classSystemShellListItemCollectionT
Generic collection class for items implementing IShellItem.
Public classThumbnailImage
Use this component to display a thumbnail image of a file or folder. The same thumbnail image that the Windows Explorer uses will be shown. The Windows Shell does not supply a thumbnail image for all objects. You may either set the Path property to set a path to a file or folder for which the thumbnail image should be displayed. Or you may synchronize it to a ShellListView or ShellTreeView component using the ShellControlConnector property.
Public classThumbnailUpdatedEventArgs
Event arguments for the ThumbnailUpdated event.
Public classToolBarButtonClickEventArgs
Provides data for the ButtonClick event.
Public classTreeNodeCheckedEventArgs
Provides data for the NodeChecked event of the ShellTreeView.
Public classUpdateFolderEventArgs
the UpdateFolderEventArgs carries the environment of a ShellTreeNode that has just been Detail-completed
Public classWin32ShellContextMenuProvider
Class that allows to show and execute shell context menus.
Public classWin32ToolBar
Represents a Windows toolbar. Only serves as base class for the BreadCrumbBar and other ShellBrowser components.
Public classWin32ToolBarToolBarButtonCollection
Encapsulates a collection of Win32ToolBarButton controls for use by the Win32ToolBar class.
Public classWin32ToolBarButton
Represents a Windows toolbar button.
Public classWinFormsPathCollection
A class that allows to store paths and prevents duplicates. Adds some methods that need access of Windows.Forms.
Public classWorkerThreadPool
A thread pool that manages work items, in contrast to the common .net threadpool, threads managed by this pool may perform calls to COM objects.
Public structureRECT
Public structureSHCOLUMNID
Specifies the FMTID/PID identifier of a column that will be displayed by the Windows Explorer Details view.
Protected structureShellListBaseItemDetails
Helper struct for fetching element attributes outside the main thread.
Public interfaceICheckableItem
Interface for checkable item.
Public interfaceICommonPreviewHandlerHost
Interface for the host of a PreviewHandler, i.e. the control hosing a CommonPreviewHandler. It is used to provide the handle and displayRect to the system's PreviewHandler. Also it must provide an "OnLoaded" eventhandler that is called after the preview has been loaded asynchronously.
Public interfaceIExplorerSettings
Interface for explorer settings.
Public interfaceIFileMatcher
This interface is used to call a file matching mechanism from the background worker thread managed within a FileSearcher instance. Furthermore it is used by the File/Folder change notification.
Public interfaceIJamItemIdList
Interface of a ShellItem that is used as data object in the ShellBrowser controls.
Public interfaceCode exampleIJamShellColumnCollection
Interface representing a ColumnCollection. This interface is returned by Columns
Public interfaceIJamShellItemOperations
Interface for operations items presented in the shell components can support.
Public interfaceIJamShellItemVisuals
Interface for visual presentation of shell items.
Public interfaceIShellChangeNotifier
Interface for shell change notifier.
Public interfaceIShellCommandInvokable
Interface for components supporting to invoke shell commands.
Public interfaceIShellControl
Interface that all shell controls implement.
Public interfaceIShellControlConnector
Interface for ShellControlConnector that is used by WPF controls to inform on path changes/>.
Public interfaceIShellControlConnectorTarget
Interface that is used by ShellControlConnector, that is implemented by controls and called when the common path or centrally selected item changes.
Public interfaceIShellItem
Defines a common interface for ShellListItem and ShellTreeNode.
Public interfaceIShellPreviewHandler
Interface that is used by a host control implementing ICommonPreviewHandlerHost for the preview of different file types
Public interfaceIWorkItem
This interface defines a work item that can be queued to the threadpool
Public enumerationCheckBoxMode
Values that represent check box modes.
Public enumerationCheckMode
Values that represent check modes for ExplorerBrowser and ShellSystemList.
Public enumerationCheckState
Available system image list sizes
Public enumerationCustomDrawStage
Possible custom draw stages.
Public enumerationCustomDrawState
Possible custom draw states.
Public enumerationExplorerPane
Contains flags for the panes that can be used in the Explorer window.
Public enumerationExplorerShowHeader
Possible column header states.
Public enumerationFileNameFormat
Values that determine what the item names returned by GetShellObjectName look like.
Public enumerationFolderFlags
The folder flags are used to specify how the control displays its content. Most of these flags can be or'ed together.
Public enumerationIconSize
Default Windows Icon sizes for the different ViewModes.
Public enumerationItemIdListDisplayNameFormat
Values that represent display name formats.
Public enumerationItemIdListComparison
Available modes to compare two ItemIdLists.
Public enumerationMultipleRoots
Values that represent multiple roots.
Public enumerationNotificationEvents
The types of notification events that may occur
Public enumerationRefreshLevel
Possible values for refresh operations for controls connected through a ShellControlConnector.
Public enumerationSFGAOF
Indicate flags used by IShellFolder2 GetAttributesOf() method to specify the requested attributes.
Public enumerationShellAddressBarPane
Possible panes of an ShellAddressBar.
Public enumerationShellAutoComplete
The autocompletion mode the PathEdit and ComboBox control are using. These are flags, that can be or'ed together.
Public enumerationShellBrowserBaseAsyncResult
Values that represent the possible result values of Next(IShellChangeNotifier).
Protected enumerationShellComboBoxListKind
Public enumerationShellContextMenuCommand
Values that represent shell context menu commands.
Public enumerationShellContextMenuOptions
A bit-field of flags for specifying context menu options.
Public enumerationShellFolder
ShellFolder values provide a unique system-independent way to identify special folders used frequently by applications, but which may not have the same name or location on any given system.
Protected enumerationShellListBaseItemItemState
Flags that reflect the state of the ShellListBaseItem
Public enumerationShellOperation
Enumeration of possible operations that may happen for a shell control.
Public enumerationShellTreeNodeRefreshDirection
The possible options to refresh a checkstate of a ShellTreeNode. .
Public enumerationShellTreeViewGotoFolderIdListAction
Public enumerationSystemImageListSize
Available system image list sizes
Public enumerationThumbnailMode
Values that represent the possible values for ThumbnailMode./
Public enumerationToolBarAppearance
Specifies the type of toolbar to display.
Public enumerationToolBarButtonStyle
Specifies the button style within a toolbar.
Public enumerationToolBarTextAlign
Specifies the alignment of text on the toolbar button control.
Public enumerationViewSortDirection
View sort direction
Public enumerationViewState
ViewState enumeration for ListView superseeds System.Windows.Forms.View