private void InitRootItems() {
this.imagesQueue.Clear();
this.childsQueue.Clear();
this.UpdatedImages.Clear();
this.CheckedFroChilds.Clear();
var favoritesItem = FileSystemListItem.ToFileSystemItem(IntPtr.Zero, ((ShellItem)KnownFolders.Links).ParsingName.ToShellParsingName());
var favoritesRoot = new TreeNode((favoritesItem).DisplayName);
favoritesRoot.Tag = FileSystemListItem.ToFileSystemItem(IntPtr.Zero, ((ShellItem)KnownFolders.Links).ParsingName.ToShellParsingName());
favoritesRoot.ImageIndex = ((ShellItem)KnownFolders.Favorites).GetSystemImageListIndex(ShellIconType.SmallIcon, ShellIconFlags.OpenIcon);
favoritesRoot.SelectedImageIndex = favoritesRoot.ImageIndex;
if (favoritesItem.Count() > 0)
favoritesRoot.Nodes.Add(_EmptyItemString);
var librariesItem = FileSystemListItem.ToFileSystemItem(IntPtr.Zero, ((ShellItem)KnownFolders.Libraries).ParsingName.ToShellParsingName());
var librariesRoot = new TreeNode(librariesItem.DisplayName);
librariesRoot.Tag = FileSystemListItem.ToFileSystemItem(IntPtr.Zero, ((ShellItem)KnownFolders.Libraries).ParsingName.ToShellParsingName()); ;
librariesRoot.ImageIndex = librariesItem.GetSystemImageListIndex(librariesItem.PIDL, ShellIconType.SmallIcon, ShellIconFlags.OpenIcon);
librariesRoot.SelectedImageIndex = librariesRoot.ImageIndex;
if (librariesItem.HasSubFolders)
librariesRoot.Nodes.Add(_EmptyItemString);
var computerItem = FileSystemListItem.ToFileSystemItem(IntPtr.Zero, ((ShellItem)KnownFolders.Computer).ParsingName.ToShellParsingName());
var computerRoot = new TreeNode(computerItem.DisplayName);
computerRoot.Tag = computerItem;
computerRoot.ImageIndex = computerItem.GetSystemImageListIndex(computerItem.PIDL, ShellIconType.SmallIcon, ShellIconFlags.OpenIcon);
computerRoot.SelectedImageIndex = computerRoot.ImageIndex;
if (computerItem.HasSubFolders)
computerRoot.Nodes.Add(_EmptyItemString);
var networkItem = FileSystemListItem.ToFileSystemItem(IntPtr.Zero, ((ShellItem)KnownFolders.Network).ParsingName.ToShellParsingName());
var networkRoot = new TreeNode(networkItem.DisplayName);
networkRoot.Tag = networkItem;
networkRoot.ImageIndex = networkItem.GetSystemImageListIndex(networkItem.PIDL, ShellIconType.SmallIcon, ShellIconFlags.OpenIcon);
networkRoot.SelectedImageIndex = networkRoot.ImageIndex;
networkRoot.Nodes.Add(_EmptyItemString);
ShellTreeView.Nodes.Add(favoritesRoot);
favoritesRoot.Expand();
ShellTreeView.Nodes.AddRange(new[] { new TreeNode(), librariesRoot, new TreeNode(), computerRoot, new TreeNode(), networkRoot });
librariesRoot.Expand();
computerRoot.Expand();
}