IDeskBand (Interfaces)
Last changed: -72.54.8.242

.
Summary
IDeskBand is used to obtain information about a band object.

C# Signature:

[ComImport]
[Guid ("EB0FE172-1A3A-11D0-89B3-00A0C90A90AC")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IDeskBand
{
    // IOleWindow methods
    [PreserveSig] int GetWindow (out IntPtr phwnd) ;
    [PreserveSig] int ContextSensitiveHelp ([In, MarshalAs (UnmanagedType.Bool)] bool fEnterMode) ;

    // IDockingWindow methods
    [PreserveSig] int ShowDW ([In, MarshalAs (UnmanagedType.Bool)] bool fShow) ;            
    [PreserveSig] int CloseDW([In] Int32 dwReserved) ;
    [PreserveSig] int ResizeBorderDW (ref RECT rcBorder, [In, MarshalAs (UnmanagedType.IUnknown)] ref object punkToolbarSite, [MarshalAs (UnmanagedType.Bool)] bool fReserved) ;

    // IDeskBand method
    [PreserveSig] int GetBandInfo ([In] Int32 dwBandID, [In] Int32 dwViewMode, [In, Out] ref ShellDeskBand.DeskBandInfo pdbi) ;
}

VB Signature:

// Please add...

User-Defined Types:

[Flags]
public enum DeskBandInfoMasks : int
{
     DBIM_MINSIZE    = 0x0001,
     DBIM_MAXSIZE    = 0x0002,
     DBIM_INTEGRAL   = 0x0004,
     DBIM_ACTUAL     = 0x0008,
     DBIM_TITLE      = 0x0010,
     DBIM_MODEFLAGS  = 0x0020,
     DBIM_BKCOLOR    = 0x0040
}

[Flags]
public enum DeskBandInfoModes : int
{
     DBIMF_NORMAL        = 0x0000,
     DBIMF_FIXED         = 0x0001,
     DBIMF_FIXEDBMP      = 0x0004,   // a fixed background bitmap (if supported)
     DBIMF_VARIABLEHEIGHT    = 0x0008,
     DBIMF_UNDELETEABLE      = 0x0010,
     DBIMF_DEBOSSED      = 0x0020,
     DBIMF_BKCOLOR       = 0x0040,
     DBIMF_USECHEVRON    = 0x0080,
     DBIMF_BREAK         = 0x0100,
     DBIMF_ADDTOFRONT    = 0x0200,
     DBIMF_TOPALIGN      = 0x0400

}

[Flags]
public enum DeskBandInfoViewMode : int
{
     DBIF_VIEWMODE_NORMAL     = 0x0000,
     DBIF_VIEWMODE_VERTICAL       = 0x0001,
     DBIF_VIEWMODE_FLOATING       = 0x0002,
     DBIF_VIEWMODE_TRANSPARENT    = 0x0004
}

[Flags]
public enum DeskBandCommands : int
{
     DBID_BANDINFOCHANGED  = 0,
     DBID_SHOWONLY         = 1,
     DBID_MAXIMIZEBAND     = 2,
     DBID_PUSHCHEVRON      = 3,
     DBID_DELAYINIT    = 4,
     DBID_FINISHINIT       = 5,
     DBID_SETWINDOWTHEME   = 6,
     DBID_PERMITAUTOHIDE   = 7
}

// NOTE: Could possibly use some struct from System.Drawing instead.
// NOTE: This struct is used in IDeskBand::ResizeBorderDW    
[StructLayout (LayoutKind.Sequential)]
public struct RECT
{
     public Int32  left;
     public Int32  top;
     public Int32  right;
     public Int32  bottom;
}

// NOTE: Could possibly use some struct from System.Drawing instead.
// NOTE: This struct is used in the DeskBandInfo struct below.
[StructLayout (LayoutKind.Sequential)]
public struct POINTL
{
    public Int32   x;
    public Int32   y;
}

[StructLayout (LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct DeskBandInfo
{
     public Int32   dwMask;
     public POINTL  ptMinSize;
     public POINTL  ptMaxSize;
     public POINTL  ptIntegral;
     public POINTL  ptActual;
     [MarshalAs(UnmanagedType.ByValTStr, SizeConst=256)] public string wszTitle;
     public Int32   dwModeFlags;
     public Int32   crBkgnd;
}

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

Please add some!

Alternative Managed API:

Do you know one? Please contribute it!

Documentation
IDeskBand on MSDN

User-Defined Types:

[Flags]
public enum AUTOCOMPLETEOPTIONS {
    // No autocomplete.
    ACO_NONE = 0,

    // Enable the autosuggest drop-down list.
    ACO_AUTOSUGGEST = 0x1,

    // Enable autoappend.
    ACO_AUTOAPPEND = 0x2,

    // Add a search item to the list of completed strings. Selecting this item launches a search engine.
    ACO_SEARCH = 0x4,

    // Don't match common prefixes, such as "www.", "http://", and so on.
    ACO_FILTERPREFIXES    = 0x8,        

    // Use the TAB key to select an item from the drop-down list.
    ACO_USETAB = 0x10,

    // Use the UP ARROW and DOWN ARROW keys to display the autosuggest drop-down list.
    ACO_UPDOWNKEYDROPSLIST = 0x20,

    // If ACO_RTLREADING is set, the text reads in the opposite direction from the text in the parent window.
    ACO_RTLREADING = 0x40
}

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

static readonly Guid CLSID_AutoComplete = new Guid("{00BB2763-6A77-11D0-A535-00C04FD7D062}");

private IAutoComplete2 GetAutoComplete() {
    Type CAutoComplete = Type.GetTypeFromCLSID(CLSID_AutoComplete);

    return (IAutoComplete2)Activator.CreateInstance(CAutoComplete);
}

Alternative Managed API:

Do you know one? Please contribute it!

Documentation