Função AddJob
A função AddJob adiciona um trabalho de impressão à lista de trabalhos de impressão que podem ser agendados pelo spooler de impressão. A função recupera o nome do arquivo que você pode usar para armazenar o trabalho.
Observação
No Windows 8 e em sistemas operacionais posteriores, não recomendamos usar AddJob diretamente porque há casos (como imprimir em uma fila usando Arquivo: ou PORTPROMPT:) em que AddJob falhará. Em vez disso, é recomendável usar a API de Impressão GDI, a API de Impressão XPS, StartDocPrinter ou o método apropriado do namespace Windows.Graphics.Printing , dependendo do cenário de impressão.
Se você tentar imprimir em uma fila usando Arquivo: ou PORTPROMPT:, AddJob retornará o erro NOT_SUPPORTED.
Sintaxe
BOOL AddJob(
_In_ HANDLE hPrinter,
_In_ DWORD Level,
_Out_ LPBYTE pData,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcbNeeded
);
Parâmetros
-
hPrinter [in]
-
Um identificador que especifica a impressora para o trabalho de impressão. Deve ser uma impressora local configurada como uma impressora em spool. Se hPrinter for um identificador para uma conexão de impressora remota ou se a impressora estiver configurada para impressão direta, a função AddJob falhará. Use a função OpenPrinter ou AddPrinter para recuperar um identificador de impressora.
-
Nível [in]
-
A versão da estrutura de dados de informações do trabalho de impressão que a função armazena no buffer apontado por pData. Defina esse parâmetro como um.
-
pData [out]
-
Um ponteiro para um buffer que recebe uma estrutura de dados ADDJOB_INFO_1 e uma cadeia de caracteres de caminho.
-
cbBuf [in]
-
O tamanho, em bytes, do buffer apontado por pData. O buffer precisa ser grande o suficiente para conter uma estrutura ADDJOB_INFO_1 e uma cadeia de caracteres de caminho.
-
pcbNeeded [out]
-
Um ponteiro para uma variável que recebe o tamanho total, em bytes, da estrutura de dados ADDJOB_INFO_1 mais a cadeia de caracteres de caminho. Se esse valor for menor ou igual a cbBuf e a função for bem-sucedida, esse será o número real de bytes gravados no buffer apontado por pData. Se esse número for maior que cbBuf, o buffer será muito pequeno e você deverá chamar a função novamente com um tamanho de buffer pelo menos tão grande quanto *pcbNeeded.
Valor retornado
Se a função for bem-sucedida, o valor retornado será um valor diferente de zero.
Se a função falhar, o valor retornado será zero.
Comentários
Observação
Essa é uma função de bloqueio ou síncrona e pode não retornar imediatamente. A rapidez com que essa função retorna depende de fatores de tempo de execução, como status de rede, configuração do servidor de impressão e fatores de implementação de driver de impressora que são difíceis de prever ao escrever um aplicativo. Chamar essa função de um thread que gerencia a interação com a interface do usuário pode fazer com que o aplicativo pareça não responder.
Você pode chamar a função CreateFile para abrir o arquivo de spool especificado pelo membro Path da estrutura ADDJOB_INFO_1 e, em seguida, chamar a função WriteFile para gravar dados de trabalho de impressão nela. Depois disso, chame a função ScheduleJob para notificar o spooler de impressão de que o trabalho de impressão agora pode ser agendado pelo spooler para impressão.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows 2000 Server [somente aplicativos da área de trabalho] |
Cabeçalho |
|
Biblioteca |
|
DLL |
|
Nomes Unicode e ANSI |
AddJobW (Unicode) e AddJobA (ANSI) |