SetStdHandle function
Sets the handle for the specified standard device (standard input, standard output, or standard error).
Syntax
BOOL WINAPI SetStdHandle(
_In_ DWORD nStdHandle,
_In_ HANDLE hHandle
);
Parameters
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$ . |
Note
The values for these constants are unsigned numbers, but are defined in the header files as a cast from a
signed number and take advantage of the C compiler rolling them over to just under the maximum 32-bit value. When interfacing with these handles in a language that does not parse the headers and is re-defining the constants, please be aware of this constraint. As an example, ((DWORD)-10)
is actually the unsigned number 4294967286
.
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.
Remarks
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.
Examples
For an example, see Creating a Child Process with Redirected Input and Output.
Requirements
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 |