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 | デバイスは RGB 色を直接受け入れ、R (赤) を最下位バイトとして使用します。 |
[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 オペレーティング システムで使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | winddi.h (Winddi.h を含む) |
Library | Win32k.lib |
[DLL] | Win32k.sys |