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

GetJob

Date de parution : 10/06/2002 - Cette fiche API a été lue 1552 fois

Description

GetJob récupère les données d’un travail à imprimer pour une imprimante spécifiée. Si la fonction réussit, la valeur de retour est à Vrai sinon à Faux (utiliser GetLastError pour un message d’erreur étendu).

Syntaxe

AppelDLL32("winspool.drv", "GetJobA", hPrinter, JobId, Level, &pJob, cdBuf, &pcbNeeded)

hPrinter

Identifiant de l’imprimante pour laquelle les données du travail à imprimer sont à récupérer.

JobId

Identifiant du travail d’impression pour lequel les données seront à récupérer.

Level

Précise le niveau de la structure qui pointe sur pJob. La valeur peut être à 1 ou à 2.

pJob

Pointe sur un tableau qui contient l’une ou l’autre des structures JOB_INFO_n.

cbBuf

Précise la taille en octets du tableau.

pcbNeeded

Pointe sur une valeur qui spécifie le nombre d’octets copié si la fonction réussit ou le nombre d’octets requis si cbBuf est trop petit.

Compatibilité

  • Windows 95 : supporté.
  • Windows 98 : supporté.
  • Windows NT : réclame Windows NT 3.1 ou plus.
  • Windows 2000 : supporté.

Remarque

Aucune

Exemple 1

// Calcule de la taille en ko des travaux contenus
// dans 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
tailleJobs est un entier long

ji2 est un tableau de 1 JOB_INFO_2
// 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, 2, &ji2[1], 1024, &pcbNeeded, &pcReturned)
 // Du code qui vous est offert par Beaussier en ligne !
 Si pcReturned  0 Alors
  Pour i = 1 à pcReturned
   AppelDLL32("winspool.drv", "GetJobA", ...
                             hPrinter, i, 2, &ji2[1], 1024, &pcbNeeded)
   AppelDLL32("kernel32", "RtlMoveMemory", &doc, ji2[1]:pDocument, 255)
   Trace(doc + " : " + ji2[1]:Size + " ko")
   tailleJobs += ji2[1]:Size
  Fin // du Pour
  Trace("Taille totale : " + tailleJobs + " ko")
 Sinon
  Info("Aucun job en file d'attente")
 Fin
 AppelDLL32("winspool.drv", "ClosePrinter", hPrinter)
Sinon
 Erreur("Impossible d'ouvrir " + lpPrinter)
Fin


Nombre de commentaire sur GetJob : 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..