1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
PROCEDURE PR_TEST_GetDocumentProperties(sUnNomDImprimante est une chaîne)
nWindowHandle est un entier
nPrinterHandle est un entier
sPrinterName est une chaîne = sUnNomDImprimante
nRetourFonction est un entier
DevMode est un STDEVMODE
nTailleBuffer est un entier
bBuffer est un Buffer // pour l'instant le Buffer est vide
// Récupération du handle de l'imprimante
nRetourFonction = API("winspool.drv", "OpenPrinterA",&sPrinterName,&nPrinterHandle,Null)
// Premier appel "à vide" pour récupérer la taille du buffer à créer
nTailleBuffer = API("WINSPOOL.DRV", "DocumentPropertiesA", Handle(), nPrinterHandle, &sPrinterName, Null, Null, Null)
// Allouer une zone mémoire pour le buffer
bBuffer = Répète(Caract(0), nTailleBuffer)
// 2° appel pour récupération des informations concernant le driver dans bBuffer
nRetourFonction = API("WINSPOOL.DRV", "DocumentPropertiesA", Handle(), nPrinterHandle, &sPrinterName, &bBuffer, Null, DM_OUT_BUFFER)
// Copie des données bBuffer dans la structure DEVMODE.
// Attention ! bBuffer peut contenir des informations supplémentaires, selon le driver.
Transfert(&DevMode, &bBuffer, Dimension(DevMode))
// Fermeture de l'imprimante
API("WINSPOOL.DRV","ClosePrinter",nPrinterHandle)
ch est une chaîne = "Name : " + Remplace(DevMode:dmDeviceName,Caract(0),"")
ch+=RC+"Version : "+DevMode:dmSpecVersion
ch+=RC+"Driver version : "+DevMode:dmDriverVersion
ch+=RC+"Size : "+DevMode:dmSize
ch+=RC+"Driver Extra : "+DevMode:dmDriverExtra
ch+=RC+"Fields : "+DevMode:dmFields
ch+=RC+"Orientation : "+DevMode:dmOrientation
ch+=RC+"PaperSize : "+DevMode:dmPaperSize
ch+=RC+"PaperLength : "+DevMode:dmPaperLength
ch+=RC+"Paperwidth : "+DevMode:dmPaperWidth
ch+=RC+"Scale : "+DevMode:dmScale
ch+=RC+"Copies : "+DevMode:dmCopies
ch+=RC+"Qualité : "+DevMode:dmPrintQuality
ch+=RC+"FormName : "+ Remplace(DevMode:dmFormName,Caract(0),"")
Info(ch)
nRetourFonction = ErreurInfo(errCodeSystème)
sErrorMessage est une chaîne = ErreurInfo(errMessageSystème)
//nRetourFonction = API("KERNEL32","GetLastError")
//ErrorMessage est une chaîne = GetErrorMessage(nRetourFonction) |
Partager