If I have a console application with a handle to it set up like so;

```
HWND hWnd = GetConsoleWindow();

```

Then how do I set up a new wndProc for the window?  

I tried using

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

```

With conProc being defined as

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

```

But it doesn't work and says "Error code: 5 - Access is denied" on `GetLastError()`

I understand that it's pretty difficult to modify the console application like this, since it's a csrss.exe application and all, but I'd still like to try..
Thanks.