Atajos de teclado de WebBrowser

Tengo un control WebBrowser mostrando algunos HTML.
Quiero que el usuario pueda copiar todo el documento, pero no hacer nada más.

He puesto elIsWebBrowserContextMenuEnabled yWebBrowserShortcutsEnabled propiedades parafalse, y quiero manejarKeyUp y ejecute algún código cuando el usuario presione Ctrl + C.

¿Cómo puedo hacer eso?
El control WebBrowser no admite eventos de teclado.
Traté de usar el formularioKeyUp evento conKeyPreview, pero no disparó en absoluto.

EDITAR: Aquí está mi solución, inspirada en la respuesta 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);
    }
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta