Atalhos de teclado do WebBrowser

Eu tenho um controle WebBrowser exibindo alguns HTML.
Eu quero que o usuário seja capaz de copiar o documento inteiro, mas não fazer mais nada.

Eu defini oIsWebBrowserContextMenuEnabled eWebBrowserShortcutsEnabled propriedades parafalsee eu quero lidar comKeyUp e execute algum código quando o usuário pressionar Ctrl + C.

Como eu posso fazer isso?
O controle WebBrowser não suporta eventos de teclado.
Eu tentei usar o formulárioKeyUp evento comKeyPreview, mas não disparou nada.

EDITAR: Aqui está minha solução, inspirada na resposta de Jerb.

class CopyableWebBrowser : WebBrowser {
    public override bool PreProcessMessage(ref Message msg) {
        if (msg.Msg == 0x101    //WM_KEYUP
         && msg.WParam.ToInt32() == (int)Keys.C && ModifierKeys == Keys.Control) {
            DoCopy();
            return true;
        }
        return base.PreProcessMessage(ref msg);
    }
    void DoCopy() {
        Document.ExecCommand("SelectAll", false, null);
        Document.ExecCommand("Copy", false, null);
        Document.ExecCommand("Unselect", false, null);
    }
}

questionAnswers(4)

yourAnswerToTheQuestion