apturando eventos de mouse de todos os component

Estou com um problema com o MouseEvents no meu aplicativo WinForm C

Quero recebertodo mouse clica no meu aplicativo, mas não quero colocar um ouvinte em cada componente filho nem usar o gancho do mouse do Window

No Flash, eu poderia colocar um ouvinte no palco para obter todos os eventos do mouse no film

Existe tal coisa em c #? Um MouseListener global?

Editar

Crio esta classe a partir de IMessageFilter e usei Application.AddMessageFilter.

public class GlobalMouseHandler : IMessageFilter{

    private const int WM_LBUTTONDOWN = 0x201;

    public bool PreFilterMessage(ref Message m){
        if (m.Msg == WM_LBUTTONDOWN) {
            // Do stuffs
        }
        return false;
    }
}

E coloque esse código nos controles que precisam ouvir cliques globais:

GlobalMouseHandler globalClick = new GlobalMouseHandler();
Application.AddMessageFilter(globalClick);

questionAnswers(4)

yourAnswerToTheQuestion