/// <summary>
 /// Gets the WMI query string based on the current drive types.
 /// </summary>
 /// <returns></returns>
 protected virtual string GetWMIQueryStatement(TreeViewFolderBrowser treeView)
 {
     if ((treeView.DriveTypes & DriveTypes.All) == DriveTypes.All)
     {
         return(string.Empty);
     }
     //
     string where = string.Empty;
     //
     System.Array array = Enum.GetValues(typeof(DriveTypes));
     //
     foreach (DriveTypes type in array)
     {
         if ((treeView.DriveTypes & type) == type)
         {
             if (where == string.Empty)
             {
                 where += "drivetype = " + Enum.Format(typeof(Win32_LogicalDiskDriveTypes), Enum.Parse(typeof(Win32_LogicalDiskDriveTypes), type.ToString(), true), "d");
             }
             else
             {
                 where += " OR drivetype = " + Enum.Format(typeof(Win32_LogicalDiskDriveTypes), Enum.Parse(typeof(Win32_LogicalDiskDriveTypes), type.ToString(), true), "d");
             }
         }
     }
     //
     return(where);
 }
 /// <summary>
 /// Extract the icon for the file type (Extension)
 /// </summary>
 protected virtual void SetIcon(TreeViewFolderBrowser treeView, TreeNodePath node)
 {
     // create on demand
     if (_systemImageList == null)
     {
         // Shell32 ImageList
         _systemImageList = new RootKit.Win32.SystemImageList(RootKit.Win32.SystemImageListSize.SmallIcons);
         RootKit.Win32.SystemImageListHelper.SetTreeViewImageList(treeView, _systemImageList, false);
     }
     node.ImageIndex         = this._systemImageList.IconIndex(node.Path, true);
     node.SelectedImageIndex = node.ImageIndex;
 }
 /// <summary>
 /// Initialize a new instance of TreeViewFolderBrowserHelper for the specified TreeViewFolderBrowser instance.
 /// </summary>
 /// <param name="treeView"></param>
 internal TreeViewFolderBrowserHelper(TreeViewFolderBrowser treeView)
 {
     _treeView = treeView;
 }