示例#1
0
 internal static void HandleRenaming(ListViewWrapper lvw, IntPtr pIDL, Control ctrl) {
     if(pIDL != IntPtr.Zero) {
         StringBuilder pszPath = new StringBuilder(260);
         if(PInvoke.SHGetPathFromIDList(pIDL, pszPath) && (pszPath.Length > 0)) {
             string path = pszPath.ToString();
             if(!Directory.Exists(path)) {
                 if(File.Exists(path)) {
                     string extension = Path.GetExtension(path);
                     if(!string.IsNullOrEmpty(extension) && (extension.Equals(".lnk", StringComparison.OrdinalIgnoreCase) || extension.Equals(".url", StringComparison.OrdinalIgnoreCase))) {
                         return;
                     }
                 }
                 IntPtr hWnd = lvw.GetEditControl();
                 if(hWnd != IntPtr.Zero) {
                     IntPtr lParam = Marshal.AllocHGlobal(520);
                     if(0 < ((int)PInvoke.SendMessage(hWnd, WM.GETTEXT, (IntPtr)260, lParam))) {
                         string str3 = Marshal.PtrToStringUni(lParam);
                         if(str3.Length > 2) {
                             int num = str3.LastIndexOf(".");
                             if(num > 0) {
                                 new WaitTimeoutCallback(QTTabBarClass.WaitTimeout).BeginInvoke(0x4b, new AsyncCallback(QTTabBarClass.AsyncComplete_ItemEdit), new object[] { hWnd, num, ctrl });
                             }
                         }
                     }
                     Marshal.FreeHGlobal(lParam);
                 }
             }
         }
     }
 }
示例#2
0
        private void InitializeOpenedWindow() {
            this.IsShown = true;
            QTUtility.RegisterPrimaryInstance(this.ExplorerHandle, this);
            this.InstallHooks();
            this.pluginManager = new PluginManager(this);
            if(!this.SyncButtonBarCurrent(0x100)) {
                new WaitTimeoutCallback(QTTabBarClass.WaitTimeout).BeginInvoke(0x7d0, new AsyncCallback(this.AsyncComplete_ButtonBarPlugin), null);
            }
            if(QTUtility.CheckConfig(Settings.HideMenuBar)) {
                WindowUtils.ShowMenuBar(false, base.ReBarHandle);
            }
            if(QTUtility.CheckConfig(Settings.SaveTransparency) && (QTUtility.WindowAlpha < 0xff)) {
                PInvoke.SetWindowLongPtr(this.ExplorerHandle, -20, PInvoke.Ptr_OP_OR(PInvoke.GetWindowLongPtr(this.ExplorerHandle, -20), 0x80000));
                PInvoke.SetLayeredWindowAttributes(this.ExplorerHandle, 0, QTUtility.WindowAlpha, 2);
            }

            listViewWrapper = new ListViewWrapper(ShellBrowser, ExplorerHandle);
            listViewWrapper.SVDestroy       += ListView_SVDestroy;
            listViewWrapper.SVMouseActivate += ListView_SVMouseActivate;
            listViewWrapper.ItemInserted    += ListView_ItemInserted;
            listViewWrapper.ItemDeleted     += ListView_ItemDeleted;
            listViewWrapper.ItemActivated   += ListView_ItemActivated;
            listViewWrapper.AllItemsDeleted += ListView_AllItemsDeleted;
            listViewWrapper.SelectionChanged+= ListView_SelectionChanged;
            listViewWrapper.BeginDrag       += ListView_BeginDrag;
            listViewWrapper.DropHilighted   += ListView_DropHilighted;
            listViewWrapper.HotTrack        += ListView_HotTrack;
            listViewWrapper.MiddleClick     += ListView_MiddleClick;
            listViewWrapper.DoubleClick     += ListView_DoubleClick;
            listViewWrapper.KeyDown         += ListView_KeyDown;
            listViewWrapper.GetInfoTip      += ListView_GetInfoTip;
            listViewWrapper.BeginLabelEdit  += ListView_BeginLabelEdit;
            listViewWrapper.EndLabelEdit    += ListView_EndLabelEdit;
            listViewWrapper.BeginScroll     += ListView_BeginScroll;
            listViewWrapper.MouseLeave      += ListView_MouseLeave;
            
        }
示例#3
0
 internal static void HandleF2(ListViewWrapper listViewWrapper) {
     IntPtr hWnd = listViewWrapper.GetEditControl();
     if(hWnd != IntPtr.Zero) {
         IntPtr lParam = Marshal.AllocHGlobal(520);
         if(0 < ((int)PInvoke.SendMessage(hWnd, 13, (IntPtr)260, lParam))) {
             string str = Marshal.PtrToStringUni(lParam);
             if(str.Length > 2) {
                 int num = str.LastIndexOf(".");
                 if(num != -1) {
                     IntPtr ptr3 = PInvoke.SendMessage(hWnd, 0xb0, IntPtr.Zero, IntPtr.Zero);
                     int num2 = QTUtility2.GET_X_LPARAM(ptr3);
                     int length = QTUtility2.GET_Y_LPARAM(ptr3);
                     if((length - num2) >= 0) {
                         if((num2 == 0) && (length == num)) {
                             num2 = length = num;
                         }
                         else if((num2 == length) && (length == num)) {
                             num2 = num + 1;
                             length = str.Length;
                         }
                         else if((num2 == (num + 1)) && (length == str.Length)) {
                             num2 = 0;
                             length = -1;
                         }
                         else if((num2 == 0) && (length == str.Length)) {
                             num2 = 0;
                             length = 0;
                         }
                         else {
                             num2 = 0;
                             length = num;
                         }
                         PInvoke.SendMessage(hWnd, 0xb1, (IntPtr)num2, (IntPtr)length);
                     }
                 }
             }
         }
         Marshal.FreeHGlobal(lParam);
     }
 }