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

SetPrinter

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

Description

SetPrinter place l’imprimante spécifiée en état suspendu ou de purge de travaux d’impression. En cas de succès, la fonction retourne une valeur à Vrai ou à Faux en cas d’échec (Utiliser GetLastError pour obtenir un code d’erreur étendu).

Syntaxe

AppelDLL32("winspool.drv", "SetPrinterA", hPrinter, dwLevel, lpbPrinter, dwCommand)

hPrinter

Handle de l’imprimante ouverte.

dwLevel

Précise le type de donnée contenu dans lpbPrinter. Ce paramètre doit être à zéro si dwCommand n’est pas égale à zéro. Windows 9x : ce paramètre peut être 0, 2, 3, 4 ou 5.
Windows NT : ce paramètre peut être 0, 2 ou 3.

lpbPrinter

Contient soit un entier long qui indique le statut de l’imprimante ou soit un pointeur sur un tableau d’entiers qui contient la donnée imprimante.

dwCommand

Précise le nouvel état de l’imprimante. Ce paramètre peut être à zéro ou à une des valeurs suivantes. Si c’est à zéro, l’imprimante retient son état originel et la donnée imprimante est reconfigurée en utilisant la structure pointée par lpbPrinter.
Valeur
Signification
PRINTER_CONTROL_PAUSE = 1
Suspend l’imprimante
PRINTER_CONTROL_PURGE = 3
Purge tous les travaux en file d’attente
PRINTER_CONTROL_RESUME = 2
Redémarrage de l’imprimante suspendu
PRINTER_CONTROL_SET_STATUS = 4
Windows 9x : paramètre le statut
Si dwCommand est une des valeurs ci-dessus, dwLevel devra être à zéro.

Compatibilité

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

Remarque

Suspendre une imprimante arrête la programmation de tous les travaux d’impression à l’exception du travail qui est en cours d’impression. D’autres travaux peuvent être soumis à une imprimante suspendue mais aucun ne sera imprimé tant que l’imprimante n'est pas redémarrée. Si l’imprimante est purgé, tous les travaux seront détruit à l’exception du travail en cours d’impression.

Exemple 1

// Purger tous les travaux d'une imprimante
lpPrinter est une chaîne Asciiz sur 255
hPrinter est un entier long
retVal est un entier long

pi2 est un PRINTER_INFO_2
// Placez ici le nom exact de l'imprimante
// Voir l'exemple de la fonction EnumPrinters
// pour cette récupération
lpPrinter = "HP LaserJet 4000"

retVal = AppelDLL32("winspool.drv", "OpenPrinterA", ...
                                    &lpPrinter, &hPrinter, Null)
Si retVal Alors
 // Commande mise à PRINTER_CONTROL_PURGE
 AppelDLL32("winspool.drv", "SetPrinterA", hPrinter, 0, &pi2, 3)
 // Du code offert par Beaussier en ligne !
 // Utiliser la fonction GetPrinter pour récupérer les 
 // nouveaux paramètres
Sinon
 Erreur("Impossible d'ouvrir " + lpPrinter)
Fin
AppelDLL32("winspool.drv", "ClosePrinter", hPrinter)


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