Esempio n. 1
0
        public override void Refresh()
        {
            var data = new ApplicationBarData
            {
                cbSize = (uint)Marshal.SizeOf(typeof(ApplicationBarData)),
                hWnd   = this.TaskBarHandle
            };
            var result = TaskBarWin32.SHAppBarMessage(ApplicationBarCommand.GetTaskbarPos, ref data);

            if (result == IntPtr.Zero)
            {
                throw new InvalidOperationException();
            }

            this.Position = (TaskBarPosition)data.uEdge;
            this.Bounds   = Rectangle.FromLTRB(data.rc.Left, data.rc.Top, data.rc.Right, data.rc.Bottom);

            data.cbSize = (uint)Marshal.SizeOf(typeof(ApplicationBarData));
            result      = TaskBarWin32.SHAppBarMessage(ApplicationBarCommand.GetState, ref data);
            var state = result.ToInt32();

            this.AlwaysOnTop = (state & ApplicationBarState.AlwaysOnTop) == ApplicationBarState.AlwaysOnTop;
            this.AutoHide    = (state & ApplicationBarState.Autohide) == ApplicationBarState.Autohide;
        }
Esempio n. 2
0
 internal static extern IntPtr SHAppBarMessage(ApplicationBarCommand dwMessage, [In] ref ApplicationBarData pData);