dllлька
Сообщений: 27
Оценки: 0
Присоединился: 2011-04-15 08:10:36.603333
|
Добрый день.Есть код: HANDLE hand;
DWORD ret,ret1;
PRINTER_INFO_2 *printers1 = NULL;
EnumPrinters(PRINTER_ENUM_LOCAL,
0,
2,0,
0,
&ret,
&ret1);
BYTE* buf = new BYTE[ret];
EnumPrinters(PRINTER_ENUM_LOCAL,
0,
2,buf,
ret,
&ret,
&ret1);
LPPRINTER_INFO_2A printers=(LPPRINTER_INFO_2A)buf;
for(DWORD i(0); i<ret1; ++i)
{
OpenPrinter(printers[i].pPrinterName,&hand,0);
GetPrinter(hand, 2, 0, 0, &ret1);
BYTE* buf1 = new BYTE[ret1];
printers1=(PRINTER_INFO_2A *)GlobalAlloc(GPTR, ret1);
GetPrinter(hand, 2, (LPBYTE)printers1, ret1, &ret1);
printers1->Status=PRINTER_STATUS_PAUSED;
SetPrinter(hand,2,(LPBYTE)&printers1,1);
ShowMessage(GetLastError());
ClosePrinter(hand);
}
Приложение вылетает и пишет "Access violation at address 72FCAD76 in module winspool.drv", или GetLastError() выдает 1803. Как отправить принтеру PRINTER_CONTROL_PAUSE?
|