Freigeben über


IPrintTicketProvider2::ConvertPrintTicketToDevMode-Methode (prdrvcom.h)

Die IPrintTicketProvider2::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. IPrintTicketProvider2::ConvertPrintTicketToDevMode konvertiert die Einstellungen im Eingabedruckticket in Felder in der DEVMODEW-Struktur .

[in] cbDevmodeIn

Die Größe der DEVMODEW-Eingabestruktur in Byte. 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 des Benutzers ist möglicherweise für einen bestimmten Treiber ungü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 IPrintTicketProvider2::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

IPrintTicketProvider2::ConvertPrintTicketToDevMode sollte S_OK zurückgeben, wenn der Vorgang erfolgreich ist. Andernfalls sollte diese Methode einen standardmäßigen COM-Fehlercode zurückgeben.

Hinweise

Der Kerntreiber ruft die IPrintTicketProvider2::ConvertPrintTicketToDevMode-Methode auf, bevor er seinen Teil der Konvertierung eines Drucktickets in eine DEVMODEW-Struktur ausführt. Im 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 vorgenommen hat. Wenn das Plug-In während dieser vorherigen Konvertierung ein Feature aus einem privaten Namespace in den öffentlichen Namespace verschoben hat, muss das Plug-In das Feature in den privaten Namespace in einem Format wiederherstellen, das für den Kerntreiber geeignet ist, d. h. in das Format, in dem der Kerntreiber die Funktion zuvor im Druckticket platziert hatte, das für das 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 wieder in eine DEVMODEW-Struktur konvertiert, lädt es zunächst die DEVMODEW-Standardstruktur. Anschließend ruft das System die IPrintTicketProvider2::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 alle Features notwendigerweise 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 diese Änderung in dieser Methode umkehren. Nach der Rückgabe des Anbieters überschreibt das System alle öffentlichen DEVMODEW-Einstellungen , die im Druckticket dargestellt, aber vom Anbieter nicht explizit deaktiviert werden.

Anforderungen

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

Weitere Informationen

IPrintTicketProvider2

IPrintTicketProvider2::ConvertDevModeToPrintTicket