DEVMODE
Definición
typedef struct _devicemode { // dvmd BCHAR dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; short dmColor; short dmDuplex; short dmYResolution; short dmTTOption; short dmCollate; BCHAR dmFormName[CCHFORMNAME]; WORD dmLogPixels; DWORD dmBitsPerPel; DWORD dmPelsWidth; DWORD dmPelsHeight; DWORD dmDisplayFlags; DWORD dmDisplayFrequency; #if(WINVER >= 0x0400) DWORD dmICMMethod; // Windows 95 only DWORD dmICMIntent; // Windows 95 only DWORD dmMediaType; // Windows 95 only DWORD dmDitherType; // Windows 95 only DWORD dmReserved1; // Windows 95 only DWORD dmReserved2; // Windows 95 only #endif /* WINVER >= 0x0400 */ } DEVMODE;
La estructura de datos DEVMODE contiene información sobre la inicialización de dispositivo y entorno de una impresora.
Descripción
dmDeviceName: Especifica un nombre "amigable" para la impresora; por ejemplo, "PCL/HP LaserJet" el el caso de "PCL/HP LaserJet®". Esta cadena es única entre todos los controladores de dispositivo. Hay que tener en cuenta que este nombre puede ser truncado al tamaño del array dmDeviceName.
dmSpecVersion: Especifica el número de versión de la especificación de los datos de inicialización en la que la estructura está basada.
dmDriverVersion: Especifica el número de versión de controlador de impresora asignado por el desarrollador del controlador de impresora.
dmSize: Especifica el tamaño, en bytes, de la estructura DEVMODE, sin incluir cualquier dato privado específico del controlador que pueda seguir a los miembros públicos de la estructura. Se puede usar este miembro pora determinar el número de bytes de los datos públicos, independientemente de la versión de DEVMODE que se esté usando.
dmDriverExtra: Contiene el número de bytes de la parte de datos privados del controlador que siguen a esta estructura. Si el controlador de dispositivo no una información específica, poner este miembro a cero.
dmFields: Un conjunto de bits de bandera que especifican si ciertos miembros de la estructura DEVMODE han sido inicializados. Si un campo es inicializado, su bandera de bit correspondiente se activará, en caso contraio no. Un controlador de impresora soporta sólo aquellos miembros de la estructura DEVMODE que son apropiados para la tecnologia de la impresora.
Están definidos las siguentes banderas, y está listadas con sus miembros de estructura correspondientes:
Valor | Miembro de estructura |
---|---|
DM_ORIENTATION | dmOrientation |
DM_PAPERSIZE | dmPaperSize |
DM_PAPERLENGTH | dmPaperLength |
DM_PAPERWIDTH | dmPaperWidth |
DM_SCALE | dmScale |
DM_COPIES | dmCopies |
DM_DEFAULTSOURCE | dmDefaultSource |
DM_PRINTQUALITY | dmPrintQuality |
DM_COLOR | dmColor |
DM_DUPLEX | dmDuplex |
DM_YRESOLUTION | dmYResolution |
DM_TTOPTION | dmTTOption |
DM_COLLATE | dmCollate |
DM_FORMNAME | dmFormName |
DM_LOGPIXELS | dmLogPixels |
DM_BITSPERPEL | dmBitsPerPel |
DM_PELSWIDTH | dmPelsWidth |
DM_PELSHEIGHT | dmPelsHeight |
DM_DISPLAYFLAGS | dmDisplayFlags |
DM_DISPLAYFREQUENCY | dmDisplayFrequency |
DM_ICMMETHOD | Windows 95 sólo: dmICMMethod |
DM_ICMINTENT | Windows 95 sólo: dmICMIntent |
DM_MEDIATYPE | Windows 95 sólo: dmMediaType |
DM_DITHERTYPE | Windows 95 sólo: dmDitherType |
dmOrientation: Selecciona la orientación del papel. Este miembro puede tomar uno de los siguientes valores: DMORIENT_PORTRAIT (1) o DMORIENT_LANDSCAPE (2).
dmPaperSize: Selecciona el tamaño del papel sobre el que imprimir. Este miembro puede ser cero si la longitud y anchura del papel están especificados en los miembros dmPaperLength y dmPaperWidth. En caso contrario, el miembro dmPaperSize puede tener uno de los siguientes valores predefinidos:
Valor | Significado |
---|---|
DMPAPER_LETTER | Carta, 8 1/2- por 11-pulgadas |
DMPAPER_LEGAL | Legal, 8 1/2- por 14-pulgadas |
DMPAPER_A4 | Hoja A4, 210- por 297-milímetros |
DMPAPER_CSHEET | Hoja C, 17- por 22-pulgadas |
DMPAPER_DSHEET | Hoja D, 22- por 34-pulgadas |
DMPAPER_ESHEET | Hoja E, 34- por 44-pulgadas |
DMPAPER_LETTERSMALL | Carta Pequeña, 8 1/2- por 11-pulgadas |
DMPAPER_TABLOID | Tabloide, 11- por 17-pulgadas |
DMPAPER_LEDGER | Libro mayor, 17- por 11-pulgadas |
DMPAPER_STATEMENT | Declaración, 5 1/2- por 8 1/2-pulgadas |
DMPAPER_EXECUTIVE | Executivo, 7 1/4- por 10 1/2-pulgadas |
DMPAPER_A3 | Hoja A3, 297- por 420-milímetros |
DMPAPER_A4SMALL | Hoja Pequeña A4, 210- por 297-milímetros |
DMPAPER_A5 | Hoja A5, 148- por 210-milímetros |
DMPAPER_B4 | Hoja B5, 250- por 354-milímetros |
DMPAPER_B5 | Hoja B5, 182- por 257-millimeter |
DMPAPER_FOLIO | Folio, 8 1/2- por 13-pulgadas |
DMPAPER_QUARTO | Cuartilla, 215- por 275-millimeter |
DMPAPER_10X14 | 10- por 14-pulgadas |
DMPAPER_11X17 | 11- por 17-pulgadas |
DMPAPER_NOTE | Nota, 8 1/2- por 11-pulgadas |
DMPAPER_ENV_9 | #9 Sobre, 3 7/8- por 8 7/8-pulgadas |
DMPAPER_ENV_10 | #10 Sobre, 4 1/8- por 9 1/2-pulgadas |
DMPAPER_ENV_11 | #11 Sobre, 4 1/2- por 10 3/8-pulgadas |
DMPAPER_ENV_12 | #12 Sobre, 4 3/4- por 11-pulgadas |
DMPAPER_ENV_14 | #14 Sobre, 5- por 11 1/2-pulgadas |
DMPAPER_ENV_DL | DL Sobre, 110- por 220-milímetros |
DMPAPER_ENV_C5 | C5 Sobre, 162- por 229-milímetros |
DMPAPER_ENV_C3 | C3 Sobre, 324- por 458-milímetros |
DMPAPER_ENV_C4 | C4 Sobre, 229- por 324-milímetros |
DMPAPER_ENV_C6 | C6 Sobre, 114- por 162-milímetros |
DMPAPER_ENV_C65 | C65 Sobre, 114- por 229-milímetros |
DMPAPER_ENV_B4 | B4 Sobre, 250- por 353-milímetros |
DMPAPER_ENV_B5 | B5 Sobre, 176- por 250-milímetros |
DMPAPER_ENV_B6 | B6 Sobre, 176- por 125-milímetros |
DMPAPER_ENV_ITALY | Sobre Italiano, 110- por 230-milímetros |
DMPAPER_ENV_MONARCH | Sobre Monarca, 3 7/8- por 7 1/2-pulgadas |
DMPAPER_ENV_PERSONAL | 6 3/4 Sobre, 3 5/8- por 6 1/2-pulgadas |
DMPAPER_FANFOLD_US | Doblado US Std, 14 7/8- por 11-pulgadas |
DMPAPER_FANFOLD_STD_GERMAN | Doblado Std Aleman, 8 1/2- por 12-pulgadas |
DMPAPER_FANFOLD_LGL_GERMAN | Doblado Legal Alemán, 8 1/2- por 13-pulgadas |
dmPaperLength: Invalida la longitud de papel especificada por el miembro dmPaperSize, ya sea para tamaños personalizados de papel o para dispositivos como impresoras matriciales, que pueden imprimir en una página de longitud arbitraria. Estos valores, junto con todos los otros valores en esta estructura que especifican longitudes físicas, estan expresados en décimas de milímetro.
dmPaperWidth: Invalida la anchura de papel especificada por el miembro dmPaperSize.
dmScale: Especifica el factor en el que debe ser escapada la salida. El tamaño aparente de la página se escala desde el tamaño de la página física en un factor de dmScale/100. Por ejemplo, una página de tamaño carta con un valor dmScale de 50 contendrá los mismos datos que una página de 17 por 22 pulgadas, ya que el texto y gráficos de salida serían la mitad que la anchura y altura originales.
dmCopies: Selecciona el número de copias impresas si el dispositivo soporta copias múltiples de página.
dmDefaultSource: Reservado, debe ser cero.
dmPrintQuality: Especifica la resolución de la impresora. Existen cuatro valores predefinidos independientes del dispositivo:
DMRES_HIGH |
DMRES_MEDIUM |
DMRES_LOW |
DMRES_DRAFT |
Si se proporciona un valor positivo, especifica el número de puntos por pulgada (DPI) y será por lo tanto dependiente del dispositivo.
dmColor: Cambia entre impresoras de color y monocromo. Los valores posibles son los siguientes:
DMCOLOR_COLOR |
DMCOLOR_MONOCHROME |
dmDuplex: Selecciona impresión duplex o doble cara para impresoras con capacidad de impresión duplex. Los valores posibles son:
DMDUP_SIMPLEX |
DMDUP_HORIZONTAL |
DMDUP_VERTICAL |
dmYResolution: Especifica la resolución vertical, en puntos por pulgada, de la impresora. Si la impresora inicializa este miembro, el miembro dmPrintQuality especifica la resolución horizontal, en puntos por pulgada, de la impresora.
dmTTOption: Especifica como se deben imprimir las fuentes TrueType®. Este miembro puede ser uno de los valores siguientes:
Valor | Significado |
---|---|
DMTT_BITMAP | Imprime las fuentes TrueType como gráficos. Esta es la acción por defecto para impresoras matriciales. |
DMTT_DOWNLOAD | Descarga las fuentes TrueType fonts como fuentes soft. Esta es la acción por defecto para impresoras Hewlett-Packard que usen Printer Control Language (PCL). |
DMTT_SUBDEV | Sustituye las fuentes TrueType por fuentes del dispositivo. Esta es la acción por defecto para impresoras PostScript®. |
dmUnusedPadding: Usado para alinear la estructura con DWORD. No debe ser usado ni referenciad. Su nombre y uso están reservados, y pueden cambiar en futuras versiones.
dmCollate: Especifica si se debe usar intercalado cuando se imprimen múltiples copias. (Este miembro se ignora salvo que el controlador de la impresora indique que soporta intercalado activando la bandera DM_COLLATE en el miembro dmFields.) Este miembro puede tener uno de los valores siguientes:
Valor | Significado |
---|---|
DMCOLLATE_TRUE | Intercala cuando se imprimen múltiples copias. |
DMCOLLATE_FALSE | No intercala cuando se imprimen múltiples copias. |
Usar DMCOLLATE_TRUE proporciona una salida más rápida y eficiente para intercalado, ya que los datos se envían al controlador de dispositivo sólo una vez, independientemente del número de copias. A la impresora se le pide sólo que imprima la página de nuevo.
dmFormName:
Windows NT: Especifica el nombre del formato a usar; por ejemplo, "Letter" o "Legal". Se puede obtener un conjunto completo de nombres usando la función EnumForms.
Windows 95: Los controladores de impresora no soportan este miembro.
dmLogPixels: Especifica el número de pixels por pulgada lógica. Los controladores de impresora no usan este miembro.
dmBitsPerPel: Especifica la resolución de color, en bits por pixel, del dispositivo de visualización (por ejemplo: 4 bits para 16 colores, 8 bits para 256 colores, o 16 bits para 65536 colores). Los controladores de visualización usan este miembro, por ejemploe, en la función ChangeDisplaySettings. Los controladores de impresora no usan este miembro.
dmPelsWidth: Especifica la anchura, en pixels, de la superficie visible del dispositivo. Los controladores de visualización usan este miembro, por ejemplo, en la función ChangeDisplaySettings. Los controladores de impresora no usan este miembro.
dmPelsHeight: Especifica la altura, en pixels, de la superficie visible del dispositivo. Los controladores de visualización usan este miembro, por ejemplo, en la función ChangeDisplaySettings. Los controladores de impresora no usan este miembro.
dmDisplayFlags: Especifica el modo de visualización del dispositivo. Este miembro puede tomar uno de los siguientes valores:
Valor | Significado |
---|---|
DM_GRAYSCALE | Especifica que el dispositivo de visualización no es en color. Si esta bandera no está activa, se asume que es en color. |
DM_INTERLACED | Especifica que el modo del dispositivo visualización es entrelazado. Si esta bandera no está activa, se asume que es no entrelazado. |
Los controladores de dispositivos de visualización usan este miembro, por ejemplo, en la función ChangeDisplaySettings. Los controladores de impresora no usan este miembro.
dmDisplayFrequency: Especifica la frecuencia, en hercios (ciclos por segundo), del dispositivo de visualización en un modo en particular. Este valor también se conoce como la frecuencia de refresco vertical del dispositivo. Los contoladores de dispositivos de visualización usan este miembro. Se usa, por ejemplo, en la función ChangeDisplaySettings. Los controladores de impresora no lo usan.
Cuando se llama a la función EnumDisplaySettings, el miembro dmDisplayFrequency puede retornar con el valor 0 o 1. Estos valores representan la frecuencia de refresco por defecto del hardware de visualización. Esta frecuencia por defecto se selecciona generalmente mediante interruptores en la tarjeta o en la placa madre del ordenador, o mediante un programa de configuración que no usa funciones de visualización de Win32, como ChangeDisplaySettings.
dmICMMethod:
Windows 95: Especifica como se manipula el ICM. Para aplicaciones no-ICM, este miembro determina si ICM está activo o inactivo. Para aplicaciones ICM, Windows examina este miembro para determinar como manipular el soporte ICM. Este miembro puede ser uno de los siguientes valores predefinidos, o un valor definido por el controlador mayo que DMICMMETHOD_USER:
Valor | Significado |
---|---|
DMICMMETHOD_NONE | Windows 95 sólo: Especifica que ICM está desactivado. |
DMICMMETHOD_SYSTEM | Windows 95 sólo: Especifica que ICM será manipulado por Windows. |
DMICMMETHOD_DRIVER | Windows 95 sólo: Especifica que ICM será manipulado por el controlador del dispositivo. |
DMICMMETHOD_DEVICE | Windows 95 sólo: Especifica que ICM será manipulado por el dispositivo de destino. |
El controlador de impresora debe proporcionar un interfaz de usuario para asignar este miembro. Muchos controladores de impresión sólo soportan los valores DMICMMETHOD_SYSTEM o DMICMMETHOD_NONE. Controladores para impresoras PostScript soportan todos los valores.
Windows NT: Este miembro no está soportado en Windows NT.
Nota: ICM es una implementación de Windows de ICC, que establece un sistema de corrección de color.
dmICMIntent:
Windows 95: Especifica cual de los tres posibles métodos de coincidencia de color se debe usar por defecto. Este miembro es principalmente para aplicaciones no-ICM applications. Las aplicaciones ICM pueden establecer métodos usando las funciones ICM. Este miembro puede tener uno de los siguientes valores predefinidos, o un valor definido por el controlador mayor que el valor de DMICM_USER:
Valor | Significado |
---|---|
DMICM_SATURATE | Windows 95 sólo: La coincidencia de color se debe optimizar para la saturación de color. Este valor es la opción más apropiada para gráficos de negocios cuando no se desean difuminados. |
DMICM_CONTRAST | Windows 95 sólo: La coincidencia de color se debe optimizar para el contraste de color. Este valor es la opción más apropiada para imágenes escaneadas o para fotografías cuando se desean los difuminados. |
DMICM_COLORMETRIC | Windows 95 sólo: La coincidencia de color se debe optimizar para una coincidencia exacta de color. Este valor es el más apropiado para usar con logotipos de negocios o con otras imágenes cuando se desea una coincidencia de color exacta. |
Windows NT: Este miembro no está soportado en Windows NT.
dmMediaType:
Windows 95: Especifica el tipo de material en el que se va a imprimir. Este miembro puede tener uno de los siguientes valores predefinidos, o un valor definido por el controlador mayor que el valor de DMMEDIA_USER:
Valor | Significado |
---|---|
DMMEDIA_STANDARD | Windows 95 sólo: Papel normal. |
DMMEDIA_GLOSSY | Windows 95 sólo: Papel brillante. |
DMMEDIA_TRANSPARENCY | Windows 95 sólo: Película transparente. |
Windows NT: Este miembro no está soportado en Windows NT.
dmDitherType:
Windows 95: Especifica que tipo de tramado hay que hacer. Este miembro puede tener uno de los siguientes valores predefinidos, o un valor definido por el controlador mayor que el valor de DMDITHER_USER:
Valor | Significado |
---|---|
DMDITHER_NONE | Windows 95 sólo: Sin tramado. |
DMDITHER_COARSE | Windows 95 sólo: Tramado con pincel grueso. |
DMDITHER_FINE | Windows 95 sólo: Tramado con pincel fino. |
DMDITHER_LINEART | Windows 95 sólo: Dibujo lineal difuminado, un método especial que produce difuminados con las fronteras bien definidas entre zonas negras, blancas y grises. No es adecuado para imágenes que incluyen graduaciones continuas en intensidad y tono, como fotografías digitalizadas. |
DMDITHER_GRAYSCALE | Windows 95 sólo: El dispositivo dispone de escala de grises. |
Windows NT: Este miembro no está soportado en Windows NT.
dmReserved1:
Windows 95: No usado, debe ser cero.
Windows NT: Este miembro no está soportado en Windows NT.
dmReserved2:
Windows 95: No usado, debe ser cero.
Windows NT: Este miembro no está soportado en Windows NT.
Observaciones
A continuación de la parte pública de la estructura DEVMODE hay datos privados del controlador de dispositivo. El tamaño de los datos públicos puede variar para diferentes versiones de la estructura. El miembro dmSize especifica el número de bytes de los datos públicos, y el miembro dmDriverExtra especifica el número de bytes de los datos privados.