openprinter (winspool)
Last changed: -212.159.121.211

.
Summary
Opens a printer handle given the printer name

C# Signature:

[DllImport("winspool.drv", EntryPoint="OpenPrinter")] public static extern int OpenPrinterA(string pPrinterName, ref int phPrinter, ref Printer_Defaults pDefault);

VB Signature:

User-Defined Types:

public struct Printer_Defaults

{

    public int pDatatype;
    public int pDevMode;
    public int DesiredAccess;

}

Notes:

This is actually the sig for OpenPrinterA.

Tips & Tricks:

Sample Code:

How to cancel a print job:

int pHandle = 0;

Printer_Defaults defaults = new Printer_Defaults();

byte b = 0;

OpenPrinterA(printerName, ref pHandle, ref defaults);

SetJobA(pHandle, (int)jobID, 0, ref b, (int)Job_Control.Cancel);

ClosePrinter(pHandle);

Alternative Managed API:

The System.Management API allows for lots of printer stuff, but doesn't let you delete a print job in Win2K.

Documentation
OpenPrinter on MSDN