Changeset 2787


Ignore:
Timestamp:
7/31/2012 6:25:47 AM (2 years ago)
Author:
lowjoel
Message:

Fix exception on startup when erasing from the shell context menu extension.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/EraserService/Eraser/Program.cs

    r2771 r2787  
    598598        private static void CommandShell(ConsoleArguments args) 
    599599        { 
    600             ShellArguments arguments = (ShellArguments)args; 
    601             Task task = TaskFromCommandLine(arguments); 
    602  
    603             //Confirm that the user wants the erase. 
    604             if (arguments.Confirm) 
    605             { 
    606                 //Do we have a parent dialog? 
    607                 IWin32Window parent = null; 
    608                 if (!string.IsNullOrEmpty(arguments.Parent)) 
    609                 { 
    610                     //We do. Get the handle 
    611                     parent = new Win32Window((IntPtr)(ulong) 
    612                         Convert.ChangeType(arguments.Parent, typeof(ulong))); 
    613  
    614                     //And find the top-level window of the handle. 
    615                     IWin32Window topLevel = UserApi.GetAncestor(parent, 
    616                         UserApi.GetAncestorFlags.GA_ROOT); 
    617                     if (topLevel != null) 
    618                         parent = topLevel; 
    619                 } 
    620  
    621                 using (Form dialog = new ShellConfirmationDialog(task)) 
    622                 { 
    623                     if (dialog.ShowDialog(parent) != DialogResult.Yes) 
    624                         return; 
    625                 } 
    626             } 
    627  
    628             //Then queue for erasure. 
    629600            using (eraserClient = ConnectExecutor()) 
     601            { 
     602                ShellArguments arguments = (ShellArguments)args; 
     603                Task task = TaskFromCommandLine(arguments); 
     604 
     605                //Confirm that the user wants the erase. 
     606                if (arguments.Confirm) 
     607                { 
     608                    //Do we have a parent dialog? 
     609                    IWin32Window parent = null; 
     610                    if (!string.IsNullOrEmpty(arguments.Parent)) 
     611                    { 
     612                        //We do. Get the handle 
     613                        parent = new Win32Window((IntPtr)(ulong) 
     614                            Convert.ChangeType(arguments.Parent, typeof(ulong))); 
     615 
     616                        //And find the top-level window of the handle. 
     617                        IWin32Window topLevel = UserApi.GetAncestor(parent, 
     618                            UserApi.GetAncestorFlags.GA_ROOT); 
     619                        if (topLevel != null) 
     620                            parent = topLevel; 
     621                    } 
     622 
     623                    using (Form dialog = new ShellConfirmationDialog(task)) 
     624                    { 
     625                        if (dialog.ShowDialog(parent) != DialogResult.Yes) 
     626                            return; 
     627                    } 
     628                } 
     629 
     630                //Then queue for erasure. 
    630631                eraserClient.Tasks.Add(task); 
     632            } 
    631633        } 
    632634        #endregion 
Note: See TracChangeset for help on using the changeset viewer.