Compartilhar via


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.
Para valores de CMYMask que variam de 3 a 255, qualquer combinação de máscara de bits na qual os bits de nível ciano, magenta ou amarelo são zero é inválida. Nesses casos, HT_Get8BPPMaskPalette retorna uma contagem de paletas de zero. Consulte Usando modos de máscara CMY cmy GDI de 8 bits por pixel para obter mais informações.

[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

Confira também

HT_Get8BPPFormatPalette