Freigeben über


AddJob-Funktion

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

Hinweis

In Windows 8 und höheren Betriebssystemen wird die direkte Verwendung von AddJob nicht empfohlen, da es Fälle gibt (z. B. drucken in eine Warteschlange mit File: oder PORTPROMPT:). Wobei AddJob fehlschlägt. Stattdessen wird empfohlen, je nach Druckszenario die GDI-Druck-API, XPS-Druck-API, StartDocPrinter oder die entsprechende Methode aus dem Windows.Graphics.Printing-Namespace zu verwenden.

Wenn Sie versuchen, mit File: oder PORTPROMPT: in eine Warteschlange zu drucken, gibt AddJob den NOT_SUPPORTED Fehler 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 AddJob-Funktion fehl. Verwenden Sie die OpenPrinter - oder AddPrinter-Funktion , um einen Druckerhandle abzurufen.

Ebene [in]

Die Version der Datenstruktur der Druckauftragsinformationen, die die Funktion im Puffer speichert, auf den pData verweist. 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 verweist. Der Puffer muss groß genug sein, um eine ADDJOB_INFO_1-Struktur und eine Pfadzeichenfolge zu enthalten.

pcbNeeded [ out]

Ein Zeiger auf eine Variable, die die Gesamtgröße der ADDJOB_INFO_1 Datenstruktur plus der Pfadzeichenfolge in Byte 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 verweist. 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 *pcbNeeded.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Wert ungleich null.

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

Bemerkungen

Hinweis

Dies ist eine blockierende oder synchrone Funktion, die möglicherweise nicht sofort zurückgegeben wird. Wie schnell diese Funktion zurückgibt, hängt von Laufzeitfaktoren wie Netzwerk-status, Druckserverkonfiguration und Druckertreiberimplementierungsfaktoren ab, die beim Schreiben einer Anwendung schwer vorherzusagen sind. Das Aufrufen dieser Funktion aus einem Thread, der die Interaktion mit der Benutzeroberfläche verwaltet, könnte dazu führen, dass die Anwendung nicht mehr 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.

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 (Einschließen von Windows.h)
Bibliothek
Winspool.lib
DLL
Winspool.drv
Unicode- und ANSI-Name
AddJobW (Unicode) und AddJobA (ANSI)

Siehe auch

ADDJOB_INFO_1

CreateFile

GDI-Druck-API

Drucken

Druckspooler-API-Funktionen

OpenPrinter

ScheduleJob

StartDocPrinter

Windows.Graphics.Printing

WriteFile

XPS-Druck-API