C ++: Как установить новый wndProc для консольного приложения?

Если у меня есть консольное приложение с ручкой, настроенной так;

HWND hWnd = GetConsoleWindow();

Тогда как мне установить новый wndProc для окна?

Я пытался с помощью

SetWindowLong(hWnd, GWL_WNDPROC, (LONG)conProc);

При этом conProc определяется как

LRESULT CALLBACK conProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
        case WM_NCHITTEST:
            return HTCAPTION;
    }
    return DefWindowProc(hWnd, msg, wParam, lParam );
}

Но это нет работает и говорит "Код ошибки: 5 - доступ запрещен " наGetLastError()

Я понимаю, что этодовольно сложно изменить консольное приложение, так как оноЭто приложение csrss.exe и все, но яЯ все еще хотел бы попробовать .. Спасибо.