EngCreatePalette 関数は、RGB パレットを作成するよう GDI に要求を送る。
EngCreatePalette iMode, cColors, pulColors, flRed, flGreen, flBlue
iMode : [int] cColors : [int] iMode パラメータが PAL_INDEXED の場合、cColors は pulColors が指す配列に提供される色数を指定する。それ以外の場合、このパラメータはゼロにすべきである。 pulColors : [var] iMode が PAL_INDEXED の場合の ULONG 値配列の先頭へのポインタ。各 ULONG の下位 3 バイトがパレット内の RGB 色を定義する。 flRed : [int] iMode パラメータが PAL_BITFIELDS の場合、flRed, flGreen, flBlue パラメータは赤・緑・青に対応するビットを示すマスクである。各マスクは連続するビットで構成され、他のマスクと重なってはならない。GDI はビットフィールドのすべての組み合わせをサポートする。 flGreen : [int] iMode パラメータが PAL_BITFIELDS の場合、flRed, flGreen, flBlue パラメータは赤・緑・青に対応するビットを示すマスクである。各マスクは連続するビットで構成され、他のマスクと重なってはならない。GDI はビットフィールドのすべての組み合わせをサポートする。 flBlue : [int] iMode パラメータが PAL_BITFIELDS の場合、flRed, flGreen, flBlue パラメータは赤・緑・青に対応するビットを示すマスクである。各マスクは連続するビットで構成され、他のマスクと重なってはならない。GDI はビットフィールドのすべての組み合わせをサポートする。
(プラグイン / モジュール : gdi32.dll)
EngCreatePalette 関数は、RGB パレットを作成するよう GDI に要求を送る。 [戻り値] 関数が成功した場合、戻り値は新しいパレットへのハンドルとなる。それ以外の場合はゼロとなり、エラーコードがログに記録される。 [備考] ドライバは DEVINFO 構造体内にパレットへのポインタを返すことで、新しいパレットをデバイスに関連付けられる。デバイスに関連付けられた PAL_INDEXED パレットは、最初のインデックスエントリを黒 (red = 0, green = 0, blue = 0)、最後のエントリを白 (255, 255, 255) に設定しなければならない。他のすべてのエントリは、インデックスが互いに 1 の補数であるエントリが大きく対比する色となるように設定する。例えば 16 エントリパレットのエントリ 0x9 が純緑 (0,255,0) なら、エントリ 0x6 (=~0x9) は緑とよく対比する暗紫 (128,0,128) のような色にする。このようにエントリを設定することで、XOR ラスタ操作が妥当に動作する。パレットが不要になったら EngDeletePalette で削除すべきである。
| プラグイン / モジュール | gdi32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_gdi32_gen2.hs |