private void DriveThread(object state) { var logger = new Logger(this); var config = new ShellFolderConfiguration(); config.Logger = logger; ShellFolderServer.RegisterNativeDll(RegistrationMode.User); ShellUtilities.RefreshShellViews(); do { try { using (_server = new OnDemandShellFolderServer(new DirectoryInfo(DriveService.AllRootsPath))) { _server.Start(config); AppendText("Started listening on proxy id " + ShellFolderServer.ProxyId); _serverStopEvent.WaitOne(); _server = null; return; } } catch (Exception e) { logger.Log(TraceLevel.Error, "An error occurred: " + e); Thread.Sleep(1000); } }while (true); }
private void Unregister_Click(object sender, RoutedEventArgs e) { ShellFolderServer.UnregisterNativeDll(RegistrationMode.User); ShellUtilities.RefreshShellViews(); AppendText("Native proxy was unregistered from HKCU."); }