SHAppBarMessage() private method

private SHAppBarMessage ( ABM dwMessage, [ pData ) : IntPtr
dwMessage ABM
pData [
return IntPtr
Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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;
        }