Función MxdcGetPDEVAdjustment (mxdc.h)

La función MxdcGetPDEVAdjustment se exporta mediante un archivo DLL de interfaz de impresora y proporciona datos de configuración de impresora para el Convertidor de documentos de Microsoft XPS (MXDC).

Sintaxis

HRESULT MxdcGetPDEVAdjustment(
  [in]           HANDLE                    hPrinter,
  [in]           ULONG                     cbDevMode,
  [in]           const DEVMODE             *pDevMode,
  [in]           ULONG                     cbIn,
  [in, optional] const VOID                *pvIn,
  [in]           ULONG                     cbPrintPropertiesCollection,
                 PrintPropertiesCollection *pPrintPropertiesCollection
);

Parámetros

[in] hPrinter

Identificador de la impresora creada actualmente.

[in] cbDevMode

Tamaño de la estructura DEVMODE , en bytes, incluidos los datos DEVMODE privados del controlador.

[in] pDevMode

Copia de la estructura DEVMODE que recibió el MXDC. El archivo DLL de la interfaz de impresora usa información de esta estructura para devolver los datos solicitados.

[in] cbIn

Parámetro de entrada que designa el tamaño del parámetro pvIn , en bytes. Este parámetro no se usa actualmente y su valor es cero.

[in, optional] pvIn

Parámetro que consta de datos que se envían al archivo DLL de la interfaz de impresora desde el MXDC. Este parámetro no se usa actualmente y su valor es NULL.

[in] cbPrintPropertiesCollection

Tamaño de la estructura de datos PrintPropertiesCollection , en bytes.

pPrintPropertiesCollection

Estructura de datos PrintPropertiesCollection desde la que el archivo DLL de la interfaz de impresora obtiene los datos solicitados. Esta estructura se define en WinSpool.h. Los campos solicitados pueden rellenarse previamente con los datos predeterminados del MXDC. El archivo DLL de la interfaz de impresora debe omitir los campos que no entiende.

Valor devuelto

MxdcGetPDEVAdjustment debe devolver uno de los siguientes valores:

Código devuelto Descripción
S_OK El archivo DLL de la interfaz de impresora devolvió correctamente un área de imagen ajustada, un tipo de compresión o UN PPP basado en la estructura DEVMODE especificada. El MXDC validará el área de imagen devuelta y, a continuación, la usará para rellenar la estructura GDIINFO en los campos respectivos.
E_NOTIMPL La interfaz de impresora no implementa la función MxdcGetPDEVAdjustment . La interfaz de impresora no debe modificar los campos que no admite. El MXDC tiene como valor predeterminado sus valores predeterminados actuales. En el caso del área que se puede crear imágenes, MXDC usa de forma predeterminada el tamaño de página físico. Para la opción de compresión, MXDC tiene como valor predeterminado la compresión JPEG media.
E_FAIL Para este valor o cualquier otro valor de error, MXDC devuelve -1 a la función DrvEnablePDEV , detecta la excepción interna y establece una marca para que se produzca un error y finalice el trabajo de impresión.

Comentarios

El proveedor de hardware implementa la función MxdcGetPDEVAdjustment . EL MXDC llama a esta función para obtener datos de configuración de impresora en forma de contenedor de propiedades que incluye los datos siguientes:

MXDC permite que el archivo DLL de la interfaz de impresora ajuste ppp a través de la función MxdcGetPDEVAdjustment solo si el campo dmPrintQuality del trabajo de impresión tiene un valor menor o igual que 0. Si no se ajusta el valor de PPP, MXDC asigna valores dmPrintQuality negativos a las siguientes resoluciones.

Nombre de GDI (Wingdi.h) Valor de GDI(Wingdi.h) Interpretación predeterminada de MXDC(puntos por pulgada)
DMRES_HIGH -4 2400
DMRES_MEDIUM -3 1200
DMRES_LOW -2 600
DMRES_DRAFT -1 400

El nombre de la propiedad MXDC que almacena el valor de PPP predeterminado de MXDC es L"MxdcDotsPerInch".

En la tabla siguiente se enumeran los tipos de propiedad y los campos de contenedor de propiedades de MXDC para las propiedades:

Propiedad (propertyName) Tipo de propiedad (ePropertyValue) Campos de contenedor de propiedades
L"MxdcImageableArea" kPropertyTypeBuffer PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyBlob.cbBuf = sizeof(RECT) PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyBlob.pBuf
L"MxdcImageCompressionType" kPropertyTypeInt32 PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32
L"MxdcDotsPerInch" kPropertyTypeInt32 PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32
L"MxdcLandscapeRotation" kPropertyTypeInt32 PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32

En la tabla siguiente se enumeran los tipos de datos y los valores de datos admitidos de MXDC para las propiedades:

Propiedad (propertyName) Tipos de datos y valores
L"MxdcImageableArea" Tipo de datos: RECT

Valores:

RECT::left (igual que FORM_INFO_1)

RECT::right (igual que FORM_INFO_1)

RECT::top (igual que FORM_INFO_1)

RECT::bottom (igual que FORM_INFO_1)
L"MxdcImageCompressionType" Tipo de datos: LONG

Valores:

1 = Compresión alta jpeg

2 = Compresión media JPEG

3 = Compresión baja jpeg

4 = Compresión PNG
L"MxdcDotsPerInch" Tipo de datos: LONG

Valores:

Un valor positivo para puntos por pulgada
L"MxdcLandscapeRotation" Tipo de datos: LONG

Valores:

90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_90_DEGREES

0 = MXDC_LANDSCAPE_ROTATE_NONE

-90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES

La función MxdcGetPDEVAdjustment no forma parte del MXDC. El MXDC vuelve a llamar a esta función en el archivo DLL de configuración del controlador para obtener datos para configurar la impresora.

El MXDC espera que el área que se pueda imagen se exprese en coordenadas norotadas (orientación vertical). El MXDC gira tanto el tamaño de página como el área que se puede imagenr según el valor del miembro dmOrientation de la estructura DEVMODE a la que apunta pDevMode. Por lo tanto, la implementación del proveedor de hardware de MxdcGetPDEVAdjustment debe evitar especificar el área que se puede imagen en coordenadas rotadas (orientación horizontal), ya que esto hará que los trabajos de impresión horizontal se impriman incorrectamente.

El valor predeterminado del MXDC será MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES, que es su comportamiento heredado actual.

Toda la rotación se realizará en el área que se puede imagen. Si un componente de configuración (UniDrv/PostScript, XPSDrv Monolítico) no entiende los nuevos valores de contenedor de propiedades, debe omitirlos tal cual en el diseño actual.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado mxdc.h (incluya Mxdc.h)

Consulte también

DrvEnablePDEV

GDIINFO

IPrintOemUIMXDC (Interfaz)