Compartir a través de


Función PTMergeAndValidatePrintTicket (prntvpt.h)

Combina dos vales de impresión y devuelve un vale de impresión válido y viable.

Sintaxis

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

Parámetros

[in] hProvider

Identificador de un proveedor de vales de impresión abierto. Este identificador lo devuelve la función PTOpenProvider o PTOpenProviderEx .

[in] pBaseTicket

Puntero a un vale de impresión. La posición de búsqueda de la secuencia debe estar al principio del contenido del vale de impresión.

NotaPTMergeAndValidatePrintTicket validará el vale base con el marco de esquema de impresión antes de combinarlo.
 

[in] pDeltaTicket

Puntero a un vale de impresión. La posición de búsqueda de la secuencia debe estar al principio del contenido del vale de impresión. NULL se puede pasar a este parámetro. Vea la sección Comentarios.

NotaPTMergeAndValidatePrintTicket validará el vale delta en el marco de esquema de impresión antes de combinarlo.
 

[in] scope

Valor que especifica si el ámbito de pDeltaTicket y pResultTicket es una sola página, un documento completo o todos los documentos del trabajo de impresión. Vea la sección Comentarios.

pResultTicket

Puntero a la secuencia donde se escribirá el vale combinado viable. La posición de búsqueda estará al final del vale de impresión. Vea la sección Comentarios.

[out] pbstrErrorMessage

Puntero a una cadena que especifica qué, si hay algo, no es válido sobre pBaseTicket o pDeltaTicket. Si ambos son válidos, es NULL. Los problemas de viabilidad no se notifican en pbstrErrorMessage.

Valor devuelto

Si la operación se realiza correctamente sin ningún conflicto entre la configuración del vale combinado y las funcionalidades de la impresora, hrESULT se S_PT_NO_CONFLICT.

Si la operación se realiza correctamente, pero el vale combinado tuvo que cambiarse en una o varias configuraciones porque solicitó la funcionalidad que la impresora no admite, hrESULT se S_PT_CONFLICT_RESOLVED. Vea la sección Comentarios.

Si hProvider se abrió en un subproceso diferente, HRESULT se E_INVALIDARG.

Si pBaseTicket no es válido, HRESULT se E_PRINTTICKET_FORMAT.

Si pDeltaTicket no es válido, HRESULT se E_DELTA_PRINTTICKET_FORMAT.

De lo contrario, se devuelve algún otro código de error en HRESULT. Para obtener más información sobre los códigos de error COM, vea Control de errores.

Comentarios

Nota Se trata de una función de bloqueo o sincrónica que podría no devolverse inmediatamente. La rapidez con la que esta función devuelve depende de factores en tiempo de ejecución, como el estado de red, la configuración del servidor de impresión y la implementación del controlador de impresora, factores que son difíciles de predecir al escribir una aplicación. Llamar a esta función desde un subproceso que administra la interacción con la interfaz de usuario podría hacer que la aplicación parezca que no responde.
 
hProvider debe ser un identificador que se abrió en el mismo subproceso que el subproceso en el que se usa para esta función.

Esta función se valida de dos maneras: primero valida ambos vales de entrada en el marco de esquema de impresión, notificando errores en pbstrErrorMessage. A continuación, comprueba la viabilidad del vale de impresión combinado con el controlador de impresora. Si la funcionalidad de solicitudes de vale combinadas que la impresora no admite, se reemplazan las configuraciones no viables y el controlador de impresora determina qué configuración de sustitución se va a usar. Normalmente, el controlador de impresora usa la configuración predeterminada del vale de impresión del usuario. Si el controlador de impresora no usa el mismo vale de impresión al que pBaseTicket apunta como origen para los valores sustitutos, es posible que pResultTicket sea diferente en algunos valores de configuración de los dos vales de impresión de entrada.

Normalmente, pBaseTicket contiene una gama completa de configuraciones de trabajo, documento y página. Normalmente, el valor predeterminado del usuario o el vale de impresión predeterminado del dispositivo se usa para pBaseTicket.

Si pDeltaTicket es NULL, el método valida pBaseTicket, comprueba su viabilidad y la devuelve, posiblemente modificada, en la secuencia a la que apunta pResultTicket.

Se omiten los valores de pDeltaTicket que están fuera del ámbito . Por ejemplo, si el ámbito es solo una sola página, se omiten la configuración de todo el trabajo y la configuración de todo el documento. El ámbito del trabajo incluye el ámbito de documento y el ámbito de página. El ámbito del documento incluye el ámbito de página.

La configuración que está fuera del ámbito no se incluye en pResultTicket.

Cuando la función devuelve un valor, la posición de búsqueda de pResultTicket se encuentra al final del contenido del vale de impresión. El autor de la llamada es responsable de restablecer la posición de búsqueda antes de leer los datos.

Si pbstrErrorMessage no es NULL cuando la función devuelve, el autor de la llamada debe liberar la cadena con SysFreeString.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado prntvpt.h
Library Prntvpt.lib
Archivo DLL Prntvpt.dll

Consulte también

Esquema de impresión

Funciones de la API del administrador de trabajos de impresión

Impresión