EngCreatePalette 함수(winddi.h)
EngCreatePalette 함수는 RGB 팔레트를 만들기 위해 GDI에 요청을 보냅니다.
구문
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 | 디바이스는 R(빨간색)을 가장 중요한 바이트로 사용하여 RGB 색을 직접 허용합니다. |
[in] cColors
iMode 매개 변수가 PAL_INDEXED 경우 cColors는 pulColors가 가리키는 배열에 제공되는 색 수를 지정합니다. 그렇지 않으면 이 매개 변수는 0이어야 합니다.
[in] pulColors
iMode가 PAL_INDEXED 경우 ULONG 값 배열의 시작 부분에 대한 포인터입니다. 각 ULONG의 낮은 순서 3바이트는 색상표에서 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에서 지원됩니다.
반환 값
함수가 성공하면 반환 값은 새 팔레트에 대한 핸들입니다. 그렇지 않으면 0이고 오류 코드가 기록됩니다.
설명
드라이버는 DEVINFO 구조체의 색상표에 대한 포인터를 반환하여 새 팔레트를 디바이스와 연결할 수 있습니다.
디바이스와 연결된 PAL_INDEXED 팔레트에는 첫 번째 인덱스 항목이 검은색(빨간색 = 0, 녹색 = 0, 파란색 = 0)으로 설정되고 마지막 항목이 흰색(255, 255, 255)으로 설정되어야 합니다. 다른 모든 항목은 인덱스가 서로 보완되는 항목이 크게 대비되는 색을 갖도록 설정해야 합니다. 예를 들어 16개 항목 팔레트의 항목 0x9 순수 녹색(0,255,0)으로 설정된 경우 항목 0x6(=~0x9)은 진한 자주색(128,0,128)과 같이 녹색과 잘 대비되는 색으로 설정해야 합니다. 이러한 방식으로 항목을 설정하면 XOR 래스터 작업이 합리적으로 동작할 수 있습니다. EngDeletePalette를 사용하여 더 이상 필요하지 않은 경우 팔레트를 삭제해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | winddi.h(Winddi.h 포함) |
라이브러리 | Win32k.lib |
DLL | Win32k.sys |