Função HT_Get8BPPMaskPalette (winddi.h)
A função HT_Get8BPPMaskPalette retorna uma paleta de máscaras para um tipo de dispositivo de 8 bits por pixel.
Sintaxe
LONG HT_Get8BPPMaskPalette(
[in, out] LPPALETTEENTRY pPaletteEntry,
[in] BOOL Use8BPPMaskPal,
[in] BYTE CMYMask,
[in] USHORT RedGamma,
[in] USHORT GreenGamma,
[in] USHORT BlueGamma
);
Parâmetros
[in, out] pPaletteEntry
Ponteiro para a matriz de estruturas PALETTEENTRY (descrita na documentação do SDK do Windows) a ser preenchida. A GDI pressupõe que aponta para um espaço de memória válido no qual o GDI pode colocar toda a paleta de meio tom de 8 bits por pixel.
Para um driver executado no Windows XP e versões posteriores do sistema operacional, o GDI verifica pPaletteEntry[0] para determinar como retornar a paleta CMY composta. Se pPaletteEntry[0] estiver definido como 'RGB0', a paleta estará em um dos modos CMY_INVERTED e terá seus índices invertidos. Ou seja, o índice 0 na paleta é preto e o índice 255 é branco. Se pPaletteEntry[0] não estiver definido como 'RGB0', a paleta será uma paleta CMY normal, com o índice 0 sendo branco e o índice 255 sendo preto. Consulte Usando modos de máscara CMY GDI de 8 bits por pixel para obter novos requisitos e detalhes sobre como usar esse parâmetro.
O Windows 2000 ignora qualquer valor que o driver coloca em pPaletteEntry[0]. Por esse motivo, se o driver se destina a ser executado no Windows 2000 e no Windows XP ou em versões posteriores, e seu driver define pPaletteEntry[0] como 'RGB0', os bitmaps que seu driver recebe do Windows XP e posteriores podem ter suas cores invertidas, em relação às recebidas do Windows 2000. Portanto, esse driver deve examinar a paleta antes de baixar um bitmap.
[in] Use8BPPMaskPal
Indica qual tipo de paleta deve ser retornado. Quando Use8BPPMaskPal for TRUE, HT_Get8BPPMaskPalette define o parâmetro pPaletteEntry com o endereço de uma paleta CMY (uma matriz de estruturas PALETTEENTRY) descrita pela máscara de bits especificada em CMYMask. Quando Use8BPPMaskPal é FALSE, a função define pPaletteEntry com o endereço de uma paleta de meio tom RGB padrão de 8 bits por pixel.
[in] CMYMask
Especifica informações sobre a matriz de estruturas PALETTEENTRY apontadas por pPaletteEntry. Esse parâmetro pode ter um dos seguintes valores:
Valor | Significado |
---|---|
0 | Escala cinza com 256 níveis |
1 | Cinco níveis cada um de ciano, magenta e amarelo (cada um variando de 0 a 4), para um total de 125 cores |
2 | Seis níveis cada um de ciano, magenta e amarelo (cada um variando de 0 a 5), para um total de 216 cores |
3 a 255 | Uma máscara de bits que especifica esse número máximo de níveis de ciano, magenta e amarelo, respectivamente. |
Os drivers em execução no Windows 2000 devem ser restritos ao monocromático de 8 bits por pixel. Ou seja, o valor de CMYMask usado deve ser 0.
Para o Windows XP e versões posteriores do sistema operacional e para todos os valores de CMYMask, o valor em pPaletteEntry[0] determina se a paleta que segue pPaletteEntry[0] é uma paleta CMY normal ou uma das paletas de modo CMY_INVERTED. Para obter mais informações, consulte a descrição do parâmetro pPaletteEntry .
Para valores de CMYMask de 3 a 255, inclusive, o valor é uma máscara de bits na qual grupos de bits têm os seguintes significados:
- Os três bits mais altos (bits 7,6,5) especificam o número de níveis de ciano. No máximo, sete níveis de ciano (níveis de 1 a 7) são possíveis.
- Os três bits médios (bits 4,3,2) especificam o número de níveis de magenta. No máximo, sete níveis de magenta (níveis de 1 a 7) são possíveis.
- Os dois bits mais baixos (bits 1,0) especificam o número de níveis de amarelo. No máximo, três níveis de amarelo (níveis de 1 a 3) são possíveis.
[in] RedGamma
Se Use8BPPMaskPal for TRUE, o valor desse parâmetro não será usado. Nesse caso, os valores gama serão especificados no membro ciDevice da estrutura GDIINFO .
Se Use8BPPMaskPal for FALSE, o valor desse parâmetro especificará o valor gama vermelho, dos valores gama vermelhos, verdes e azuis que a GDI deve usar para corrigir a paleta. O valor USHORT é interpretado como um número real cujos quatro dígitos menos significativos estão à direita do ponto decimal. Por exemplo, um valor gama de 10000 representa o número real 1.0000 e 12345 representa 1,2345. O valor mínimo de gama permitido é 0,0000 e o valor máximo permitido é 6,5535.
[in] GreenGamma
Se Use8BPPMaskPal for TRUE, o valor desse parâmetro não será usado. Nesse caso, os valores gama serão especificados no membro ciDevice da estrutura GDIINFO .
Se Use8BPPMaskPal for FALSE, o valor desse parâmetro especificará o valor gama verde, dos valores gama vermelhos, verdes e azuis que a GDI deve usar para corrigir gama da paleta. O valor USHORT é interpretado como um número real cujos quatro dígitos menos significativos estão à direita do ponto decimal. Por exemplo, um valor gama de 10000 representa o número real 1.0000 e 12345 representa 1,2345. O valor mínimo de gama permitido é 0,0000 e o valor máximo permitido é 6,5535.
[in] BlueGamma
Se Use8BPPMaskPal for TRUE, o valor desse parâmetro não será usado. Nesse caso, os valores gama serão especificados no membro ciDevice da estrutura GDIINFO .
Se Use8BPPMaskPal for FALSE, o valor desse parâmetro especificará o valor gama azul, dos valores gama vermelhos, verdes e azuis que a GDI deve usar para corrigir a paleta. O valor USHORT é interpretado como um número real cujos quatro dígitos menos significativos estão à direita do ponto decimal. Por exemplo, um valor gama de 10000 representa o número real 1.0000 e 12345 representa 1,2345. O valor mínimo de gama permitido é 0,0000 e o valor máximo permitido é 6,5535.
Valor retornado
Se pPaletteEntry não for NULL, HT_Get8BPPMaskPalette retornará o número de estruturas PALETTEENTRY preenchidas pela GDI na matriz à qual pPaletteEntry aponta. Se pPaletteEntry for NULL, o valor retornado será a contagem total de estruturas PALETTEENTRY necessárias para armazenar a paleta de halftone.
Se um valor ilegal do parâmetro CMYMask for usado na chamada para essa função, HT_Get8BPPMaskPalette retornará um valor igual a zero.
Comentários
A estrutura PALETTEENTRY está documentada na documentação do SDK do Windows.
Chamar HT_Get8BPPMaskPalette com Use8BPPMaskPal set FALSE é equivalente a chamar HT_Get8BPPFormatPalette.
Consulte Usando modos de máscara CMY GDI de 8 bits por pixel para obter mais informações sobre essa função e como seus parâmetros são usados.
Requisitos
Cliente mínimo com suporte | Disponível no Windows 2000 e versões posteriores dos sistemas operacionais Windows. |
Plataforma de Destino | Universal |
Cabeçalho | winddi.h (inclua Winddi.h) |
Biblioteca | Win32k.lib |
DLL | Win32k.sys |