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

OpenPrinter

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

Description

OpenPrinter ouvre une imprimante et obtient un handle d’elle. Ce handle peut alors être utilisé par les fonctions API faisant référence à l’imprimante. Après avoir fini avec le handle, il faut fermer l’imprimante via ClosePrinter.
En cas de succès, la fonction retourne une valeur différente de zéro. Utiliser GetLastError pour obtenir un code d’erreur étendu.

Syntaxe

AppelDLL32("winspool.drv", "OpenPrinterA", &pPrinterName, &phPrinter, &pDefault)

pPrinterName
Nom de l’imprimante ou du serveur d’impression dont on veut obtenir le handle. Si la chaîne est vide, la fonction obtient le handle du serveur d’impression par défaut.
phPrinter
Reçoit le handle pour l’imprimante ouverte.
pDefault
Structure PRINTER_DEFAULTS précisant les options pour l’ouverture de l’imprimante. Pour utiliser le paramètrage par défaut, passer un zéro.

Compatibilité

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

Remarque

Aucune

Exemple 1

// Affiche la boîte des propriétés
// pour l'imprimante par défaut
pi est un PRINTER_INFO_1
cdBuf est un entier long
hMem est un entier long
pbNeeded est un entier long
pcReturned est un entier long
hWnd est un entier
retVal est un entier long
imp est une chaîne asciiz de 128
hPrinter est un entier long

retVal = AppelDLL32("winspool.drv", "EnumPrintersA", ...
0x1, Null, 1, Null, 0, &pbNeeded, &pcReturned)

hMem = AppelDLL32("kernel32", "GlobalAlloc", 0x40, pbNeeded)
cdBuf = pbNeeded
retVal = AppelDLL32("winspool.drv", "EnumPrintersA", ...
0x1, Null, 1, hMem, cdBuf, &pbNeeded, &pcReturned)

// transfert vers la structure pi
retVal = AppelDLL32("kernel32", "RtlMoveMemory", &pi, hMem, 84)
// récupération nom de l'imprimante
retVal = AppelDLL32("kernel32", "RtlMoveMemory", &imp, pi:pName, 128)

retVal = AppelDLL32("winspool.drv", "OpenPrinterA", &imp, &hPrinter, Null)
hWnd = Handle()
retVal = AppelDLL32("winspool.drv", "PrinterProperties", hWnd, hPrinter)
retVal = AppelDLL32("winspool.drv", "ClosePrinter", hPrinter)

retVal = AppelDLL32("kernel32", "GlobalFree", hMem)


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