StartDocPrinter-Funktion
Die StartDocPrinter-Funktion benachrichtigt den Druckspooler, dass ein Dokument zum Drucken gespoolt werden soll.
Syntax
DWORD StartDocPrinter(
_In_ HANDLE hPrinter,
_In_ DWORD Level,
_In_ LPBYTE pDocInfo
);
Parameter
-
hPrinter [ In]
-
Ein Handle für den Drucker. Verwenden Sie die OpenPrinter- oder AddPrinter-Funktion, um ein Druckerhandle abzurufen.
-
Ebene [ In]
-
Die Version der -Struktur, auf die pDocInfo verweist. Dieser Wert muss 1 sein.
-
pDocInfo [ In]
-
Ein Zeiger auf eine DOC _ INFO _ 1-Struktur, die das zu druckende Dokument beschreibt.
Rückgabewert
Wenn die Funktion erfolgreich ausgeführt wird, identifiziert der Rückgabewert den Druckauftrag.
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.
Die typische Sequenz für einen Druckauftrag sieht wie folgt aus:
- Um einen Druckauftrag zu starten, rufen Sie StartDocPrinter auf.
- Um jede Seite zu starten, rufen Sie StartPagePrinterauf.
- Um Daten auf eine Seite zu schreiben, rufen Sie WritePrinterauf.
- Um jede Seite zu beenden, rufen Sie EndPagePrinterauf.
- Wiederholen Sie 2, 3 und 4 für so viele Seiten wie nötig.
- Um den Druckauftrag zu beenden, rufen Sie EndDocPrinter auf.
Beachten Sie, dass der Aufruf von StartPagePrinter und EndPagePrinter möglicherweise nicht erforderlich ist, z. B. wenn der Datentyp print die Seiteninformationen enthält.
Wenn eine Seite in einer datei mit Spooling ca. 350 MB überschreitet, kann sie nicht gedruckt werden und keine Fehlermeldung senden. Dies kann beispielsweise beim Drucken großer EMF-Dateien auftreten. Die Begrenzung der Seitengröße hängt von vielen Faktoren ab, einschließlich der Menge des verfügbaren virtuellen Arbeitsspeichers, der Durch aufrufenden Prozesse belegten Arbeitsspeichers und der Fragmentierung im Prozessheap.
Beispiele
Ein Beispielprogramm, das diese Funktion verwendet, finden Sie unter Vorgehensweise: Drucken mithilfe der GDI-Druck-API.
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 |
|
| Bibliothek |
|
| DLL |
|
| Unicode- und ANSI-Name |
StartDocPrinterW (Unicode) und StartDocPrinterA (ANSI) |