Partilhar via


Controle do driver e controle do dispositivo

Importante

A plataforma de impressão moderna é o meio preferencial do Windows para se comunicar com as impressoras. Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft juntamente com PSA (Aplicativos de Suporte à Impressão) para personalizar a experiência de impressão no Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.

Para obter mais informações, consulte Plataformade impressão moderna e o Guia de design do aplicativo de suporte de impressão.

Se o controle de gerenciamento de cores for fornecido pelo driver ou pelo hardware da impressora, a DLL da placa gráfica da impressora deve definir o sinalizador GCAPS_ICM na estrutura DEVINFO.

O driver deve indicar o suporte para o espaço de cores CMYK (se apropriado), conforme descrito em Suporte ao espaço de cores CMYK.

As DLLs de placas gráficas de impressora devem definir as três funções a seguir:

A GDI chama a função DrvIcmCreateColorTransform para fornecer ao driver perfis ICC para o trabalho de impressão. Dados esses perfis, a função pode criar uma transformação de cores interna para usar ao corrigir informações de cores. Uma transformação de cores é um mapeamento específico do driver, definido internamente, de um espaço de cores para outro. A função retorna um identificador para a transformação, que o GDI armazena.

Os sinalizadores dentro das estruturas BRUSHOBJ e XLATEOBJ indicam se o gerenciamento de cores está sendo realizado pelo sistema (ou aplicativo) ou pelo driver (ou dispositivo). Dentro de cada função de desenho de DDI gráfica implementada pelo driver que recebe uma (ou ambas) dessas estruturas, os sinalizadores devem ser verificados. Se o sistema ou aplicativo estiver lidando com o gerenciamento de cores, o driver ou o dispositivo não deverá fazer isso. Se o gerenciamento de cores do driver ou do dispositivo estiver habilitado, a função DDI de placas gráficas deverá chamar BRUSHOBJ_hGetColorTransform ou XLATEOBJ_hGetColorTransform (ou ambos) para obter um identificador para a transformação de cores a ser usada. O identificador será um que o driver forneceu em resposta a uma chamada anterior para sua função DrvIcmCreateColorTransform.

Lidar com gerenciamento de cores próprio

Para alguns dispositivos, o gerenciamento de cores próprio é executado (pelo driver ou pelo hardware), independentemente de o ICM ter sido habilitado. Os drivers desses dispositivos não devem permitir que a correção de cores seja executada se os dados da imagem recebida já tiverem sido corrigidos. Os dados pré-corrigidos poderão ser recebidos se:

  • Um aplicativo corrigiu a cor da imagem "fora do DC" (consulte a documentação do SDK do Microsoft Windows).

  • O gerenciamento de cores está sendo tratado pelo sistema.

Para qualquer um desses cenários, o sinalizador BR_HOST_ICM no membro flColorType de BRUSHOBJ e o sinalizador XO_HOST_ICM no membro flXlate de XLATEOBJ será definido. Esses sinalizadores poderão ser definidos mesmo que o membro dmICMMethod de DEVMODEW seja DMICMMETHOD_NONE.