Compartilhar via


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
Winspool.h (inclua Windows.h)
Biblioteca
Winspool.lib
DLL
Winspool.drv
Nomes Unicode e ANSI
AddJobW (Unicode) e AddJobA (ANSI)

Confira também

ADDJOB_INFO_1

CreateFile

API de Impressão GDI

Impressão

Funções da API do Spooler de impressão

OpenPrinter

ScheduleJob

StartDocPrinter

Windows.Graphics.Printing

WriteFile

API de Impressão XPS