Uso de GetOptionAttribute
Importante
La plataforma de impresión moderna es el medio preferido de Windows para comunicarse con impresoras. Se recomienda usar el controlador de clase de bandeja de entrada IPP de Microsoft, junto con aplicaciones de soporte técnico de impresión (PSA), para personalizar la experiencia de impresión en Windows 10 y 11 para el desarrollo de dispositivos de impresora.
Para obtener más información, consulte Plataforma de impresión moderna y la Guía de diseño de aplicaciones para compatibilidad con impresión.
Esta función solo se admite para las características del controlador de impresora PostScript (PPD). Si un atributo determinado no está disponible, GetOptionAttribute devuelve E_INVALIDARG.
Parámetros de salida para atributos de opción generales
En la tabla siguiente, el parámetro pdwDataType toma valores del tipo enumerado EATTRIBUTE_DATATYPE.
Atributo de opción general | Parámetros de salida |
---|---|
DisplayName | pdwDataType: kADT_UNICODE pbData: cadena Unicode terminada en null de la cadena de traducción del nombre de palabra clave de opción pcbNeeded: recuento de bytes de la cadena Unicode a la que apunta pbData (incluido el terminador null) Este atributo de opción está disponible para cualquier opción que EnumOptions pueda devolver en una característica del PPD. |
Invocación | pdwDataType: kADT_BINARY pbData: matriz de bytes para invocationValue de la opción pcbNeeded: recuento de bytes de los datos binarios a los que apunta pbData Este atributo de opción está disponible para cualquier opción que EnumOptions pueda devolver en una característica del PPD. Si InvocationValue de la opción está vacío, la función establece pdwDataType como antes, establece pcbNeeded = 0 y, a continuación, devuelve S_OK. |
OrderDependencyValue | pdwDataType: kADT_LONG pbData: el orden relativo especificado por la palabra clave OrderDependency o NonUIOrderDependency del PPD para esta opción. Observe que el primer parámetro de estas palabras clave es un número real que se convierte en LONG y se devuelve. pcbNeeded: sizeof(LONG) Este atributo de opción solo está disponible para una opción que tiene una entrada OrderDependency o *NonUIOrderDependency en el PPD y la entrada no omite optionKeyword. |
OrderDependencySection | pdwDataType: kADT_ASCII pbData: cadena ASCII terminada en null que contiene uno de los siguientes nombres de sección: "ExitServer" "Prolog" "DocumentSetup" "PageSetup" "JCLSetup" "AnySetup" pcbNeeded: recuento de bytes de la cadena ASCII a la que apunta pbData (incluido el terminador null) Este atributo de opción solo está disponible para una opción que tiene una entrada OrderDependency o NonUIOrderDependency en el PPD y la entrada no omite optionKeyword. |
Parámetros de salida para atributos de opción específicos
Además de los atributos de opción generales descritos anteriormente, los atributos de opción enumerados en las tablas siguientes pueden tener limitaciones cuando estén disponibles. Algunos atributos están disponibles para todas las opciones de una característica del PPD específica, mientras que otros solo están disponibles para opciones específicas de su característica del PPD. Se enumeran estas limitaciones para cada atributo de opción.
Palabra clave | Atributo de opción | Parámetros de salida |
---|---|---|
InputSlot | ||
RequiresPageRegion | pdwDataType: kADT_BOOL pbData: TRUE si el código de invocación PageRegion debe enviarse con el código de invocación InputSlot y FALSE en caso contrario. Se basa en la palabra clave RequiresPageRegion del PPD. Si se omite la palabra clave para esta opción de ranura de entrada, se devuelve TRUE para este atributo. pcbNeeded: sizeof(BOOL) Este atributo de opción está disponible para cualquier opción de la característica "InputSlot" del PPD, excepto para la opción generada por el controlador "*UseFormTrayTable". |
|
OutputBin | ||
OutputOrderReversed | pdwDataType: kADT_BOOL pbData: TRUE si el orden de salida de binOption es "Reverse" y FALSE si el orden de salida es "Normal". Se basa en las palabras clave DefaultOutputOrder y ageStackOrder del PPD. pcbNeeded: sizeof(BOOL) Este atributo de opción está disponible para cualquier opción de la característica "OutputBin" del PPD. |
|
PageSize | ||
ImageableArea | pdwDataType: kADT_RECT pbData: un rectángulo delimitador del área de imagen de la opción PageSize, tal como se especifica en la palabra clave ImageableArea del PPD, se devuelve en una estructura RECT, cuyos miembros izquierdo e inferior contienen los valores llx y lly, y cuyos miembros derecho y superior contienen los valores urx y ury. Todos los valores se expresan en micras. Los valores llx y lly del PPD se redondean al alza al entero más próximo antes de convertirlos en micras. Los valores urx y ury del PPD se redondean a la baja al entero más próximo antes de convertirlos en micras. pcbNeeded: sizeof(RECT) Este atributo de opción está disponible para cualquier opción de la característica "PageSize" del PPD, excepto la opción "CustomPageSize". |
|
PaperDimension | pdwDataType: kADT_SIZE pbData: la dimensión física de la opción PageSize, tal como se especifica en la palabra clave PaperDimension del PPD, se devuelve en una estructura SIZE, cuyo miembro cx contiene el valor de ancho y cuyo miembro cy contiene el valor de alto. Todos los valores se expresan en micras. pcbNeeded: sizeof(SIZE) Este atributo de opción está disponible para cualquier opción de la característica "PageSize" del PPD, excepto la opción "CustomPageSize". |
|
PageSize: CustomPageSize | ||
HWMargins | pdwDataType: kADT_RECT pbData: los cuatro valores especificados por la palabra clave HWMargins del PPD se devuelven en una estructura RECT. Todos los valores se expresan en micras. pcbNeeded: sizeof(RECT) Este atributo de opción solo está disponible para la opción "CustomPageSize" de la característica "PageSize" del PPD. |
|
MaxMediaHeight | pdwDataType: kADT_DWORD pbData: el valor especificado por la palabra clave *MaxMediaHeight del PPD, en micras. pcbNeeded: sizeof(DWORD) Este atributo de opción solo está disponible para la opción "CustomPageSize" de la característica "PageSize" del PPD. |
|
MaxMediaWidth | pdwDataType: kADT_DWORD pbData: el valor especificado por la palabra clave MaxMediaWidth del PPD, en micras. pcbNeeded: sizeof(DWORD) Este atributo de opción solo está disponible para la opción "CustomPageSize" de la característica "PageSize" del PPD. |
|
ParamCustomPageSize | pdwDataType: kADT_CUSTOMSIZEPARAMS pbData: matriz de elementos CUSTOMPARAM_MAX, donde cada elemento es una estructura CUSTOMSIZEPARAM. Cada elemento de esta matriz almacena los valores especificados en la entrada paramOption de la palabra clave ParamCustomPageSize del PPD. Para paramOption distinto de "Orientation", los valores de lMinVal e lMaxVal se expresan en micras. Para "Orientation", los valores de lMinVal e lMaxVal se encuentran en el intervalo de [0, 3]. pcbNeeded: sizeof(CUSTOMSIZEPARAM) * CUSTOMPARAM_MAX Este atributo de opción solo está disponible para la opción "CustomPageSize" de la característica "PageSize" del PPD. Para obtener más información, consulte la nota siguiente sobre ParamCustomPageSize. |
|
InstalledMemory | ||
VMOption | pdwDataType: kADT_DWORD pbData: el valor especificado por la palabra clave VMOption del PPD o 0 si el PPD no especifica la palabra clave VMOption para esta opción. pcbNeeded: sizeof(DWORD) Este atributo de opción está disponible para cualquier opción de la característica "InstalledMemory" del PPD. |
|
FCacheSize | pdwDataType: kADT_DWORD pbData: el valor especificado por la palabra clave FCacheSize del PPD o 0 si el PPD no especifica la palabra clave FCacheSize para esta opción. pcbNeeded: sizeof(DWORD) Este atributo de opción está disponible para cualquier opción de la característica "InstalledMemory" del PPD. |
Nota sobre ParamCustomPageSize
Este es un código de ejemplo que muestra cómo obtener los valores de orden original, mínimo y máximo del archivo del PPD de la entrada "ParamCustomPageSize Width". La constante CUSTOMPARAM_WIDTH, que se define en printoem.h, indica el desplazamiento de la estructura CUSTOMSIZEPARAM que contiene la información relacionada con la entrada Width. Esta estructura es una de las estructuras CUSTOMPARAM_MAX CUSTOMSIZEPARAM que forman una matriz de tales estructuras. El encabezado printoem.h define un conjunto de constantes denominadas CUSTOMPARAM_XXX que enumeran los desplazamientos de las estructuras de esta matriz (Width, Height, WidthOffset, HeightOffset y Orientation).
PCUSTOMSIZEPARAM pCSParam;
pCSParam = (PCUSTOMSIZEPARAM)pbData + CUSTOMPARAM_WIDTH;
order = pCSParam->dwOrder;
// Convert lMinVal and lMaxVal from microns to points.
// To convert microns to inches, divide by 25400.
// To convert inches to points, multiply by 72.
min = pCSParam->lMinVal / 25400.0 * 72.0;
max = pCSParam->lMaxVal / 25400.0 * 72.0;