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
|
PROCEDURE PR_TEST_GetDocumentProperties(sUnNomDImprimante est une chaîne)
nWindowHandle est un entier
nPrinterHandle est un entier
sPrinterName est une chaîne = sUnNomDImprimante
nDEV_MODE_OUT est un entier
nTailleBuffer est un entier
nRetourFonction est un entier
DevMode est un STDEVMODE
// 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)
// Création du buffer
nDEV_MODE_OUT = API("KERNEL32", "GlobalAlloc", 0x0040, nTailleBuffer)
// 2° appel pour récupération des informations concernant le driver dans nDEV_MODE_OUT
nRetourFonction = API("WINSPOOL.DRV", "DocumentPropertiesA", Handle(), nPrinterHandle, &sPrinterName, nDEV_MODE_OUT, Null, "DM_OUT_BUFFER")
// Transfert des informations dans une structure DEVMODE
API("kernel32","RtlMoveMemory",&DevMode,&nDEV_MODE_OUT,Taille(nDEV_MODE_OUT))
// Fermeture de l'imprimante
API("WINSPOOL.DRV","ClosePrinter",nPrinterHandle)
ch est une chaîne = "Name : "+DevMode:dmDeviceName
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 : "+DevMode:dmFormName
Info(ch)
nRetourFonction = API("KERNEL32","GetLastError")
ErrorMessage est une chaîne = GetErrorMessage(nRetourFonction) |
Partager