From 14a5bea9266817e0d0613a11dc638254564a6fa0 Mon Sep 17 00:00:00 2001 From: ema Date: Sat, 9 Aug 2025 00:36:39 +0800 Subject: [PATCH] Code Cleanup --- QuickLook.Common | 2 +- .../ArchiveFileEntry.cs | 4 +- .../IconManager.cs | 36 ++++++------- .../RegFileParser.cs | 52 +++++++++---------- .../BusyDecorator/BackgroundVisualHost.cs | 23 ++------ .../Controls/BusyDecorator/BusyDecorator.cs | 16 +++--- .../BusyDecorator/ControlExtensions.cs | 8 +-- QuickLook/Controls/BusyDecorator/ISpinable.cs | 6 +-- QuickLook/Controls/BusyDecorator/SpinIcon.cs | 8 +-- .../Controls/GlassLayer/GlassLayer.xaml.cs | 10 ++-- QuickLook/NativeMethods/ShellLink.cs | 32 ++++++------ 11 files changed, 92 insertions(+), 105 deletions(-) diff --git a/QuickLook.Common b/QuickLook.Common index 8978dce..21cbdf4 160000 --- a/QuickLook.Common +++ b/QuickLook.Common @@ -1 +1 @@ -Subproject commit 8978dce92c84f5c19dce9f62190cc81e041ce5d9 +Subproject commit 21cbdf4cfe31cd709e2dd27f26fd4a2a72266519 diff --git a/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/ArchiveFileEntry.cs b/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/ArchiveFileEntry.cs index 1b38843..155de96 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/ArchiveFileEntry.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/ArchiveFileEntry.cs @@ -45,7 +45,7 @@ public class ArchiveFileEntry : IComparable public DateTime ModifiedDate { get; set; } /// - /// Returns the maximum depth of all siblings + /// Returns the maximum depth of all siblings /// public int Level { @@ -75,7 +75,7 @@ public class ArchiveFileEntry : IComparable } /// - /// Returns the number of nodes in the longest path to a leaf + /// Returns the number of nodes in the longest path to a leaf /// private int GetDepth() { diff --git a/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/IconManager.cs b/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/IconManager.cs index 3a2edcf..3d5801d 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/IconManager.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ArchiveViewer/IconManager.cs @@ -28,9 +28,9 @@ using System.Windows.Media.Imaging; namespace QuickLook.Plugin.ArchiveViewer; /// -/// Internals are mostly from here: -/// http://www.codeproject.com/Articles/2532/Obtaining-and-managing-file-and-folder-icons-using -/// Caches all results. +/// Internals are mostly from here: +/// http://www.codeproject.com/Articles/2532/Obtaining-and-managing-file-and-folder-icons-using +/// Caches all results. /// public static class IconManager { @@ -48,7 +48,7 @@ public static class IconManager } /// - /// Get the icon of a directory + /// Get the icon of a directory /// /// 16x16 or 32x32 icon /// an icon @@ -68,7 +68,7 @@ public static class IconManager } /// - /// Get an icon for a given filename + /// Get an icon for a given filename /// /// any filename /// 16x16 or 32x32 icon @@ -89,7 +89,7 @@ public static class IconManager } /// - /// http://stackoverflow.com/a/6580799/1943849 + /// http://stackoverflow.com/a/6580799/1943849 /// private static ImageSource ToImageSource(this Icon icon) { @@ -101,31 +101,31 @@ public static class IconManager } /// - /// Provides static methods to read system icons for both folders and files. + /// Provides static methods to read system icons for both folders and files. /// /// - /// IconReader.GetFileIcon("c:\\general.xls"); + /// IconReader.GetFileIcon("c:\\general.xls"); /// private static class IconReader { /// - /// Options to specify the size of icons to return. + /// Options to specify the size of icons to return. /// public enum IconSize { /// - /// Specify large icon - 32 pixels by 32 pixels. + /// Specify large icon - 32 pixels by 32 pixels. /// Large = 0, /// - /// Specify small icon - 16 pixels by 16 pixels. + /// Specify small icon - 16 pixels by 16 pixels. /// Small = 1 } /// - /// Returns the icon of a folder. + /// Returns the icon of a folder. /// /// Large or small /// Whether to include the link icon @@ -152,7 +152,7 @@ public static class IconManager } /// - /// Returns an icon for a given file - indicated by the name parameter. + /// Returns an icon for a given file - indicated by the name parameter. /// /// Pathname for file. /// Large or small @@ -181,8 +181,8 @@ public static class IconManager } /// - /// Wraps necessary Shell32.dll structures and functions required to retrieve Icon Handles using SHGetFileInfo. Code - /// courtesy of MSDN Cold Rooster Consulting case study. + /// Wraps necessary Shell32.dll structures and functions required to retrieve Icon Handles using SHGetFileInfo. Code + /// courtesy of MSDN Cold Rooster Consulting case study. /// private static class Shell32 { @@ -221,13 +221,13 @@ public static class IconManager } /// - /// Wraps necessary functions imported from User32.dll. Code courtesy of MSDN Cold Rooster Consulting example. + /// Wraps necessary functions imported from User32.dll. Code courtesy of MSDN Cold Rooster Consulting example. /// private static class User32 { /// - /// Provides access to function required to delete handle. This method is used internally - /// and is not required to be called separately. + /// Provides access to function required to delete handle. This method is used internally + /// and is not required to be called separately. /// /// Pointer to icon handle. /// N/A diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/RegFileParser.cs b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/RegFileParser.cs index 93d813a..2894c19 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/RegFileParser.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/RegFileParser.cs @@ -8,16 +8,16 @@ using System.Xml.Serialization; namespace RegFileParser; /// -/// The main reg file parsing class. -/// Reads the given reg file and stores the content as -/// a Dictionary of registry keys and values as a Dictionary of registry values +/// The main reg file parsing class. +/// Reads the given reg file and stores the content as +/// a Dictionary of registry keys and values as a Dictionary of registry values /// public class RegFileObject { #region Public Properties /// - /// Gets the dictionary containing all entries + /// Gets the dictionary containing all entries /// public Dictionary> RegValues => regvalues; @@ -26,12 +26,12 @@ public class RegFileObject #region Private Fields /// - /// Raw content of the reg file + /// Raw content of the reg file /// private string content; /// - /// the dictionary containing parsed registry values + /// the dictionary containing parsed registry values /// private readonly Dictionary> regvalues; @@ -61,7 +61,7 @@ public class RegFileObject #region Private Methods /// - /// Imports the reg file + /// Imports the reg file /// public void Read(string path) { @@ -70,7 +70,7 @@ public class RegFileObject } /// - /// Imports the reg file + /// Imports the reg file /// public void Read(byte[] bytes) { @@ -109,7 +109,7 @@ public class RegFileObject } /// - /// Parses the reg file for reg keys and reg values + /// Parses the reg file for reg keys and reg values /// /// A Dictionary with reg keys as Dictionary keys and a Dictionary of (valuename, valuedata) private Dictionary> ParseFile() @@ -141,7 +141,7 @@ public class RegFileObject } /// - /// Creates a flat Dictionary using given searcn pattern + /// Creates a flat Dictionary using given searcn pattern /// /// The content string to be parsed /// A Dictionary with retrieved keys and remaining content @@ -202,7 +202,7 @@ public class RegFileObject } /// - /// Creates a flat Dictionary using given searcn pattern + /// Creates a flat Dictionary using given searcn pattern /// /// The content string to be parsed /// A Dictionary with retrieved keys and remaining content @@ -254,7 +254,7 @@ public class RegFileObject } /// - /// Removes the leading and ending characters from the given string + /// Removes the leading and ending characters from the given string /// /// given string /// edited string @@ -268,7 +268,7 @@ public class RegFileObject } /// - /// Removes the leading and ending parenthesis from the given string + /// Removes the leading and ending parenthesis from the given string /// /// given string /// edited string @@ -294,7 +294,7 @@ public class RegValueObject private string value; /// - /// Parameterless constructor + /// Parameterless constructor /// public RegValueObject() { @@ -307,7 +307,7 @@ public class RegValueObject } /// - /// Overloaded constructor + /// Overloaded constructor /// /// A line from the [Registry] section of the *.sig signature file public RegValueObject(string regKeyName, string regValueName, string regValueData, string encoding) @@ -326,7 +326,7 @@ public class RegValueObject #region Public Methods /// - /// Overriden Method + /// Overriden Method /// /// An entry for the [Registry] section of the *.sig signature file public override string ToString() @@ -339,7 +339,7 @@ public class RegValueObject #region Public Properties /// - /// Regsitry value name + /// Regsitry value name /// [XmlElement("entry", typeof(string))] public string Entry @@ -349,7 +349,7 @@ public class RegValueObject } /// - /// Registry value parent key + /// Registry value parent key /// [XmlElement("key", typeof(string))] public string ParentKey @@ -364,7 +364,7 @@ public class RegValueObject } /// - /// Registry value root hive + /// Registry value root hive /// [XmlElement("root", typeof(string))] public string Root @@ -374,7 +374,7 @@ public class RegValueObject } /// - /// Registry value type + /// Registry value type /// [XmlElement("type", typeof(string))] public string Type @@ -384,7 +384,7 @@ public class RegValueObject } /// - /// Registry value data + /// Registry value data /// [XmlElement("value", typeof(string))] public string Value @@ -447,7 +447,7 @@ public class RegValueObject } /// - /// Retrieves the reg value type, parsing the prefix of the value + /// Retrieves the reg value type, parsing the prefix of the value /// /// Registry value row string /// Value @@ -546,7 +546,7 @@ public class RegValueObject } /// - /// Removes the leading and ending characters from the given string + /// Removes the leading and ending characters from the given string /// /// given string /// edited string @@ -560,7 +560,7 @@ public class RegValueObject } /// - /// Removes the leading and ending parenthesis from the given string + /// Removes the leading and ending parenthesis from the given string /// /// given string /// edited string @@ -573,7 +573,7 @@ public class RegValueObject } /// - /// Removes the ending backslashes from the given string + /// Removes the ending backslashes from the given string /// /// given string /// edited string @@ -585,7 +585,7 @@ public class RegValueObject } /// - /// Converts the byte arrays (saved as array of string) into string + /// Converts the byte arrays (saved as array of string) into string /// /// Array of string /// String value diff --git a/QuickLook/Controls/BusyDecorator/BackgroundVisualHost.cs b/QuickLook/Controls/BusyDecorator/BackgroundVisualHost.cs index 39618ce..078bc28 100644 --- a/QuickLook/Controls/BusyDecorator/BackgroundVisualHost.cs +++ b/QuickLook/Controls/BusyDecorator/BackgroundVisualHost.cs @@ -81,8 +81,7 @@ public class BackgroundVisualHost : FrameworkElement private readonly CreateContentFunction _createContent; private readonly Action _invalidateMeasure; - private readonly AutoResetEvent _sync = - new AutoResetEvent(false); + private readonly AutoResetEvent _sync = new(false); public ThreadedVisualHelper( CreateContentFunction createContent, @@ -125,17 +124,11 @@ public class BackgroundVisualHost : FrameworkElement } } - #region Private Fields - public ThreadedVisualHelper ThreadedHelper; private HostVisual _hostVisual; - #endregion Private Fields - - #region IsContentShowingProperty - /// - /// Identifies the IsContentShowing dependency property. + /// Identifies the IsContentShowing dependency property. /// public static readonly DependencyProperty IsContentShowingProperty = DependencyProperty.Register( "IsContentShowing", @@ -144,7 +137,7 @@ public class BackgroundVisualHost : FrameworkElement new FrameworkPropertyMetadata(false, OnIsContentShowingChanged)); /// - /// Gets or sets if the content is being displayed. + /// Gets or sets if the content is being displayed. /// public bool IsContentShowing { @@ -163,12 +156,8 @@ public class BackgroundVisualHost : FrameworkElement bvh.HideContentHelper(); } - #endregion IsContentShowingProperty - - #region CreateContent Property - /// - /// Identifies the CreateContent dependency property. + /// Identifies the CreateContent dependency property. /// public static readonly DependencyProperty CreateContentProperty = DependencyProperty.Register( "CreateContent", @@ -177,7 +166,7 @@ public class BackgroundVisualHost : FrameworkElement new FrameworkPropertyMetadata(OnCreateContentChanged)); /// - /// Gets or sets the function used to create the visual to display in a background thread. + /// Gets or sets the function used to create the visual to display in a background thread. /// public CreateContentFunction CreateContent { @@ -196,6 +185,4 @@ public class BackgroundVisualHost : FrameworkElement bvh.CreateContentHelper(); } } - - #endregion CreateContent Property } diff --git a/QuickLook/Controls/BusyDecorator/BusyDecorator.cs b/QuickLook/Controls/BusyDecorator/BusyDecorator.cs index 21ef459..f0fcd5d 100644 --- a/QuickLook/Controls/BusyDecorator/BusyDecorator.cs +++ b/QuickLook/Controls/BusyDecorator/BusyDecorator.cs @@ -135,7 +135,7 @@ public class BusyDecorator : Decorator, IDisposable #region IsBusyIndicatorShowing Property /// - /// Identifies the IsBusyIndicatorShowing dependency property. + /// Identifies the IsBusyIndicatorShowing dependency property. /// public static readonly DependencyProperty IsBusyIndicatorShowingProperty = DependencyProperty.Register( "IsBusyIndicatorShowing", @@ -146,7 +146,7 @@ public class BusyDecorator : Decorator, IDisposable OnIsBusyIndicatorShowingChanged)); /// - /// Gets or sets if the BusyIndicator is being shown. + /// Gets or sets if the BusyIndicator is being shown. /// public bool IsBusyIndicatorShowing { @@ -178,7 +178,7 @@ public class BusyDecorator : Decorator, IDisposable #region BusyStyle /// - /// Identifies the property. + /// Identifies the property. /// public static readonly DependencyProperty BusyStyleProperty = DependencyProperty.Register( @@ -188,7 +188,7 @@ public class BusyDecorator : Decorator, IDisposable new FrameworkPropertyMetadata(OnBusyStyleChanged)); /// - /// Gets or sets the Style to apply to the Control that is displayed as the busy indication. + /// Gets or sets the Style to apply to the Control that is displayed as the busy indication. /// public Style BusyStyle { @@ -208,7 +208,7 @@ public class BusyDecorator : Decorator, IDisposable #region BusyHorizontalAlignment /// - /// Identifies the property. + /// Identifies the property. /// public static readonly DependencyProperty BusyHorizontalAlignmentProperty = DependencyProperty.Register( "BusyHorizontalAlignment", @@ -217,7 +217,7 @@ public class BusyDecorator : Decorator, IDisposable new FrameworkPropertyMetadata(HorizontalAlignment.Center)); /// - /// Gets or sets the HorizontalAlignment to use to layout the control that contains the busy indicator control. + /// Gets or sets the HorizontalAlignment to use to layout the control that contains the busy indicator control. /// public HorizontalAlignment BusyHorizontalAlignment { @@ -230,7 +230,7 @@ public class BusyDecorator : Decorator, IDisposable #region BusyVerticalAlignment /// - /// Identifies the property. + /// Identifies the property. /// public static readonly DependencyProperty BusyVerticalAlignmentProperty = DependencyProperty.Register( "BusyVerticalAlignment", @@ -239,7 +239,7 @@ public class BusyDecorator : Decorator, IDisposable new FrameworkPropertyMetadata(VerticalAlignment.Center)); /// - /// Gets or sets the the VerticalAlignment to use to layout the control that contains the busy indicator. + /// Gets or sets the the VerticalAlignment to use to layout the control that contains the busy indicator. /// public VerticalAlignment BusyVerticalAlignment { diff --git a/QuickLook/Controls/BusyDecorator/ControlExtensions.cs b/QuickLook/Controls/BusyDecorator/ControlExtensions.cs index 3ceb021..61d0309 100644 --- a/QuickLook/Controls/BusyDecorator/ControlExtensions.cs +++ b/QuickLook/Controls/BusyDecorator/ControlExtensions.cs @@ -24,17 +24,17 @@ using System.Windows.Media.Animation; namespace QuickLook.Controls.BusyDecorator; /// -/// Control extensions +/// Control extensions /// internal static class ControlExtensions { /// - /// The key used for storing the spinner Storyboard. + /// The key used for storing the spinner Storyboard. /// private static readonly string SpinnerStoryBoardName = $"{typeof(FrameworkElement).Name}Spinner"; /// - /// Start the spinning animation + /// Start the spinning animation /// /// FrameworkElement and ISpinable /// Control to apply the rotation @@ -78,7 +78,7 @@ internal static class ControlExtensions } /// - /// Stop the spinning animation + /// Stop the spinning animation /// /// FrameworkElement and ISpinable /// Control to stop the rotation. diff --git a/QuickLook/Controls/BusyDecorator/ISpinable.cs b/QuickLook/Controls/BusyDecorator/ISpinable.cs index b38235a..8826792 100644 --- a/QuickLook/Controls/BusyDecorator/ISpinable.cs +++ b/QuickLook/Controls/BusyDecorator/ISpinable.cs @@ -18,17 +18,17 @@ namespace QuickLook.Controls.BusyDecorator; /// -/// Represents a spinable control +/// Represents a spinable control /// internal interface ISpinable { /// - /// Gets or sets the current spin (angle) animation of the icon. + /// Gets or sets the current spin (angle) animation of the icon. /// public bool Spin { get; set; } /// - /// Gets or sets the duration of the spinning animation (in seconds). This will stop and start the spin animation. + /// Gets or sets the duration of the spinning animation (in seconds). This will stop and start the spin animation. /// public double SpinDuration { get; set; } } diff --git a/QuickLook/Controls/BusyDecorator/SpinIcon.cs b/QuickLook/Controls/BusyDecorator/SpinIcon.cs index 2b83808..cea93be 100644 --- a/QuickLook/Controls/BusyDecorator/SpinIcon.cs +++ b/QuickLook/Controls/BusyDecorator/SpinIcon.cs @@ -25,7 +25,7 @@ internal class SpinIcon : TextBlock, ISpinable #region public bool Spin /// - /// Identifies the Spin dependency property. + /// Identifies the Spin dependency property. /// public static DependencyProperty SpinProperty = DependencyProperty.Register("Spin", typeof(bool), typeof(SpinIcon), @@ -44,7 +44,7 @@ internal class SpinIcon : TextBlock, ISpinable } /// - /// Gets or sets the current spin (angle) animation of the icon. + /// Gets or sets the current spin (angle) animation of the icon. /// public bool Spin { @@ -58,7 +58,7 @@ internal class SpinIcon : TextBlock, ISpinable #region public double SpinDuration /// - /// Identifies the SpinDuration dependency property. + /// Identifies the SpinDuration dependency property. /// public static DependencyProperty SpinDurationProperty = DependencyProperty.Register("SpinDuration", typeof(double), typeof(SpinIcon), @@ -76,7 +76,7 @@ internal class SpinIcon : TextBlock, ISpinable } /// - /// Gets or sets the duration of the spinning animation (in seconds). This will stop and start the spin animation. + /// Gets or sets the duration of the spinning animation (in seconds). This will stop and start the spin animation. /// public double SpinDuration { diff --git a/QuickLook/Controls/GlassLayer/GlassLayer.xaml.cs b/QuickLook/Controls/GlassLayer/GlassLayer.xaml.cs index fa4e2a4..87a7c9f 100644 --- a/QuickLook/Controls/GlassLayer/GlassLayer.xaml.cs +++ b/QuickLook/Controls/GlassLayer/GlassLayer.xaml.cs @@ -43,7 +43,7 @@ public partial class GlassLayer : UserControl #region public Visual BlurredElement /// - /// Identifies the BlurredElement dependency property. + /// Identifies the BlurredElement dependency property. /// public static DependencyProperty BlurredElementProperty = DependencyProperty.Register("BlurredElement", typeof(Visual), typeof(GlassLayer), null); @@ -62,7 +62,7 @@ public partial class GlassLayer : UserControl #region public SolidColorBrush OverlayColor /// - /// Identifies the OverlayColor dependency property. + /// Identifies the OverlayColor dependency property. /// public static DependencyProperty OverlayColorProperty = DependencyProperty.Register("OverlayColor", typeof(SolidColorBrush), typeof(GlassLayer), @@ -82,7 +82,7 @@ public partial class GlassLayer : UserControl #region public Visibility ColorOverlayVisibility /// - /// Identifies the ColorOverlayVisibilityProperty dependency property. + /// Identifies the ColorOverlayVisibilityProperty dependency property. /// public static DependencyProperty ColorOverlayVisibilityProperty = DependencyProperty.Register("ColorOverlayVisibility", typeof(Visibility), typeof(GlassLayer), @@ -100,7 +100,7 @@ public partial class GlassLayer : UserControl #region public Visibility NoiseVisibility /// - /// Identifies the NoiseVisibility dependency property. + /// Identifies the NoiseVisibility dependency property. /// public static DependencyProperty NoiseVisibilityProperty = DependencyProperty.Register("NoiseVisibility", typeof(Visibility), typeof(GlassLayer), @@ -120,7 +120,7 @@ public partial class GlassLayer : UserControl #region public Visibility GlassVisibility /// - /// Identifies the GlassVisibility dependency property. + /// Identifies the GlassVisibility dependency property. /// public static DependencyProperty GlassVisibilityProperty = DependencyProperty.Register("GlassVisibility", typeof(Visibility), typeof(GlassLayer), diff --git a/QuickLook/NativeMethods/ShellLink.cs b/QuickLook/NativeMethods/ShellLink.cs index 898ce1d..3cfdc25 100644 --- a/QuickLook/NativeMethods/ShellLink.cs +++ b/QuickLook/NativeMethods/ShellLink.cs @@ -33,8 +33,8 @@ internal enum SLGP_FLAGS SLGP_UNCPRIORITY = 0x2, /// - /// Retrieves the raw path name. A raw path is something that might not exist and may include environment - /// variables that need to be expanded + /// Retrieves the raw path name. A raw path is something that might not exist and may include environment + /// variables that need to be expanded /// SLGP_RAWPATH = 0x4 } @@ -62,13 +62,13 @@ internal struct WIN32_FIND_DATAW internal enum SLR_FLAGS { /// - /// Do not display a dialog box if the link cannot be resolved. When SLR_NO_UI is set, - /// the high-order word of fFlags can be set to a time-out value that specifies the - /// maximum amount of time to be spent resolving the link. The function 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 will be set to the default value of 3,000 milliseconds - /// (3 seconds). To specify a value, set the high word of fFlags to the desired time-out - /// duration, in milliseconds. + /// Do not display a dialog box if the link cannot be resolved. When SLR_NO_UI is set, + /// the high-order word of fFlags can be set to a time-out value that specifies the + /// maximum amount of time to be spent resolving the link. The function 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 will be set to the default value of 3,000 milliseconds + /// (3 seconds). To specify a value, set the high word of fFlags to the desired time-out + /// duration, in milliseconds. /// SLR_NO_UI = 0x1, @@ -76,9 +76,9 @@ internal enum SLR_FLAGS SLR_ANY_MATCH = 0x2, /// - /// If the link object has changed, update its path and list of identifiers. - /// If SLR_UPDATE is set, you do not need to call IPersistFile::IsDirty to determine - /// whether or not the link object has changed. + /// If the link object has changed, update its path and list of identifiers. + /// If SLR_UPDATE is set, you do not need to call IPersistFile::IsDirty to determine + /// whether or not the link object has changed. /// SLR_UPDATE = 0x4, @@ -92,10 +92,10 @@ internal enum SLR_FLAGS SLR_NOTRACK = 0x20, /// - /// Disable distributed link tracking. By default, distributed link tracking tracks - /// removable media across multiple devices based on the volume name. It also uses the - /// Universal Naming Convention (UNC) path to track remote file systems whose drive letter - /// has changed. Setting SLR_NOLINKINFO disables both types of tracking. + /// Disable distributed link tracking. By default, distributed link tracking tracks + /// removable media across multiple devices based on the volume name. It also uses the + /// Universal Naming Convention (UNC) path to track remote file systems whose drive letter + /// has changed. Setting SLR_NOLINKINFO disables both types of tracking. /// SLR_NOLINKINFO = 0x40,