Share via


HT_Get8BPPMaskPalette-Funktion (winddi.h)

Die HT_Get8BPPMaskPalette-Funktion gibt eine Maskenpalette für einen Gerätetyp mit 8 Bit pro Pixel zurück.

Syntax

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

Parameter

[in, out] pPaletteEntry

Zeiger auf das Array von PALETTEENTRY-Strukturen (beschrieben in der Windows SDK-Dokumentation), die ausgefüllt werden sollen. GDI geht davon aus, dass er auf gültigen Speicherplatz verweist, in dem GDI die gesamte Halbtonpalette von 8 Bit pro Pixel platzieren kann.

Für einen Treiber, der unter Windows XP und höheren Betriebssystemversionen ausgeführt wird, überprüft GDI pPaletteEntry[0], um zu bestimmen, wie die zusammengesetzte CMY-Palette zurückgegeben werden soll. Wenn pPaletteEntry[0] auf "RGB0" festgelegt ist, befindet sich die Palette in einem der CMY_INVERTED Modi und hat ihre Indizes invertiert. Das heißt, Index 0 in der Palette ist schwarz und Index 255 ist weiß. Wenn pPaletteEntry[0] nicht auf "RGB0" festgelegt ist, ist die Palette eine normale CMY-Palette, wobei Index 0 weiß und Index 255 schwarz ist. Unter Verwenden von GDI 8-Bit-pro-Pixel-CMY-Maskenmodi finden Sie neue Anforderungen und Details zur Verwendung dieses Parameters.

Windows 2000 ignoriert alle Werte, die der Treiber in pPaletteEntry[0] platziert. Wenn Ihr Treiber für die Ausführung unter Windows 2000 und windows XP oder höheren Versionen vorgesehen ist und Ihr Treiber pPaletteEntry[0] auf "RGB0" festlegt, können die Bitmaps, die Ihr Treiber von Windows XP und höher empfängt, ihre Farben im Vergleich zu den von Windows 2000 empfangenen Bitmaps invertiert haben. Daher muss ein solcher Treiber die Palette untersuchen, bevor eine Bitmap heruntergeladen wird.

[in] Use8BPPMaskPal

Gibt an, welcher Palettentyp zurückgegeben werden soll. Wenn Use8BPPMaskPaltrue ist, legt HT_Get8BPPMaskPalette den pPaletteEntry-Parameter mit der Adresse einer CMY-Palette (einem Array von PALETTEENTRY-Strukturen) fest, die durch die in CMYMask angegebene Bitmaske beschrieben wird. Wenn Use8BPPMaskPalfalse ist, legt die Funktion pPaletteEntry mit der Adresse einer standardmäßigen RGB-Halbtonpalette mit 8 Bit pro Pixel fest.

[in] CMYMask

Gibt Informationen zum Array von PALETTEENTRY-Strukturen an, auf das von pPaletteEntry verwiesen wird. Dieser Parameter kann einen der folgenden Werte aufweisen:

Wert Bedeutung
0 Graustufen mit 256 Ebenen
1 Fünf Ebenen mit jeweils Cyan, Magenta und Gelb (jeweils von 0 bis 4) für insgesamt 125 Farben
2 Sechs Ebenen mit jeweils Cyan, Magenta und Gelb (jeweils von 0 bis 5) für insgesamt 216 Farben
3 bis 255 Eine Bitmaske, die die maximale Anzahl von Cyan-, Magenta- und Gelbstufen angibt.
 

Treiber, die unter Windows 2000 ausgeführt werden, sollten auf monochrome 8 Bits pro Pixel beschränkt sein. Das heißt, der Wert von CMYMask sollte 0 sein.

Für Windows XP und höhere Betriebssystemversionen sowie für alle Werte von CMYMask bestimmt der Wert in pPaletteEntry[0], ob die Palette, die pPaletteEntry[0] folgt, eine normale CMY-Palette oder eine der CMY_INVERTED Moduspaletten ist. Weitere Informationen finden Sie in der Beschreibung des pPaletteEntry-Parameters .

Für Werte von CMYMask von 3 bis einschließlich 255 ist der Wert eine Bitmaske, in der Gruppen von Bits die folgende Bedeutung haben:

  • Die drei höchsten Bits (Bits 7,6,5) geben die Anzahl der Cyan-Ebenen an. Maximal sind sieben Cyanstufen (Ebenen 1 bis 7) möglich.
  • Die mittleren drei Bits (Bits 4,3,2) geben die Anzahl der Magentaebenen an. Maximal sieben Magenta-Ebenen (Stufen 1 bis 7) sind möglich.
  • Die zwei niedrigsten Bits (Bits 1,0) geben die Anzahl der gelben Ebenen an. Maximal drei Gelbstufen (Stufen 1 bis 3) sind möglich.
Für Werte von CMYMask zwischen 3 und 255 ist jede Bitmaskenkombination ungültig, in der die Bits cyan, magenta oder yellow level 0 sind. In solchen Fällen gibt HT_Get8BPPMaskPalette eine Palettenanzahl von 0 zurück. Weitere Informationen finden Sie unter Verwenden von GDI 8-Bit-pro-Pixel-CMY-Maskenmodi .

[in] RedGamma

Wenn Use8BPPMaskPaltrue ist, wird der Wert dieses Parameters nicht verwendet. In diesem Fall werden Gammawerte im ciDevice-Element der GDIINFO-Struktur angegeben.

Wenn Use8BPPMaskPalfalse ist, gibt der Wert dieses Parameters den roten Gammawert aus den roten, grünen und blauen Gammawerten an, die GDI zum Gammakorrigieren der Palette verwenden soll. Der USHORT-Wert wird als reelle Zahl interpretiert, deren vier Ziffern mit der geringsten Bedeutung rechts neben dem Dezimalpunkt liegen. Beispielsweise stellt ein Gammawert von 10000 die reelle Zahl 1,0000 und 12345 1,2345 dar. Der minimale zulässige Gammawert ist 0,0000, und der maximal zulässige Wert ist 6,5535.

[in] GreenGamma

Wenn Use8BPPMaskPaltrue ist, wird der Wert dieses Parameters nicht verwendet. In diesem Fall werden Gammawerte im ciDevice-Element der GDIINFO-Struktur angegeben.

Wenn Use8BPPMaskPalfalse ist, gibt der Wert dieses Parameters den grünen Gammawert aus den roten, grünen und blauen Gammawerten an, die GDI zum Gammakorrigieren der Palette verwenden soll. Der USHORT-Wert wird als reelle Zahl interpretiert, deren vier Ziffern mit der geringsten Bedeutung rechts neben dem Dezimalpunkt liegen. Beispielsweise stellt ein Gammawert von 10000 die reelle Zahl 1,0000 und 12345 1,2345 dar. Der minimale zulässige Gammawert ist 0,0000, und der maximal zulässige Wert ist 6,5535.

[in] BlueGamma

Wenn Use8BPPMaskPaltrue ist, wird der Wert dieses Parameters nicht verwendet. In diesem Fall werden Gammawerte im ciDevice-Element der GDIINFO-Struktur angegeben.

Wenn Use8BPPMaskPalfalse ist, gibt der Wert dieses Parameters den blauen Gammawert aus den roten, grünen und blauen Gammawerten an, die GDI zur Gammakorrektur der Palette verwenden soll. Der USHORT-Wert wird als reelle Zahl interpretiert, deren vier Ziffern mit der geringsten Bedeutung rechts neben dem Dezimalpunkt liegen. Beispielsweise stellt ein Gammawert von 10000 die reelle Zahl 1,0000 und 12345 1,2345 dar. Der minimale zulässige Gammawert ist 0,0000, und der maximal zulässige Wert ist 6,5535.

Rückgabewert

Wenn pPaletteEntry nicht NULL ist, gibt HT_Get8BPPMaskPalette die Anzahl der PALETTEENTRY-Strukturen zurück, die GDI in dem Array ausgefüllt hat, auf das pPaletteEntry verweist. Wenn pPaletteEntryNULL ist, ist der zurückgegebene Wert die Gesamtzahl der PALETTEENTRY-Strukturen, die zum Speichern der Halbtonpalette erforderlich sind.

Wenn beim Aufruf dieser Funktion ein ungültiger Wert des CMYMask-Parameters verwendet wird, gibt HT_Get8BPPMaskPalette den Wert 0 zurück.

Hinweise

Die PALETTEENTRY-Struktur ist in der Dokumentation zum Windows SDK dokumentiert.

Das Aufrufen HT_Get8BPPMaskPalette mit use8BPPMaskPal , der false festgelegt ist, entspricht dem Aufrufen HT_Get8BPPFormatPalette.

Weitere Informationen zu dieser Funktion und der Verwendung ihrer Parameter finden Sie unter Verwenden von GDI 8-Bit-pro-Pixel-CMY-Maskenmodi .

Anforderungen

   
Unterstützte Mindestversion (Client) Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Universell
Header winddi.h (einschließlich Winddi.h)
Bibliothek Win32k.lib
DLL Win32k.sys

Weitere Informationen

HT_Get8BPPFormatPalette