Функция CreateConsoleScreenBuffer
Функция
CreateConsoleScreenBuffer создает экранный буфер консоли.Синтаксис
HANDLE CreateConsoleScreenBuffer( dwDesiredAccess, // флажок доступаDWORD DWORDdwShareMode, // режим совместного использования буфера CONST SECURITY_ATTRIBUTES* lpSecurityAttributes, // SD (указатель атрибутов// безопасности) DWORDdwFlags, // тип буфера LPVOID lpScreenBufferData // зарезервировано ); |
Параметры
dwDesiredAccess
Определяет доступ к экранному буферу консоли. Этот параметр может быть одно или несколько нижеследующих значений.
Значение |
Предназначение |
GENERIC_READ |
Запрашивает доступ для чтения в экранном буфере консоли, включая процесс, чтобы читать данные из буфера. |
GENERIC_WRITE |
Запрашивает доступ для записи в экранном буфере консоли, включая процесс, чтобы записать данные в буфер. |
За большей информацией обратитесь к статье
Защита буфера и права доступа в консоли.dwShareMode
Определяет, как этот экранный буфер консоли может быть совместно использован. Этот параметр , может быть нулевой, указывая, что буфер не может совместно использоваться или он может иметь одно или несколько нижеследующих значений.
Значение |
Предназначение |
FILE_SHARE_READ |
Другие операции открытия могут быть выполнены на экранном буфере консоли для доступа к чтению. |
FILE_SHARE_WRITE |
Другие операции открытия могут быть выполнены на экранном буфере консоли для доступа к записи. |
lpSecurityAttributes
Указатель на
структуру SECURITY_ATTRIBUTES, которая выясняет, может ли возвращенный дескриптор быть унаследован дочерними процессами. Если lpSecurityAttributes имеет значение ПУСТО (NULL), дескриптор не может быть унаследован.Windows NT/2000/XP: член
lpSecurityDescriptor структуры устанавливает дескриптор защиты для нового экранного буфера консоли. Если lpSecurityAttributes имеет значение ПУСТО (NULL), экранный буфер консоли получает заданный по умолчанию дескриптор защиты. ACLы в заданном по умолчанию дескрипторе защиты для экранного буфера консоли исходят из того, первичный или заимствованный маркер прав создателя.Windows 95
: член lpSecurityDescriptor структуры игнорируется.dwFlags
Определяет тип создаваемого экранного буфера консоли. Единственный поддерживаемый тип экранного буфера является
CONSOLE_TEXTMODE_BUFFER.lpScreenBufferData
Зарезервирован; должен быть ПУСТО (NULL).
Возвращаемые значения
Если функция завершается успешно, возвращаемое значение является дескриптор нового экранного буфера консоли.
Если функция завершается с ошибкой, возвращаемое значение -
INVALID_HANDLE_VALUE. Чтобы получать расширенные данные об ошибках, обратитесь к функции GetLastError.Замечания
Консоль может иметь многочисленные экранные буферы, но только один активный экранный буфер. К неактивным экранным буферам можно обращаться для чтения и записи, но только активный экранный буфер отображается на экране. Чтобы новый экранный буфер сделать активным, используйте
функцию SetConsoleActiveScreenBuffer.Вызывающий процесс может использовать возвращенный дескриптор в любой функции, которая требует дескриптора экранного буфера консоли, зависящего от ограничений доступа, определяемых
параметром dwDesiredAccess.Вызывающий процесс может использовать
функцию DuplicateHandle, чтобы создать продублированный дескриптор экранного буфера, который имеет другой доступ или наследственность от первоначального дескриптора. Однако функция DuplicateHandle не может использоваться для создания дубликата, который является правильным для другого процесса (кроме как через наследование).Чтобы закрыть дескриптор экранного буфера консоли, используйте
функцию CloseHandle.За примером кода обратитесь к статье
Чтение и запись блоков символов и атрибутов.Смотри также
, Функции консоли, CloseHandle, DuplicateHandle, GetConsoleScreenBufferInfo, SECURITY_ATTRIBUTES, SetConsoleActiveScreenBuffer, SetConsoleScreenBufferSize
Размещение и совместимость CreateConsoleScreenBuffer |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и старше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Kernel32.lib |
Заголовочный файл |
|
- объявлено в |
Wincon.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |