ShellObjectWrapper Class
Provides an abstract base class that wraps another IShellObject implementation, allowing for easy customization.
public abstract class ShellObjectWrapper : ShellObjectBase, IShellObject, IDisposable
- Inheritance:
- object DisposableObjectBase ShellObjectBase object
- Implements:
- IShellObject IDisposable
Constructors
ShellObjectWrapper(IShellService, IShellObject)
Initializes an instance of the ShellObjectWrapper class.
protected ShellObjectWrapper(IShellService shellService, IShellObject wrappedShellObject)
Parameter | Type | Description |
---|---|---|
shellService | IShellService | The IShellService used to return this shell object's children. |
wrappedShellObject | IShellObject | The IShellObject to be wrapped by this class. |
Properties
AreChildrenLoaded
Gets whether the Children collection is loaded.
public override bool AreChildrenLoaded { get; }
Property Value
Remarks
Since the Children collection is lazy-loaded when called, this property returns whether it has been loaded without triggering a load.
CanCreateChildFolder
Gets whether the shell object can create a child folder.
public override bool CanCreateChildFolder { get; }
Property Value
- bool:
true
if the shell object can create a child folder; otherwise,false
. The default implementation of this property returnsfalse
.
Remarks
Only shell folders can create child folders.
CanHaveChildFolders
Gets whether the shell object may have child folders.
public override bool CanHaveChildFolders { get; }
Property Value
- bool:
true
if the shell object may have child folders; otherwise,false
. The default implementation of this property returns the IsFolder property value.
Remarks
Some shell objects can immediately return that they don't have any child folders, whereas others might require a query to determine if there are any.
CanRename
Gets whether the shell object may be renamed.
public override bool CanRename { get; }
Property Value
- bool:
true
if the shell object may be renamed; otherwise,false
. The default implementation of this property returnsfalse
.
Children
Gets the collection of child shell objects using lazy-loading.
public override IList<IShellObject> Children { get; }
Property Value
- IList<IShellObject>:
The collection of child shell objects using lazy-loading.
EditingName
Gets the full user-friendly editing name of the shell object, if available.
public override string EditingName { get; }
Property Value
- string:
The full user-friendly editing name of the shell object, if available.
Remarks
This value is usually the same as FileSystemPath, except that it can also return a special value to identify special shell objects.
ExtraLargeIcon
Gets or sets the extra-large icon.
public override ImageSource ExtraLargeIcon { get; set; }
Property Value
- ImageSource:
The extra-large icon.
ExtraLargeIconOverlay
Gets or sets the extra-large icon overlay.
public override ImageSource ExtraLargeIconOverlay { get; set; }
Property Value
- ImageSource:
The extra-large icon overlay.
FileSystemPath
Gets the file system path of the shell object, if available.
public override string FileSystemPath { get; }
Property Value
- string:
The file system path of the shell object, if available. The default implementation of this property returns
null
.
IsFolder
Gets whether the shell object is a folder, which is anything that can contain other shell objects.
public override bool IsFolder { get; }
Property Value
IsLink
Gets whether the shell object is a link, meaning a shortcut to another shell object.
public override bool IsLink { get; }
Property Value
IsRemovable
Gets whether the shell object is on removable media or is a removable device.
public override bool IsRemovable { get; }
Property Value
- bool:
true
if the shell object is on removable media or is a removable device; otherwise,false
. The default implementation of this property returnsfalse
.
IsVirtual
Gets whether the shell object is not part of the file system (files, directories, or root directories).
public override bool IsVirtual { get; }
Property Value
- bool:
true
if the shell object is not part of the file system (files, directories, or root directories); otherwise,false
. The default implementation of this property returnstrue
.
IsWatching
Gets whether the shell object's tree hierarchy is currently watching for change notifications.
public override bool IsWatching { get; }
Property Value
- bool:
true
if the shell object's tree hierarchy is currently watching for change notifications; otherwise,false
. The default implementation of this property returnsfalse
.
Kind
Gets a ShellObjectKind that specifies the kind of this shell object.
public override ShellObjectKind Kind { get; }
Property Value
- ShellObjectKind:
A ShellObjectKind that specifies the kind of this shell object.
LargeIcon
Gets or sets the large icon.
LargeIconOverlay
Gets or sets the large icon overlay.
public override ImageSource LargeIconOverlay { get; set; }
Property Value
- ImageSource:
The large icon overlay.
MediumIcon
Gets or sets the medium icon.
MediumIconOverlay
Gets or sets the medium icon overlay.
public override ImageSource MediumIconOverlay { get; set; }
Property Value
- ImageSource:
The medium icon overlay.
Name
Gets or sets the name of the shell object.
ParsingName
Gets the full parsing name of the shell object, if available.
public override string ParsingName { get; }
Property Value
- string:
The full parsing name of the shell object, if available. The default implementation of this property returns the FileSystemPath property value.
Remarks
This value is usually the same as FileSystemPath, except that it can also return a special syntax to identify special shell objects.
RelativeParsingName
Gets the parent-relative parsing name of the shell object, if available.
public override string RelativeParsingName { get; }
Property Value
- string:
The parent-relative parsing name of the shell object, if available.
Remarks
This value is usually the same as Name, except that it can also return a special syntax to identify special shell objects.
SmallIcon
Gets or sets the small icon.
SmallIconOverlay
Gets or sets the small icon overlay.
public override ImageSource SmallIconOverlay { get; set; }
Property Value
- ImageSource:
The small icon overlay.
SortOrder
Gets or sets a numeric sort order for sorting the shell object within other shell objects.
public override int SortOrder { get; set; }
Property Value
- int:
A numeric sort order for sorting the shell object within other shell objects. The default value is
0
.
SpecialFolderKind
Gets a SpecialFolderKind that specifies kind of special folder represented by this shell object, if applicable.
public override SpecialFolderKind SpecialFolderKind { get; }
Property Value
- SpecialFolderKind:
A SpecialFolderKind that specifies kind of special folder represented by this shell object, if applicable. The default implementation of this property returns
None
.
ToolTip
Gets or sets the tool-tip object that is displayed for this shell object in the user interface (UI).
WrappedShellObject
Gets the IShellObject that is wrapped by this class.
public IShellObject WrappedShellObject { get; }
Property Value
- IShellObject:
The IShellObject that is wrapped by this class.
Methods
CreateChildFolder(string)
Creates a child folder with the specified name.
public override bool CreateChildFolder(string name)
Parameter | Type | Description |
---|---|---|
name | string | The name of the child folder. |
Returns
- bool:
true
if the child folder was created; otherwise,false
.
Remarks
Only shell folders can create child folders.
The default implementation of this method does nothing and returns false
.
Dispose(bool)
Releases the unmanaged resources used by the object and optionally releases the managed resources.
protected override void Dispose(bool disposing)
Parameter | Type | Description |
---|---|---|
disposing | bool |
|
Remarks
This method is called by the public Dispose
method and the Finalize
method.
Dispose
invokes this method with the disposing
parameter set to true
.
Finalize
invokes this method with disposing
set to false
.
RefreshChildren()
Refreshes the Children collection.
public override void RefreshChildren()
StartWatching()
Starts watching the shell object's tree hierarchy for change notifications.
public override bool StartWatching()
Returns
- bool:
true
if the shell object is watching its tree hierarchy; otherwise,false
.
Remarks
The default implementation of this method does nothing, and returns false
.
StopWatching()
Stops watching the shell object's tree hierarchy for change notifications.
public override void StopWatching()
Remarks
The default implementation of this method does nothing.
Inherited Members
- ShellObjectBase.GetChildComparisonKey(IShellObject)
- ShellObjectBase.NotifyPropertyChanged(string)
- ShellObjectBase.RaiseChangedEvent(ShellObjectChangedEventArgs)
- ShellObjectBase.RaisePropertyChangedEvent(PropertyChangedEventArgs)
- ShellObjectBase.ToString()
- ShellObjectBase.ExtraLargeThumbnail
- ShellObjectBase.LargeThumbnail
- ShellObjectBase.MediumThumbnail
- ShellObjectBase.ShellService
- ShellObjectBase.Changed
- ShellObjectBase.PropertyChanged
- DisposableObjectBase.Dispose()
- object.GetType()
- object.MemberwiseClone()
- object.Equals(object)
- object.Equals(object, object)
- object.ReferenceEquals(object, object)
- object.GetHashCode()