BrightnessTray.WindowPositioning.GetTaskBarInfo C# (CSharp) Метод

GetTaskBarInfo() публичный статический Метод

Retrieves taskbar position and alignment.
public static GetTaskBarInfo ( ) : TaskBarInfo
Результат TaskBarInfo
        public static TaskBarInfo GetTaskBarInfo()
        {
            // allocate appbardata structure
            NativeMethods.APPBARDATA abdata = new NativeMethods.APPBARDATA() { hWnd = IntPtr.Zero };
            abdata.cbSize = (uint)Marshal.SizeOf(abdata);

            // get task bar info
            IntPtr result = NativeMethods.SHAppBarMessage(NativeMethods.ABMsg.ABM_GETTASKBARPOS, ref abdata);

            // return null if the call failed
            if (result == IntPtr.Zero)
                throw new Exception("Could not retrieve taskbar information.");

            Rect position = abdata.rc;

            TaskBarAlignment alignment;

            switch (abdata.uEdge)
            {
                case NativeMethods.ABEdge.ABE_BOTTOM:
                    alignment = TaskBarAlignment.Bottom;
                    break;
                case NativeMethods.ABEdge.ABE_TOP:
                    alignment = TaskBarAlignment.Top;
                    break;
                case NativeMethods.ABEdge.ABE_LEFT:
                    alignment = TaskBarAlignment.Left;
                    break;
                case NativeMethods.ABEdge.ABE_RIGHT:
                    alignment = TaskBarAlignment.Right;
                    break;
                default:
                    throw new ArgumentOutOfRangeException("Couldn't retrieve location of taskbar.");
            }

            return new TaskBarInfo() { Position = position, Alignment = alignment };
        }