Método IPrintTicketProvider2::ConvertPrintTicketToDevMode (prdrvcom.h)

El método IPrintTicketProvider2::ConvertPrintTicketToDevMode convierte un vale de impresión en una estructura DEVMODEW .

Sintaxis

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

Parámetros

[in] pPrintTicket

Puntero al vale de impresión de entrada. IPrintTicketProvider2::ConvertPrintTicketToDevMode convierte la configuración del vale de impresión de entrada en campos de la estructura DEVMODEW .

[in] cbDevmodeIn

Tamaño, en bytes, de la estructura DEVMODEW de entrada. Este tamaño incluye las secciones públicas y privadas de la estructura DEVMODEW .

[in] pDevmodeIn

Puntero a la estructura DEVMODEW de entrada, que contiene la configuración predeterminada. La estructura DEVMODEW puede ser la estructura DEVMODEW predeterminada de la cola de impresión o puede ser la estructura DEVMODEW predeterminada del usuario. Dado que este parámetro puede representar la estructura DEVMODEW predeterminada del usuario, el proveedor de complementos OEM debe validar los datos de esa estructura. Es posible que una estructura DEVMODEW predeterminada del usuario no sea válida para un controlador específico, por ejemplo, cuando cambia o se actualiza el controlador de la cola de impresión.

[out] pcbDevmodeOut

Puntero a una variable que contiene el tamaño, en bytes, de la estructura DEVMODEW de salida.

[out] ppDevmodeOut

Puntero a una variable que contiene la dirección de la estructura DEVMODEW de salida. Cuando IPrintTicketProvider2::ConvertPrintTicketToDevMode se devuelve correctamente, los miembros de la estructura DEVMODEW de salida se restablecerán para reflejar la configuración del vale de impresión. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

Valor devuelto

IPrintTicketProvider2::ConvertPrintTicketToDevMode debe devolver S_OK si la operación se realiza correctamente. De lo contrario, este método debe devolver un código de error COM estándar.

Comentarios

El controlador principal llama al método IPrintTicketProvider2::ConvertPrintTicketToDevMode antes de realizar su parte de la conversión de un vale de impresión a una estructura DEVMODEW . En la llamada a este método, el controlador principal pasa un vale de impresión de entrada que se rellena completamente y una estructura DEVMODEW que se establece en valores predeterminados. En la conversión, el complemento debe deshacer los cambios realizados en el vale de impresión durante la conversión anterior de una estructura DEVMODEW a un vale de impresión. Si, durante esta conversión anterior, el complemento movió una característica de un espacio de nombres privado al espacio de nombres público, el complemento debe restaurar la característica al espacio de nombres privado en un formato adecuado para el controlador principal, es decir, al formato en el que el controlador principal había colocado previamente la característica en el vale de impresión que se proporcionó al complemento en el IPrintOemPrintTicketProvider:: Método ConvertDevModeToPrintTicket . Esta restauración es necesaria para que el controlador principal pueda reconocer una característica en el vale de impresión y reflejar su configuración en la parte privada de la estructura DEVMODEW del controlador principal, mientras que el controlador principal realiza su parte de la conversión del vale de impresión a DEVMODEW .

Antes de que el sistema vuelva a convertir un vale de impresión en una estructura DEVMODEW , primero carga el DEVMODEW predeterminado. A continuación, el sistema llama al método IPrintTicketProvider2::BindPrinter del proveedor. A continuación, este método debe leer toda la configuración que admitía desde el vale de impresión y colocar esa configuración en la estructura DEVMODEW . Tenga en cuenta que no todas las características necesariamente se representarán y que, a menudo, las instancias de Option que están presentes podrían no contener todas las instancias de Propiedad puntuada que normalmente rellenaría el proveedor. Si el proveedor realiza cambios en la configuración rellenada por el sistema durante la conversión del vale de impresión a DEVMODEW, el proveedor debe realizar la inversa de ese cambio en este método. Una vez devuelto el proveedor, el sistema sobrescribe cualquier configuración pública de DEVMODEW representada en el vale de impresión, pero que el proveedor no deshabilita explícitamente.

Requisitos

Requisito Valor
Header prdrvcom.h (incluya Prdrvcom.h)

Consulte también

IPrintTicketProvider2

IPrintTicketProvider2::ConvertDevModeToPrintTicket