using System; using System.Drawing; using System.Runtime.InteropServices; using System.Windows.Forms; namespace Foo.Deskband.BandObject { abstract class ExplorerGUIDs { public static readonly Guid IID_IWebBrowserApp = new Guid("{0002DF05-0000-0000-C000-000000000046}"); public static readonly Guid IID_IUnknown = new Guid("{00000000-0000-0000-C000-000000000046}"); } [Flags] public enum DBIM : uint { MINSIZE = 0x0001, MAXSIZE = 0x0002, INTEGRAL = 0x0004, ACTUAL = 0x0008, TITLE = 0x0010, MODEFLAGS = 0x0020, BKCOLOR = 0x0040, } [Flags] public enum DBIMF : uint { NORMAL = 0x0001, FIXED = 0x0002, FIXEDBMP = 0x0004, VARIABLEHEIGHT = 0x0008, UNDELETEABLE = 0x0010, DEBOSSED = 0x0020, BKCOLOR = 0x0040, USECHEVRON = 0x0080, BREAK = 0x0100, ADDTOFRONT = 0x0200, TOPALIGN = 0x0400, NOGRIPPER = 0x0800, ALWAYSGRIPPER = 0x1000, NOMARGINS = 0x2000, } [Flags] public enum DBIF : uint { VIEWMODE_NORMAL = 0x0000, VIEWMODE_VERTICAL = 0x0001, VIEWMODE_FLOATING = 0x0002, VIEWMODE_TRANSPARENT = 0x0004 } [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Unicode)] public struct DESKBANDINFO { public DBIM dwMask; public Point ptMinSize; public Point ptMaxSize; public Point ptIntegral; public Point ptActual; [MarshalAs(UnmanagedType.ByValTStr, SizeConst=255)] public String wszTitle; public DBIMF dwModeFlags; public Int32 crBkgnd; }; [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct CMINVOKECOMMANDINFO { uint cbSize; uint fMask; IntPtr hwnd; string lpVerb; string lpParameters; string lpDirectory; int nShow; uint dwHotKey; IntPtr hIcon; }; [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("FC4801A3-2BA9-11CF-A229-00AA003D7352")] public interface IObjectWithSite { void SetSite([In ,MarshalAs(UnmanagedType.IUnknown)] Object pUnkSite); void GetSite(ref Guid riid, [MarshalAs(UnmanagedType.IUnknown)] out Object ppvSite); } [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("00000114-0000-0000-C000-000000000046")] public interface IOleWindow { void GetWindow(out System.IntPtr phwnd); void ContextSensitiveHelp([In] bool fEnterMode); } [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("012dd920-7b26-11d0-8ca9-00a0c92dbfe8")] public interface IDockingWindow { void GetWindow(out System.IntPtr phwnd); void ContextSensitiveHelp([In] bool fEnterMode); void ShowDW([In] bool fShow); void CloseDW([In] UInt32 dwReserved); void ResizeBorderDW( IntPtr prcBorder, [In, MarshalAs(UnmanagedType.IUnknown)] Object punkToolbarSite, bool fReserved); } [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("EB0FE172-1A3A-11D0-89B3-00A0C90A90AC")] public interface IDeskBand { void GetWindow(out System.IntPtr phwnd); void ContextSensitiveHelp([In] bool fEnterMode); void ShowDW([In] bool fShow); void CloseDW([In] UInt32 dwReserved); void ResizeBorderDW( IntPtr prcBorder, [In, MarshalAs(UnmanagedType.IUnknown)] Object punkToolbarSite, bool fReserved); void GetBandInfo( UInt32 dwBandID, UInt32 dwViewMode, ref DESKBANDINFO pdbi); } [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsDual)] [Guid("79D16DE4-ABEE-4021-8D9D-9169B261D657")] public interface IDeskBand2 { void GetBandInfo(UInt32 dwBandID, UInt32 dwViewMode, ref DESKBANDINFO pdbi); void CanRenderComposited(ref bool pfCanRenderComposited); void GetCompositionState(ref bool pfCompositionEnabled); void SetCompositionState([MarshalAs(UnmanagedType.Bool)] bool fCompositionEnabled); } [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("0000010c-0000-0000-C000-000000000046")] public interface IPersist { void GetClassID(out Guid pClassID); } [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("00000109-0000-0000-C000-000000000046")] public interface IPersistStream { void GetClassID(out Guid pClassID); void IsDirty (); void Load ([In, MarshalAs(UnmanagedType.Interface)] Object pStm); void Save ([In, MarshalAs(UnmanagedType.Interface)] Object pStm, [In] bool fClearDirty); void GetSizeMax ([Out] out UInt64 pcbSize); } [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("6d5140c1-7436-11ce-8034-00aa006009fa")] public interface _IServiceProvider { void QueryService( ref Guid guid, ref Guid riid, [MarshalAs(UnmanagedType.Interface)] out Object Obj); } [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("68284faa-6a48-11d0-8c78-00c04fd918b4")] public interface IInputObject { void UIActivateIO(Int32 fActivate, ref MSG msg); [PreserveSig] //[return:MarshalAs(UnmanagedType.Error)] Int32 HasFocusIO(); [PreserveSig] Int32 TranslateAcceleratorIO(ref MSG msg); } [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("000214e4-0000-0000-c000-000000000046")] public interface IContextMenu { [PreserveSig()] int QueryContextMenu(uint hmenu, uint indexMenu, int idCmdFirst, int idCmdLast, uint uFlags); [PreserveSig()] void InvokeCommand (IntPtr pici); [PreserveSig()] void GetCommandString(int idCmd, uint uFlags, int reserved, string name, int cchMax); } [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("f1db8392-7331-11d0-8c99-00a0c92dbfe8")] public interface IInputObjectSite { [PreserveSig] Int32 OnFocusChangeIS( [MarshalAs(UnmanagedType.IUnknown)] Object punkObj, Int32 fSetFocus); } public struct POINT { public Int32 x; public Int32 y; } public struct MSG { public IntPtr hwnd; public UInt32 message; public UInt32 wParam; public Int32 lParam; public UInt32 time; public POINT pt; } }