public static bool SendBytesToPrinter(string szPrinterName, IntPtr pBytes, int dwCount) { int num = 0; int dwWritten = 0; IntPtr hPrinter = new IntPtr(0); cajas_s1.RawPrinterHelper.DOCINFOA di = new cajas_s1.RawPrinterHelper.DOCINFOA(); bool flag = false; di.pDocName = "My C#.NET RAW Document"; di.pDataType = "RAW"; if (cajas_s1.RawPrinterHelper.OpenPrinter(szPrinterName.Normalize(), ref hPrinter, IntPtr.Zero)) { if (cajas_s1.RawPrinterHelper.StartDocPrinter(hPrinter, 1, di)) { if (cajas_s1.RawPrinterHelper.StartPagePrinter(hPrinter)) { flag = cajas_s1.RawPrinterHelper.WritePrinter(hPrinter, pBytes, dwCount, ref dwWritten); cajas_s1.RawPrinterHelper.EndPagePrinter(hPrinter); } cajas_s1.RawPrinterHelper.EndDocPrinter(hPrinter); } cajas_s1.RawPrinterHelper.ClosePrinter(hPrinter); } if (!flag) { num = Marshal.GetLastWin32Error(); } return(flag); }
public static extern bool StartDocPrinter( IntPtr hPrinter, int level, [MarshalAs(UnmanagedType.LPStruct), In] cajas_s1.RawPrinterHelper.DOCINFOA di);