Code:
HANDLE c;
c = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
SetConsoleActiveScreenBuffer(c); 
..
ReadConsole(c, gpb, 1, (DWORD *)tmp, NULL)
..
ReadConsole is failing with error code 6, ERROR_INVALID_HANDLE, but I can print to the console fine :/