// // Copyright (c) PlaceholderCompany. All rights reserved. // namespace SystemTrayMenu.DllImports { using System; using System.Runtime.InteropServices; /// /// wraps the methodcalls to native windows dll's. /// public static partial class NativeMethods { internal enum ABM : uint { New = 0x00000000, Remove = 0x00000001, QueryPos = 0x00000002, SetPos = 0x00000003, GetState = 0x00000004, GetTaskbarPos = 0x00000005, Activate = 0x00000006, GetAutoHideBar = 0x00000007, SetAutoHideBar = 0x00000008, WindowPosChanged = 0x00000009, SetState = 0x0000000A, } internal enum ABE : uint { Left = 0, Top = 1, Right = 2, Bottom = 3, } internal static IntPtr Shell32SHAppBarMessage(ABM dwMessage, [In] ref APPBARDATA pData) { return SHAppBarMessage(dwMessage, ref pData); } [DllImport("shell32.dll", SetLastError = true, CharSet = CharSet.Unicode)] [DefaultDllImportSearchPaths(DllImportSearchPath.UserDirectories)] private static extern IntPtr SHAppBarMessage(ABM dwMessage, [In] ref APPBARDATA pData); [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] internal struct APPBARDATA { public uint cbSize; public IntPtr hWnd; public uint uCallbackMessage; public ABE uEdge; public RECT rc; public int lParam; } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] internal struct RECT { public int left; public int top; public int right; public int bottom; } internal static class ABS { public const int Autohide = 0x0000001; public const int AlwaysOnTop = 0x0000002; } } }