2020-03-28 08:43:16 +13:00
using System ;
using System.Runtime.InteropServices ;
2020-03-30 06:26:45 +13:00
namespace SystemTrayMenu.DllImports
2020-03-28 08:43:16 +13:00
{
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.
2020-04-12 05:32:52 +12:00
[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
2020-03-28 08:43:16 +13:00
private static extern uint TrackPopupMenuEx ( IntPtr hmenu , TPM flags , int x , int y , IntPtr hwnd , IntPtr lptpm ) ;
2020-03-30 00:20:18 +13:00
internal static uint User32TrackPopupMenuEx ( IntPtr hmenu , TPM flags , int x , int y , IntPtr hwnd , IntPtr lptpm )
2020-03-28 08:43:16 +13:00
{
return TrackPopupMenuEx ( hmenu , flags , x , y , hwnd , lptpm ) ;
}
// Specifies how TrackPopupMenuEx positions the shortcut menu horizontally
[Flags]
2020-03-30 00:20:18 +13:00
internal enum TPM : uint
2020-03-28 08:43:16 +13:00
{
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
}
}
}