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 パレットは flRedflGreenflBlue の各パラメーターによって定義されます。
PAL_BGR デバイスは RGB 色を直接受け入れ、B (青) を最下位バイトとして使用します。
PAL_CMYK デバイスは CMYK 色を直接受け入れ、C (シアン) を最下位バイトとして使用します。
PAL_INDEXED RGB 色の配列には 、cColorspulColors が用意されています。
PAL_RGB デバイスは RGB 色を直接受け入れ、R (赤) を最下位バイトとして使用します。

[in] cColors

iMode パラメーターがPAL_INDEXEDの場合、cColors は pulColors が指す配列で指定される色の数を指定します。 それ以外の場合、このパラメーターは 0 にする必要があります。

[in] pulColors

iMode がPAL_INDEXEDされている場合は、ULONG 値の配列の先頭へのポインター。 各 ULONG の下位 3 バイトは、パレット内の RGB 色を定義します。

[in] flRed

iMode パラメーターがPAL_BITFIELDSの場合、flRedflGreenflBlue の各パラメーターは、赤、緑、青に対応するビットを示すマスクです。 各マスクは連続したビットで構成されている必要があり、他のマスクと重ならないようにする必要があります。 GDI では、ビットフィールドのすべての組み合わせがサポートされています。

[in] flGreen

iMode パラメーターがPAL_BITFIELDSの場合、flRedflGreenflBlue の各パラメーターは、赤、緑、青に対応するビットを示すマスクです。 各マスクは連続したビットで構成されている必要があり、他のマスクと重ならないようにする必要があります。 GDI では、ビットフィールドのすべての組み合わせがサポートされています。

[in] flBlue

iMode パラメーターがPAL_BITFIELDSの場合、flRedflGreenflBlue の各パラメーターは、赤、緑、青に対応するビットを示すマスクです。 各マスクは連続したビットで構成されている必要があり、他のマスクと重ならないようにする必要があります。 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 オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header winddi.h (Winddi.h を含む)
Library Win32k.lib
[DLL] Win32k.sys

こちらもご覧ください

DEVINFO

DrvSetPalette

EngDeletePalette