[ComImport(), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), GuidAttribute(000214e8-0000-0000-c000-000000000046)] public interface IShellExtInit { } [ComImport(), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), GuidAttribute(000214e4-0000-0000-c000-000000000046)] public interface IContextMenu { }
[StructLayout(LayoutKind.Sequential)] public struct MENUITEMINFO { public uint cbSize; public uint fMask; public uint fType; public uint fState; public int wID; public int hSubMenu; public int hbmpChecked; public int hbmpUnchecked; public int dwItemData; public string dwTypeData; public uint cch; public int hbmpItem; } [StructLayout(LayoutKind.Sequential)] public struct MENUINFO { public uint cbSize; public uint fMask; public uint dwStyle; public uint cyMax; public int hbrBack; public uint dwContextHelpID; public IntPtr dwMenuData; }
[DllImport("shell32")] static public extern uint DragQueryFile(uint hDrop,uint iFile, StringBuilder buffer, int cch); [DllImport("user32")] static public extern int InsertMenuItem(uint hmenu, uint uposition, uint uflags, ref MENUITEMINFO mii); [DllImport("user32")] static public extern int CreateMenu(); [DllImport("user32")] public static extern int CreatePopupMenu(); [DllImport("user32")] public static extern int SetMenuItemBitmaps(uint hMenu, int nPosition, int wFlags, uint hBitmapUnchecked, uint hBitmapChecked);
[Guid("458F56C9-ABF5-4b45-B7C4-9A0CCB11E34E"), ComVisible(true)] public class SendFileToMessenger : IContextMenu, IShellExtInit { }
[assembly:ComVisible(false)]
[System.Runtime.InteropServices.ComRegisterFunctionAttribute()] public static void RegisterServer(Type t) { } [System.Runtime.InteropServices.ComUnregisterFunctionAttribute()] public static void UnregisterServer(Type t) { }