Condividi tramite


Funzione AddJob

La funzione AddJob aggiunge un processo di stampa all'elenco dei processi di stampa che possono essere pianificati dallo spooler di stampa. La funzione recupera il nome del file che è possibile usare per archiviare il processo.

Nota

Nei sistemi operativi Windows 8 e versioni successive non è consigliabile usare direttamente AddJob perché esistono casi come la stampa in una coda usando File: o PORTPROMPT:) dove AddJob avrà esito negativo. È invece consigliabile usare l'API di stampa GDI, l'API di stampa XPS, StartDocPrinter o il metodo appropriato dallo spazio dei nomi Windows.Graphics.Printing , a seconda dello scenario di stampa.

Se si tenta di stampare in una coda usando File: o PORTPROMPT:, AddJob restituirà l'errore NOT_SUPPORTED.

Sintassi

BOOL AddJob(
  _In_  HANDLE  hPrinter,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pData,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded
);

Parametri

hPrinter [in]

Handle che specifica la stampante per il processo di stampa. Deve trattarsi di una stampante locale configurata come stampante con spooling. Se hPrinter è un handle per una connessione alla stampante remota o se la stampante è configurata per la stampa diretta, la funzione AddJob ha esito negativo . Utilizzare la funzione OpenPrinter o AddPrinter per recuperare un handle della stampante.

Livello [in]

Versione della struttura dei dati delle informazioni sul processo di stampa archiviata dalla funzione nel buffer a cui punta pData. Impostare questo parametro su uno.

pData [out]

Puntatore a un buffer che riceve una struttura di dati ADDJOB_INFO_1 e una stringa di percorso.

cbBuf [in]

Dimensione, in byte, del buffer a cui punta pData. Il buffer deve essere sufficientemente grande da contenere una struttura ADDJOB_INFO_1 e una stringa di percorso.

pcbNeeded [out]

Puntatore a una variabile che riceve le dimensioni totali, in byte, della struttura dei dati ADDJOB_INFO_1 più la stringa di percorso. Se questo valore è minore o uguale a cbBuf e la funzione ha esito positivo, si tratta del numero effettivo di byte scritti nel buffer a cui punta pData. Se questo numero è maggiore di cbBuf, il buffer è troppo piccolo ed è necessario chiamare di nuovo la funzione con dimensioni del buffer almeno pari a *pcbNeeded.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è un valore diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero.

Commenti

Nota

Si tratta di una funzione di blocco o sincrona e potrebbe non restituire immediatamente. La velocità di restituzione di questa funzione dipende da fattori di runtime come lo stato della rete, la configurazione del server di stampa e i fattori di implementazione del driver della stampante difficili da prevedere durante la scrittura di un'applicazione. Chiamando questa funzione da un thread che gestisce l'interazione con l'interfaccia utente, l'applicazione potrebbe sembrare non rispondente.

È possibile chiamare la funzione CreateFile per aprire il file di spooling specificato dal membro Path della struttura ADDJOB_INFO_1 e quindi chiamare la funzione WriteFile per scrivere i dati del processo di stampa. Al termine, chiamare la funzione ScheduleJob per notificare allo spooler di stampa che il processo di stampa può ora essere pianificato dallo spooler per la stampa.

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Winspool.h (include Windows.h)
Libreria
Winspool.lib
DLL
Winspool.drv
Nomi Unicode e ANSI
AddJobW (Unicode) e AddJobA (ANSI)

Vedi anche

ADDJOB_INFO_1

CreateFile

API di stampa GDI

Stampa

Funzioni dell'API spooler di stampa

OpenPrinter

ScheduleJob

StartDocPrinter

Windows.graphics.printingspazio

WriteFile

API di stampa XPS