AddJob, fonction

La fonction AddJob ajoute un travail d’impression à la liste des travaux d’impression qui peuvent être planifiés par le spouleur d’impression. La fonction récupère le nom du fichier que vous pouvez utiliser pour stocker le travail.

Notes

Dans Windows 8 et les systèmes d’exploitation ultérieurs, nous ne recommandons pas d’utiliser AddJob directement, car il existe des cas (par exemple, l’impression dans une file d’attente à l’aide de File: ou PORTPROMPT:) où AddJob échoue. Au lieu de cela, nous vous recommandons d’utiliser l’API d’impression GDI, l’API d’impression XPS, StartDocPrinter ou la méthode appropriée à partir de l’espace de noms Windows.Graphics.Printing , selon le scénario d’impression.

Si vous essayez d’imprimer dans une file d’attente à l’aide de File: ou PORTPROMPT:, AddJob renvoie l’erreur NOT_SUPPORTED.

Syntaxe

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

Paramètres

hPrinter [in]

Handle qui spécifie l’imprimante pour le travail d’impression. Il doit s’agir d’une imprimante locale configurée en tant qu’imprimante en pool. Si hPrinter est un handle pour une connexion d’imprimante distante, ou si l’imprimante est configurée pour l’impression directe, la fonction AddJob échoue. Utilisez la fonction OpenPrinter ou AddPrinter pour récupérer un handle d’imprimante.

Niveau [in]

Version de la structure de données d’informations de travail d’impression que la fonction stocke dans la mémoire tampon pointée par pData. Définissez ce paramètre sur un.

pData [out]

Pointeur vers une mémoire tampon qui reçoit une structure de données ADDJOB_INFO_1 et une chaîne de chemin d’accès.

cbBuf [in]

Taille, en octets, de la mémoire tampon pointée par pData. La mémoire tampon doit être suffisamment grande pour contenir une structure ADDJOB_INFO_1 et une chaîne de chemin d’accès.

pcbNeeded [out]

Pointeur vers une variable qui reçoit la taille totale, en octets, de la structure de données ADDJOB_INFO_1 plus la chaîne de chemin d’accès. Si cette valeur est inférieure ou égale à cbBuf et que la fonction réussit, il s’agit du nombre réel d’octets écrits dans la mémoire tampon vers laquelle pData pointe. Si ce nombre est supérieur à cbBuf, la mémoire tampon est trop petite et vous devez appeler à nouveau la fonction avec une taille de mémoire tampon au moins égale à *pcbNeeded.

Valeur retournée

Si la fonction réussit, la valeur de retour est une valeur différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro.

Notes

Notes

Il s’agit d’une fonction bloquante ou synchrone qui peut ne pas être retournée immédiatement. La rapidité avec laquelle cette fonction retourne dépend de facteurs d’exécution tels que l’status réseau, la configuration du serveur d’impression et les facteurs d’implémentation du pilote d’imprimante qui sont difficiles à prédire lors de l’écriture d’une application. L’appel de cette fonction à partir d’un thread qui gère l’interaction avec l’interface utilisateur peut donner l’impression que l’application ne répond pas.

Vous pouvez appeler la fonction CreateFile pour ouvrir le fichier spool spécifié par le membre Path de la structure ADDJOB_INFO_1 , puis appeler la fonction WriteFile pour y écrire des données de travail d’impression. Une fois cette opération terminée, appelez la fonction ScheduleJob pour informer le spouleur d’impression que le travail d’impression peut désormais être planifié par le spouleur pour l’impression.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]
En-tête
Winspool.h (inclure Windows.h)
Bibliothèque
Winspool.lib
DLL
Winspool.drv
Noms Unicode et ANSI
AddJobW (Unicode) et AddJobA (ANSI)

Voir aussi

ADDJOB_INFO_1

CreateFile

API D’impression GDI

Impression

Fonctions API du spouleur d’impression

OpenPrinter

ScheduleJob

StartDocPrinter

Windows.Graphics.Printing

WriteFile

API d’impression XPS