SetStdHandle function

Sets the handle for the specified standard device (standard input, standard output, or standard error).


  _In_ DWORD  nStdHandle,
  _In_ HANDLE hHandle


nStdHandle [in]
The standard device for which the handle is to be set. This parameter can be one of the following values.

Value Meaning
STD_INPUT_HANDLE (DWORD) -10 The standard input device. Initially, this is the console input buffer, CONIN$.
STD_OUTPUT_HANDLE (DWORD) -11 The standard output device. Initially, this is the active console screen buffer, CONOUT$.
STD_ERROR_HANDLE (DWORD) -12 The standard error device. Initially, this is the active console screen buffer, CONOUT$.

hHandle [in]
The handle for the standard device.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.


The standard handles of a process may have been redirected by a call to SetStdHandle, in which case GetStdHandle will return the redirected handle. If the standard handles have been redirected, you can specify the CONIN$ value in a call to the CreateFile function to get a handle to a console's input buffer. Similarly, you can specify the CONOUT$ value to get a handle to the console's active screen buffer.


For an example, see Creating a Child Process with Redirected Input and Output.


Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Header ProcessEnv.h (via Winbase.h, include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

See also

Console Functions

Console Handles