fonction HT_Get8BPPMaskPalette (winddi.h)
La fonction HT_Get8BPPMaskPalette retourne une palette de masques pour un type d’appareil 8 bits par pixel.
Syntaxe
LONG HT_Get8BPPMaskPalette(
[in, out] LPPALETTEENTRY pPaletteEntry,
[in] BOOL Use8BPPMaskPal,
[in] BYTE CMYMask,
[in] USHORT RedGamma,
[in] USHORT GreenGamma,
[in] USHORT BlueGamma
);
Paramètres
[in, out] pPaletteEntry
Pointeur vers le tableau de structures PALETTEENTRY (décrit dans la documentation du KIT de développement logiciel (SDK) Windows) à remplir. GDI part du principe qu’il pointe vers un espace mémoire valide dans lequel GDI peut placer l’intégralité de la palette de demi-tons 8 bits par pixel.
Pour un pilote qui s’exécute sur Windows XP et les versions ultérieures du système d’exploitation, GDI vérifie pPaletteEntry[0] pour déterminer comment retourner la palette CMY composée. Si pPaletteEntry[0] est défini sur « RGB0 », la palette se trouve dans l’un des modes CMY_INVERTED et ses index sont inversés. Autrement dit, l’index 0 dans la palette est noir et l’index 255 est blanc. Si pPaletteEntry[0] n’est pas défini sur « RGB0 », la palette est une palette CMY normale, l’index 0 étant blanc et l’index 255 noir. Pour plus d’informations sur l’utilisation de ce paramètre, consultez Utilisation des modes de masque CMY 8 bits par pixel GDI .
Windows 2000 ignore toute valeur que le pilote place dans pPaletteEntry[0]. Pour cette raison, si votre pilote est destiné à s’exécuter sur Windows 2000 et Windows XP ou versions ultérieures, et que votre pilote définit pPaletteEntry[0] sur « RGB0 », les bitmaps que votre pilote reçoit de Windows XP et les versions ultérieures peuvent avoir leurs couleurs inversées, par rapport à celles reçues de Windows 2000. Par conséquent, un tel pilote doit examiner la palette avant de télécharger une bitmap.
[in] Use8BPPMaskPal
Indique le type de palette à retourner. Lorsque Use8BPPMaskPal a la valeur TRUE, HT_Get8BPPMaskPalette définit le paramètre pPaletteEntry avec l’adresse d’une palette CMY (tableau de structures PALETTEENTRY) qui est décrite par le masque de bits spécifié dans CMYMask. Lorsque Use8BPPMaskPal a la valeur FALSE, la fonction définit pPaletteEntry avec l’adresse d’une palette de demi-tons RVB 8 bits par pixel standard.
[in] CMYMask
Spécifie des informations sur le tableau des structures PALETTEENTRY pointées par pPaletteEntry. Ce paramètre peut prendre l'une des valeurs suivantes :
Valeur | Signification |
---|---|
0 | Échelle de gris avec 256 niveaux |
1 | Cinq niveaux de cyan, de magenta et de jaune (chacun allant de 0 à 4), pour un total de 125 couleurs |
2 | Six niveaux de cyan, de magenta et de jaune (chacun allant de 0 à 5), pour un total de 216 couleurs |
3 à 255 | Masque de bits qui spécifie le nombre maximal de niveaux de cyan, de magenta et de jaune, respectivement. |
Les pilotes s’exécutant sur Windows 2000 doivent être limités à 8 bits par pixel monochrome. Autrement dit, la valeur de CMYMask utilisée doit être 0.
Pour Windows XP et les versions ultérieures du système d’exploitation, ainsi que pour toutes les valeurs de CMYMask, la valeur de pPaletteEntry[0] détermine si la palette qui suit pPaletteEntry[0] est une palette CMY normale ou l’une des palettes de mode CMY_INVERTED. Pour plus d’informations, consultez la description du paramètre pPaletteEntry .
Pour les valeurs de CMYMask comprises entre 3 et 255, inclus, la valeur est un masque de bits dans lequel les groupes de bits ont les significations suivantes :
- Les trois bits les plus élevés (bits 7,6,5) spécifient le nombre de niveaux de cyan. Au maximum, sept niveaux de cyan (niveaux 1 à 7) sont possibles.
- Les trois bits du milieu (bits 4,3,2) spécifient le nombre de niveaux de magenta. Au maximum, sept niveaux de magenta (niveaux 1 à 7) sont possibles.
- Les deux bits les plus bas (bits 1,0) spécifient le nombre de niveaux de jaune. Au maximum, trois niveaux de jaune (niveaux 1 à 3) sont possibles.
[in] RedGamma
Si Use8BPPMaskPal a la valeur TRUE, la valeur de ce paramètre n’est pas utilisée. Dans ce cas, les valeurs gamma sont spécifiées dans le membre ciDevice de la structure GDIINFO .
Si Use8BPPMaskPal a la valeur FALSE, la valeur de ce paramètre spécifie la valeur gamma rouge, parmi les valeurs gamma rouge, verte et bleue que GDI doit utiliser pour corriger la palette. La valeur USHORT est interprétée comme un nombre réel dont les quatre chiffres les moins significatifs se trouvent à droite de la virgule décimale. Par exemple, une valeur gamma de 10000 représente le nombre réel 1.0000 et 12345 représente 1.2345. La valeur gamma minimale autorisée est 0,0000 et la valeur maximale autorisée est 6,5535.
[in] GreenGamma
Si Use8BPPMaskPal a la valeur TRUE, la valeur de ce paramètre n’est pas utilisée. Dans ce cas, les valeurs gamma sont spécifiées dans le membre ciDevice de la structure GDIINFO .
Si Use8BPPMaskPal a la valeur FALSE, la valeur de ce paramètre spécifie la valeur gamma verte, parmi les valeurs gamma rouge, verte et bleue que GDI doit utiliser pour corriger la palette. La valeur USHORT est interprétée comme un nombre réel dont les quatre chiffres les moins significatifs se trouvent à droite de la virgule décimale. Par exemple, une valeur gamma de 10000 représente le nombre réel 1.0000 et 12345 représente 1.2345. La valeur gamma minimale autorisée est 0,0000 et la valeur maximale autorisée est 6,5535.
[in] BlueGamma
Si Use8BPPMaskPal a la valeur TRUE, la valeur de ce paramètre n’est pas utilisée. Dans ce cas, les valeurs gamma sont spécifiées dans le membre ciDevice de la structure GDIINFO .
Si Use8BPPMaskPal a la valeur FALSE, la valeur de ce paramètre spécifie la valeur gamma bleue, parmi les valeurs gamma rouge, verte et bleue que GDI doit utiliser pour corriger la palette. La valeur USHORT est interprétée comme un nombre réel dont les quatre chiffres les moins significatifs se trouvent à droite de la virgule décimale. Par exemple, une valeur gamma de 10000 représente le nombre réel 1.0000 et 12345 représente 1.2345. La valeur gamma minimale autorisée est 0,0000 et la valeur maximale autorisée est 6,5535.
Valeur retournée
Si pPaletteEntry n’a pas la valeur NULL, HT_Get8BPPMaskPalette retourne le nombre de structures PALETTEENTRY renseignées par GDI dans le tableau vers lequel pPaletteEntry pointe. Si pPaletteEntry a la valeur NULL, la valeur retournée correspond au nombre total de structures PALETTEENTRY requises pour stocker la palette de demi-tons.
Si une valeur non valide du paramètre CMYMask est utilisée dans l’appel à cette fonction, HT_Get8BPPMaskPalette retourne une valeur de zéro.
Remarques
La structure PALETTEENTRY est documentée dans la documentation du Kit de développement logiciel (SDK) Windows.
L’appel de HT_Get8BPPMaskPalette avec use8BPPMaskPal défini sur FALSE équivaut à appeler HT_Get8BPPFormatPalette.
Pour plus d’informations sur cette fonction et la façon dont ses paramètres sont utilisés, consultez Utilisation des modes de masque CMY 8 bits par pixel de GDI .
Configuration requise
Client minimal pris en charge | Disponible dans Windows 2000 et versions ultérieures des systèmes d’exploitation Windows. |
Plateforme cible | Universal |
En-tête | winddi.h (inclure Winddi.h) |
Bibliothèque | Win32k.lib |
DLL | Win32k.sys |