CreateConsoleScreenBuffer
The CreateConsoleScreenBuffer
function creates a console screen buffer and returns a handle of it.
HANDLE CreateConsoleScreenBuffer(
DWORD dwDesiredAccess, |
// access flag |
DWORD dwShareMode, |
// buffer share
mode |
LPSECURITY_ATTRIBUTES *lpSecurityAttributes, |
// pointer to security
attributes |
DWORD dwFlags, |
// type of buffer
to create |
LPVOID lpScreenBufferData |
// reserved |
); |
|
Parameters
dwDesiredAccess
Specifies the
desired access to the console screen buffer. This parameter can be one or both
of the following values:
Value |
Meaning |
GENERIC_READ |
Requests
read access to the console screen buffer, enabling the process to read data
from the buffer. |
GENERIC_WRITE |
Requests
write access to the console screen buffer, enabling the process to write data
to the buffer. |
dwShareMode
Specifies how
this console screen buffer can be shared. This parameter can be zero,
indicating that the buffer cannot be shared, or it can be one or both of the
following two values:
Value |
Meaning |
FILE_SHARE_READ |
Other open
operations can be performed on the console screen buffer for read access. |
FILE_SHARE_WRITE |
Other open
operations can be performed on the console screen buffer for write access. |
lpSecurityAttributes
Pointer to a SECURITY_ATTRIBUTES
Windows NT:
The lpSecurityDescriptor member of the structure specifies a security
descriptor for the new console screen buffer. If lpSecurityAttributes is
NULL, the console screen buffer gets a default security descriptor.
Windows 95:
The lpSecurityDescriptor member of the structure is ignored.
dwFlags
Specifies the
type of console screen buffer to create. The only currently supported screen
buffer type is CONSOLE_TEXTMODE_BUFFER.
lpScreenBufferData
Reserved for
possible future use; should be NULL.
Return Values
If the
function succeeds, the return value is a handle to the new console screen
buffer.
If the
function fails, the return value is INVALID_HANDLE_VALUE. To get extended error
information, call GetLastError
Remarks
A console can
have multiple screen buffers but only one active screen buffer. Inactive screen
buffers can be accessed for reading and writing, but only the active screen
buffer is displayed. To make the new screen buffer the active screen buffer,
use the SetConsoleActiveScreenBuffer
The calling
process can use the returned handle in any function that requires a handle of a
console screen buffer, subject to the limitations of access specified by the dwDesiredAccess
parameter.
The calling
process can use the DuplicateHandle function to create a duplicate screen
buffer handle that has different access or inheritability from the original
handle. However, DuplicateHandle cannot be used to create a duplicate
that is valid for a different process (except through inheritance).
To close the
screen buffer handle, use the CloseHandle function.
See Also