S'identifier

API
Documentation
Ressources
Trucs & astuces
Libre
Gabarits
Services

Membres
Participer
Visiter

Contact

Meilleure résolution
mode 800 x 600

Optimisé pour
IE v.5
Netscape v.6
mais surtout pour
Mozilla v.1
minimum

 


Membre de Click-FR®, Réseau francophone Paie-Par-Click

EnumJobs

Date 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

AppelDLL32("winspool.drv", "EnumJobsA", hPrinter, FirstJob, NoJobs, Level, &pJob, cdBuf, &pcbNeeded, &pcReturned)

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é

  • Windows 95 : supporté.
  • Windows 98 : supporté.
  • Windows NT : supporté.
  • Windows 2000 : supporté.

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


Nombre de commentaire sur EnumJobs : 0

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.
Bien sûr, les marques citées sont déposées par leurs sociétés respectives. Ces pages sont à la disposition de tous, le code fourni est libre mais toute responsabilité est déclinée en cas de mauvais usage ou de dysfonctionnement.
© 2000-2005 Beaussier & Le Centre W..D..