Функция EngCreatePalette (winddi.h)
Функция EngCreatePalette отправляет запрос в GDI для создания палитры RGB.
Синтаксис
ENGAPI HPALETTE EngCreatePalette(
[in] ULONG iMode,
[in] ULONG cColors,
[in] ULONG *pulColors,
[in] FLONG flRed,
[in] FLONG flGreen,
[in] FLONG flBlue
);
Параметры
[in] iMode
Указывает, как будет определена палитра. Этот параметр может иметь одно из следующих значений:
Значение | Значение |
---|---|
PAL_BITFIELDS | Палитра определяется параметрами flRed, flGreen и flBlue . |
PAL_BGR | Устройство принимает цвета RGB напрямую, при этом B (синий) является наименее значимым байтом. |
PAL_CMYK | Устройство принимает цвета CMYK напрямую, при этом C (голубой) является наименее значимым байтом. |
PAL_INDEXED | Массив цветов RGB предоставляется с cColors и pulColors. |
PAL_RGB | Устройство принимает цвета RGB напрямую, при этом R (красный) является наименее значимым байтом. |
[in] cColors
Если параметр iMode имеет значение PAL_INDEXED, cColors указывает количество цветов, предоставленных в массиве, на который указывает pulColors. В противном случае этот параметр должен быть равен нулю.
[in] pulColors
Указатель на начало массива значений ULONG, если iMode PAL_INDEXED. Низкий порядок 3 байта каждого ULONG определяет цвета RGB в палитре.
[in] flRed
Если параметр iMode имеет значение PAL_BITFIELDS, параметры flRed, flGreen и flBlue являются масками, которые показывают, какие биты соответствуют красному, зеленому и синему. Каждая маска должна состоять из смежных битов и не должна перекрывать другие маски. GDI поддерживает все сочетания битовых полей.
[in] flGreen
Если параметр iMode имеет значение PAL_BITFIELDS, параметры flRed, flGreen и flBlue являются масками, которые показывают, какие биты соответствуют красному, зеленому и синему. Каждая маска должна состоять из смежных битов и не должна перекрывать другие маски. GDI поддерживает все сочетания битовых полей.
[in] flBlue
Если параметр iMode имеет значение PAL_BITFIELDS, параметры flRed, flGreen и flBlue являются масками, которые показывают, какие биты соответствуют красному, зеленому и синему. Каждая маска должна состоять из смежных битов и не должна перекрывать другие маски. GDI поддерживает все сочетания битовых полей.
Возвращаемое значение
Возвращаемое значение — это дескриптор новой палитры, если функция выполнена успешно. В противном случае значение равно нулю и регистрируется код ошибки.
Комментарии
Драйвер может связать новую палитру с устройством, возвращая указатель на палитру в структуре DEVINFO .
Для PAL_INDEXED палитры, связанной с устройством, первая запись индекса должна быть черной (красный = 0, зеленый = 0, синий = 0), а для последней записи — белый (255, 255, 255). Все остальные записи должны быть заданы таким образом, чтобы у записей, индексы которых являются дополнением друг к другу, были цвета, которые сильно контрастируют. Например, если 0x9 элемента из палитры 16 элементов имеет значение чисто-зеленый (0,255,0), 0x6 (=~0x9) следует задать цвет, который хорошо контрастирует с зеленым, например темно-фиолетовый (128,0,128). Настройка записей таким образом позволяет использовать растровые операции XOR в разумном режиме. Если палитра больше не нужна, ее следует удалить с помощью EngDeletePalette.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 2000 и более поздних версиях операционных систем Windows. |
Целевая платформа | Универсальное |
Верхняя часть | winddi.h (включая Winddi.h) |
Библиотека | Win32k.lib |
DLL | Win32k.sys |