private IntPtr DlgWndHookCallbackFunction(int code, IntPtr wParam, IntPtr lParam) { PI.CWPSTRUCT msg = (PI.CWPSTRUCT)System.Runtime.InteropServices .Marshal.PtrToStructure(lParam, typeof(PI.CWPSTRUCT)); if (msg.hwnd == panelPtr) { switch (msg.message) { case (int)PI.WM.MOVE: case (int)PI.WM.SIZE: ChangeUISize(); break; } return(PI.CallNextHookEx(IntPtr.Zero, code, wParam, lParam)); } if (msg.hwnd == dialogHandle) { switch (msg.message) { case (int)PI.WM.GETTEXTLENGTH: return((IntPtr)newCapt.Length); case (int)PI.WM.SETTEXT: return(IntPtr.Zero); case (int)PI.WM.WINDOWPOSCHANGED: PI.WINDOWPOS p = new PI.WINDOWPOS(); p = (PI.WINDOWPOS) System.Runtime.InteropServices.Marshal .PtrToStructure(lParam, typeof(PI.WINDOWPOS)); break; case (int)PI.WM.DESTROY: PI.UnhookWindowsHookEx(dialogHookPtr); dialogHookPtr = IntPtr.Zero; dialogHandle = IntPtr.Zero; PI.SetParent(devicesTreeViewAdv.Handle, this.Handle); PI.SetParent(toolStrip.Handle, this.Handle); this.Controls.Add(devicesTreeViewAdv); this.Controls.Add(toolStrip); devicesTreeViewAdv.Hide(); System.Threading.Thread.Sleep(1); deviceIsShown = false; break; case (int)PI.WM.GETTEXT: System.Runtime.InteropServices.Marshal.Copy( newCapt, 0, lParam, newCapt.Length); return((IntPtr)newCapt.Length); } } return(PI.CallNextHookEx(IntPtr.Zero, code, wParam, lParam)); }
private IntPtr DlgWndHookCallbackFunction(int code, IntPtr wParam, IntPtr lParam) { PI.CWPSTRUCT msg = (PI.CWPSTRUCT)System.Runtime.InteropServices.Marshal.PtrToStructure(lParam, typeof(PI.CWPSTRUCT)); if (msg.hwnd == panelPtr) { switch (msg.message) { case (int)PI.WM.MOVE: case (int)PI.WM.SIZE: IntPtr dialogPtr = PI. GetParent(modesTreeViewAdv.Handle); PI.RECT rctDialog; PI.RECT rctPanel; PI.GetWindowRect(dialogPtr, out rctDialog); PI.GetWindowRect(panelPtr, out rctPanel); int w = rctDialog.Right - rctDialog.Left; int h = rctDialog.Bottom - rctDialog.Top; toolStrip.Location = new Point(0, 0); modesTreeViewAdv.Location = new Point(0, 0 + toolStrip.Height); toolStrip.Width = w; modesTreeViewAdv.Width = w; modesTreeViewAdv.Height = h - toolStrip.Height; break; } return(PI.CallNextHookEx(IntPtr.Zero, code, wParam, lParam)); } if (msg.hwnd == dialogHandle) { switch (msg.message) { case (int)PI.WM.GETTEXTLENGTH: return((IntPtr)newCapt.Length); case (int)PI.WM.SETTEXT: return(IntPtr.Zero); case (int)PI.WM.WINDOWPOSCHANGED: PI.WINDOWPOS p = new PI.WINDOWPOS(); p = (PI.WINDOWPOS) System.Runtime.InteropServices.Marshal.PtrToStructure( lParam, typeof(PI.WINDOWPOS)); break; case (int)PI.WM.DESTROY: PI.UnhookWindowsHookEx(dialogHookPtr); dialogHookPtr = IntPtr.Zero; dialogHandle = IntPtr.Zero; PI.SetParent(modesTreeViewAdv.Handle, this.Handle); PI.SetParent(toolStrip.Handle, this.Handle); this.Controls.Add(modesTreeViewAdv); this.Controls.Add(toolStrip); modesTreeViewAdv.Hide(); System.Threading.Thread.Sleep(1); modeIsShown = false; break; case (int)PI.WM.GETTEXT: System.Runtime.InteropServices.Marshal.Copy( newCapt, 0, lParam, newCapt.Length); return((IntPtr)newCapt.Length); } } return(PI.CallNextHookEx(IntPtr.Zero, code, wParam, lParam)); }