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.
BOOL AddJob(
_In_ HANDLE hPrinter,
_In_ DWORD Level,
_Out_ LPBYTE pData,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcbNeeded
);
-
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.
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Wert ungleich null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.
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.
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
Header |
|
Bibliothek |
|
DLL |
|
Unicode- und ANSI-Name |
AddJobW (Unicode) und AddJobA (ANSI) |