Compartir a través de


Función PTConvertPrintTicketToDevMode (prntvpt.h)

Convierte un vale de impresión en una estructura DEVMODE .

Sintaxis

HRESULT PTConvertPrintTicketToDevMode(
  [in]  HPTPROVIDER         hProvider,
  [in]  IStream             *pPrintTicket,
        EDefaultDevmodeType baseDevmodeType,
  [in]  EPrintTicketScope   scope,
  [out] ULONG               *pcbDevmode,
  [out] PDEVMODE            *ppDevmode,
  [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] pPrintTicket

Puntero a un IStream con su posición de búsqueda al principio del vale de impresión.

baseDevmodeType

Valor que indica si el DEVMODE predeterminado del usuario o el DEVMODE predeterminado de la cola de impresión se usa para proporcionar valores al DEVMODE de salida cuando pPrintTicket no especifica todas las opciones posibles para un DEVMODE.

[in] scope

Valor que especifica el ámbito de pPrintTicket. Este valor puede especificar una sola página, un documento completo o todos los documentos del trabajo de impresión. La configuración de pPrintTicket que está fuera del ámbito especificado se omite. Vea la sección Comentarios.

[out] pcbDevmode

Puntero al tamaño del DEVMODE en bytes.

[out] ppDevmode

Puntero al DEVMODE recién creado.

[out] pbstrErrorMessage

Puntero a una cadena que especifica qué, si hay algo, no es válido sobre pPrintTicket. Si es válido, es NULL.

Valor devuelto

Si la operación se realiza correctamente, se S_OK el valor devuelto.

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

Si pPrintTicket no es válido, HRESULT se E_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.
 
El parámetro hProvider debe ser un identificador que se abrió en el mismo subproceso que el subproceso en el que se usa para esta función.

Si baseDevmodeType es kUserDefaultDevmode, pero el valor predeterminado del usuario no está disponible, se usará el valor predeterminado del dispositivo.

El DEVMODE devuelto puede ser internamente incoherente o entrar en conflicto con la configuración de la impresora dura, aunque cada configuración dentro de ella sea viable individualmente. Por ejemplo, si la impresora admite un dúplex opcional, pero pPrintTicket llama a dúplex, el DEVMODE devuelto también llamará a dúplex, incluso si el dúplex no está instalado. Use DocumentProperties para corregir el DEVMODE devuelto.

El búfer del ppDevmode devuelto debe liberarse con PTReleaseMemory.

Los valores de pPrintTicket que están fuera del ámbito se omiten. 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.

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