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) |