Einzelnen Beitrag anzeigen

Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Druckjob aus dem Spooler löschen

  Alt 18. Okt 2006, 11:36
Wieso Wrapper? Aufzählen:
Delphi-Quellcode:
procedure EnumerateSpoolJobs(PrinterName : String; JobList : TStrings);
var
   aJobs : Array[0..99] of JOB_INFO_1;
   cbBuf : DWORD;
   pcbNeeded : DWORD;
   pcReturned : DWORD;
   hPrinter : THandle;
   i : integer;
begin
   OpenPrinter(PChar(PrinterName) ,hPrinter, Nil);
   cBBuf := 1000;
   EnumJobs(hPrinter, 0, 1000, 1, @aJobs, cbBuf, pcbNeeded, pcReturned);
   for i := 0 to pcReturned -1 do
   begin
      JobList.AddObject(Format('%d - %s %s %s %d' ,
          [aJobs[i].JobId,
           strpas(aJobs[i].pDocument),
           strpas(aJobs[i].pStatus),
           strpas(aJobs[i].pUserName),
           aJobs[i].TotalPages]), @aJobs[i]);
   end;
   ClosePrinter(hPrinter);
end;
Und Löschen:
Delphi-Quellcode:
procedure DeletePrintJob(PrinterName : string; const JobId : Cardinal);
var
   hPrinter : THandle;
begin
   OpenPrinter(PChar(PrinterName) ,hPrinter, Nil);
   SetJob(hPrinter, JobId, 0, 0, JOB_CONTROL_CANCEL); <<<<< Ich hoffe, für diese Zeile wird nicht noch ein "Wrapper" benötigt
   ClosePrinter(hPrinter);
end;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat