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.
BOOL AddJob(
_In_ HANDLE hPrinter,
_In_ DWORD Level,
_Out_ LPBYTE pData,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcbNeeded
);
-
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.
Se la funzione ha esito positivo, il valore restituito è un valore diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero.
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.
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 2000 Professional [solo app desktop] |
Server minimo supportato |
Windows 2000 Server [solo app desktop] |
Intestazione |
|
Libreria |
|
DLL |
|
Nomi Unicode e ANSI |
AddJobW (Unicode) e AddJobA (ANSI) |