setprinter (winspool)
Last changed: -87.175.208.64

.
Summary
TODO - a short description

C# Signature:

[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
);

VB Signature:

Declare Function SetPrinter Lib "winspool.dll" (TODO) As TODO

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

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);
        }
    }

Documentation
SetPrinter on MSDN