为什么我使用AddForm()这个函数总是添加不了自定义纸张?
笑傲IT 2005-06-17 04:11:49 高手帮我看看:
下面 bOk = AddForm(hPrinter, 1, (LPBYTE)&fi1); 这句的bOk总是=0,为什么???
BOOL bOk = FALSE;
LPHANDLE phPrinter=NULL;
PRINTER_DEFAULTS pd;
pd.pDatatype =NULL;
pd.DesiredAccess=PRINTER_ACCESS_USE;
FORM_INFO_1 fi1;
fi1.Flags=FORM_USER ;
fi1.pName="自定义纸张";
fi1.Size.cx=210;
fi1.Size.cy=210;
fi1.ImageableArea.left=2;
fi1.ImageableArea.top=2;
fi1.ImageableArea.right=2;
fi1.ImageableArea.bottom=2;
HANDLE hPrinter = GetPrinterHandle("Epson LQ-1600K");
if (hPrinter)
{
bOk = AddForm(hPrinter, 1, (LPBYTE)&fi1);
ClosePrinter(hPrinter);
}
//获取打印机句柄
HANDLE GetPrinterHandle(LPSTR szPrinterName)
{
PRINTER_DEFAULTS pds;
HANDLE hPrinter = NULL;
ZeroMemory(&pds, sizeof(PRINTER_DEFAULTS));
pds.DesiredAccess = PRINTER_ALL_ACCESS;
OpenPrinter(szPrinterName, &hPrinter, &pds);
return hPrinter;
}