Freigeben über


PTMergeAndValidatePrintTicket-Funktion (prntvpt.h)

Führt zwei Drucktickets zusammen und gibt ein gültiges, funktionsfähiges Druckticket zurück.

Syntax

HRESULT PTMergeAndValidatePrintTicket(
  [in]  HPTPROVIDER       hProvider,
  [in]  IStream           *pBaseTicket,
  [in]  IStream           *pDeltaTicket,
  [in]  EPrintTicketScope scope,
        IStream           *pResultTicket,
  [out] BSTR              *pbstrErrorMessage
);

Parameter

[in] hProvider

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

[in] pBaseTicket

Ein Zeiger auf ein Druckticket. Die Suchposition des Streams muss sich am Anfang des Druckticketinhalts befinden.

HinweisPTMergeAndValidatePrintTicket überprüft das Basisticket vor dem Zusammenführen mit dem Print Schema Framework .
 

[in] pDeltaTicket

Ein Zeiger auf ein Druckticket. Die Suchposition des Streams muss sich am Anfang des Druckticketinhalts befinden. NULL kann an diesen Parameter übergeben werden. Siehe Hinweise.

HinweisPTMergeAndValidatePrintTicket überprüft das Deltaticket vor dem Zusammenführen mit dem Print Schema Framework .
 

[in] scope

Ein Wert, der angibt, ob der Bereich von pDeltaTicket und pResultTicket eine einzelne Seite, ein gesamtes Dokument oder alle Dokumente im Druckauftrag ist. Siehe Hinweise.

pResultTicket

Ein Zeiger auf den Stream, in dem das funktionsfähige, zusammengeführte Ticket geschrieben wird. Die Suchposition befindet sich am Ende des Gedruckten Tickets. Siehe Hinweise.

[out] pbstrErrorMessage

Ein Zeiger auf eine Zeichenfolge, die angibt, was, falls überhaupt, für pBaseTicket oder pDeltaTicket ungültig ist. Wenn beide gültig sind, ist dies NULL. Lebensfähigkeitsprobleme werden in pbstrErrorMessage nicht gemeldet.

Rückgabewert

Wenn der Vorgang ohne Konflikt zwischen den Einstellungen des zusammengeführten Tickets und den Funktionen des Druckers erfolgreich ist, wird das HRESULT S_PT_NO_CONFLICT.

Wenn der Vorgang erfolgreich ist, aber das zusammengeführte Ticket in mindestens einer Einstellung geändert werden musste, da funktionen angefordert wurden, die der Drucker nicht unterstützt, wird das HRESULT S_PT_CONFLICT_RESOLVED. Siehe Hinweise.

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

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

Wenn pDeltaTicket ungültig ist, wird das HRESULT E_DELTA_PRINTTICKET_FORMAT.

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

Hinweise

Hinweis Dies ist eine blockierende oder synchrone Funktion und wird möglicherweise nicht sofort zurückgegeben. Wie schnell diese Funktion zurückgibt, hängt von Laufzeitfaktoren wie Netzwerk-status, Druckserverkonfiguration und Druckertreiberimplementierung ab – Faktoren, die beim Schreiben einer Anwendung schwer vorherzusagen sind. Wenn Sie diese Funktion über einen Thread aufrufen, der die Interaktion mit der Benutzeroberfläche verwaltet, kann die Anwendung nicht reagieren.
 
hProvider muss ein Handle sein, das im selben Thread wie der Thread geöffnet wurde, in dem es für diese Funktion verwendet wird.

Diese Funktion überprüft auf zwei Arten: Sie überprüft zunächst beide Eingabetickets für das Print Schema Framework und meldet Fehler in pbstrErrorMessage. Anschließend wird die Funktionsfähigkeit des zusammengeführten Drucktickets mit dem Druckertreiber überprüft. Wenn das zusammengeführte Ticket Funktionen anfordert, die der Drucker nicht unterstützt, werden die nicht anwendbaren Einstellungen ersetzt, und der Druckertreiber bestimmt, welche Ersatzeinstellung verwendet werden soll. In der Regel verwendet der Druckertreiber die Standardeinstellung für das Druckticket des Benutzers. Wenn der Druckertreiber nicht dasselbe Druckticket verwendet, auf das pBaseTicket als Quelle für Ersatzwerte verweist, ist es möglich, dass pResultTicket in einigen Einstellungen von beiden Eingabedrucktickets unterscheidet.

In der Regel enthält pBaseTicket einen vollständigen Bereich von Auftrags-, Dokument- und Seiteneinstellungen. Normalerweise wird für pBaseTicket der Benutzerstandard oder das Standarddruckticket des Geräts verwendet.

Wenn pDeltaTicketNULL ist, überprüft die Methode pBaseTicket, überprüft seine Tragfähigkeit und gibt es zurück, möglicherweise geändert, im Stream, auf den von pResultTicket verwiesen wird.

Werte von pDeltaTicket , 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 Dokument- und Seitenbereich. Dokumentbereich umfasst Seitenbereich.

Einstellungen, die sich außerhalb des Bereichs befinden, sind nicht im pResultTicket enthalten.

Wenn die Funktion einen Wert zurückgibt, befindet sich die Suchposition von pResultTicket am Ende des Druckticketinhalts. Der Aufrufer ist dafür verantwortlich, die Suchposition vor dem Lesen der Daten zurückzusetzen.

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