private SHAppBarMessage ( ABM dwMessage, [ pData ) : IntPtr | ||
dwMessage | ABM | |
pData | [ | |
return | IntPtr |
public Taskbar() { var taskbarHandle = WinApi.FindWindow(ClassName, null); var data = new WinApi.APPBARDATA(); data.cbSize = (uint)Marshal.SizeOf(typeof(WinApi.APPBARDATA)); data.hWnd = taskbarHandle; var result = WinApi.SHAppBarMessage(WinApi.ABM.GetTaskbarPos, ref data); if (result == IntPtr.Zero) { throw new InvalidOperationException(); } Position = (TaskbarPosition)data.uEdge; Bounds = Rectangle.FromLTRB(data.rc.Left, data.rc.Top, data.rc.Right, data.rc.Bottom); data.cbSize = (uint)Marshal.SizeOf(typeof(WinApi.APPBARDATA)); result = WinApi.SHAppBarMessage(WinApi.ABM.GetState, ref data); var state = result.ToInt32(); AlwaysOnTop = (state & WinApi.AlwaysOnTop) == WinApi.AlwaysOnTop; AutoHide = (state & WinApi.Autohide) == WinApi.Autohide; }
public Taskbar() { IntPtr hWnd = WinApi.FindWindow("Shell_TrayWnd", null); WinApi.APPBARDATA appbardata = default(WinApi.APPBARDATA); appbardata.cbSize = (uint)Marshal.SizeOf(typeof(WinApi.APPBARDATA)); appbardata.hWnd = hWnd; IntPtr value = WinApi.SHAppBarMessage(WinApi.ABM.GetTaskbarPos, ref appbardata); if (value == IntPtr.Zero) { throw new InvalidOperationException(); } this.Position = (TaskbarPosition)appbardata.uEdge; this.Bounds = Rectangle.FromLTRB(appbardata.rc.Left, appbardata.rc.Top, appbardata.rc.Right, appbardata.rc.Bottom); appbardata.cbSize = (uint)Marshal.SizeOf(typeof(WinApi.APPBARDATA)); int num = WinApi.SHAppBarMessage(WinApi.ABM.GetState, ref appbardata).ToInt32(); this.AlwaysOnTop = ((num & 2) == 2); this.AutoHide = ((num & 1) == 1); }
public Taskbar() { IntPtr intPtr = WinApi.FindWindow("Shell_TrayWnd", null); WinApi.APPBARDATA aPPBARDATum = new WinApi.APPBARDATA() { cbSize = (uint)Marshal.SizeOf(typeof(WinApi.APPBARDATA)), hWnd = intPtr }; if (WinApi.SHAppBarMessage(WinApi.ABM.GetTaskbarPos, ref aPPBARDATum) == IntPtr.Zero) { throw new InvalidOperationException(); } this.Position = (TaskbarPosition)aPPBARDATum.uEdge; this.Bounds = Rectangle.FromLTRB(aPPBARDATum.rc.Left, aPPBARDATum.rc.Top, aPPBARDATum.rc.Right, aPPBARDATum.rc.Bottom); aPPBARDATum.cbSize = (uint)Marshal.SizeOf(typeof(WinApi.APPBARDATA)); IntPtr intPtr1 = WinApi.SHAppBarMessage(WinApi.ABM.GetState, ref aPPBARDATum); int num = intPtr1.ToInt32(); this.AlwaysOnTop = (num & 2) == 2; this.AutoHide = (num & 1) == 1; }