次の方法で共有


HT_Get8BPPMaskPalette関数 (winddi.h)

HT_Get8BPPMaskPalette関数は、8 ビット/ピクセル デバイスの種類のマスク パレットを返します。

構文

LONG HT_Get8BPPMaskPalette(
  [in, out] LPPALETTEENTRY pPaletteEntry,
  [in]      BOOL           Use8BPPMaskPal,
  [in]      BYTE           CMYMask,
  [in]      USHORT         RedGamma,
  [in]      USHORT         GreenGamma,
  [in]      USHORT         BlueGamma
);

パラメーター

[in, out] pPaletteEntry

入力する PALETTEENTRY 構造体の配列へのポインター (Windows SDK のドキュメントで説明)。 GDI は、GDI が 8 ビット/ピクセルハーフトーン パレット全体を配置できる有効なメモリ領域を指していることを前提としています。

Windows XP 以降のオペレーティング システム バージョンで実行されるドライバーの場合、GDI は pPaletteEntry[0] をチェックして、構成済みの CMY パレットを返す方法を決定します。 pPaletteEntry[0] が 'RGB0' に設定されている場合、パレットはCMY_INVERTEDモードの 1 つになり、そのインデックスが反転されます。 つまり、パレットのインデックス 0 は黒で、インデックス 255 は白です。 pPaletteEntry[0] が 'RGB0' に設定されていない場合、パレットは通常の CMY パレットであり、インデックス 0 は白、インデックス 255 は黒です。 このパラメーターの使用方法の新しい要件と詳細については、「 GDI 8 ビット/ピクセル CMY マスク モードの使用 」を参照してください。

Windows 2000 は、ドライバーが pPaletteEntry[0] に配置する値を無視します。 このため、ドライバーが Windows 2000 以降 のバージョンで実行することを目的としており、ドライバーが pPaletteEntry[0] を "RGB0" に設定している場合、ドライバーが Windows XP 以降から受け取るビットマップは、Windows 2000 から受け取ったビットマップに対して色が反転している可能性があります。 したがって、このようなドライバーは、ビットマップをダウンロードする前にパレットを調べる必要があります。

[in] Use8BPPMaskPal

返されるパレットの種類を示します。 Use8BPPMaskPalTRUE の場合、HT_Get8BPPMaskPaletteは、CMYMask で指定されたビットマスクによって記述される CMY パレット (PALETTEENTRY 構造体の配列) のアドレスを使用して pPaletteEntry パラメーターを設定します。 Use8BPPMaskPalFALSE の場合、関数は pPaletteEntry を標準の RGB 8 ビット/ピクセル ハーフトーン パレットのアドレスで設定します。

[in] CMYMask

pPaletteEntry が指す PALETTEENTRY 構造体の配列に関する情報を指定します。 このパラメーターには、次のいずれかの値を指定できます。

説明
0 256 レベルのグレースケール
1 シアン、マゼンタ、黄色のそれぞれ 5 つのレベル (それぞれ 0 ~ 4 の範囲)、合計 125 色
2 シアン、マゼンタ、黄色の 6 つのレベル (それぞれ 0 ~ 5 の範囲)、合計 216 色
3 から 255 水色、マゼンタ、黄色のレベルの最大数をそれぞれ指定するビットマスク。
 

Windows 2000 で実行されているドライバーは、ピクセル単位のモノクロ 8 ビットに制限する必要があります。 つまり、使用される CMYMask の値は 0 である必要があります。

Windows XP 以降のオペレーティング システム バージョンの場合、および CMYMask のすべての値に対して、 pPaletteEntry[0] の値によって、 pPaletteEntry[0] に続くパレットが通常の CMY パレットであるか、CMY_INVERTED モード パレットの 1 つであるかが決まります。 詳細については、 pPaletteEntry パラメーターの説明を参照してください。

CMYMask の値が 3 ~ 255 の場合、値はビットのグループが次の意味を持つビットマスクです。

  • 3 つの最上位ビット (ビット 7,6,5) は、シアンのレベルの数を指定します。 最大で、シアンの7つのレベル(レベル1〜7)が可能です。
  • 中央の 3 ビット (ビット 4,3,2) は、マゼンタのレベルの数を指定します。 最大で、マゼンタの7つのレベル(レベル1〜7)が可能です。
  • 2 つの最下位ビット (ビット 1,0) は、黄色のレベルの数を指定します。 最大で、黄色の3つのレベル(レベル1〜3)が可能です。
CMYMask の値が 3 ~ 255 の場合、シアン、マゼンタ、または黄色のレベル ビットが 0 であるビットマスクの組み合わせは無効です。 このような場合、 HT_Get8BPPMaskPalette は 0 のパレット数を返します。 詳細については、「 GDI 8 ビット/ピクセル CMY マスク モードの使用 」を参照してください。

[in] RedGamma

Use8BPPMaskPalTRUE の場合、このパラメーターの値は使用されません。 その場合、GDIINFO 構造体の ciDevice メンバーにガンマ値が指定されます。

Use8BPPMaskPalFALSE の場合、このパラメーターの値は、パレットのガンマ修正に GDI が使用する赤、緑、青のガンマ値のうち、赤のガンマ値を指定します。 USHORT 値は、小数点以下 4 桁の最下位桁が小数点の右側にある実数として解釈されます。 たとえば、ガンマ値 10000 は実数 1.0000 を表し、12345 は 1.2345 を表します。 許容される最小ガンマ値は 0.0000 で、最大許容値は 6.5535 です。

[in] GreenGamma

Use8BPPMaskPalTRUE の場合、このパラメーターの値は使用されません。 その場合、GDIINFO 構造体の ciDevice メンバーにガンマ値が指定されます。

Use8BPPMaskPalFALSE の場合、このパラメーターの値は、パレットのガンマ修正に GDI が使用する赤、緑、青のガンマ値のうち、緑色のガンマ値を指定します。 USHORT 値は、小数点以下 4 桁の最下位桁が小数点の右側にある実数として解釈されます。 たとえば、ガンマ値 10000 は実数 1.0000 を表し、12345 は 1.2345 を表します。 許容される最小ガンマ値は 0.0000 で、最大許容値は 6.5535 です。

[in] BlueGamma

Use8BPPMaskPalTRUE の場合、このパラメーターの値は使用されません。 その場合、GDIINFO 構造体の ciDevice メンバーにガンマ値が指定されます。

Use8BPPMaskPalFALSE の場合、このパラメーターの値は、GDI がパレットのガンマ補正に使用する赤、緑、青のガンマ値のうち、青のガンマ値を指定します。 USHORT 値は、小数点以下 4 桁の最下位桁が小数点の右側にある実数として解釈されます。 たとえば、ガンマ値 10000 は実数 1.0000 を表し、12345 は 1.2345 を表します。 許容される最小ガンマ値は 0.0000 で、最大許容値は 6.5535 です。

戻り値

pPaletteEntryNULL でない場合、HT_Get8BPPMaskPalette、pPaletteEntry が指す配列に GDI が入力した PALETTEENTRY 構造体の数を返します。 pPaletteEntryNULL の場合、返される値は、ハーフトーン パレットを格納するために必要な PALETTEENTRY 構造体の合計数です。

CMYMask パラメーターの無効な値がこの関数の呼び出しで使用されている場合、HT_Get8BPPMaskPaletteは 0 の値を返します。

解説

PALETTEENTRY 構造体は、Windows SDK のドキュメントに記載されています。

Use8BPPMaskPalFALSE に設定してHT_Get8BPPMaskPaletteを呼び出すことは、HT_Get8BPPFormatPaletteを呼び出すことと同じです。

この関数とそのパラメーターの使用方法の詳細については、「 GDI 8 ビット/ピクセル CMY マスク モードの使用 」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header winddi.h (Winddi.h を含む)
Library Win32k.lib
[DLL] Win32k.sys

関連項目

HT_Get8BPPFormatPalette