IPrintTicketProvider::ConvertPrintTicketToDevMode-Methode (prdrvcom.h)

Die IPrintTicketProvider::ConvertPrintTicketToDevMode-Methode konvertiert ein Druckticket in eine DEVMODEW-Struktur .

Syntax

HRESULT ConvertPrintTicketToDevMode(
  [in]  IN IXMLDOMDocument2 *pPrintTicket,
  [in]  IN ULONG            cbDevmodeIn,
  [in]  IN PDEVMODE         pDevmodeIn,
  [out] OUT ULONG           *pcbDevmodeOut,
  [out] OUT PDEVMODE        *ppDevmodeOut
);

Parameter

[in] pPrintTicket

Ein Zeiger auf das Eingabedruckticket. IPrintTicketProvider::ConvertPrintTicketToDevMode konvertiert die Einstellungen im Eingabedruckticket in Felder in der DEVMODEW-Struktur .

[in] cbDevmodeIn

Die Größe der DEVMODEW-Eingabestruktur in Bytes. Diese Größe umfasst sowohl den öffentlichen als auch den privaten Abschnitt der DEVMODEW-Struktur .

[in] pDevmodeIn

Ein Zeiger auf die DEVMODEW-Eingabestruktur , die Standardeinstellungen enthält. Die DEVMODEW-Struktur kann die DEVMODEW-Standardstruktur der Druckwarteschlange oder die DEVMODEW-Standardstruktur des Benutzers sein. Da dieser Parameter die DEVMODEW-Standardstruktur des Benutzers darstellen kann, muss der OEM-Plug-In-Anbieter die Daten in dieser Struktur überprüfen. Eine DEVMODEW-Standardstruktur eines Benutzers ist möglicherweise nicht für einen bestimmten Treiber gültig, z. B. wenn sich der Treiber der Druckwarteschlange ändert oder aktualisiert wird.

[out] pcbDevmodeOut

Ein Zeiger auf eine Variable, die die Größe der DEVMODEW-Ausgabestruktur in Bytes enthält.

[out] ppDevmodeOut

Ein Zeiger auf eine Variable, die die Adresse der DEVMODEW-Ausgabestruktur enthält. Wenn IPrintTicketProvider::ConvertPrintTicketToDevMode erfolgreich zurückgegeben wird, werden die Member der DEVMODEW-Ausgabestruktur zurückgesetzt, um die Einstellungen im Druckticket widerzuspiegeln. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

Rückgabewert

IPrintTicketProvider::ConvertPrintTicketToDevMode sollte S_OK zurückgeben, wenn der Vorgang erfolgreich ist. Andernfalls sollte diese Methode einen COM-Standardfehlercode zurückgeben.

Hinweise

Der Kerntreiber ruft die IPrintTicketProvider::ConvertPrintTicketToDevMode-Methode auf, bevor er seinen Teil der Konvertierung eines Drucktickets in eine DEVMODEW-Struktur ausführt. Beim Aufruf dieser Methode übergibt der Kerntreiber ein vollständig ausgefülltes Eingabedruckticket und eine DEVMODEW-Struktur , die auf Standardwerte festgelegt ist. Bei der Konvertierung muss das Plug-In alle Änderungen rückgängig machen, die es während der vorherigen Konvertierung von einer DEVMODEW-Struktur in ein Druckticket am Druckticket vorgenommen hat. Wenn das Plug-In während dieser vorherigen Konvertierung ein Feature von einem privaten Namespace in den öffentlichen Namespace verschoben hat, muss das Plug-In das Feature im privaten Namespace in einem Format wiederherstellen, das für den Kerntreiber geeignet ist, d. h. in das Format, in dem der Kerntreiber das Feature zuvor im Druckticket platziert hatte, das dem Plug-In im IPrintOemPrintTicketProvider bereitgestellt wurde: ConvertDevModeToPrintTicket-Methode . Diese Wiederherstellung ist erforderlich, damit der Kerntreiber ein Feature im Druckticket erkennen und seine Einstellungen im privaten Teil der DEVMODEW-Struktur des Kerntreibers widerspiegeln kann, während der Kerntreiber seinen Teil der Konvertierung des Drucktickets in DEVMODEW ausführt.

Bevor das System ein Druckticket zurück in eine DEVMODEW-Struktur konvertiert, lädt es zuerst die DEVMODEW-Standardversion. Anschließend ruft das System die IPrintTicketProvider::BindPrinter-Methode des Anbieters auf. Diese Methode sollte dann alle unterstützten Einstellungen aus dem Druckticket lesen und diese Einstellungen in der DEVMODEW-Struktur platzieren. Beachten Sie, dass nicht unbedingt alle Features dargestellt werden, und dass häufig vorhandene Optionsinstanzen möglicherweise nicht alle Instanzen der bewerteten Eigenschaft enthalten, die der Anbieter normalerweise auffüllt. Wenn der Anbieter Änderungen an den Einstellungen vornimmt, die vom System während der Konvertierung vom Druckticket in DEVMODEW aufgefüllt wurden, sollte der Anbieter die Umgekehrtkeit dieser Änderung in dieser Methode ausführen. Nachdem der Anbieter zurückgegeben hat, überschreibt das System dann alle öffentlichen DEVMODEW-Einstellungen , die im Druckticket dargestellt, aber nicht explizit vom Anbieter deaktiviert werden.

Anforderungen

Anforderung Wert
Header prdrvcom.h (einschließlich Prdrvcom.h)

Weitere Informationen

IPrintTicketProvider

IPrintTicketProvider::ConvertDevModeToPrintTicket