API Meilleure résolution Optimisé pour |
Membre de Click-FR®, Réseau francophone Paie-Par-Click EnumJobsDate de parution : 10/06/2002 - Cette fiche API a été lue 2204 fois Description EnumJobs initialise un tableau de l’une ou l’autre des structures JOB_INFO_1 ou JOB_INFO_2. Leurs données décrivent les travaux d’impression d’une imprimante spécifiée. La fonction retourne Vrai si elle réussit ou Faux si elle échoue (utiliser GetLastError pour un message d’erreur étendue). Syntaxe
hPrinter Handle de l’objet imprimante dont l’on veut énumérer les travaux. FirstJob Spécifie en base zéro, la position des travaux d’impression à énumérer. NoJobs Précise le nombre total de travaux à énumérer. Level Spécifie le numéro de la structure qui sera utilisée pour stocker les données. pJob Pointe sur un tableau de l’une ou l’autre des structures JOB_INFO_n. cbBuf Spécifie la taille en octets du tableau pJob. pcbNeeded Pointe sur une variable qui reçoit le nombre d’octets copié si la fonction réussit. Si la fonction faillit, la variable retourne le nombre d’octets requis. pcReturned Pointe sur une variable qui reçoit le nombre de structures JOB_INFO_n qui a été initialisé.
Compatibilité
Remarque Le handle de l’objet imprimante ne peut être obtenu qu’en appelant la fonction OpenPrinter. Exemple 1 // Enumération des travaux d'impression pour // la file d'attente d'une imprimante lpPrinter est une chaîne Asciiz sur 255 hPrinter est un entier long retVal est un entier long cbBuf est un entier long i est un entier pcbNeeded, pcReturned sont des entiers longs doc est une chaîne Asciiz sur 255 ji1 est un tableau de 1 JOB_INFO_1 // Placez ici le nom exact de l'imprimante // Voir l'exemple de la fonction EnumPrinters // pour cette récupération lpPrinter = "HP DeskJet 310 Printer" retVal = AppelDLL32("winspool.drv", "OpenPrinterA", ... &lpPrinter, &hPrinter, Null) Si retVal Alors AppelDLL32("winspool.drv", "EnumJobsA", ... hPrinter, 0, 100, 1, &ji1[1], 512, &pcbNeeded, &pcReturned) // Du code qui vous est offert par Beaussier en ligne ! // Remerciements à FireTox pour cet exemple... Si pcReturned > 0 Alors Pour i = 1 à pcReturned AppelDLL32("winspool.drv", "GetJobA", ... hPrinter, i, 1, &ji1[1], 512, &pcbNeeded) AppelDLL32("kernel32", "RtlMoveMemory", &doc, ji1[1]:pDocument, 255) Trace("Job " + ji1[1]:jobId + " : " + doc) Fin // du Pour Sinon Info("Aucun job en file d'attente") Fin AppelDLL32("winspool.drv", "ClosePrinter", hPrinter) Sinon Erreur(lpPrinter + " n'existe pas") Fin
Rappel : Le code fourni est compatible Windev
v.4 et 5. Pour les versions supérieures, vous devez modifier le type des
variables numériques.
Par exemple : entier long devient entier. |