void IContextMenu.InvokeCommand(IntPtr pici)
        {
            InvokeCommandInfo cmdInfo = (InvokeCommandInfo)Marshal.PtrToStructure(pici, typeof(Win32API.InvokeCommandInfo));
            StringBuilder     sb      = new StringBuilder(1024);
            StringBuilder     sbAll   = new StringBuilder();
            uint nselected            = Helpers.DragQueryFile((uint)_UnionMember, 0xffffffff, null, 0);

            for (uint i = 0; i < nselected; i++)
            {
                Helpers.DragQueryFile((uint)_UnionMember, i, sb, sb.Capacity + 1);
                sbAll.Append(sb.ToString());
            }

            switch (cmdInfo.Verb.ToInt32())
            {
            case 0:
                //删除 .svn
                DeleteMatchingFolder(sbAll.ToString(), ".svn");
                break;

            case 1:
                //删除 Thumbs.db
                DeleteMatchingFile(sbAll.ToString(), "Thumbs.db");
                break;

            case 2:
                //批量重命名
                BatchRenameForm renameForm = new BatchRenameForm(sbAll.ToString());
                renameForm.Show();
                break;

            case 3:
                //批量文本编码格式转换
                EncodingConvertForm encodingForm = new EncodingConvertForm(sbAll.ToString());
                encodingForm.Show();
                break;

            case 4:
                //发送反馈邮件
                Process proc = new Process();
                proc.StartInfo.FileName       = "IExplore.exe";
                proc.StartInfo.CreateNoWindow = true;
                proc.StartInfo.Arguments      = "mailto:[email protected]?subject=ContextMenuExtensionFactory Suggestion";
                proc.Start();
                proc.WaitForExit();
                proc.Close();
                break;

            default:
                break;
            }
        }
        public void TestBatchRename()
        {
            BatchRenameForm from = new BatchRenameForm(@"E:\MySolution\GreedyPenguin");

            from.ShowDialog();
        }
        void IContextMenu.InvokeCommand(IntPtr pici)
        {
            InvokeCommandInfo cmdInfo = (InvokeCommandInfo)Marshal.PtrToStructure(pici, typeof(Win32API.InvokeCommandInfo));
            StringBuilder sb = new StringBuilder(1024);
            StringBuilder sbAll = new StringBuilder();
            uint nselected = Helpers.DragQueryFile((uint)_UnionMember, 0xffffffff, null, 0);
            for (uint i = 0; i < nselected; i++)
            {
                Helpers.DragQueryFile((uint)_UnionMember, i, sb, sb.Capacity + 1);
                sbAll.Append(sb.ToString());
            }

            switch (cmdInfo.Verb.ToInt32())
            {
                case 0:
                    //删除 .svn
                    DeleteMatchingFolder(sbAll.ToString(), ".svn");
                    break;
                case 1:
                    //删除 Thumbs.db
                    DeleteMatchingFile(sbAll.ToString(), "Thumbs.db");
                    break;
                case 2:
                    //批量重命名
                    BatchRenameForm renameForm = new BatchRenameForm(sbAll.ToString());
                    renameForm.Show();
                    break;
                case 3:
                    //批量文本编码格式转换
                    EncodingConvertForm encodingForm = new EncodingConvertForm(sbAll.ToString());
                    encodingForm.Show();
                    break;
                case 4:
                    //发送反馈邮件
                    Process proc = new Process();
                    proc.StartInfo.FileName = "IExplore.exe";
                    proc.StartInfo.CreateNoWindow = true;
                    proc.StartInfo.Arguments = "mailto:[email protected]?subject=ContextMenuExtensionFactory Suggestion";
                    proc.Start();
                    proc.WaitForExit();
                    proc.Close();
                    break;
                default:
                    break;
            }
        }