AddJob-Funktion

Die Funktion AddJob fügt der Liste der Druckaufträge einen Druckauftrag hinzu, der vom Druckspooler geplant werden kann. Die Funktion ruft den Namen der Datei ab, die Sie zum Speichern des Auftrags verwenden können.

Hinweis

In Windows 8 und späteren Betriebssystemen wird die direkte Verwendung von AddJob nicht empfohlen, da es Fälle gibt (z. B. das Drucken in eine Warteschlange mithilfe von Datei: oder PORTPROMPT:). Hier tritt bei AddJob ein Fehler auf. Stattdessen wird empfohlen, GDI Print API, XPS Print API, StartDocPrinteroder die entsprechende Methode aus dem Windows zu verwenden. Graphics.Printing-Namespace, abhängig vom Druckszenario.

Wenn Sie versuchen, mit File: oder PORTPROMPT: in eine Warteschlange zu drucken, gibt AddJob den Fehler NOT _ SUPPORTED zurück.

Syntax

BOOL AddJob(
  _In_  HANDLE  hPrinter,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pData,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded
);

Parameter

hPrinter [ In]

Ein Handle, das den Drucker für den Druckauftrag angibt. Dies muss ein lokaler Drucker sein, der als Spooldrucker konfiguriert ist. Wenn hPrinter ein Handle für eine Remotedruckerverbindung ist oder der Drucker für den direkten Druck konfiguriert ist, schlägt die Funktion AddJob fehl. Verwenden Sie die OpenPrinter- oder AddPrinter-Funktion, um ein Druckerhandle abzurufen.

Ebene [ In]

Die Version der Druckauftragsinformationsdatenstruktur, die die Funktion in dem Puffer speichert, auf den pData zeigt. Legen Sie diesen Parameter auf 1 fest.

pData [ out]

Ein Zeiger auf einen Puffer, der eine ADDJOB _ INFO _ 1-Datenstruktur und eine Pfadzeichenfolge empfängt.

cbBuf [ In]

Die Größe des Puffers in Bytes, auf den pData zeigt. Der Puffer muss groß genug sein, um eine ADDJOB _ INFO _ 1-Struktur und eine Pfadzeichenfolge zu enthalten.

mit dem 1. [ out]

Ein Zeiger auf eine Variable, die die Gesamtgröße der ADDJOB _ INFO _ 1-Datenstruktur plus der Pfadzeichenfolge in Bytes empfängt. Wenn dieser Wert kleiner oder gleich cbBuf ist und die Funktion erfolgreich ist, ist dies die tatsächliche Anzahl von Bytes, die in den Puffer geschrieben werden, auf den pData zeigt. Wenn diese Zahl größer als cbBuf ist, ist der Puffer zu klein, und Sie müssen die Funktion erneut mit einer Puffergröße aufrufen, die mindestens so groß ist wie * bei "pwNeed".

Rückgabewert

Wenn die Funktion erfolgreich ausgeführt wird, ist der Rückgabewert ein Wert ungleich 0 (null).

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.

Bemerkungen

Hinweis

Dies ist eine blockierende oder synchrone Funktion und wird möglicherweise nicht sofort zurückgegeben. Wie schnell diese Funktion zurückgegeben wird, hängt von Laufzeitfaktoren wie Netzwerkstatus, Druckerserverkonfiguration und Implementierungsfaktoren für Druckertreiber ab, die beim Schreiben einer Anwendung schwer vorherzusagen sind. Das Aufrufen dieser Funktion über einen Thread, der die Interaktion mit der Benutzeroberfläche verwaltet, kann dazu bringen, dass die Anwendung scheinbar nicht reagiert.

Sie können die CreateFile-Funktion aufrufen, um die vom Path-Member der ADDJOB _ INFO _ 1-Struktur angegebene Spooldatei zu öffnen, und dann die WriteFile-Funktion aufrufen, um Druckauftragsdaten in sie zu schreiben. Rufen Sie anschließend die ScheduleJob-Funktion auf, um den Druckspooler zu benachrichtigen, dass der Druckauftrag jetzt vom Spooler für den Druck geplant werden kann.

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Winspool.h (include Windows.h)
Bibliothek
Winspool.lib
DLL
Winspool.drv
Unicode- und ANSI-Name
AddJobW (Unicode) und AddJobA (ANSI)

Weitere Informationen

ADDJOB _ INFO _ 1

CreateFile

GDI-Druck-API

Drucken

Druckspooler-API-Funktionen

OpenPrinter

ScheduleJob

StartDocPrinter

Windows. Graphics.Printing

WriteFile

XPS-Druck-API