See the question and my original answer on StackOverflow

You didn't copy/paste the original code properly.

In .NET when you declare a derived interface say IDeskBand2 from IDeskBand, you must redeclare all the methods of the base interface (and recursively, you can just omit IUnknown of course).

Like this (if you want the derivation appear in .NET):

public interface IDeskBand2 : IDeskBand
{
    // IOleWindow
    new int GetWindow(out IntPtr phwnd);
    new int ContextSensitiveHelp(bool fEnterMode);

    // IDockingWindow
    new int ShowDW(bool bShow);
    new int CloseDW(UInt32 dwReserved);
    new int ResizeBorderDW(RECT rcBorder, IntPtr punkToolbarSite, bool fReserved);

    // IDeskBand
    new int GetBandInfo(UInt32 dwBandID, DESKBANDINFO.DBIF dwViewMode, ref DESKBANDINFO pdbi);

    // IDeskBand2
    int CanRenderComposited(out bool pfCanRenderComposited);
    ....
}

or simply like this:

public interface IDeskBand2
{
    // IOleWindow
    int GetWindow(out IntPtr phwnd);
    int ContextSensitiveHelp(bool fEnterMode);

    // IDockingWindow
    int ShowDW(bool bShow);
    int CloseDW(UInt32 dwReserved);
    int ResizeBorderDW(RECT rcBorder, IntPtr punkToolbarSite, bool fReserved);

    // IDeskBand
    int GetBandInfo(UInt32 dwBandID, DESKBANDINFO.DBIF dwViewMode, ref DESKBANDINFO pdbi);

    // IDeskBand2
    int CanRenderComposited(out bool pfCanRenderComposited);
    ....
}