VB Code:
Option Explicit Private Type PRINTER_DEFAULTS pDatatype As String pDevMode As Long DesiredAccess As Long End Type Private Declare Function OpenPrinter Lib "winspool.drv" _ Alias "OpenPrinterA" (ByVal pPrinterName As String, _ phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long Private Declare Function ClosePrinter Lib "winspool.drv" _ (ByVal hPrinter As Long) As Long Public Enum PrinterAccessRights PRINTER_ACCESS_ADMINISTER = &H4 PRINTER_ACCESS_USE = &H8 PRINTER_ALL_ACCESS = &HF000C End Enum Private Declare Function SetJob Lib "winspool.drv" Alias _ "SetJobA" (ByVal hPrinter As Long, _ ByVal JobId As Long, _ ByVal Level As Long, _ pJob As Long, _ ByVal Command As Long) As Long Public Enum PrintJobControlCommands JOB_CONTROL_PAUSE = 1 JOB_CONTROL_RESUME = 2 JOB_CONTROL_CANCEL = 3 JOB_CONTROL_RESTART = 4 JOB_CONTROL_DELETE = 5 JOB_CONTROL_SENT_TO_PRINTER = 6 JOB_CONTROL_LAST_PAGE_EJECTED = 7 End Enum Public Sub KillPrintJob(ByVal PrinterDeviceName As String, ByVal idJob As Long) Dim lRet As Long Dim mhPrinter As Long Dim paAll As PRINTER_DEFAULTS paAll.DesiredAccess = PRINTER_ALL_ACCESS Call OpenPrinter(PrinterDeviceName, mhPrinter, paAll) If mhPrinter <> 0 Then lRet = SetJob(mhPrinter, idJob, 0, 0, JOB_CONTROL_DELETE) Call ClosePrinter(mhPrinter) End If End Sub




Reply With Quote