using System; using System.Runtime.InteropServices; namespace SystemTrayMenu.DllImports { public static partial class NativeMethods { // The TrackPopupMenuEx function displays a shortcut menu at the specified location and tracks the selection of items on the shortcut menu. The shortcut menu can appear anywhere on the screen. [DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Unicode)] private static extern uint TrackPopupMenuEx(IntPtr hmenu, TPM flags, int x, int y, IntPtr hwnd, IntPtr lptpm); internal static uint User32TrackPopupMenuEx(IntPtr hmenu, TPM flags, int x, int y, IntPtr hwnd, IntPtr lptpm) { return TrackPopupMenuEx(hmenu, flags, x, y, hwnd, lptpm); } // Specifies how TrackPopupMenuEx positions the shortcut menu horizontally [Flags] internal enum TPM : uint { LEFTBUTTON = 0x0000, RIGHTBUTTON = 0x0002, //LEFTALIGN = 0x0000, CENTERALIGN = 0x0004, RIGHTALIGN = 0x0008, //TOPALIGN = 0x0000, VCENTERALIGN = 0x0010, BOTTOMALIGN = 0x0020, //HORIZONTAL = 0x0000, VERTICAL = 0x0040, NONOTIFY = 0x0080, RETURNCMD = 0x0100, RECURSE = 0x0001, HORPOSANIMATION = 0x0400, HORNEGANIMATION = 0x0800, VERPOSANIMATION = 0x1000, VERNEGANIMATION = 0x2000, NOANIMATION = 0x4000, LAYOUTRTL = 0x8000 } } }