Freigeben über


PTConvertPrintTicketToDevMode-Funktion (prntvpt.h)

Konvertiert ein Druckticket in eine DEVMODE-Struktur .

Syntax

HRESULT PTConvertPrintTicketToDevMode(
  [in]  HPTPROVIDER         hProvider,
  [in]  IStream             *pPrintTicket,
        EDefaultDevmodeType baseDevmodeType,
  [in]  EPrintTicketScope   scope,
  [out] ULONG               *pcbDevmode,
  [out] PDEVMODE            *ppDevmode,
  [out] BSTR                *pbstrErrorMessage
);

Parameter

[in] hProvider

Ein Handle für einen geöffneten Druckticketanbieter. Dieses Handle wird vom PTOpenProvider oder der PTOpenProviderEx-Funktion zurückgegeben.

[in] pPrintTicket

Ein Zeiger auf einen IStream mit seiner Suchposition am Anfang des Drucktickets.

baseDevmodeType

Ein -Wert, der angibt, ob der Standard-DEVMODE des Benutzers oder der Standard-DEVMODE der Druckwarteschlange verwendet wird, um Werte für die DEVMODE-Ausgabe bereitzustellen, wenn pPrintTicket nicht alle möglichen Einstellungen für eine DEVMODE-Klasse angibt.

[in] scope

Ein -Wert, der den Bereich von pPrintTicket angibt. Dieser Wert kann eine einzelne Seite, ein gesamtes Dokument oder alle Dokumente im Druckauftrag angeben. Einstellungen in pPrintTicket , die sich außerhalb des angegebenen Bereichs befinden, werden ignoriert. Siehe Hinweise.

[out] pcbDevmode

Ein Zeiger auf die Größe des DEVMODE in Bytes.

[out] ppDevmode

Ein Zeiger auf den neu erstellten DEVMODE.

[out] pbstrErrorMessage

Ein Zeiger auf eine Zeichenfolge, die angibt, was bei pPrintTicket ungültig ist. Wenn es gültig ist, ist dies NULL.

Rückgabewert

Wenn der Vorgang erfolgreich ist, wird der Rückgabewert S_OK.

Wenn hProvider in einem anderen Thread geöffnet wurde, wird HRESULT E_INVALIDARG.

Wenn pPrintTicket ungültig ist, wird das HRESULT E_PRINTTICKET_FORMAT.

Andernfalls wird ein anderer Fehlercode im HRESULT zurückgegeben. Weitere Informationen zu COM-Fehlercodes finden Sie unter Fehlerbehandlung.

Hinweise

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, Druckerserverkonfiguration und Druckertreiberimplementierung ab– Faktoren, 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.
 
Der hProvider-Parameter muss ein Handle sein, das im selben Thread wie der Thread geöffnet wurde, in dem er für diese Funktion verwendet wird.

Wenn baseDevmodeType kUserDefaultDevmode ist, der Standardwert des Benutzers jedoch nicht verfügbar ist, wird die Standardeinstellung des Geräts verwendet.

Der zurückgegebene DEVMODE-Modus kann intern inkonsistent sein oder in Konflikt mit harten Druckereinstellungen stehen, obwohl jede Einstellung darin einzeln praktikabel ist. Wenn der Drucker z. B. einen optionalen Duplexer unterstützt, aber das pPrintTicket die Duplexierung aufruft, ruft die zurückgegebene DEVMODE auch zur Duplexierung auf, selbst wenn der Duplexer nicht installiert ist. Verwenden Sie DocumentProperties , um die zurückgegebene DEVMODE-Datei zu korrigieren.

Der Puffer im zurückgegebenen ppDevmode sollte mit PTReleaseMemory freigegeben werden.

Werte von pPrintTicket , die sich außerhalb des Bereichs befinden, werden ignoriert. Wenn der Bereich beispielsweise nur eine einzelne Seite ist, werden auftragsweite Einstellungen und dokumentweite Einstellungen ignoriert. Der Auftragsbereich umfasst den Dokument- und Seitenbereich. Der Dokumentbereich umfasst den Seitenbereich.

Wenn pbstrErrorMessage nicht NULL ist, wenn die Funktion zurückgibt, muss der Aufrufer die Zeichenfolge mit SysFreeString freigeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile prntvpt.h
Bibliothek Prntvpt.lib
DLL Prntvpt.dll

Weitere Informationen

Druckschema

Druckspooler-API-Funktionen

Drucken