funzione HT_Get8BPPMaskPalette (winddi.h)
La funzione HT_Get8BPPMaskPalette restituisce una tavolozza maschera per un tipo di dispositivo a 8 bit per pixel.
Sintassi
LONG HT_Get8BPPMaskPalette(
[in, out] LPPALETTEENTRY pPaletteEntry,
[in] BOOL Use8BPPMaskPal,
[in] BYTE CMYMask,
[in] USHORT RedGamma,
[in] USHORT GreenGamma,
[in] USHORT BlueGamma
);
Parametri
[in, out] pPaletteEntry
Puntatore alla matrice di strutture PALETTEENTRY (descritte nella documentazione di Windows SDK) da compilare. GDI presuppone che punti allo spazio di memoria valido in cui GDI può posizionare l'intera tavolozza a metàtone a 8 bit per pixel.
Per un driver in esecuzione in Windows XP e versioni successive del sistema operativo, GDI controlla pPaletteEntry[0] per determinare come restituire la tavolozza CMY composta. Se pPaletteEntry[0] è impostato su 'RGB0', la tavolozza sarà in una delle modalità CMY_INVERTED e avrà gli indici invertiti. Ovvero, l'indice 0 nella tavolozza è nero e l'indice 255 è bianco. Se pPaletteEntry[0] non è impostato su 'RGB0', la tavolozza è una tavolozza CMY normale, con indice 0 bianco e indice 255 nero. Per informazioni dettagliate su come usare questo parametro, vedere Uso delle modalità maschera CMY GDI a 8 bit per pixel .
Windows 2000 ignora qualsiasi valore che il driver inserisce in pPaletteEntry[0]. Per questo motivo, se il driver deve essere eseguito in Windows 2000 e in Windows XP o versioni successive e il driver imposta pPaletteEntry[0] su 'RGB0', le bitmap ricevute dal driver da Windows XP e versioni successive potrebbero avere i colori invertiti, rispetto a quelli ricevuti da Windows 2000. Pertanto, tale driver deve esaminare la tavolozza prima di scaricare una bitmap.
[in] Use8BPPMaskPal
Indica il tipo di tavolozza da restituire. Quando Use8BPPMaskPal è TRUE, HT_Get8BPPMaskPalette imposta il parametro pPaletteEntry con l'indirizzo di una tavolozza CMY (una matrice di strutture PALETTEENTRY) descritta dalla maschera di bit specificata in CMYMask. Quando Use8BPPMaskPal è FALSE, la funzione imposta pPaletteEntry con l'indirizzo di una tavolozza a metàtone RGB standard a 8 bit per pixel.
[in] CMYMask
Specifica informazioni sulla matrice di strutture PALETTEENTRY a cui punta pPaletteEntry. Per il parametro è possibile specificare uno dei valori riportati di seguito:
Valore | Significato |
---|---|
0 | Scala grigia con 256 livelli |
1 | Cinque livelli ciascuno di ciano, magenta e giallo (ciascuno compreso tra 0 e 4), per un totale di 125 colori |
2 | Sei livelli ciascuno di ciano, magenta e giallo (ognuno compreso tra 0 e 5), per un totale di 216 colori |
da 3 a 255 | Maschera di bit che specifica il numero massimo di livelli di ciano, magenta e giallo rispettivamente. |
I driver in esecuzione in Windows 2000 devono essere limitati a un monocromatico a 8 bit per pixel. Ovvero, il valore di CMYMask usato deve essere 0.
Per windows XP e versioni successive del sistema operativo e per tutti i valori di CMYMask, il valore in pPaletteEntry[0] determina se la tavolozza che segue pPaletteEntry[0] è una tavolozza CMY normale o una delle tavolozze in modalità CMY_INVERTED. Per altre informazioni, vedere la descrizione del parametro pPaletteEntry .
Per i valori di CMYMask compresi tra 3 e 255, inclusi, il valore è una maschera di bit in cui i gruppi di bit hanno i significati seguenti:
- I tre bit più alti (bit 7,6,5) specificano il numero di livelli di ciano. Al massimo, sono possibili sette livelli di ciano (livelli da 1 a 7).
- I tre bit centrali (bit 4,3,2) specificano il numero di livelli di magenta. Al massimo, sono possibili sette livelli di magenta (livelli da 1 a 7).
- I due bit più bassi (bit 1,0) specificano il numero di livelli di giallo. Al massimo, sono possibili tre livelli di giallo (livelli da 1 a 3).
[in] RedGamma
Se Use8BPPMaskPal è TRUE, il valore di questo parametro non viene utilizzato. In tal caso, i valori gamma verranno specificati nel membro ciDevice della struttura GDIINFO .
Se Use8BPPMaskPal è FALSE, il valore di questo parametro specifica il valore gamma rosso, dai valori gamma rosso, verde e blu da usare per correggere la tavolozza. Il valore USHORT viene interpretato come un numero reale le cui quattro cifre meno significative sono a destra del separatore decimale. Ad esempio, un valore gamma pari a 10000 rappresenta il numero reale 1,0000 e 12345 rappresenta 1,2345. Il valore gamma minimo consentito è 0,0000 e il valore massimo consentito è 6,5535.
[in] GreenGamma
Se Use8BPPMaskPal è TRUE, il valore di questo parametro non viene utilizzato. In tal caso, i valori gamma verranno specificati nel membro ciDevice della struttura GDIINFO .
Se Use8BPPMaskPal è FALSE, il valore di questo parametro specifica il valore gamma verde, dai valori gamma rosso, verde e blu da usare per correggere la tavolozza. Il valore USHORT viene interpretato come un numero reale le cui quattro cifre meno significative sono a destra del separatore decimale. Ad esempio, un valore gamma pari a 10000 rappresenta il numero reale 1,0000 e 12345 rappresenta 1,2345. Il valore gamma minimo consentito è 0,0000 e il valore massimo consentito è 6,5535.
[in] BlueGamma
Se Use8BPPMaskPal è TRUE, il valore di questo parametro non viene utilizzato. In tal caso, i valori gamma verranno specificati nel membro ciDevice della struttura GDIINFO .
Se Use8BPPMaskPal è FALSE, il valore di questo parametro specifica il valore gamma blu, dai valori gamma rosso, verde e blu da usare per correggere la tavolozza. Il valore USHORT viene interpretato come un numero reale le cui quattro cifre meno significative sono a destra del separatore decimale. Ad esempio, un valore gamma pari a 10000 rappresenta il numero reale 1,0000 e 12345 rappresenta 1,2345. Il valore gamma minimo consentito è 0,0000 e il valore massimo consentito è 6,5535.
Valore restituito
Se pPaletteEntry non è NULL, HT_Get8BPPMaskPalette restituisce il numero di strutture PALETTEENTRY compilate da GDI nella matrice in cui pPaletteEntry punta. Se pPaletteEntry è NULL, il valore restituito è il conteggio totale delle strutture PALETTEENTRY necessarie per archiviare la tavolozza halftone.
Se viene usato un valore non valido del parametro CMYMask nella chiamata a questa funzione, HT_Get8BPPMaskPalette restituisce un valore pari a zero.
Commenti
La struttura PALETTEENTRY è documentata nella documentazione di Windows SDK.
La chiamata HT_Get8BPPMaskPalette con il set Use8BPPMaskPalfalse equivale a chiamare HT_Get8BPPFormatPalette.
Per altre informazioni su questa funzione e su come vengono usati i parametri, vedere Using GDI 8-Bit-Per-Pixel CMY Mask Modes (Uso delle modalità maschera CMY A 8 bit per pixel ).
Requisiti
Client minimo supportato | Disponibile in Windows 2000 e versioni successive dei sistemi operativi Windows. |
Piattaforma di destinazione | Universale |
Intestazione | winddi.h (include Winddi.h) |
Libreria | Win32k.lib |
DLL | Win32k.sys |