65.9K
CodeProject is changing. Read more.
Home

Fix the focus issue on RDP Client from the AxInterop.MSTSCLib.dll

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.25/5 (4 votes)

Sep 15, 2010

CPOL
viewsIcon

38071

Quick and dirty fix for the focus issue on the RDP Client.

If you ever worked with the RemoteDesktop Client from Microsoft, you probably ran into this bug. When selecting another component on your application, the client of course loses focus, but when you want to select the client component again, the only way is to use the TAB button, you won't be able to select the client component with the mouse button, so here's a fix. ;)
public class MsRdpClient2 : AxMSTSCLib.AxMsRdpClient2
{
    public MsRdpClient2()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}
public class MsRdpClient3 : AxMSTSCLib.AxMsRdpClient3
{
    public MsRdpClient3()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}
public class MsRdpClient4 : AxMSTSCLib.AxMsRdpClient4
{
    public MsRdpClient4()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}
public class MsRdpClient5 : AxMSTSCLib.AxMsRdpClient5
{
    public MsRdpClient5()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}
public class MsRdpClient6 : AxMSTSCLib.AxMsRdpClient6
{
    //Fix for the missing focus issue on the rdp client component
    public MsRdpClient6()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}
public class MsRdpClient7 : AxMSTSCLib.AxMsRdpClient7
{
    public MsRdpClient7()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}