Salut à tous
jvous explique mon problème :
je travaille sous win 2000 et j'essaye de detecter toutes les imprimantes installées afin de pouvoir imprimer des alertes sur differentes imprimantes.
J'utilise la fonction EnumPrinters
Citation :
EnumPrinters(
DWORD Flags, // printer object types
LPTSTR Name, // name of printer object
DWORD Level, // information level
LPBYTE pPrinterEnum, // printer information buffer
DWORD cbBuf, // size of printer information buffer
LPDWORD pcbNeeded, // bytes received or required
LPDWORD pcReturned // number of printers enumerated
);
|
la fonction retourne toujours 0 (erreur)
j'ai essayé plusieur combinaisons :
un flag PRINTER_ENUM_CONNECTIONS | PRINTER_ENUM_LOCAL; avec un level 4
afin de choper les imprimantes locales et celles auquel on s'est deja connecté.
pcbNeeded vaut 46 et pcReturned vaut 0, alors qu'il y a bien des imprimantes installées.
petite precision, le code d'erreur obtenu avec GetLastError() esst 122: :The data area passed to a system call is too small.
et je vois pas quelle est la zone de donnée en question. si c'est le buffer, il est normal qu'il soit null au premier appel de la fonction.
donc si quequ'un voit ou je fais une erreur, ben, merci de m'en faire part 
Message édité par _ky_ le 22-10-2004 à 11:53:37