public RootFolder(LocalShellFolderServer server, ShellItemIdList idList) : base(idList) { if (server == null) { throw new ArgumentNullException(nameof(server)); } Server = server; _dropTarget = new DropTargetShellFolder(this); }
static void Run(bool register) { var info = new DirectoryInfo(Path.GetFullPath("Data")); if (!info.Exists) { info.Create(); info.Refresh(); } using (var server = new LocalShellFolderServer(info)) { var config = new ShellFolderConfiguration(); if (register) { config.NativeDllRegistration = RegistrationMode.User; } #if DEBUG config.Logger = new Core.Utilities.ConsoleLogger(); #endif server.Start(config); var idl = ShellFolderServer.RootIdList; Console.WriteLine("Started listening on proxy id " + ShellFolderServer.ProxyId + ", folder id " + ShellFolderServer.FolderId + ". Press ESC key to stop serving folders."); Console.WriteLine("If you open Windows Explorer and have registered, you should now see the extension."); do { var key = Console.ReadKey(true); if (key.Key == ConsoleKey.Escape) { break; } if (key.Key == ConsoleKey.C) { Console.Clear(); continue; } }while (true); Console.WriteLine("Stopped"); } }