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.
[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 |