Compartir a través de


función STROBJ_bEnumPositionsOnly (winddi.h)

La función STROBJ_bEnumPositionsOnly enumera identidades y posiciones de glifo para una cadena de texto especificada, pero no crea mapas de bits de glifos almacenados en caché.

Sintaxis

ENGAPI BOOL STROBJ_bEnumPositionsOnly(
  STROBJ    *pstro,
  ULONG     *pc,
  PGLYPHPOS *ppgpos
);

Parámetros

pstro

Puntero proporcionado por el autor de la llamada a una estructura STROBJ que describe una cadena de texto. Suele ser la estructura STROBJ recibida por la función DrvTextOut del controlador.

pc

Dirección proporcionada por el autor de la llamada para recibir el número proporcionado por GDI de estructuras GLYPHPOS a las que apunta el puntero en ppgpos.

ppgpos

Dirección proporcionada por el autor de la llamada que recibe un puntero proporcionado por GDI a una matriz de estructuras GLYPHPOS . (Vea la siguiente sección Comentarios ).

Valor devuelto

El valor devuelto es TRUE si se siguen enumerando más glifos o FALSE si se completa la enumeración. El valor devuelto se DDI_ERROR si no se pueden enumerar los glifos y se registra un código de error.

Comentarios

Normalmente, se llama a la función STROBJ_bEnumPositionsOnly desde la función DrvTextOut de un controlador. Realiza las mismas operaciones que STROBJ_bEnum con una excepción importante ; GDI no crea mapas de bits almacenados en caché de los glifos. La función STROBJ_bEnum supone que el controlador necesitará finalmente estos mapas de bits. Sin embargo, muchas impresoras más recientes contienen rasterizadores internos y, por lo tanto, no necesitan GDI para representar glifos. Para estas impresoras, la eliminación de la representación automática y el almacenamiento en caché de mapas de bits de glifos en la memoria del servidor proporciona un ahorro considerable tanto del tiempo de procesamiento como de la asignación de memoria.

En el caso de las impresoras que admiten la rasterización de glifo interna, se deben seguir las reglas siguientes:

  • El controlador debe establecer la marca GCAPS_FONT_RASTERIZER en su estructura DEVINFO .
  • La función DrvTextOut del controlador debe llamar a STROBJ_bEnumPositionsOnly en lugar de STROBJ_bEnum.
  • Si el trabajo de impresión incluye una fuente que el dispositivo no puede rasterizar internamente, el controlador debe llamar a FONTOBJ_cGetGlyphs para obtener mapas de bits de glifo.
  • Si un controlador necesita determinar la posición probable de la impresora después de imprimir una cadena de texto, pero no necesita un glifo de fuente, puede llamar a STROBJ_bGetAdvanceWidths.
Dado que GDI no crea mapas de bits almacenados en caché de los glifos, el contenido de la unión GLYPHDEF dentro de cada estructura GLYPHPOS devuelta será NULL.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 2000 y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Universal
Encabezado winddi.h (incluya Winddi.h)
Library Win32k.lib
Archivo DLL Win32k.sys

Consulte también

DrvTextOut

FONTOBJ_cGetGlyphs

GLYPHDEF

GLIFOPOS

STROBJ

STROBJ_bEnum

STROBJ_bGetAdvanceWidths