Suporte a spooler de impressão para serviços de diretório de impressora
O suporte ao spooler de impressão para serviços de diretório consiste em:
Publicando filas de impressão
Manutenção de três chaves do Registro
Permitindo o acesso a chaves do Registro mantidas pelo spooler
Retornando o estado de publicação de uma fila de impressão
Publicando filas de impressão
A função SetPrinter permite que os chamadores publiquem, cancelem a publicação ou atualizem um objeto de fila de impressão. Para essas finalidades, a função SetPrinter deve ser chamada com uma estrutura de entrada de PRINTER_INFO_7.
Um objeto de fila de impressão só poderá ser publicado se estiver associado ao objeto de computador que descreve o servidor de impressão ao qual o usuário está conectado. A capacidade de um usuário de publicar uma fila de impressão é determinada por seus direitos de acesso, conforme contido no contexto de segurança do cliente do usuário. Você poderá publicar uma fila de impressão se tiver a permissão Gerenciar Impressoras na fila de impressão.
Manutenção de três chaves do Registro
Três chaves do Registro contêm cópias de todas as informações publicadas no objeto de fila de impressão. As três chaves são referenciadas usando os seguintes identificadores, definidos em winspool.h:
Chave | Definição |
---|---|
SPLDS_DRIVER_KEY | Para armazenar informações específicas do driver, que podem ser fornecidas pelo spooler ou pelo driver. |
SPLDS_SPOOLER_KEY | Para armazenar informações específicas do spooler fornecidas pelo spooler. |
SPLDS_USER_KEY | Para armazenar informações específicas do usuário fornecidas pelo aplicativo. |
O spooler usa SPLDS_DRIVER_KEY para armazenar recursos de driver que podem ser obtidos chamando a função DeviceCapabilities . O driver é responsável por armazenar as funcionalidades do driver que o spooler não pode obter, conforme descrito em Suporte de driver de impressora para serviços de diretório de impressora. Os valores armazenados nessas chaves devem ser identificados por constantes prefixadas SPLDS_, definidas em winspool.h.
O spooler controla quais valores sob essas chaves foram modificados desde a última vez em que o objeto da fila de impressão foi atualizado. Cada vez que o spooler publica ou atualiza o objeto de fila de impressão, ele copia todos os valores modificados para o objeto .
Permitindo o acesso a chaves do Registro mantidas pelo spooler
O spooler permite que os drivers de impressora acessem as três chaves do Registro mantidas pelo spooler chamando as funções SetPrinterDataEx, GetPrinterDataEx e EnumPrinterDataEx . A função SetPrinterDataEx define valores sob as chaves, enquanto GetPrinterDataEx e EnumPrinterDataEx retornam valores atuais. Os drivers não devem definir valores sob a chave SPLDS_SPOOLER_KEY. Os chamadores dessas funções não especificam um caminho completo do Registro; as funções determinam automaticamente o caminho para as entradas do Registro da fila de impressão especificadas.
Retornando o estado de publicação de uma fila de impressão
A função GetPrinter permite que os chamadores determinem se uma fila de impressão está publicada no momento. Para essa finalidade, a função GetPrinter deve ser chamada com uma estrutura de entrada de PRINTER_INFO_7. A função retorna o estado de publicação da fila de impressão (publicado ou não publicado) e o identificador de objeto.