[DllImport("winspool.Drv", EntryPoint="SetPrinterA", SetLastError=true, CharSet=CharSet.Ansi, ExactSpelling=true, CallingConvention=CallingConvention.StdCall)]
private static unsafe extern bool SetPrinter( IntPtr hPrinter, // handle to printer object
uint Level, // information level
int pPrinter, // printer data buffer
uint Command // printer-state command
);
Declare Function SetPrinter Lib "winspool.dll" (TODO) As TODO
None.
Do you know one? Please contribute it!
None.
Please add some!
private void RemoveJobs(String printerName)
{
IntPtr hPrinter;
PRINTER_DEFAULTS defaults = new PRINTER_DEFAULTS
{
//PRINTER_ALL_ACCESS
DesiredAccess = 0x000F000C,
pDatatype = IntPtr.Zero,
pDevMode = IntPtr.Zero
};
if (OpenPrinter(printerName, out hPrinter, ref defaults) == false)
{
int errno = Marshal.GetLastWin32Error();
throw new Win32Exception(errno);
}
if (hPrinter == IntPtr.Zero)
{
int errno = Marshal.GetLastWin32Error();
throw new Win32Exception(errno);
}
//3 == PRINTER_CONTROL_PURGE => Removes all Jobs!
if (SetPrinter(hPrinter, 0, IntPtr.Zero, 3) == false)
{
int errno = Marshal.GetLastWin32Error();
throw new Win32Exception(errno);
}
if (ClosePrinter(hPrinter) == false)
{
int errno = Marshal.GetLastWin32Error();
throw new Win32Exception(errno);
}
}