DLLs de ponto e impressão
Opcionalmente, você pode fornecer uma DLL especial de Ponto e Impressão associando seu nome ao valor do Registro do módulo . Essa DLL deve exportar as duas funções a seguir:
GenerateCopyFilePaths
Essa função, que é chamada pelo spooler do servidor e pelo spooler do cliente, pode ser usada para modificar o caminho de diretório especificado pelo valor do Registro de Diretório. O caminho de origem (no servidor) ou o caminho de destino (no cliente) ou ambos podem ser modificados.
SpoolerCopyFileEvent
Essa função, também chamada pelo spooler do servidor e pelo spooler do cliente, recebe um código de evento que indica a ocorrência de determinados eventos de impressora relacionados à conexão.
Uma DLL de Ponto e Impressão não precisa exportar apenas essas funções. Por exemplo, Mscms.dll, que é usado pelo componente ICM da Microsoft, também exporta um conjunto de funções de API do ICM.
Observe que você pode especificar outras DLLs além ou, em vez de, uma DLL de Ponto e Impressão que exporta GenerateCopyFilePaths e SpoolerCopyFileEvent. Para fazer isso, atribua os nomes de arquivo DLL à chave do Registro arquivos em vez da chave do Registro do módulo . (Consulte Instalando arquivos Queue-Specific).
Depois que o aplicativo de instalação tiver colocado o nome da DLL no registro do servidor chamando SetPrinterDataEx, todas as chamadas subsequentes para SetPrinterDataEx resultarão em uma chamada para a função SpoolerCopyFileEvent da DLL, com um código de evento fornecido de COPYFILE_EVENT_SET_PRINTER_DATAEX.
Ao contrário dos arquivos listados na chave do Registro de Arquivos (consulte Instalando arquivos Queue-Specific), a DLL de Ponto e Impressão não é copiada do servidor de impressão para o cliente quando o cliente se conecta a uma impressora. Em vez disso, presume-se que a DLL já seja residente do cliente quando uma conexão com o servidor de impressão for feita. Como resultado, a DLL pode ser usada para fins adicionais não relacionadas à funcionalidade Ponto e Impressão.
Um método para instalar a DLL de Ponto e Impressão em um cliente é especificar seu nome em um arquivo INF da impressora como um arquivo dependente, para que o arquivo possa ser copiado para o diretório de driver do cliente durante o download de arquivos específicos do driver.